:root{--primary: hsl(230 80% 56%);--primary-dark: hsl(230 80% 45%);--primary-soft: hsl(230 80% 96%);--ink: hsl(230 25% 15%);--muted: hsl(230 10% 45%);--line: hsl(230 20% 90%);--bg: hsl(230 30% 98%);--card: #fff;--danger: hsl(0 72% 51%);--ok: hsl(150 60% 38%);--radius: 12px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Roboto,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}button{font:inherit;cursor:pointer}input{font:inherit}.btn{border:none;border-radius:10px;padding:10px 16px;background:var(--primary);color:#fff;font-weight:600;transition:background .15s ease,transform .15s ease}.btn:hover:not(:disabled){background:var(--primary-dark)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{background:transparent;color:var(--primary);border:1px solid var(--line)}.btn.ghost:hover:not(:disabled){background:var(--primary-soft)}.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--line)}.btn.danger:hover:not(:disabled){background:#fdf2f2}.btn.small{padding:6px 11px;font-size:13px;border-radius:8px}.field{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}.field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3553e91f}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px;background:var(--card);border-radius:16px;padding:32px;box-shadow:0 18px 50px #1f254714}.login-logo{height:38px;margin-bottom:22px}.login-card h1{margin:0 0 4px;font-size:21px}.login-card p.sub{margin:0 0 22px;color:var(--muted);font-size:14px}.tabs{display:flex;gap:6px;margin-bottom:20px;background:var(--bg);padding:4px;border-radius:10px}.tabs button{flex:1;border:none;background:transparent;padding:9px;border-radius:8px;color:var(--muted);font-weight:600}.tabs button.on{background:#fff;color:var(--primary);box-shadow:0 1px 3px #1f25471a}.stack{display:grid;gap:12px}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:12px 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:5}.topbar img{height:28px}.topbar .who{margin-left:auto;color:var(--muted);font-size:14px}.page{max-width:1080px;margin:0 auto;padding:24px}.row{display:flex;align-items:center;gap:12px}.row.wrap{flex-wrap:wrap}.spacer{margin-left:auto}h2{font-size:19px;margin:0}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card+.card{margin-top:12px}.card-row{display:flex;align-items:center;gap:14px}.card-row .title{font-weight:600}.grid{display:grid;gap:12px}.drop{border:2px dashed var(--line);border-radius:var(--radius);padding:30px;text-align:center;color:var(--muted);background:#fff;transition:border-color .15s ease,background .15s ease;cursor:pointer}.drop.over{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.drop strong{color:var(--primary)}.progress{height:6px;background:var(--line);border-radius:99px;overflow:hidden}.progress>div{height:100%;background:var(--primary);transition:width .2s ease}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:13px}tr:last-child td{border-bottom:none}.chip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;background:var(--primary-soft);color:var(--primary-dark);font-weight:600}.chip.grey{background:var(--bg);color:var(--muted)}.chip.red{background:#fceded;color:var(--danger)}.alert{padding:11px 14px;border-radius:10px;font-size:14px}.alert.error{background:#fdf2f2;color:var(--danger)}.alert.ok{background:#effbf5;color:var(--ok)}.alert.info{background:var(--primary-soft);color:var(--primary-dark)}.creds{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px;font-family:Cascadia Code,Consolas,monospace;font-size:14px}.creds div+div{margin-top:6px}.empty{text-align:center;padding:40px 20px;color:var(--muted)}
