:root{--bg: #0f1117;--panel: #171a23;--panel-2: #1e222d;--border: #2a2f3a;--text: #e6e8ee;--muted: #9aa2b1;--accent: #4f8cff;--up: #35c07f;--down: #f2555a;--warn: #e0a83b}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;min-height:100vh}.sidebar{width:210px;background:var(--panel);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.brand{font-weight:700;font-size:16px;margin:0 8px 18px}.brand span{color:var(--accent)}.nav a{display:block;padding:9px 12px;border-radius:8px;color:var(--muted);font-weight:500}.nav a:hover{background:var(--panel-2);text-decoration:none;color:var(--text)}.nav a.active{background:var(--accent);color:#fff}.sidebar .spacer{flex:1}.logout{background:none;border:1px solid var(--border);color:var(--muted);padding:8px 12px;border-radius:8px;cursor:pointer;font:inherit;text-align:left}.logout:hover{color:var(--text);border-color:var(--muted)}.main{flex:1;padding:28px 34px;max-width:1100px}.main h1{font-size:22px;margin:0 0 22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.card .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.card .value{font-size:30px;font-weight:700;margin-top:6px}.card .sub{color:var(--muted);font-size:12px;margin-top:4px}.card.up .value{color:var(--up)}.card.down .value{color:var(--down)}.section{margin-top:30px}.section h2{font-size:15px;color:var(--muted);font-weight:600;margin:0 0 12px}.bars{display:flex;flex-direction:column;gap:8px;max-width:520px}.bar-row{display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:10px}.bar-track{background:var(--panel-2);border-radius:6px;height:20px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.bar-row .n{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.lang{text-transform:uppercase;font-size:12px;color:var(--muted)}.controls{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}input[type=text],input[type=password],select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:8px;font:inherit;outline:none}input[type=text]:focus,input[type=password]:focus,select:focus{border-color:var(--accent)}input[type=text]{min-width:280px}.tabs{display:flex;gap:6px}.tab{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);padding:8px 14px;border-radius:8px;cursor:pointer;font:inherit}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary{background:var(--accent);border:none;color:#fff;padding:10px 16px;border-radius:8px;cursor:pointer;font:inherit;font-weight:600}button.primary:disabled{opacity:.6;cursor:default}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tbody tr:hover{background:var(--panel)}.row-click{cursor:pointer}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge.active{background:#35c07f26;color:var(--up)}.badge.outdated{background:#e0a83b26;color:var(--warn)}.badge.merged{background:#9aa2b126;color:var(--muted)}.chip{display:inline-block;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:1px 7px;margin:0 4px 4px 0;font-size:12px}.pager{display:flex;gap:10px;align-items:center;margin-top:16px;color:var(--muted)}.pager button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:7px 12px;border-radius:8px;cursor:pointer;font:inherit}.pager button:disabled{opacity:.4;cursor:default}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums}.votes .up{color:var(--up);font-weight:700}.votes .down{color:var(--down);font-weight:700}.fb{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px}.fb .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px;flex-wrap:wrap}.fb .q{font-weight:600;margin-bottom:6px}.fb .a{color:var(--muted);white-space:pre-wrap}.fb .meta{color:var(--muted);font-size:12px;display:flex;gap:14px;flex-wrap:wrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:flex-end}.drawer{width:min(640px,92vw);background:var(--panel);height:100%;overflow-y:auto;padding:26px 28px;border-left:1px solid var(--border)}.drawer h2{margin-top:0}.drawer .close{float:right;background:none;border:none;color:var(--muted);font-size:22px;cursor:pointer}.qa{margin:14px 0}.qa .lbl{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.qa .txt{white-space:pre-wrap}.src{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px;white-space:pre-wrap;font-size:13px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:32px;width:340px}.login-card h1{font-size:20px;margin:0 0 4px}.login-card p{color:var(--muted);margin:0 0 22px;font-size:13px}.login-card label{display:block;color:var(--muted);font-size:12px;margin:12px 0 5px}.login-card input{width:100%}.login-card button{width:100%;margin-top:20px}.err{color:var(--down);font-size:13px;margin-top:14px}.loading{color:var(--muted);padding:40px 0}
