body{color:#111;background:#f5f5f3;margin:0;font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Arial,sans-serif}.topbar{z-index:100;background:#fff;border-bottom:1px solid #e0e0e0;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;height:68px;padding:0 32px;display:grid;position:sticky;top:0}.nav{justify-self:start;align-items:center;gap:6px;display:flex}.nav-btn{text-align:center;letter-spacing:.05em;text-transform:uppercase;color:#999;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:150px;height:40px;padding:0 16px;font-size:11px;font-weight:500;line-height:1.3;transition:color .15s,background .15s;display:flex}.nav-btn:hover{color:#111;background:#f0f0f0}.nav-btn.active{color:#fff;background:#111;border-color:#111}.admin-wrap{justify-self:end;align-items:center;gap:10px;display:flex}.sync-pill{color:#888;letter-spacing:.05em;text-transform:uppercase;font-size:10px}.sync-btn{color:#111;cursor:pointer;letter-spacing:.04em;text-transform:uppercase;background:#fff;border:1px solid #111;border-radius:6px;padding:6px 12px;font-size:11px}.sync-btn:hover{color:#fff;background:#111}.signout-btn{color:#888;cursor:pointer;background:0 0;border:none;font-size:11px;text-decoration:underline}.body{min-height:calc(100vh - 68px);padding:24px 28px}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:20px;display:grid}.kpi{background:#ebebeb;border-radius:8px;padding:14px 16px}.kpi-label{letter-spacing:.1em;text-transform:uppercase;color:#999;margin-bottom:6px;font-size:10px}.kpi-value{color:#111;letter-spacing:-.02em;font-size:24px;font-weight:300;line-height:1}.kpi.warn .kpi-value{color:#c0392b}.kpi.warn .kpi-label{color:#c0392b;opacity:.8}.kpi.accent .kpi-value{color:#2a52a0}.kpi.accent .kpi-label{color:#2a52a0;opacity:.8}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.filter-label{letter-spacing:.1em;text-transform:uppercase;color:#999;font-size:10px}.cohort-select{color:#111;cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-radius:8px;min-width:280px;padding:8px 32px 8px 12px;font-size:13px}.count-pill{color:#999;background:#e8e8e8;border-radius:20px;padding:4px 12px;font-size:11px}.board-wrap{padding-bottom:12px;overflow-x:auto}.board{gap:8px;min-width:max-content;display:flex}.col{background:#e8e8e6;border-radius:10px;flex-shrink:0;width:180px;min-height:200px;padding:10px 8px}.col-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.col-title{letter-spacing:.07em;text-transform:uppercase;color:#888;flex:1;padding-right:4px;font-size:9px;font-weight:600;line-height:1.3}.col-count{color:#bbb;background:#fff;border-radius:10px;padding:1px 6px;font-size:10px}.card{cursor:grab;background:#fff;border:1px solid #e8e8e8;border-radius:8px;margin-bottom:6px;padding:9px}.card:hover{border-color:#ccc}.card-name{color:#111;white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:12px;font-weight:500;overflow:hidden}.card-cohort{color:#aaa;white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:10px;overflow:hidden}.badges{flex-wrap:wrap;gap:3px;display:flex}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:3px;padding:2px 5px;font-size:9px;font-weight:500}.b-fin{color:#2a52a0;background:#e8f0ff}.b-paid{color:#2e7d32;background:#e8f5e9}.b-complete{color:#27ae60;background:#e8f5e9}.b-incomplete{color:#c0392b;background:#fff0f0}.section-label{letter-spacing:.1em;text-transform:uppercase;color:#999;margin-bottom:12px;font-size:10px;font-weight:500}.tbl-wrap{background:#fff;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}thead th{text-align:left;letter-spacing:.09em;text-transform:uppercase;color:#aaa;white-space:nowrap;background:#fafafa;border-bottom:1px solid #e0e0e0;padding:10px;font-size:9px;font-weight:500}tbody td{color:#111;vertical-align:middle;border-bottom:1px solid #f0f0ee;padding:8px 10px}tbody tr:hover td{background:#fafafa}input[type=number],input[type=text],select{background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:12px}.late{color:#c0392b;font-weight:500}.muted{color:#aaa}.link-btn{color:#2a52a0;cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}
