:root{--ink:#142033;--muted:#5d6b7c;--line:#e4e9ef;--bg:#f3f5f8;--panel:#ffffff;--nav:#10283a;--nav-text:#d5e2ec;--accent:#0c6e62;--accent-dark:#09564d;--danger:#a3262a;--warn:#8a5a00;--shadow:0 1px 2px rgba(16,40,58,0.06),0 8px 24px rgba(16,40,58,0.04);color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Segoe UI,PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5}a{color:var(--accent-dark);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.nav{background:var(--nav);color:var(--nav-text);padding:20px 14px;flex-direction:column;gap:18px}.brand,.nav{display:flex}.brand{gap:10px;align-items:center;padding:0 8px}.brand-mark{width:36px;height:36px;border-radius:8px;background:#1b6b5e;color:white;display:grid;place-items:center;font-weight:700;letter-spacing:0}.brand strong{display:block;color:white;font-size:15px}.brand span{color:#9eb4c6;font-size:12px}.nav a{display:block;color:var(--nav-text);text-decoration:none;padding:8px 10px;border-radius:8px}.nav a:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.08);color:white}.nav-links{display:flex;flex-direction:column;gap:4px}.main{min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--line)}.topbar .who{color:var(--muted)}.topbar .who strong{color:var(--ink);margin-right:8px}.content{padding:22px 24px 48px;max-width:1180px}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:16px}.login-card h1,.page-head h1{margin:0;font-size:22px;font-weight:650}.sub{color:var(--muted);margin:4px 0 0}.grid-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.card,.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat{padding:14px 16px;display:block;color:inherit}.stat,.stat:hover{text-decoration:none}.stat:hover{border-color:#c9d5df}.stat em{display:block;font-style:normal;color:var(--muted);font-size:12px}.stat strong{font-size:28px;letter-spacing:-.03em}.card{padding:16px}.card h2{margin:0 0 12px;font-size:16px}.stack{grid-gap:16px}.split,.stack{display:grid;gap:16px}.split{grid-template-columns:1.4fr .8fr;grid-gap:16px;align-items:start}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;background:#eef2f6;color:#314155}.badge.new{background:#e7f0fb;color:#1d4e89}.badge.following{background:#fff4e0;color:var(--warn)}.badge.appointed{background:#e5f6ee;color:#0d7a49}.badge.invalid{background:#f1f2f4;color:#5c6570}.badge.closed{background:#f3e9fb;color:#6d28a8}.badge.warn{background:#fff1f0;color:var(--danger)}.filters,.form,.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.field{display:grid;grid-gap:4px;gap:4px;min-width:140px}.field.grow{flex:1 1;min-width:220px}.field span,.label{color:var(--muted);font-size:12px}input,select,textarea{width:100%;border:1px solid #d5dee7;background:white;border-radius:8px;padding:8px 10px;outline:none}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(12,110,98,.15)}.btn{border:0;background:var(--accent);color:white;border-radius:8px;padding:8px 14px}.btn:hover{background:var(--accent-dark)}.btn.secondary{background:#e8eef3;color:var(--ink)}.btn.secondary:hover{background:#dbe4ec}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--nav-text);border:1px solid rgba(255,255,255,.2)}.error{background:#fff1f0;color:var(--danger);padding:8px 10px}.error,.secret{border-radius:8px}.secret{background:#10283a;color:#e8fff8;padding:12px;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.muted{color:var(--muted)}.row-actions{display:flex;gap:8px}.timeline{display:grid;grid-gap:10px;gap:10px}.timeline article{border-left:3px solid #d5eee8;padding:4px 0 4px 12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:white;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.login-card form,.stack-form{display:grid;grid-gap:12px;gap:12px}.kv{display:grid;grid-template-columns:88px 1fr;grid-gap:6px 10px;gap:6px 10px}.kv dt{color:var(--muted)}.kv dd{margin:0}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{background:#eef6f4;color:var(--accent-dark);border-radius:999px;padding:2px 8px;font-size:12px}.pager{display:flex;gap:12px;align-items:center;margin-top:12px}@media (max-width:900px){.shell{grid-template-columns:1fr}.nav{padding:12px}.nav-links{flex-direction:row;flex-wrap:wrap}.grid-stats,.split{grid-template-columns:1fr}.content{padding:16px}}