:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--accent: #38bdf8;--danger: #f87171;--border: #475569}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:var(--accent);color:#0f172a;border:none;padding:8px 16px;border-radius:6px;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text)}button.danger{background:var(--danger);color:#fff}input,select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:14px;width:100%}.layout{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar h1{font-size:18px;margin:0}.topbar .right{display:flex;gap:16px;align-items:center;color:var(--text-muted)}.content{flex:1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:16px}.card h2{margin-top:0}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-page .card{width:360px}.login-page label{display:block;margin-top:12px;color:var(--text-muted);font-size:13px}.login-page button{width:100%;margin-top:16px}.error{color:var(--danger);margin-top:8px;font-size:13px}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.5px}tr:hover td{background:#ffffff05}.toolbar{display:flex;gap:8px;margin-bottom:16px;align-items:center}.toolbar input{max-width:320px}.toolbar select{max-width:200px}.muted{color:var(--text-muted)}.size{font-variant-numeric:tabular-nums}.empty{padding:40px;text-align:center;color:var(--text-muted)}.pagination{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;align-items:center}.arch h3{margin-top:0}.arch h4{margin-top:24px;margin-bottom:8px;color:var(--accent)}.arch p{line-height:1.6}.arch ul,.arch ol{line-height:1.7;padding-left:20px}.arch table th{white-space:nowrap;vertical-align:top}.arch code{background:#ffffff0f;padding:1px 5px;border-radius:3px;font-size:13px}.arch pre code{background:none;padding:0}
