:root{--navy-900:#031b33;--navy-800:#0a2d4f;--navy-700:#0f3560;--navy-600:#1a4a6e;--orange:#ff6b00;--orange-dark:#e05a00;--blue:#4a90e2;--grey-050:#f4f8fa;--grey-075:#f0f5fa;--grey-100:#eef3f8;--blue-050:#f0f7ff;--border:#c8d6e4;--border-soft:#d8e4ee;--border-faint:#d0dce8;--muted:#7a9ab8;--muted-light:#9bb8d4;--rail-width:320px;--bar-height:56px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--navy-900);background:var(--grey-050);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}a{color:var(--blue)}.topbar{height:var(--bar-height);background:var(--navy-800);border-bottom:1px solid var(--navy-600);display:flex;align-items:center;gap:16px;padding:0 16px;color:#fff}.brand{display:flex;align-items:baseline;gap:8px;font-weight:700;letter-spacing:.2px}.brand small{font-weight:500;font-size:12px;color:var(--muted-light)}.topbar .spacer{flex:1 1}.topbar a.btn,.topbar button{height:32px;padding:0 12px;border-radius:6px;background:var(--navy-800);border:1px solid var(--navy-600);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:13px}.topbar a.btn:hover,.topbar button:hover{background:var(--navy-700)}.shell{display:grid;grid-template-columns:var(--rail-width) 1fr;height:calc(100vh - var(--bar-height))}@media (max-width:900px){.shell{grid-template-columns:1fr;height:auto}}.rail{background:#fff;border-right:1px solid var(--border-soft);padding:16px}.rail,.results{overflow-y:auto}.results{padding:16px 20px 48px}.rail h2{margin:0 0 12px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;display:flex;align-items:center;justify-content:space-between}.rail h2,.reset{color:var(--muted)}.reset{border:none;background:transparent;font-size:12px;cursor:pointer;text-transform:none;letter-spacing:0}.reset:hover{color:var(--orange)}.field{margin-bottom:16px;position:relative}.field .field-label,.field>label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.field .hint{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px;line-height:1.45}.field input[type=text],.field textarea{width:100%;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:#fff;outline:none}.field textarea{height:60px;padding:8px 10px;resize:vertical;line-height:1.4}.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,144,226,.14)}.field input.short{border-color:var(--orange)}.checks{display:flex;flex-direction:column;gap:6px}.checks label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:4px 6px;border-radius:6px}.checks label:hover{background:var(--grey-075)}.checks .count{margin-left:auto;font-size:11px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.or-note{margin:8px 0 0;padding:8px 10px;background:var(--blue-050);border:1px solid var(--border-soft);border-radius:6px;font-size:11px;line-height:1.5;color:var(--navy-900)}.or-note strong{color:var(--navy-800)}.menu{position:fixed;z-index:100;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(3,27,51,.12);overflow-y:auto;overscroll-behavior:contain}.menu button{display:block;width:100%;text-align:left;padding:8px 12px;background:transparent;border:none;cursor:pointer;font-size:13px}.menu button:hover,.menu button[data-active=true]{background:var(--blue-050)}.menu .menu-note{padding:6px 12px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--grey-100)}.apply{width:100%;height:36px;background:var(--orange);border:none;color:#fff;font-weight:700;border-radius:8px;cursor:pointer}.apply:hover{background:var(--orange-dark)}.apply:disabled{opacity:.55;cursor:not-allowed}.resulthead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.resulthead h1{margin:0;font-size:18px}.resulthead .sub{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.actions{margin-left:auto;display:flex;gap:8px}.actions button{height:32px;padding:0 14px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:13px;font-weight:600}.actions button:hover:not(:disabled){border-color:var(--blue);background:var(--blue-050)}.actions button.primary{background:var(--orange);border-color:var(--orange);color:#fff}.actions button.primary:hover:not(:disabled){background:var(--orange-dark);border-color:var(--orange-dark)}.actions button:disabled{opacity:.5;cursor:not-allowed}.notice{padding:10px 12px;border-radius:8px;font-size:12.5px;line-height:1.5;margin-bottom:10px;border:1px solid var(--border-soft);background:#fff}.notice.warn{border-color:#f0c39a;background:#fff6ee}.notice.error{border-color:#e6b4b4;background:#fdf1f1}table.grid{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border-soft);border-radius:8px;overflow:hidden}table.grid th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px;background:var(--grey-050);border-bottom:1px solid var(--border-soft);white-space:nowrap}table.grid td{padding:10px;border-bottom:1px solid var(--grey-075);vertical-align:top;font-size:13px}table.grid tr:hover td{background:var(--blue-050)}table.grid td.name{font-weight:600}.headline{color:var(--muted);font-size:12px;margin-top:2px;line-height:1.4}.role{display:block;line-height:1.45}.role+.role{margin-top:4px;padding-top:4px;border-top:1px dashed var(--grey-100)}.role .co{font-weight:600}.role .ind{color:var(--muted);font-size:11.5px}.pill{display:inline-block;padding:1px 7px;border-radius:999px;background:var(--grey-100);color:var(--navy-800)}.multi,.pill{font-size:11px;font-weight:600}.multi{color:var(--orange-dark)}.pager{display:flex;align-items:center;gap:10px;margin-top:14px}.pager button{height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer}.pager button:disabled{opacity:.45;cursor:not-allowed}.pager span{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.empty{padding:48px 20px;text-align:center;color:var(--muted);background:#fff;border:1px solid var(--border-soft);border-radius:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--navy-800);padding:24px}.login-card{width:100%;max-width:360px;background:#fff;border-radius:12px;padding:28px;box-shadow:0 20px 60px rgba(3,27,51,.4)}.login-card h1{margin:0 0 4px;font-size:19px}.login-card p.lede{margin:0 0 20px;color:var(--muted);font-size:13px}.login-card label{display:block;font-size:12px;font-weight:600;margin:12px 0 6px}.login-card input{width:100%;height:38px;padding:0 10px;border:1px solid var(--border);border-radius:6px;outline:none}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(74,144,226,.14)}.login-card button{width:100%;height:40px;margin-top:18px;background:var(--orange);border:none;color:#fff;font-weight:700;border-radius:8px;cursor:pointer}.login-card button:hover:not(:disabled){background:var(--orange-dark)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-error{margin-top:14px;padding:9px 11px;border-radius:6px;background:#fdf1f1;border:1px solid #e6b4b4;font-size:12.5px}.setup{max-width:620px;margin:60px auto;background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px 26px;line-height:1.6}.setup code{background:var(--grey-100);padding:1px 5px;border-radius:4px;font-size:12.5px}.group{border:1px solid var(--border);border-radius:8px;background:#fff;margin-bottom:0;overflow:hidden}.group-rows{padding:6px 10px 8px}.group-row{display:grid;grid-template-columns:30px 1fr;align-items:center;grid-gap:2px;gap:2px;min-height:30px}.group-row .op{font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.group-row>label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:4px 6px;border-radius:6px}.group-row>label:hover{background:var(--grey-075)}.group-row .count{margin-left:auto;color:#4a6178;font-size:11.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.group-school .field{margin-bottom:0}.group-school .field input[type=text]{height:30px;font-size:13px}.group-total{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--grey-050);border-top:1px solid var(--border-soft);font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#4a6178}.group-total strong{font-size:14px;letter-spacing:0;color:var(--navy-900);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.group-total em{font-style:normal;color:var(--muted)}.group-join{display:grid;grid-template-columns:30px 1fr;align-items:center;margin:0 0 14px}.group-join span{grid-column:1;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--muted);text-align:center;padding:6px 0}.group-join:after{content:"";grid-column:2;height:1px;background:var(--border-soft)}.hint .gap{color:var(--orange-dark);font-weight:600}:where(button,a,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}.topbar :where(button,a):focus-visible{outline-color:#fff}input[type=checkbox]{width:15px;height:15px;accent-color:var(--orange);cursor:pointer;flex-shrink:0}