:root{--teal: #1f9e96;--teal-dark: #15756f;--pink: #e8649a;--ink: #213447;--muted: #6b7e8c;--bg: #eef5f6;--card: #ffffff;--line: #dce7e8;--shadow: 0 1px 3px rgba(33,52,71,.08), 0 4px 14px rgba(33,52,71,.05)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--teal-dark)}.topbar{background:var(--teal);color:#fff;padding:14px 24px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:30;box-shadow:var(--shadow)}.topbar h1{font-size:18px;margin:0;font-weight:700;letter-spacing:.2px}.topbar .sub{opacity:.85;font-size:13px}.spacer{flex:1}.progress{display:flex;gap:8px;padding:12px 24px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}.statchip{display:flex;align-items:center;gap:7px;font-size:13px;padding:5px 11px;border-radius:20px;background:#f4f8f8;border:1px solid var(--line);cursor:pointer}.statchip.active{outline:2px solid var(--teal)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.statchip b{font-variant-numeric:tabular-nums}.layout{display:flex;gap:18px;padding:18px 24px;align-items:flex-start}.filters{display:flex;gap:10px;padding:0 24px 14px;flex-wrap:wrap;align-items:center}.filters input,.filters select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff;color:var(--ink)}.filters input[type=search]{min-width:240px}.list{flex:1;display:grid;grid-template-columns:1fr;gap:8px;min-width:0}.row{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px;display:grid;grid-template-columns:1fr auto;gap:6px 14px;cursor:pointer;box-shadow:var(--shadow);align-items:center}.row:hover{border-color:var(--teal)}.row.sel{border-color:var(--teal);outline:2px solid rgba(31,158,150,.25)}.row .title{font-weight:650;font-size:15px}.row .meta{color:var(--muted);font-size:12px;display:flex;gap:10px;flex-wrap:wrap}.tag{background:#eef5f6;border:1px solid var(--line);border-radius:6px;padding:1px 7px;font-size:11px;color:var(--teal-dark)}.marks{font-size:13px}.right{display:flex;align-items:center;gap:8px}.statusbadge{font-size:11px;font-weight:700;padding:4px 9px;border-radius:20px;color:#fff;white-space:nowrap}.detail{width:46%;max-width:640px;position:sticky;top:96px;max-height:calc(100vh - 116px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.detail .dhead{padding:16px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.detail h2{margin:0 0 6px;font-size:19px}.detail .dbody{padding:16px 18px}.detail h3{color:var(--teal-dark);font-size:13px;text-transform:uppercase;letter-spacing:.5px;margin:18px 0 7px;border-bottom:2px solid #eef5f6;padding-bottom:4px}.detail ul{margin:6px 0;padding-left:18px}.detail li{margin:3px 0;font-size:14px;line-height:1.45}.kv{font-size:14px;line-height:1.5}.kv .k{font-weight:700}.star{background:#fff7e6;border:1px solid #ffe0a3;border-radius:8px;padding:8px 11px;margin:5px 0;font-size:13.5px}.flag{background:#fff1f4;border:1px solid #f6c9d5;border-radius:8px;padding:8px 11px;margin:5px 0;font-size:13px;color:#8a3a52}.mem{background:#eafaf8;border:1px solid #b9e7e2;border-radius:8px;padding:8px 11px;margin:5px 0;font-size:14px}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:8px}.controls select,.controls input{padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px}.btn{background:var(--teal);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}.btn.ghost{background:#fff;color:var(--teal-dark);border:1px solid var(--line)}.btn:disabled{opacity:.5;cursor:not-allowed}.closex{float:right;cursor:pointer;color:var(--muted);font-size:20px;line-height:1}.empty{color:var(--muted);padding:40px;text-align:center}.pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:#eef5f6;color:var(--teal-dark);margin-left:6px}.count{color:var(--muted);font-size:13px;padding:0 24px 8px}
