:root{--background: #fbf9f4;--surface: #ffffff;--surface-low: #f5f3ee;--surface-mid: #f0eee9;--surface-high: #e4e2dd;--text: #1b1c19;--muted: #4d4635;--primary: #735c00;--gold: #d4af37;--gold-soft: #ebe2cc;--danger: #8a3f2d;--shadow: 0 12px 32px -4px rgba(27, 28, 25, .06);font-family:Manrope,sans-serif;color:var(--text);background:var(--background)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,rgba(212,175,55,.08),transparent 32rem),var(--background)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-panel{width:min(920px,100%);display:grid;grid-template-columns:1fr 360px;gap:4rem;padding:4rem;background:#ffffffb8;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:var(--shadow);border-radius:8px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--surface-low);padding:1.25rem;display:flex;flex-direction:column;gap:2rem;position:sticky;top:0;height:100vh}.brand,.user-strip,.search-pill,.bulk-bar,.icon-text{display:flex;align-items:center;gap:.75rem}.brand strong,.brand span,.user-strip strong,.user-strip span{display:block}.brand span,.user-strip span,.muted{color:var(--muted)}nav{display:grid;gap:.8rem}.nav-section{display:grid;gap:.3rem}.nav-section>span{color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;padding:0 .75rem}nav button,.tabs button,.row-button,.link-button,.icon-button,.icon-text{border:0;background:transparent;color:var(--text)}nav button{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:6px;text-align:left}nav button.active,nav button:hover,.tabs button.active,.tabs button:hover{background:var(--surface-mid);color:var(--primary)}.user-strip{margin-top:auto;justify-content:space-between;background:var(--surface);padding:.85rem;border-radius:8px;box-shadow:var(--shadow)}.workspace{padding:1rem clamp(.9rem,2.4vw,1.8rem);overflow:auto}.page-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.eyebrow,label span,th{margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800;color:var(--primary)}h1{margin:0;font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:.04em}h2{margin:0 0 1rem;font-size:1rem;letter-spacing:.04em}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:.8rem}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:.8rem}.dashboard-card{border:0;background:var(--surface);border-radius:8px;box-shadow:var(--shadow);padding:1rem;text-align:left;min-height:132px;display:grid;gap:.45rem;align-content:start;transition:transform .16s ease,box-shadow .16s ease}.dashboard-card:hover,.dashboard-card:focus-visible,.selected-card{transform:translateY(-1px);box-shadow:0 16px 34px -6px #1b1c191f;outline:2px solid var(--gold-soft)}.dashboard-card span{color:var(--primary);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.dashboard-card strong{font-size:1.7rem}.dashboard-card small{color:var(--muted);line-height:1.45}.primary-card{background:linear-gradient(135deg,var(--surface),var(--gold-soft))}.mini-bar{display:flex;height:.45rem;overflow:hidden;border-radius:999px;background:var(--surface-mid)}.mini-bar span:nth-child(1){background:#2f6b66}.mini-bar span:nth-child(2){background:#b35b43}.mini-bar span:nth-child(3){background:var(--gold)}.compact-metrics{grid-template-columns:repeat(4,minmax(100px,1fr));gap:.65rem;margin-bottom:0}.compact-metrics .metric{padding:.85rem}.metric,.panel{background:var(--surface);border-radius:8px;box-shadow:var(--shadow)}.metric{padding:1.15rem}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{display:block;font-size:1.7rem;margin-top:.5rem}.metric.warn strong{color:var(--danger)}.two-column{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:1rem}.panel{padding:.85rem;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .55rem;white-space:nowrap}tbody tr{background:var(--surface-low)}tbody tr+tr td{box-shadow:inset 0 8px var(--surface)}.search-pill,.bulk-bar{background:var(--surface-mid);padding:.55rem .75rem;border-radius:999px}.compact-toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.search-pill input,input,select,textarea{border:0;background:var(--surface-mid);border-radius:6px;padding:.72rem;color:var(--text);width:100%}.search-pill input{padding:0;min-width:180px}.form-stack{display:grid;gap:1rem}.grid-form{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:.75rem;align-items:end}.toolbar{display:flex;gap:.65rem;margin-bottom:.6rem;flex-wrap:wrap}.status-chips{display:flex;gap:.4rem;margin-bottom:.6rem;flex-wrap:wrap}.status-chips button{border:0;border-radius:999px;padding:.45rem .75rem;background:var(--surface-mid);color:var(--muted);font-weight:800;text-transform:capitalize}.status-chips button.active{background:var(--gold-soft);color:var(--primary)}.spacer{margin-top:1rem}.button-row{display:flex;gap:.55rem;flex-wrap:wrap}.primary,.button-row button,.bulk-bar button,.secondary-button{border:0;border-radius:6px;padding:.75rem 1rem;background:linear-gradient(135deg,var(--primary),var(--gold));color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none}.button-row button:not(.primary),.bulk-bar button,.secondary-button{background:var(--gold-soft);color:var(--primary)}.error{color:var(--danger);margin:0}.chip{display:inline-flex;background:var(--gold-soft);color:var(--primary);border-radius:999px;padding:.25rem .65rem;font-size:.8rem;font-weight:800}.visibility-pastoral{background:#dfe9dd;color:#285336}.visibility-safeguarding_restricted{background:#f0d9cf;color:var(--danger)}.record-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.check-line{display:inline-flex;align-items:center;gap:.45rem;background:var(--surface-mid);border-radius:6px;padding:.72rem}.check-line input{width:auto}.list-stack{display:grid;gap:.5rem}.bulk-panel{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:.65rem;align-items:center;background:var(--surface-mid);border-radius:8px;padding:.75rem;margin-bottom:.8rem}.bulk-panel>div{display:flex;gap:.5rem}.bulk-panel button,.timeline button{border:0;border-radius:6px;padding:.65rem .8rem;background:var(--gold-soft);color:var(--primary);font-weight:800;white-space:nowrap}.choice-group{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.choice-group label{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-mid);border-radius:999px;padding:.35rem .6rem;color:var(--muted);font-size:.88rem;font-weight:800}.choice-group.compact label{padding:.28rem .55rem}.choice-group label.selected{background:var(--gold-soft);color:var(--primary)}.choice-group input{position:absolute;opacity:0;pointer-events:none}.row-button{text-align:left;padding:.8rem;background:var(--surface-low);border-radius:6px}.row-button span,.timeline span{display:block;color:var(--muted);font-size:.85rem;margin-top:.25rem}.link-button{color:var(--primary);font-weight:800;padding:0}.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tabs button{padding:.65rem .9rem;border-radius:999px;text-transform:capitalize}.detail-grid{display:grid;grid-template-columns:max-content 1fr;gap:.8rem 2rem;margin:0}.detail-grid dt{color:var(--muted)}.detail-grid dd{margin:0;font-weight:800}.profile-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:.8rem;align-items:start}.profile-grid .panel:first-child:last-child,.profile-grid .panel:nth-child(3){grid-column:1 / -1}.profile-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.65rem;margin-bottom:.8rem}.compact-form{grid-template-columns:repeat(3,minmax(160px,1fr))}.contact-card{display:grid;gap:.45rem}.contact-actions{align-items:center}.spacer-sm{margin-top:.4rem}.portal-shell{min-height:100vh;display:grid;gap:.85rem}.portal-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem 0}.portal-topbar strong,.portal-topbar span{display:block}.portal-login{align-items:center}#student-add-panel{scroll-margin-top:1rem}.timeline{background:var(--surface-low);border-radius:6px;padding:.75rem}.timeline p{margin:.45rem 0}.receipt-box{background:var(--surface-mid);padding:1rem;border-radius:8px;white-space:pre-wrap}.empty-note{margin:.8rem 0 0;color:var(--muted);font-size:.92rem}.empty-cell{color:var(--muted);text-align:center;padding:1.4rem .75rem}.table-subtext{display:block;color:var(--muted);font-size:.82rem;margin-top:.25rem;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{display:flex;gap:.8rem;align-items:flex-start;background:var(--surface-low);border-radius:8px;padding:1rem}.empty-state p{margin:.25rem 0 0;color:var(--muted)}.settings-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:1rem;align-items:start}.settings-tabs{margin-bottom:1rem}.user-list,.role-map{display:grid;gap:.75rem}.user-card,.permission-card{background:var(--surface-low);border-radius:8px;padding:1rem}.user-card-head,.access-row{display:grid;gap:.8rem}.user-card-head{grid-template-columns:1fr auto;align-items:start}.user-card-head span{display:block;color:var(--muted);margin-top:.2rem}.muted-chip{background:var(--surface-high);color:var(--muted)}.access-row{grid-template-columns:minmax(130px,.35fr) minmax(220px,1fr) minmax(180px,.8fr) auto;align-items:end;margin-top:.9rem}.permission-card{display:grid;gap:.8rem}.permission-card p{margin:.25rem 0 0;color:var(--muted)}.permission-group{display:grid;gap:.4rem}.permission-group>span{color:var(--primary);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.permission-group>div{display:flex;flex-wrap:wrap;gap:.4rem}.register-table td{vertical-align:top}.header-select{max-width:240px}.mark-toggle{display:grid;grid-template-columns:repeat(3,2.2rem) minmax(130px,1fr);gap:.35rem;align-items:center;min-width:260px}.mark-toggle button{border:0;border-radius:6px;background:var(--surface-mid);color:var(--muted);font-weight:900;padding:.72rem 0}.mark-toggle button.active{background:var(--gold-soft);color:var(--primary)}@media(max-width:900px){.app-shell,.login-panel,.two-column,.dashboard-grid,.metric-grid,.grid-form,.profile-grid,.profile-summary,.bulk-panel,.settings-layout,.access-row{grid-template-columns:1fr}.sidebar{position:static;height:auto}.page-head{align-items:stretch;flex-direction:column}}
