:root{--bg: #0f172a;--panel: #1e293b;--line: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #38bdf8;--warn: #fbbf24;--error: #f87171}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#0b1120;color:var(--text)}.center{display:flex;min-height:100vh;align-items:center;justify-content:center}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:20px 16px;display:flex;flex-direction:column}.sidebar h1{font-size:18px;margin:0 0 24px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar nav a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:8px}.sidebar nav a:hover{background:#0f172a;color:var(--text)}.sidebar nav a.active{background:var(--accent);color:#0b1120;font-weight:600}.user{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:16px}.content{padding:28px 32px;overflow:auto}h2{margin-top:0}button{background:var(--accent);color:#0b1120;border:0;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600}button:hover{opacity:.9}button:disabled{opacity:.5;cursor:default}input{background:#0b1120;border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:8px;width:100%}label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:14px;color:var(--muted)}.search{max-width:340px;margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600}td code{color:var(--accent)}.actions{display:flex;gap:8px}.actions button{padding:5px 10px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}.card.login{width:320px}.card.login button{width:100%;margin-top:8px}.card.warn{border-color:var(--warn);margin-bottom:16px;display:flex;flex-direction:column;gap:8px}.card.warn code{color:var(--warn);word-break:break-all}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.metric{display:flex;flex-direction:column;gap:4px}.metric-value{font-size:28px;font-weight:700}.metric-label{color:var(--muted)}.metric-hint{color:var(--muted);font-size:12px}.row{display:flex;gap:10px;align-items:center}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.muted{color:var(--muted)}.error{color:var(--error)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center}.modal{width:360px}.state{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 16px;color:var(--muted)}.state-error{flex-direction:column}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:1000}.toast{min-width:240px;max-width:360px;padding:12px 16px;border-radius:8px;color:#0b1120;font-weight:600;box-shadow:0 6px 20px #00000059;animation:toast-in .2s ease-out}.toast-success{background:#4ade80}.toast-error{background:var(--error);color:#1a0000}.toast-info{background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.pagination button{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:6px 12px;font-weight:500}.pagination button:hover:not(:disabled){border-color:var(--accent)}.pagination button:disabled{opacity:.4;cursor:default}.filterbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px}.filter-field{display:flex;flex-direction:column;gap:4px;margin:0;font-size:13px;color:var(--muted)}.filter-field input,.filter-field select{min-width:160px}.filter-clear{background:var(--panel);color:var(--text);border:1px solid var(--line)}.filter-clear:disabled{opacity:.4;cursor:default}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;font-weight:500}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.col-diverge{background:#fbbf241f;color:var(--warn)}th.col-diverge{color:var(--warn)}
