/* College table — the database on projects/college-closure.html.
   Uses the portfolio's tokens where the page defines them, with fallbacks. */
.ct{--ct-paper:var(--paper,#FAFBF9);--ct-card:var(--card,#FFFFFF);--ct-grid:var(--grid,#E3E9E4);--ct-rule:var(--rule,#D4DCD6);
  --ct-ink:var(--ink,#10231E);--ct-soft:var(--ink-soft,#465953);--ct-faint:#86968F;--ct-tint:#F2F5F2;--ct-hover:#F5F8F5;
  --ct-blue:var(--blue,#2456A6);--ct-amber:var(--amber,#E8A13C);--ct-bad:#B8402E;
  --ct-sans:'Archivo',system-ui,-apple-system,sans-serif;--ct-serif:'Source Serif 4',Georgia,serif;--ct-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
  --gP:#17694a;--gA:#2f8f5b;--gB:#7fae45;--gC:#e0a624;--gD:#e0702c;--gF:#c33a2e;--gN:#b3ada2;
  font-family:var(--ct-sans);color:var(--ct-ink)}
.ct *{box-sizing:border-box}
.ct-wide{width:min(1180px,calc(100vw - 32px));position:relative;left:50%;transform:translateX(-50%)}

.ct-controls{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center;margin-top:0}
.ct-q{position:relative;flex:0 1 340px;min-width:220px}
.ct-q input{width:100%;font-family:var(--ct-sans);font-size:1rem;color:var(--ct-ink);background:var(--ct-card);border:1px solid var(--ct-rule);border-radius:4px;padding:10px 12px 10px 38px}
.ct-q input::placeholder{color:var(--ct-faint)}
.ct-q input:focus{outline:none;border-color:var(--ct-blue);box-shadow:0 0 0 3px rgba(36,86,166,.14)}
.ct-q svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--ct-soft)}
.ct select,.ct .ct-btn{font-family:var(--ct-sans);font-size:.9rem;color:var(--ct-ink);background:var(--ct-card);border:1px solid var(--ct-rule);border-radius:4px;padding:10px 10px;cursor:pointer}
.ct select{max-width:180px}
.ct .ct-btn:hover{border-color:var(--ct-soft)}
.ct button:focus-visible,.ct select:focus-visible,.ct input:focus-visible{outline:2px solid var(--ct-blue);outline-offset:2px}
.ct-gf{display:flex;gap:3px;align-items:center}
.ct-gf button{border:0;background:none;padding:2px;cursor:pointer;border-radius:5px}
.ct-gf button[aria-pressed="false"] .gc{opacity:.26}
.ct-chk{display:flex;align-items:center;gap:7px;font-size:.86rem;color:var(--ct-soft);cursor:pointer;white-space:nowrap}
.ct-chk input{accent-color:var(--ct-blue);width:15px;height:15px}

.ct-cols{position:relative}
.ct-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;background:var(--ct-card);border:1px solid var(--ct-rule);border-radius:6px;
  box-shadow:0 10px 30px rgba(16,35,30,.12);padding:14px 16px;width:min(520px,calc(100vw - 32px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.ct-menu[hidden]{display:none}
.ct-menu h4{margin:0 0 6px;font-family:var(--ct-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ct-soft);font-weight:500}
.ct-menu label{display:flex;gap:8px;align-items:center;font-size:.88rem;padding:3px 0;cursor:pointer}
.ct-menu input{accent-color:var(--ct-blue)}
.ct-menu .ct-opt{grid-column:1/-1;border-bottom:1px solid var(--ct-grid);padding-bottom:8px}
.ct-menu .ct-reset{grid-column:1/-1;justify-self:start;border:0;background:none;color:var(--ct-blue);font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}

.ct-status{margin:16px 0 8px;display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;align-items:baseline;font-family:var(--ct-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ct-soft)}
.ct-status b{font-family:var(--ct-sans);font-size:.9rem;letter-spacing:0;color:var(--ct-ink);font-weight:600}
.ct-link{border:0;background:none;padding:0;cursor:pointer;color:var(--ct-blue);font-family:var(--ct-sans);font-size:.88rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;margin-left:14px}

.gc{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;padding:0 6px;border-radius:4px;font-family:var(--ct-mono);font-weight:600;font-size:.78rem;line-height:1}
.gc.sm{min-width:22px;height:19px;font-size:.66rem;padding:0 4px}
.g-P{background:var(--gP);color:#fff}.g-A{background:var(--gA);color:#fff}.g-B{background:var(--gB);color:#10231E}
.g-C{background:var(--gC);color:#10231E}.g-D{background:var(--gD);color:#10231E}.g-F{background:var(--gF);color:#fff}.g-N{background:var(--gN);color:#10231E}

.ct table{width:100%;border-collapse:collapse;font-size:.92rem}
.ct thead th{position:sticky;top:var(--navh,0px);z-index:5;background:var(--ct-paper);text-align:right;font-family:var(--ct-mono);font-weight:500;font-size:.64rem;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ct-soft);padding:12px 9px 9px;border-bottom:1.5px solid var(--ct-ink);vertical-align:bottom;line-height:1.3}
.ct thead th button{all:unset;cursor:pointer;display:inline-block}
.ct thead th button:focus-visible{outline:2px solid var(--ct-blue);outline-offset:3px}
.ct thead th[aria-sort]{color:var(--ct-ink)}
.ct thead th .ar{color:var(--ct-blue);margin-left:3px}
.ct thead th.l{text-align:left}.ct thead th.cc{text-align:center}
.ct tbody tr.r{cursor:pointer}
.ct tbody tr.r>td{padding:9px 9px;border-bottom:1px solid var(--ct-grid);text-align:right;vertical-align:middle;font-family:var(--ct-mono);font-size:.84rem;font-variant-numeric:tabular-nums}
.ct tbody tr.r:hover>td{background:var(--ct-hover)}
.ct tbody tr.r.open>td{background:var(--ct-tint);border-bottom-color:transparent}
.ct tbody tr.r>td.nm{text-align:left;font-family:var(--ct-sans);min-width:210px}
.ct tbody tr.r>td.cc{text-align:center}
.ct td.nm button{all:unset;cursor:pointer;font-weight:600;font-size:.97rem;line-height:1.25}
.ct td.nm button:focus-visible{outline:2px solid var(--ct-blue);outline-offset:2px}
.ct td.nm .loc{display:block;font-family:var(--ct-mono);font-size:.67rem;color:var(--ct-faint);margin-top:2px;letter-spacing:.02em}
.ct .tag{font-family:var(--ct-mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;border-radius:3px;padding:1px 4px;margin-left:6px;vertical-align:1px}
.ct .tag.pub{color:#173E7C;background:#E5ECF6}.ct .tag.onl{color:#4a3aa7;background:#ECEAF7}
.ct td.warn{color:var(--ct-bad);font-weight:600}
.ct td.na{color:var(--ct-faint)}
.ct .odds{display:inline-block;min-width:88px;padding:3px 8px;border-radius:4px;text-align:right;white-space:nowrap}
.ct .odds.none{background:transparent;color:var(--ct-faint)}
.ct .empty{padding:44px 10px;text-align:center;color:var(--ct-soft);font-family:var(--ct-serif);font-size:1rem}

.ct tr.xr>td{padding:2px 9px 22px;background:var(--ct-tint);border-bottom:1.5px solid var(--ct-rule)}
.ct .prof{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}
.ct .prof p{margin:0 0 10px;font-family:var(--ct-serif);font-size:1rem;line-height:1.6;max-width:64ch;color:var(--ct-ink)}
.ct .prof p.note{font-size:.93rem;color:var(--ct-soft)}
.ct .pills{display:flex;gap:6px 18px;flex-wrap:wrap;margin:6px 0 12px;font-family:var(--ct-mono);font-size:.72rem;color:var(--ct-soft)}
.ct .pills b{font-family:var(--ct-sans);font-size:1.05rem;color:var(--ct-ink);font-weight:700;margin-right:3px}
.ct .fl h5{margin:12px 0 6px;font-family:var(--ct-mono);font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ct-soft);font-weight:500}
.ct .fl span{display:inline-block;font-family:var(--ct-sans);font-size:.82rem;border-radius:3px;padding:3px 8px;margin:0 6px 6px 0;cursor:help}
.ct .fl .dem{color:#8a3a12;background:#FBEADF}.ct .fl .fin{color:var(--ct-bad);background:#FBEDEA}
.ct .copy{border:0;background:none;padding:0;margin-top:8px;cursor:pointer;color:var(--ct-blue);font-family:var(--ct-sans);font-size:.86rem;text-decoration:underline;text-underline-offset:3px}
.ct .cap{font-family:var(--ct-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ct-soft);margin:4px 0 2px}
.ct svg.pc{width:100%;height:auto;display:block;margin-bottom:10px}
.ct svg.pc text{font-family:var(--ct-mono);fill:var(--ct-soft)}

.ct-foot{margin-top:14px;display:flex;gap:10px 22px;flex-wrap:wrap;font-family:var(--ct-mono);font-size:.7rem;color:var(--ct-soft)}
.ct-foot button{border:0;background:none;padding:0;cursor:pointer;color:var(--ct-blue);font-family:var(--ct-mono);font-size:.7rem;text-decoration:underline;text-underline-offset:3px}
.ct-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#10231E;color:#fff;font-family:'Archivo',sans-serif;font-size:.88rem;padding:9px 14px;border-radius:4px;opacity:0;transition:opacity .15s;pointer-events:none;z-index:80}
.ct-loading{padding:40px 0;color:var(--ct-soft);font-family:var(--ct-serif)}

@media (max-width:900px){.ct .prof{grid-template-columns:1fr}}
@media (max-width:760px){.ct .o3,.ct .o4,.ct .o5,.ct .o6,.ct .o7,.ct .o8,.ct .o9,.ct .o10,.ct .o11,.ct .o12,.ct .o13,.ct .o14{display:none}}
@media (max-width:540px){.ct .o1,.ct .o2{display:none}.ct tbody tr.r>td.nm{min-width:0}.ct .odds{min-width:0}.ct select{max-width:none;flex:1}.ct-menu{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.ct-toast{transition:none}}
