:root{--bg:#f8f6f1;--surface:#fffdfa;--surface-strong:#fff7ea;--text:#241c18;--muted:#786c61;--line:#e7ded2;--accent:#a53f2b;--accent-dark:#803120;--gold:#c19343;--green:#2f765b;--blue:#446c8c;--shadow:0 16px 40px #3d2b201a}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.admin-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{color:#fdf7ee;background:#2a201c;flex-direction:column;gap:22px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:6px;display:flex}.brand small{color:#ddcab7;margin-top:2px;font-size:12px;display:block}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--gold));border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:800;display:inline-flex}.sidebar nav{gap:4px;display:grid}.sidebar nav a{color:#f5e9dc;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:10px 12px;display:flex}.sidebar nav a:hover,.sidebar nav a:focus-visible{background:#ffffff17;outline:none}.signout{border-top:1px solid #ffffff24;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.signout span{color:#ead8c5;font-size:14px}.signout button,.icon-button{color:inherit;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.icon-button.light{border-color:var(--line);color:var(--text);background:#fff}.content{padding:28px}.page-header,.row-between{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header{margin-bottom:24px}.page-header h1,.auth-form h1,.compact-panel h1{margin:0;font-size:clamp(30px,4vw,46px);line-height:1.05}h2,h3,p{margin-top:0}.muted,.page-header p{color:var(--muted)}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.grid{gap:16px;display:grid}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.two-column{grid-template-columns:minmax(0,1.4fr) minmax(320px,.75fr);align-items:start}.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.compact-panel,.auth-form,.table-shell,.empty-state{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.card,.compact-panel,.auth-form,.empty-state{padding:18px}.metric{min-height:112px}.metric strong{font-size:30px;line-height:1;display:block}.metric span,.small,.table-meta{color:var(--muted);font-size:13px}.table-shell{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}.compact-table table{min-width:0}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:13px 14px}th{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}tr:last-child td{border-bottom:0}.status{text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:7px 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.status.active,.status.paid,.status.present,.status.completed{color:var(--green);background:#e5f4ee}.status.trial,.status.due,.status.scheduled,.status.partial{color:#8a5b05;background:#fff2d5}.status.paused,.status.late,.status.excused{color:var(--blue);background:#e8f1f8}.status.inactive,.status.former,.status.absent,.status.overdue,.status.cancelled{color:var(--accent-dark);background:#f9e3df}.primary-button,.secondary-button,.text-button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 13px;font-weight:750;display:inline-flex}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-dark)}.secondary-button{border-color:var(--line);color:var(--text);background:#fff}.text-button,.text-link{color:var(--accent-dark);background:0 0;padding-left:0;padding-right:0}.form{gap:14px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.form input,.form select,.form textarea,.filter-bar input,.filter-bar select{border:1px solid var(--line);color:var(--text);background:#fff;border-radius:8px;width:100%;min-height:42px;padding:9px 11px}.form textarea{resize:vertical;min-height:92px}.filter-bar{grid-template-columns:minmax(220px,1fr) 180px 180px auto;gap:10px;margin-bottom:16px;display:grid}.filter-bar.simple-filters{grid-template-columns:minmax(220px,1fr) 240px auto}.pill-list{flex-wrap:wrap;gap:7px;display:flex}.pill{color:#5d4e42;background:#f1e8dc;border-radius:999px;padding:6px 8px;font-size:12px;font-weight:700}.auth-page,.center-page{align-items:center;min-height:100vh;padding:24px;display:grid}.auth-form{width:100%;max-width:460px;margin:auto}.center-page .compact-panel{width:100%;max-width:520px;margin:auto}.notice,.error{border-radius:8px;padding:11px 12px}.notice{color:#765311;background:#fff3d8}.error{color:#7b2819;background:#fae1dd}.attention-list,.stack-list{gap:10px;margin:0;padding:0;display:grid}.attention-list li,.stack-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;list-style:none;display:flex}.attention-list li:last-child,.stack-list li:last-child{border-bottom:0}.segmented{grid-template-columns:repeat(4,minmax(78px,1fr));gap:8px;display:grid}.segmented label{display:block}.segmented input{opacity:0;position:absolute}.segmented span{border:1px solid var(--line);border-radius:8px;justify-content:center;align-items:center;min-height:38px;padding:8px;font-size:13px;font-weight:800;display:flex}.segmented input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.mobile-card-list{display:none}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.calendar-day{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:160px;padding:10px}.modal-dialog{background:0 0;border:0;width:100%;max-width:min(620px,100vw - 28px);padding:0}.modal-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#20181473}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px;box-shadow:0 24px 70px #22181247}.modal-header{align-items:center;margin-bottom:16px}.modal-header h2{margin:0}.class-type-strip{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.clickable-row:hover{background:#fff8ed}.view-button{min-height:34px;padding:7px 11px}.blank-page{background:var(--surface);border:1px dashed var(--line);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;min-height:280px;padding:24px;display:flex}.student-picker{border:1px solid var(--line);border-radius:8px;gap:10px;margin:0;padding:12px;display:grid}.student-picker legend{color:var(--muted);padding:0 6px;font-size:13px;font-weight:800}.student-picker-list{gap:8px;max-height:220px;padding-right:4px;display:grid;overflow:auto}.student-check{border:1px solid var(--line);background:#fffaf3;border-radius:8px;grid-template-columns:18px 1fr;align-items:center;gap:10px;padding:10px;display:grid}.student-check input{width:16px;height:16px}.student-check span{gap:2px;display:grid}.student-check small{color:var(--muted)}.compact-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:980px){.admin-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar nav a{justify-content:center}.metric-grid,.two-column,.three-column{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}}@media (max-width:680px){.content{padding:18px}.page-header,.row-between{display:grid}.sidebar{padding:14px}.sidebar nav{padding-bottom:4px;display:flex;overflow-x:auto}.sidebar nav a{flex:none}.form-grid,.filter-bar,.filter-bar.simple-filters,.calendar-grid{grid-template-columns:1fr}.desktop-table{display:none}.mobile-card-list{gap:10px;display:grid}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
