/* Shared school workspace — visual redesign.
   Builds on the base design system (app.css); brand tokens, fonts and print
   styles remain authoritative. Screen-only refinements. */
@media screen {
 :focus-visible {outline:3px solid var(--c-accent);outline-offset:3px}
 fieldset {border:1px solid var(--c-border);border-radius:14px;padding:1.25rem;margin-block:1rem 1.3rem;background:var(--c-surface);min-width:0;box-shadow:var(--shadow-sm)}
 legend {font-size:1rem;font-weight:600;color:var(--c-primary);padding-inline:.6rem}
 .settings-section {padding:.5rem 1rem 1rem;transition:border-color .15s var(--ease)}
 .settings-section:not([open]) {padding:.25rem 1rem}
 .settings-section>summary {list-style-position:inside;font-size:1.05rem;border-radius:8px}
 .settings-section>summary::marker {color:var(--c-accent)}
 .filter-main>.actions {order:2}
 .filter-main>.advanced-filters {order:3}
 .receipt-row {border:1px solid var(--c-border);padding:1rem;border-radius:12px;margin-block:.7rem;background:var(--c-surface);box-shadow:var(--shadow-sm)}
 /* Profile summary tiles: quiet top accents in token-adjacent hues. */
 .profile-summary article:nth-child(2) {border-block-start:3px solid var(--c-accent)}
 .profile-summary article:nth-child(1) {border-block-start:3px solid var(--c-primary)}
 .profile-summary article:nth-child(3) {border-block-start:3px solid var(--c-warning)}

 body {font-size:1rem;line-height:1.75}
 .shell {grid-template-columns:264px minmax(0,1fr)}
 .sidebar {padding:1.4rem .9rem;gap:1.4rem}
 .brand {padding:.3rem .4rem 1.3rem;border-block-end:1px solid #ffffff24}
 .brand__mark {width:48px;height:48px;flex-basis:48px;border-radius:15px;background:#ffffff12}
 .brand__name {white-space:normal;font-size:1rem;line-height:1.6}
 .brand__sub {font-size:.8rem;line-height:1.6}
 .nav {gap:.35rem}
 .nav__group {padding:.8rem .85rem .2rem;font-size:.78rem;color:#ffffffa6}
 .nav__link {padding:.7rem .8rem;gap:.8rem;border-radius:12px;font-size:.94rem;min-height:48px}
 .nav__link[aria-current="page"] {background:var(--c-surface);color:var(--c-primary);border-inline-start-color:var(--c-accent);box-shadow:0 5px 15px #00000014}
 .nav__link[aria-current="page"] .nav__icon {color:var(--c-accent)}
 .nav__label {white-space:normal;line-height:1.6;overflow:visible}
 .nav__icon .icon {width:23px;height:23px}
 .main {min-width:0}
 .topbar {min-height:84px;padding:1rem 2rem;gap:1rem;background:var(--c-surface);border-block-end:1px solid var(--c-border)}
 .topbar__title {display:flex;align-items:center;gap:.75rem;font-size:1.28rem;white-space:normal}
 .page-symbol {display:inline-flex;padding:.62rem;border-radius:13px;color:var(--c-primary);background:var(--c-primary-soft);border:1px solid var(--c-border)}
 .topbar__tools {gap:1rem;flex-wrap:wrap}
 .langswitch {padding:.2rem;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface)}
 .langswitch a {font-size:.85rem;padding:.4rem .6rem}
 .content {max-width:1440px;width:100%;padding:1.75rem 2rem 2.5rem;margin-inline:auto}
 .panel {border-radius:var(--radius);padding:1.5rem;margin-block-end:1.3rem;box-shadow:var(--shadow-sm)}
 .panel__head {gap:1rem;align-items:center;flex-wrap:wrap;margin-block-end:1.25rem;padding-block-end:.85rem;border-block-end:1px solid var(--c-border)}
 h2 {font-size:1.2rem} h3 {font-size:1.05rem} h4 {font-size:1rem}
 .field label,.stat__label,.searchbar__hint {font-size:.9rem;line-height:1.7}
 .field__hint,.field__error {font-size:.85rem;line-height:1.7}
 input[type=text],input[type=search],input[type=password],input[type=email],input[type=tel],input[type=date],input[type=number],input[type=color],input[type=file],select,textarea {min-height:48px;border-radius:11px;padding:.7rem .85rem;font:inherit}
 input[type=search] {width:100%;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text)}
 input[type=checkbox],input[type=radio] {width:1.15rem;height:1.15rem;accent-color:var(--c-primary);vertical-align:middle;flex:none}
 input[type=color] {padding:.25rem}
 .btn {min-height:46px;gap:.6rem;border-radius:11px;padding:.65rem 1.05rem;font-size:.94rem;font-weight:600;line-height:1.5}
 .btn--ghost {background:var(--c-surface);border-color:var(--c-border)}
 .btn--sm {min-height:40px;font-size:.88rem;padding:.5rem .8rem}
 .btn--link {min-height:38px;border:0;background:none}
 .actions {gap:.65rem}
 .notice {font-size:.94rem;padding:1rem 1.15rem;border-radius:13px}
 details {margin-block:.8rem;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface)}
 details>summary {cursor:pointer;padding:.85rem 1rem;color:var(--c-primary);font-size:.94rem;font-weight:600;line-height:1.7;transition:background-color .12s var(--ease)}
 details>summary:hover {background:var(--c-primary-soft)}
 details[open]>summary {border-block-end:1px solid var(--c-border);margin-block-end:1rem}
 details>form,details>.grid,details>.filter-grid,details>p {margin:1rem}
 details>details {margin:1rem}
 .filter-panel {margin-block-end:1.3rem}
 .filter-panel form {margin:0}
 .filter-main {display:flex;gap:.85rem;align-items:end;flex-wrap:wrap}
 .filter-main>.field {flex:1 1 170px;margin:0}
 .filter-main>.field:first-child {flex-basis:260px}
 .advanced-filters {flex-basis:100%;width:100%;margin-block-end:0}
 .advanced-filters .grid,.advanced-filters .filter-grid {margin:1rem}
 .filter-badge {font-size:.8rem;border-radius:30px;padding:.15rem .55rem;background:var(--c-primary);color:#fff;margin-inline-start:.5rem;font-weight:600}
 .quick-tabs {display:flex;flex-wrap:wrap;gap:.6rem;margin-block:1rem}
 .quick-tabs a {padding:.6rem .9rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:30px;text-decoration:none;font-size:.9rem;font-weight:600;display:flex;gap:.5rem;align-items:center;color:var(--c-text);transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}
 .quick-tabs a:hover {border-color:var(--c-primary);color:var(--c-primary)}
 .quick-tabs a[aria-current="page"] {color:#fff;background:var(--c-primary);border-color:var(--c-primary);box-shadow:var(--shadow-sm)}
 .quick-tabs .num {font-size:.8rem;background:#88888815;padding:.05rem .45rem;border-radius:20px}
 .shortcut-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:1rem;margin-block:1.4rem}
 .shortcut {display:flex;align-items:center;gap:.85rem;text-decoration:none;background:var(--c-surface);border:1px solid var(--c-border);padding:1rem;border-radius:14px;color:var(--c-text);font-weight:600;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),box-shadow .15s var(--ease),transform .15s var(--ease)}
 .shortcut:hover,.student-card:hover {border-color:var(--c-accent);box-shadow:var(--shadow-md)}
 .shortcut:hover {transform:translateY(-1px)}
 .feature-icon {display:inline-flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;border-radius:14px;background:var(--c-success-soft);color:var(--c-success)}
 .feature-icon--blue {background:var(--c-primary-soft);color:var(--c-primary)}
 .feature-icon--amber {background:var(--c-warning-soft);color:var(--c-warning)}
 .feature-icon--rose {background:var(--c-danger-soft);color:var(--c-danger)}
 .feature-icon--purple {background:var(--c-accent-soft);color:var(--c-accent)}
 .feature-icon .icon {width:25px;height:25px}
 .metric-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-block:1.3rem}
 .metric {display:flex;gap:.8rem;align-items:center;padding:1.25rem;border:1px solid var(--c-border);border-radius:14px;background:var(--c-surface);text-decoration:none;color:var(--c-text);min-width:0;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
 a.metric:hover {border-color:var(--c-accent);box-shadow:var(--shadow-md)}
 .metric strong {display:block;font-size:clamp(1.1rem,1.45vw,1.65rem);line-height:1.6;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;color:var(--c-primary-ink)}
 .metric span {font-size:.88rem}
 .metric small {display:block;color:var(--c-muted);font-size:.8rem}
 .section-heading {display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-block:1.5rem 1rem}
 .section-heading h2 {margin:0}
 .student-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:1rem}
 .student-card {border:1px solid var(--c-border);border-radius:15px;background:var(--c-surface);padding:1.2rem;min-width:0;box-shadow:var(--shadow-sm);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
 .student-card__head {display:flex;align-items:center;gap:.85rem;margin-block-end:1rem}
 .student-card__head h3 {font-size:1.02rem;margin:0;overflow-wrap:anywhere}
 .student-card__head a {text-decoration:none}
 .student-avatar {width:58px;height:68px;border-radius:13px;background:var(--c-bg);color:var(--c-primary);display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden;font-size:1.35rem;font-weight:600;border:1px solid var(--c-border)}
 .student-avatar img {width:100%;height:100%;object-fit:contain}
 .student-card__meta {color:var(--c-muted);font-size:.86rem;margin-block:.3rem 0}
 .student-card__foot {display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-block-start:1rem;padding-block-start:.85rem;border-block-start:1px solid var(--c-border)}
 .student-card__foot .btn:first-child {flex:1}
 .money-summary {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;padding:.9rem;background:var(--c-bg);border-radius:12px;border:1px solid var(--c-border)}
 .money-summary span {font-size:.84rem;color:var(--c-muted)}
 .money-summary strong {display:block;font-size:1rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
 .money-summary .wide {grid-column:1/-1}
 /* Financial/status pills: soft tinted fill, darker text, no border needed. */
 .status-badge {display:inline-flex;gap:.4rem;align-items:center;padding:.25rem .65rem;border-radius:24px;font-size:.83rem;font-weight:600;background:var(--c-bg);color:var(--c-muted)}
 .status-badge--overdue,.status-badge--unpaid {background:var(--c-danger-soft);color:var(--c-danger)}
 .status-badge--partial,.status-badge--due_today {background:var(--c-warning-soft);color:var(--c-warning)}
 .status-badge--settled,.status-badge--exempt {background:var(--c-success-soft);color:var(--c-success)}
 .progress-caption {display:flex;justify-content:space-between;font-size:.84rem;gap:.5rem;margin-block:.65rem .3rem}
 .fee-workspace {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:1.3rem;align-items:start}
 .fee-workspace .panel {margin:0}
 .choice-cards {display:flex;flex-wrap:wrap;gap:.8rem;margin-block:1rem}
 .choice-card {display:flex;align-items:center;gap:.65rem;border:1px solid var(--c-border);border-radius:12px;padding:.85rem 1rem;cursor:pointer;flex:1;min-width:160px;background:var(--c-surface);transition:border-color .15s var(--ease),background-color .15s var(--ease),box-shadow .15s var(--ease)}
 .choice-card:hover {border-color:var(--c-accent)}
 .choice-card:has(input:checked) {border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:inset 0 0 0 1px var(--c-primary)}
 .plan-preview {background:var(--c-bg);border:1px solid var(--c-border);padding:1rem;border-radius:12px;margin-block:1rem}
 .plan-preview output {font-size:1.25rem;font-weight:600;display:block;color:var(--c-primary-ink)}
 .review-list {list-style:none;padding:0;margin:0}
 .review-list li {display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-block-end:1px solid var(--c-border)}
 .review-list li:last-child {border:0}
 .profile-identity {padding:1.4rem;border-radius:14px;background:var(--c-bg);border:1px solid var(--c-border);margin-block-end:1rem}
 .profile-summary article {border-radius:12px;padding:1rem}
 .profile-summary strong {font-size:1.25rem;line-height:1.6}
 .report-toolbar {display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-block:1rem}
 .report-toolbar .btn {margin:0}
 .table-wrap {border:1px solid var(--c-border);border-radius:12px;overflow:auto;margin-block:.8rem;background:var(--c-surface);box-shadow:var(--shadow-sm)}
 table {font-size:.94rem;width:100%}
 th {font-size:.86rem;font-weight:600;background:var(--c-bg);padding:.9rem 1rem;white-space:normal;color:var(--c-muted)}
 td {padding:.85rem 1rem;vertical-align:middle}
 tbody tr:last-child td {border-block-end:0}
 tbody tr:hover {background:var(--c-primary-soft)}
 .tag {border-radius:25px;padding:.3rem .7rem;font-size:.82rem}
 .searchbar {background:var(--c-surface);border:1px solid var(--c-border);border-radius:16px;padding:1.4rem;margin-block:1rem 1.4rem;box-shadow:var(--shadow-sm)}
 /* Dashboard hero: a calm token-tinted glow behind the search field. Static,
    non-interactive, no imagery. */
 .searchbar--hero {background:radial-gradient(560px 220px at 85% -40%,var(--c-accent-soft),transparent 70%),radial-gradient(700px 260px at 8% -60%,var(--c-primary-soft),transparent 72%),var(--c-surface)}
 .year-switch {margin-block-end:.25rem;padding:.65rem .8rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;box-shadow:var(--shadow-sm)}
 .year-switch label {font-size:.86rem;color:var(--c-muted);font-weight:600}
 .year-switch select {width:auto;min-width:12ch;min-height:40px;padding:.4rem .6rem}
 .searchbar__field input {font-size:1.1rem;min-height:60px;padding-inline-start:1rem;background:var(--c-bg);border-radius:12px}
 .searchbar__hint {margin-block:.6rem 0}
 .results:empty {display:none}
 .result {border-radius:10px;margin-block:.3rem;min-height:64px}
 .login {background:var(--c-login-bg,#2d367b)}
 .login__card {border-block-start:5px solid var(--c-primary);border-radius:20px;box-shadow:var(--shadow-lg)}
 .credit {font-size:.85rem;padding:1.4rem}
 @media(min-width:901px){.sidebar {position:sticky;top:0;height:100dvh;overflow-y:auto}.topbar {position:sticky;top:0;z-index:12;box-shadow:var(--shadow-sm)}}
 @media(max-width:1150px){.metric-grid {grid-template-columns:repeat(2,minmax(0,1fr))}.fee-workspace {grid-template-columns:1fr}.content {padding:1.25rem}.topbar {padding:1rem 1.25rem}.topbar__account {gap:.4rem}}
 @media(max-width:900px){.shell {grid-template-columns:minmax(0,1fr)}.sidebar {position:fixed;inset-block:0;inset-inline-start:0;width:min(88vw,300px);z-index:40;overflow-y:auto;transform:translateX(-105%);transition:transform .18s var(--ease)}.school-workspace:dir(rtl) .sidebar {transform:translateX(105%)}.shell.is-open .sidebar {transform:translateX(0)}.menu-toggle,.drawer-close {display:inline-flex}.topbar {flex-wrap:wrap}.topbar__title {font-size:1.1rem}.topbar__tools {margin-inline-start:auto}.topbar__user {max-width:140px}.page-symbol {display:none}}
 @media(max-width:600px){.content {padding:1rem .75rem}.panel {padding:1rem}.metric-grid {gap:.65rem}.metric {padding:.85rem;display:block}.metric .feature-icon {margin-block-end:.5rem;width:37px;height:37px}.metric strong {font-size:1.05rem}.shortcut-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.shortcut {padding:.8rem;display:block;font-size:.88rem}.shortcut .feature-icon {margin-block-end:.5rem}.filter-main>.field {flex-basis:100%}.quick-tabs {gap:.4rem}.quick-tabs a {font-size:.85rem;padding:.5rem .7rem}.topbar__tools {width:100%;justify-content:space-between}.topbar__title {flex:1}.searchbar {padding:1rem}.searchbar__field input {font-size:1rem}.profile-identity {padding:1rem}.form-actions>.btn {flex:1}.responsive-records thead {display:none}.responsive-records tr {display:block;border-block-end:1px solid var(--c-border);padding:.65rem}.responsive-records td {display:flex;gap:.75rem;justify-content:space-between;align-items:start;border:0;padding:.4rem}.responsive-records td::before {content:attr(data-label);font-size:.84rem;color:var(--c-muted);min-width:35%;text-align:start}.responsive-records td[colspan] {display:block}.responsive-records td[colspan]::before {content:none}.choice-card {min-width:100%}}
 @media(prefers-reduced-motion:reduce){* {scroll-behavior:auto!important;transition:none!important;animation:none!important}}
}
