:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--sg-green:#39d353;--sg-green-bright:#a8e10c;--sg-cyan:#00d4ff;--sg-blue:#1a7fff;--sg-violet:#7e14ff;--sg-purple:#6d5cff;--sg-gradient:linear-gradient(135deg, var(--sg-green) 0%, var(--sg-cyan) 48%, var(--sg-violet) 100%);--sg-gradient-horizontal:linear-gradient(90deg, var(--sg-green) 0%, var(--sg-cyan) 42%, var(--sg-violet) 100%);--shell-header-height:4rem;--shell-sidebar-width:15.5rem;--shell-sidebar-collapsed-width:4.25rem;--shell-bottom-height:4.25rem;--bg-image:url(/Day_BG.jpg);--bg-overlay:linear-gradient(180deg, #ffffff8c 0%, #f8fcff73 50%, #ffffff80 100%);--surface:#ffffffeb;--surface-elevated:#fffffff7;--surface-muted:#f0f8ffc7;--surface-border:#1a7fff29;--surface-shadow:0 4px 24px #0f285014;--surface-blur:blur(12px);--card-bg:var(--surface);--card-border:#1a7fff24;--text-primary:#0c1a2e;--text-secondary:#4a6278;--text-muted:#6b8299;--text-inverse:#fff;--accent:var(--sg-blue);--accent-metric:var(--sg-blue);--accent-green:var(--sg-green);--accent-muted:#39d3531f;--accent-glow:none;--focus-ring:0 0 0 3px #39d35347;--header-bg:#fffffff0;--header-border:#1a7fff1f;--header-shadow:0 2px 16px #0f285014;--header-text:var(--text-primary);--sidebar-bg:#ffffffe6;--sidebar-border:#1a7fff1a;--sidebar-hover:#00d4ff14;--sidebar-active-bg:#39d3531f;--sidebar-active-text:var(--text-primary);--bottombar-bg:#fffffff5;--bottombar-border:#1a7fff1f;--bottombar-active:var(--sg-green);--bottombar-shadow:0 -2px 16px #0f28500f;--input-bg:#fffffffa;--input-border:#1a7fff33;--input-focus-border:var(--sg-cyan);--btn-primary-bg:var(--tenant-primary,var(--accent-green));--btn-primary-text:var(--text-inverse);--danger:#dc2626;--warning:#d97706;--warning-text:#92400e;--success-bg:#39d3531f;--success-border:#39d35359;--status-present:var(--tenant-primary,var(--accent-green));--status-absent:var(--danger);--status-late:var(--warning);--status-late-text:var(--warning-text);--status-excused:var(--tenant-secondary,var(--accent));--status-pending:var(--text-secondary);--chart-present:var(--tenant-primary,var(--sg-green));--chart-absent:var(--danger);--chart-late:#f59e0b;--chart-excused:var(--tenant-secondary,var(--sg-blue));--chart-pending:#94a3b8;--chart-bar:var(--tenant-secondary,var(--sg-blue));--chart-line:var(--tenant-primary,var(--sg-green));--chart-fallback:#64748b;--code-bg:#0c1a2eeb;--code-text:#e8f4ff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-image:url(/Night_BG.jpg);--bg-overlay:linear-gradient(180deg, #060a1c73 0%, #080e2485 50%, #04081694 100%);--surface:#0c1430d1;--surface-elevated:#101a3ae6;--surface-muted:#0a1026b8;--surface-border:#00d4ff2e;--surface-shadow:0 6px 32px #0006;--surface-blur:blur(14px);--card-bg:var(--surface);--card-border:#39d35333;--text-primary:#eef6ff;--text-secondary:#a8bdd4;--text-muted:#7a92ad;--accent:var(--sg-cyan);--accent-metric:var(--sg-cyan);--accent-green:var(--sg-green-bright);--accent-muted:#00d4ff1f;--accent-glow:0 0 18px #39d3534d;--focus-ring:0 0 0 3px #00d4ff52;--header-bg:#0a1026eb;--header-border:#39d35329;--header-shadow:0 2px 20px #00000059;--header-text:var(--text-primary);--sidebar-bg:#080e22eb;--sidebar-border:#00d4ff1f;--sidebar-hover:#00d4ff1a;--sidebar-active-bg:#39d35324;--sidebar-active-text:var(--text-primary);--bottombar-bg:#0a1026f5;--bottombar-border:#39d35329;--bottombar-active:var(--sg-green-bright);--bottombar-shadow:0 -2px 20px #00000059;--input-bg:#080e22e6;--input-border:#00d4ff38;--input-focus-border:var(--sg-green-bright);--btn-primary-bg:var(--tenant-primary,var(--accent-green));--btn-primary-text:var(--text-inverse);--warning:#fbbf24;--warning-text:#fde68a;--success-bg:#39d35324;--success-border:#a8e00c66;--status-late-text:var(--warning-text);--chart-late:#fbbf24;--code-bg:#040814f2;--code-text:#d4ecff}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-image:url(/Night_BG.jpg);--bg-overlay:linear-gradient(180deg, #060a1c73 0%, #080e2485 50%, #04081694 100%);--surface:#0c1430d1;--surface-elevated:#101a3ae6;--surface-muted:#0a1026b8;--surface-border:#00d4ff2e;--surface-shadow:0 6px 32px #0006;--surface-blur:blur(14px);--card-bg:var(--surface);--card-border:#39d35333;--text-primary:#eef6ff;--text-secondary:#a8bdd4;--text-muted:#7a92ad;--accent:var(--sg-cyan);--accent-metric:var(--sg-cyan);--accent-green:var(--sg-green-bright);--accent-muted:#00d4ff1f;--accent-glow:0 0 18px #39d3534d;--focus-ring:0 0 0 3px #00d4ff52;--header-bg:#0a1026eb;--header-border:#39d35329;--header-shadow:0 2px 20px #00000059;--header-text:var(--text-primary);--sidebar-bg:#080e22eb;--sidebar-border:#00d4ff1f;--sidebar-hover:#00d4ff1a;--sidebar-active-bg:#39d35324;--sidebar-active-text:var(--text-primary);--bottombar-bg:#0a1026f5;--bottombar-border:#39d35329;--bottombar-active:var(--sg-green-bright);--bottombar-shadow:0 -2px 20px #00000059;--input-bg:#080e22e6;--input-border:#00d4ff38;--input-focus-border:var(--sg-green-bright);--btn-primary-bg:var(--tenant-primary,var(--accent-green));--btn-primary-text:var(--text-inverse);--warning:#fbbf24;--warning-text:#fde68a;--success-bg:#39d35324;--success-border:#a8e00c66;--status-late-text:var(--warning-text);--chart-late:#fbbf24;--code-bg:#040814f2;--code-text:#d4ecff}:root{--tenant-primary:var(--sg-green);--tenant-secondary:var(--sg-blue);--tenant-tertiary:var(--sg-violet)}[data-tenant-branded=true]{--accent-green:var(--tenant-primary);--accent:var(--tenant-secondary);--accent-metric:var(--tenant-secondary);--status-present:var(--tenant-primary);--status-excused:var(--tenant-secondary);--chart-present:var(--tenant-primary);--chart-excused:var(--tenant-secondary);--chart-bar:var(--tenant-secondary);--chart-line:var(--tenant-primary);--accent-muted:color-mix(in srgb, var(--tenant-primary) 14%, transparent);--sidebar-active-bg:color-mix(in srgb, var(--tenant-primary) 14%, transparent);--sidebar-hover:color-mix(in srgb, var(--tenant-secondary) 10%, transparent);--bottombar-active:var(--tenant-primary);--input-focus-border:var(--tenant-secondary);--btn-primary-bg:var(--tenant-primary);--surface-border:color-mix(in srgb, var(--tenant-secondary) 18%, transparent);--card-border:color-mix(in srgb, var(--tenant-primary) 22%, transparent);--card-bg:color-mix(in srgb, var(--surface) 88%, var(--tenant-primary) 12%);--text-primary:color-mix(in srgb, var(--tenant-secondary) 18%, var(--text-primary));--text-secondary:color-mix(in srgb, var(--tenant-tertiary) 12%, var(--text-secondary));--focus-ring:0 0 0 3px color-mix(in srgb, var(--tenant-primary) 30%, transparent)}[data-tenant-branded=true] .panel h2,[data-tenant-branded=true] .page-intro h2,[data-tenant-branded=true] h3{color:color-mix(in srgb, var(--tenant-secondary) 55%, var(--text-primary))}[data-tenant-branded=true] .metric-card__value{color:var(--tenant-primary)}[data-tenant-branded=true] .button-link{color:var(--tenant-secondary)}[data-tenant-branded=true] .button-secondary{border-color:color-mix(in srgb, var(--tenant-secondary) 35%, transparent);color:color-mix(in srgb, var(--tenant-secondary) 70%, var(--text-primary))}[data-tenant-branded=true] .button-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--tenant-secondary) 10%, transparent);border-color:var(--tenant-secondary)}:root{--sans:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--heading:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace;font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html{min-height:100%}body{color:var(--text-primary);min-height:100svh;margin:0;position:relative}body:before{background-attachment:fixed;background-image:var(--bg-image);content:"";z-index:-2;background-position:50%;background-size:cover;position:fixed;inset:0}body:after{background:var(--bg-overlay);content:"";z-index:-1;position:fixed;inset:0}#root{text-align:left;width:100%;max-width:100%;min-height:100svh;margin:0}h1,h2,h3{color:var(--text-primary);font-family:var(--heading);letter-spacing:-.02em;font-weight:600}h1{margin:0 0 .75rem;font-size:1.75rem}h2{margin:0 0 .65rem;font-size:1.15rem;line-height:1.25}p{margin:0}code{background:var(--code-bg);color:var(--code-text);font-family:var(--mono);border-radius:6px;padding:.15rem .4rem;font-size:.88em}select{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-primary);font:inherit;border-radius:10px;padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s}select:focus-visible{border-color:var(--input-focus-border);box-shadow:var(--focus-ring);outline:none}@media print{body:before,body:after{display:none}body{background:#fff}}.student-page{max-width:1100px}.student-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.student-toolbar h2{margin:0}.student-toolbar__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.student-search{min-width:14rem}.student-table-wrap{overflow-x:auto}.student-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.88rem}.student-table th,.student-table td{border-bottom:1px solid var(--surface-border);text-align:left;vertical-align:middle;padding:.65rem .5rem}.student-table th{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.student-table tr.is-inactive td{color:var(--text-muted)}.student-table__number{color:var(--accent);font-family:ui-monospace,Consolas,monospace;font-size:.82rem;font-weight:700}.student-table__actions{flex-wrap:wrap;gap:.35rem;display:flex}.student-form-dialog{width:100%;max-width:720px;max-height:90vh;margin:0;overflow-y:auto}.student-form-section{border-top:1px solid var(--surface-border);margin-top:1rem;padding-top:1rem}.student-form-section:first-of-type{border-top:0;margin-top:0;padding-top:0}.student-form-section h3{margin:0 0 .75rem;font-size:.88rem}.student-form-grid{gap:.85rem;display:grid}@media (width>=640px){.student-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-form-grid--full{grid-column:1/-1}}.student-photo-placeholder{background:var(--surface-muted);border:1px dashed var(--surface-border);color:var(--text-muted);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:88px;padding:.75rem;font-size:.82rem;display:flex}.curriculum-subject-list{gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.curriculum-subject-item{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;display:flex}.curriculum-subject-item__name{color:var(--text-primary);font-weight:600}.curriculum-subject-item__meta{color:var(--text-muted);font-size:.78rem}.curriculum-stem-badge{background:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 14%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--tenant-secondary,var(--accent)) 28%, var(--surface-border));color:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 72%, var(--text-primary));letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.12rem .45rem;font-size:.68rem;font-weight:700}.curriculum-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.curriculum-reference-panel{background:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 6%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 18%, var(--surface-border));border-radius:10px;margin-top:.75rem;padding:.75rem}.curriculum-reference-panel h4{color:var(--text-primary);margin:0 0 .35rem;font-size:.85rem}.curriculum-reference-panel p{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.5}.attendance-form .form-grid__full{grid-column:1/-1}.attendance-session-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.attendance-session-badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:.25rem .65rem;font-size:.72rem;font-weight:700}.attendance-session-badge--scheduled{background:color-mix(in srgb, var(--accent) 16%, var(--surface-muted));color:var(--accent)}.attendance-session-badge--active,.attendance-session-badge--open{background:color-mix(in srgb, var(--accent-green) 18%, var(--surface-muted));color:var(--accent-green)}.attendance-session-badge--ended{background:color-mix(in srgb, var(--text-muted) 18%, var(--surface-muted));color:var(--text-secondary)}.attendance-session-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.attendance-session-card{border:1px solid var(--surface-border);color:inherit;border-left-width:4px;border-radius:10px;gap:.35rem;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}.attendance-session-card--scheduled{background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-left-color:var(--accent)}.attendance-session-card--active,.attendance-session-card--open{background:color-mix(in srgb, var(--accent-green) 7%, var(--surface));border-left-color:var(--accent-green)}.attendance-session-card--ended{background:color-mix(in srgb, var(--text-muted) 8%, var(--surface));border-left-color:var(--text-muted);opacity:.92}.attendance-session-card:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--surface-border));box-shadow:var(--surface-shadow)}.attendance-session-card--scheduled:hover{border-left-color:var(--accent)}.attendance-session-card--active:hover,.attendance-session-card--open:hover{border-left-color:var(--accent-green)}.attendance-session-card--ended:hover{border-left-color:var(--text-muted)}.attendance-session-card__header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.attendance-session-card__header strong{min-width:0}.attendance-session-card__meta{color:var(--text-secondary);margin:0;font-size:.85rem}.attendance-session-card__stats{color:var(--text-muted);margin:0;font-size:.8rem}.attendance-teacher-checkin__manual{grid-template-columns:1fr auto;align-items:end;gap:.75rem;margin-top:.75rem;display:grid}@media (width<=720px){.attendance-teacher-checkin__manual{grid-template-columns:1fr}}.attendance-roster{gap:.65rem;display:grid}.attendance-roster__row{border:1px solid var(--surface-border);border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.65rem .75rem;display:grid}.attendance-roster__row.is-present,.attendance-roster__row.is-late{border-color:color-mix(in srgb, var(--accent-green) 35%, var(--surface-border))}.attendance-roster__row.is-absent{border-color:color-mix(in srgb, var(--danger) 25%, var(--surface-border))}.attendance-roster__row.is-pending{border-color:color-mix(in srgb, var(--text-muted) 25%, var(--surface-border))}.attendance-roster__student{align-items:center;gap:.65rem;min-width:0;display:flex}.attendance-roster__photo{background:var(--surface-muted);color:var(--text-secondary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-weight:700;display:flex;overflow:hidden}.attendance-roster__photo img{object-fit:cover;width:100%;height:100%}.attendance-roster__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}@media (width<=720px){.attendance-roster__row{grid-template-columns:1fr}.attendance-roster__actions{justify-content:flex-start}}.qr-scanner__toolbar{margin-bottom:.75rem}.qr-scanner__viewport{border:1px dashed var(--surface-border);border-radius:10px;max-width:320px;min-height:0;display:none;overflow:hidden}.qr-scanner__viewport.is-active{display:block}.qr-scanner__error{color:var(--danger);margin:0 0 .5rem;font-size:.85rem}.support-conversation__header{border-bottom:1px solid var(--surface-border);margin-bottom:.85rem;padding-bottom:.75rem}.support-conversation__subject{color:var(--text-primary);margin:0 0 .45rem;font-size:1rem;font-weight:700}.support-conversation__participants{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.35rem;display:flex}.support-conversation__divider{color:var(--text-muted);font-size:.9rem;font-weight:700}.support-participant{letter-spacing:.02em;border-radius:999px;padding:.2rem .55rem;font-size:.74rem;font-weight:700}.support-participant--tenant{background:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 14%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 28%, var(--surface-border));color:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 72%, var(--text-primary))}.support-participant--staff{background:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 14%, var(--surface-muted));border:1px solid color-mix(in srgb, var(--tenant-secondary,var(--accent)) 28%, var(--surface-border));color:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 72%, var(--text-primary))}.support-conversation__meta{color:var(--text-muted);margin:0;font-size:.78rem}.support-thread{gap:.65rem;display:grid}.support-thread__message{border:1px solid var(--surface-border);border-radius:10px;padding:.65rem .85rem}.support-thread__message.is-tenant{background:var(--surface-muted);color:var(--text-primary)}.support-thread__message.is-staff{background:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 14%, var(--surface-muted));border-color:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 35%, var(--surface-border));border-left:3px solid var(--tenant-secondary,var(--accent));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--danger) 35%, transparent);color:var(--text-primary);padding-left:calc(.85rem - 1px)}.support-thread__message-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .65rem;margin-bottom:.35rem;display:flex}.support-thread__author{align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;display:inline-flex}.support-thread__staff-dot{background:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 20%, transparent);border-radius:50%;flex-shrink:0;width:.45rem;height:.45rem}.support-thread__author.is-tenant{color:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 70%, var(--text-primary))}.support-thread__author.is-staff{color:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 70%, var(--text-primary))}.support-thread__message time{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.support-thread__body{white-space:pre-wrap;margin:0;line-height:1.5}.support-ticket-cards{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.support-ticket-card{background:var(--surface-muted);border:1px solid var(--surface-border);cursor:pointer;text-align:left;border-radius:12px;gap:.35rem;width:100%;padding:.75rem .85rem;display:grid}.support-ticket-card:hover,.support-ticket-card.is-selected{border-color:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 35%, var(--surface-border));box-shadow:var(--surface-shadow)}.support-ticket-card__header{justify-content:space-between;align-items:flex-start;gap:.65rem;display:flex}.support-ticket-card__header strong{font-size:.92rem}.support-ticket-card__status{text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.15rem .5rem;font-size:.68rem;font-weight:700}.support-ticket-card__status--open{background:color-mix(in srgb, var(--status-present) 16%, var(--surface-muted));color:var(--status-present)}.support-ticket-card__status--in-progress{background:color-mix(in srgb, var(--status-late) 16%, var(--surface-muted));color:var(--status-late-text)}.support-ticket-card__status--resolved,.support-ticket-card__status--closed{background:color-mix(in srgb, var(--text-muted) 16%, var(--surface-muted));color:var(--text-secondary)}.support-ticket-card__meta{margin:0;font-size:.78rem}.photo-capture{gap:.75rem;display:grid}.photo-capture__label{color:var(--text-muted);margin:0;font-size:.9rem}.photo-capture__stage{gap:.45rem;display:grid}.photo-capture__preview{aspect-ratio:3/4;border:1px dashed var(--border-subtle);background:var(--surface-elevated);border-radius:14px;width:min(100%,280px);position:relative;overflow:hidden}.photo-capture--logo .photo-capture__preview{aspect-ratio:1;width:min(100%,200px)}.photo-capture__preview--live{border-color:var(--accent-green);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-green) 35%, transparent)}.photo-capture__video{object-fit:cover;opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.photo-capture__video.is-active{opacity:1;z-index:2}.photo-capture__video.is-mirrored{transform:scaleX(-1)}.photo-capture__captured{object-fit:cover;z-index:3;width:100%;height:100%;position:absolute;inset:0}.photo-capture__placeholder{text-align:center;color:var(--text-muted);z-index:1;place-items:center;padding:1rem;font-size:.85rem;display:grid;position:absolute;inset:0}.photo-capture__guide{pointer-events:none;z-index:4;place-items:center;display:grid;position:absolute;inset:0}.photo-capture__guide span{border:2px solid color-mix(in srgb, var(--accent-blue) 75%, white);border-radius:50% 50% 42% 42%;width:62%;height:72%;box-shadow:0 0 0 999px #00000047}.photo-capture__hint{color:var(--text-muted);margin:0;font-size:.82rem}.photo-capture__actions{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=640px){.photo-capture__preview{width:100%;max-width:320px}}.reset-client-page .reset-warning{border-color:#dc262659}.reset-warning__list{color:var(--text-secondary);margin:0 0 .75rem;padding-left:1.25rem;line-height:1.6}.reset-layout{gap:1.25rem;display:grid}@media (width>=900px){.reset-layout{grid-template-columns:1fr 1fr}}.reset-detail{margin-bottom:1rem}.reset-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;margin:0 0 1.25rem;display:grid}.reset-counts dt{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.reset-counts dd{margin:.1rem 0 0;font-size:1.15rem;font-weight:700}.button-danger{box-shadow:none;color:#fff;cursor:pointer;font:inherit;background:#dc2626;border:0;border-radius:10px;padding:.65rem 1rem;font-weight:600}.button-danger:hover:not(:disabled){filter:brightness(1.06)}.button-danger:disabled{cursor:not-allowed;opacity:.55}.reset-result{background:var(--success-bg);border:1px solid var(--success-border);border-radius:12px;margin-top:1rem;padding:1rem}.reset-result h3{margin:0 0 .5rem;font-size:.95rem}.reset-result p{margin:0;font-size:.88rem;line-height:1.5}.reset-dialog-backdrop{z-index:100;background:#040814b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.reset-dialog{width:100%;max-width:480px;margin:0}.reset-dialog h2{color:var(--danger);margin:0 0 .75rem}.reset-dialog__warning{color:var(--text-secondary);margin:0 0 1rem;line-height:1.55}.reset-dialog__confirm{align-items:flex-start;gap:.6rem;margin-bottom:1rem;font-size:.9rem;line-height:1.45;display:flex}.reset-dialog__confirm input{flex-shrink:0;width:auto;margin-top:.2rem}.reset-dialog__actions{justify-content:flex-end;margin-top:.5rem}.tenant-page{max-width:1100px}.tenant-layout{gap:1.25rem;display:grid}@media (width>=900px){.tenant-layout{grid-template-columns:1fr 1fr}}.tenant-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.tenant-list__item{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:12px;padding:.85rem 1rem;transition:border-color .15s,box-shadow .15s}.tenant-list__item--selected{border-color:var(--accent-green);box-shadow:var(--accent-glow), 0 0 0 1px var(--accent-green)}.tenant-list__item button{box-shadow:none;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;width:100%;padding:0}.tenant-list__meta{color:var(--text-muted);flex-wrap:wrap;gap:.5rem 1rem;margin-top:.35rem;font-size:.82rem;display:flex}.tenant-list__code{color:var(--accent);font-family:ui-monospace,Consolas,monospace;font-weight:700}.logo-placeholder{background:var(--surface-muted);border:1px dashed var(--surface-border);color:var(--text-muted);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:96px;padding:1rem;font-size:.85rem;display:flex}.logo-placeholder input[type=file]{display:none}.logo-preview{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:12px;align-items:center;gap:1rem;min-height:72px;padding:.75rem;display:flex}.logo-preview img{object-fit:contain;border-radius:8px;width:48px;height:48px}.demo-result{background:var(--success-bg);border:1px solid var(--success-border);box-shadow:var(--accent-glow);border-radius:12px;margin-top:1rem;padding:1rem}.demo-result h3{margin:0 0 .5rem;font-size:.95rem}.demo-result p{margin:.25rem 0;font-size:.88rem;line-height:1.5}.tenant-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.5rem;display:grid}.tenant-detail-grid dt{color:var(--text-muted);text-transform:uppercase;font-size:.78rem;font-weight:600}.tenant-detail-grid dd{margin:0 0 .75rem;font-size:.92rem}.tenant-detail-grid--inline{grid-column:1/-1}.tenant-edit-panel__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.tenant-edit-panel__header h2{margin:0}.tenant-code-badge{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.tenant-code-badge code{color:var(--accent);font-family:ui-monospace,Consolas,monospace;font-size:.95rem;font-weight:700}@media (width>=720px){.tenant-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.button-compact{padding:.45rem .75rem;font-size:.82rem}.checkbox-label{flex-direction:row;align-items:center;gap:.5rem;display:flex}.checkbox-label input{width:auto;margin:0}.tenant-users__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.tenant-users__header h2{margin:0}.tenant-users-table-wrap{overflow-x:auto}.tenant-users-table{border-collapse:collapse;width:100%;min-width:100%;font-size:.88rem}.tenant-users-table th,.tenant-users-table td{border-bottom:1px solid var(--surface-border);text-align:left;vertical-align:middle;padding:.65rem .5rem}.tenant-users-table th{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.tenant-users-table tr.is-inactive td{color:var(--text-muted)}.tenant-users-table__username{font-family:ui-monospace,Consolas,monospace;font-size:.82rem}.tenant-users-table__actions{flex-wrap:wrap;gap:.35rem;display:flex}.tenant-dialog-backdrop{z-index:100;background:#040814b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.tenant-dialog{width:100%;max-width:480px;margin:0}.tenant-dialog h2{margin:0 0 .75rem}.tenant-dialog__warning{color:var(--text-secondary);margin:0 0 1rem;line-height:1.55}.tenant-dialog__actions{justify-content:flex-end;margin-top:.5rem}.password-requirements{color:var(--text-muted);margin:0;padding:0;font-size:.82rem;line-height:1.5;list-style:none}.password-requirements li{padding-left:1.25rem;position:relative}.password-requirements li:before{content:"○";position:absolute;left:0}.password-requirements li.is-met{color:var(--accent-green,#16a34a)}.password-requirements li.is-met:before{content:"●"}.id-card-preview{--card-primary:#39d353;--card-secondary:#1a7fff;--card-tertiary:#e8f8ff;--card-text:#0c1a2e;--card-text-muted:#4a6278;background:color-mix(in srgb, var(--card-tertiary) 18%, #fff);border:1px solid color-mix(in srgb, var(--card-primary) 25%, #94a3b8);border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}.id-card-preview.portrait{width:54mm;height:86mm}.id-card-preview.landscape{width:86mm;height:54mm}.id-card-preview__header{background:var(--card-primary);color:#fff;padding:.3rem .45rem}.id-card-preview__brand{align-items:center;gap:.35rem;min-width:0;display:flex}.id-card-preview__logo{background:#ffffffeb;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:6mm;height:6mm;display:flex;overflow:hidden}.id-card-preview__logo img{object-fit:contain;width:100%;height:100%}.id-card-preview__logo span{color:var(--card-primary);font-size:.6rem;font-weight:800}.id-card-preview__type{letter-spacing:.06em;opacity:.9;text-transform:uppercase;font-size:.5rem;font-weight:600}.id-card-preview__body{flex-direction:column;flex:1;justify-content:center;min-height:0;padding:.35rem .45rem .2rem;display:flex}.id-card-preview__main{align-items:flex-start;gap:.35rem;min-width:0;display:flex}.id-card-preview__photo{background:color-mix(in srgb, var(--card-tertiary) 60%, #fff);border:1px solid color-mix(in srgb, var(--card-secondary) 20%, #cbd5e1);color:var(--card-primary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:13mm;height:16mm;font-size:1.1rem;font-weight:700;display:flex;overflow:hidden}.id-card-preview.landscape .id-card-preview__photo{width:14mm;height:18mm}.id-card-preview__photo img{object-fit:cover;width:100%;height:100%}.id-card-preview__details{text-align:left;flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.id-card-preview__name{color:var(--card-primary);margin:0;font-size:.68rem;line-height:1.2}.id-card-preview.landscape .id-card-preview__name{font-size:.72rem}.id-card-preview__school{color:color-mix(in srgb, var(--card-primary) 45%, var(--card-text));letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:.5rem;font-weight:700;line-height:1.25}.id-card-preview__fields{gap:.1rem;margin:.1rem 0 0;display:grid}.id-card-preview__field{grid-template-columns:auto 1fr;align-items:baseline;gap:.2rem;display:grid}.id-card-preview__field dt{color:var(--card-text-muted);text-transform:uppercase;margin:0;font-size:.46rem;font-weight:600}.id-card-preview__field dd{color:var(--card-text);margin:0;font-size:.5rem;font-weight:600;line-height:1.25}.id-card-preview__address{color:var(--card-text-muted);margin:.12rem 0 0;font-size:.44rem;line-height:1.3}.id-card-preview__qr{border-top:1px solid color-mix(in srgb, var(--card-secondary) 18%, #cbd5e1);background:#fff;flex-shrink:0;justify-content:center;align-items:center;padding:.3rem .45rem .35rem;display:flex}.id-card-preview__qr svg{max-width:100%;height:auto;display:block}.id-card-preview__footer{background:color-mix(in srgb, var(--card-tertiary) 25%, #f8fafc);border-top:1px solid color-mix(in srgb, var(--card-secondary) 20%, #cbd5e1);text-align:center;padding:.15rem .45rem}.id-card-preview__card-number{color:var(--card-text-muted);margin:0;font-family:ui-monospace,Consolas,monospace;font-size:.44rem}.id-card-preview.compact{box-shadow:none}.designer-page .status{margin-top:.75rem}.designer-layout{gap:1.25rem;margin-bottom:1.25rem;display:grid}@media (width>=960px){.designer-layout{grid-template-columns:1fr 1fr;align-items:start}}.preview-stage{background:var(--surface-muted);border:1px dashed var(--surface-border);border-radius:14px;justify-content:center;align-items:center;min-height:320px;padding:1.5rem;display:flex}.issued-card-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.issued-card-list label{align-items:center;gap:.6rem;font-weight:500;display:flex}.designer-page .student-table tr.is-selected{background:color-mix(in srgb, var(--accent) 8%, transparent)}.notification-bell{position:relative}.notification-bell__button{background:var(--surface-muted);border:1px solid var(--surface-border);color:var(--text-primary);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1rem;transition:box-shadow .2s,transform .2s;display:inline-flex;position:relative}.notification-bell__button.has-unread{border-color:color-mix(in srgb, var(--danger) 35%, var(--surface-border))}.notification-bell__button.has-new-alert{animation:1.2s ease-in-out 2 notification-bell-pulse}@keyframes notification-bell-pulse{0%,to{transform:scale(1);box-shadow:0 0 #0000}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--danger) 28%, transparent);transform:scale(1.05)}}.notification-bell__badge{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.62rem;font-weight:700;display:inline-flex;position:absolute;top:-.15rem;right:-.15rem}.notification-bell__panel{-webkit-backdrop-filter:var(--surface-blur);background:var(--surface-elevated);border:1px solid var(--surface-border);box-shadow:var(--surface-shadow);z-index:40;border-radius:12px;width:min(20rem,90vw);max-height:22rem;position:absolute;top:calc(100% + .45rem);right:0;overflow:auto}.notification-bell__header{border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .85rem;display:flex}.notification-bell__header strong{flex-wrap:wrap;align-items:center;gap:.35rem;display:inline-flex}.notification-bell__unread-label{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.notification-bell__empty{margin:0;padding:.85rem}.notification-bell__list{margin:0;padding:0;list-style:none}.notification-bell__list li{border-bottom:1px solid var(--surface-border);cursor:default;padding:.7rem .85rem}.notification-bell__list li.is-unread{background:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 14%, transparent);border-left:3px solid var(--tenant-primary,var(--accent-green));padding-left:calc(.85rem - 3px)}.notification-bell__list li.is-clickable{cursor:pointer}.notification-bell__list li.is-clickable:hover{background:color-mix(in srgb, var(--tenant-primary,var(--accent-green)) 18%, transparent)}.notification-bell__item-head{align-items:center;gap:.45rem;display:flex}.notification-bell__dot{background:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 20%, transparent);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem}.notification-bell__list strong{font-size:.86rem;display:block}.notification-bell__list li.is-unread strong{font-weight:700}.notification-bell__list p{margin:.25rem 0 .2rem;font-size:.8rem;line-height:1.4}.notification-bell__list li.is-unread p{color:var(--text-primary)}.notification-bell__list time{color:var(--text-muted);font-size:.72rem}.sync-status{background:var(--surface-muted);border:1px solid var(--surface-border);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;padding:0;display:inline-flex}.sync-status__icon{display:block}.sync-status--online{color:#2e7d32}.sync-status--syncing{color:#ef6c00}.sync-status--syncing .sync-status__icon{animation:1.1s linear infinite sync-status-spin}.sync-status--offline{color:#c62828}@keyframes sync-status-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-header{-webkit-backdrop-filter:var(--surface-blur);background:var(--header-bg);border-bottom:1px solid var(--header-border);box-shadow:var(--header-shadow);color:var(--header-text);height:var(--shell-header-height);z-index:50;position:fixed;top:0;left:0;right:0}.app-header__inner{align-items:center;gap:1rem;width:100%;max-width:1440px;height:100%;margin:0 auto;padding:0 1rem;display:flex}.app-header__start{flex-shrink:0;align-items:center;gap:.35rem;min-width:0;display:flex}.app-header__sidebar-toggle{background:var(--surface-muted);border:1px solid var(--surface-border);box-shadow:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;font-size:1rem;font-weight:700;line-height:1;display:none}.app-header__sidebar-toggle:hover{background:var(--sidebar-hover);color:var(--text-primary)}.app-brand{flex-shrink:0;align-items:center;gap:.5rem;min-width:0;display:flex}.app-brand__logo{box-shadow:var(--accent-glow);object-fit:contain;background:#ffffffeb;border-radius:14px;flex-shrink:0;width:4rem;height:4rem;padding:.2rem}.app-brand--compact .app-brand__logo{object-fit:contain;width:3.25rem;height:3.25rem;padding:.15rem}.app-brand__text{gap:.1rem;min-width:0;display:grid}.app-brand__text strong{color:var(--header-text);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.2;overflow:hidden}.app-brand__text span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.app-brand--compact .app-brand__text span{display:none}.app-header__context{flex:1;min-width:0;padding:0 .5rem;display:none}.app-header__title{color:var(--header-text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.1rem;font-weight:700;line-height:1.2;overflow:hidden}.app-header__subtitle{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin:.1rem 0 0;font-size:.78rem;line-height:1.3;overflow:hidden}.app-header__actions{flex-shrink:0;align-items:center;gap:.65rem;margin-left:auto;display:flex}.theme-switch{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:999px;flex-shrink:0;gap:.15rem;padding:.2rem;display:inline-flex}.theme-switch__btn{box-shadow:none;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.72rem;font-weight:700;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.theme-switch__btn.is-active{background:var(--btn-primary-bg);box-shadow:var(--accent-glow);color:#fff}.app-profile{position:relative}.app-profile__button{box-shadow:none;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:0;align-items:center;gap:.55rem;width:100%;padding:.65rem .85rem;display:flex}.app-profile__avatar{background:var(--btn-primary-bg);box-shadow:var(--accent-glow);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.15rem;height:2.15rem;font-size:.7rem;font-weight:800;display:inline-flex}.app-profile__meta{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.app-profile__name{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;overflow:hidden}.app-profile__role{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.app-profile__menu-icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:inline-flex}.app-profile__menu{-webkit-backdrop-filter:var(--surface-blur);background:var(--surface-elevated);border:1px solid var(--surface-border);box-shadow:var(--surface-shadow);z-index:60;border-radius:14px;gap:.15rem;min-width:12rem;padding:.45rem;display:grid;position:absolute;top:calc(100% + .25rem);left:.85rem}.app-profile__menu-header{border-bottom:1px solid var(--surface-border);gap:.15rem;margin-bottom:.2rem;padding:.55rem .65rem .7rem;display:grid}.app-profile__menu-header span{color:var(--text-muted);font-size:.78rem}.app-profile__menu-item{box-shadow:none;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;padding:.55rem .65rem;font-size:.88rem;font-weight:600;text-decoration:none}.app-profile__menu-item:hover{background:var(--surface-muted)}.app-profile__menu-item--danger{color:var(--danger)}.app-profile--mobile{-webkit-backdrop-filter:var(--surface-blur);background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);left:0;right:0;top:var(--shell-header-height);z-index:35;position:fixed}.app-profile--mobile .app-profile__button{max-width:100%}.app-shell-layout{--shell-profile-height:3.45rem;color:var(--text-primary);min-height:100svh;padding-bottom:var(--shell-bottom-height);padding-top:calc(var(--shell-header-height) + var(--shell-profile-height));width:100%}.app-shell__main{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;width:100%;max-width:1100px;margin:0 auto;padding:1rem}.app-sidebar{display:none}.app-sidebar__profile{-webkit-backdrop-filter:var(--surface-blur);background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;width:calc(100% + 1.7rem);margin:0 -.85rem}.app-sidebar__nav{flex:1;gap:1.25rem;padding-top:1rem;display:grid;overflow-y:auto}.app-sidebar__label,.app-sidebar__section-toggle{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .45rem;padding:0 .85rem;font-size:.68rem;font-weight:700}.app-sidebar__section-toggle{box-shadow:none;color:var(--text-muted);cursor:pointer;font:inherit;letter-spacing:.1em;text-transform:uppercase;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:0 .85rem;display:flex}.app-sidebar__section-toggle svg{transition:transform .15s}.app-sidebar__section-toggle.is-expanded svg{transform:rotate(180deg)}.app-sidebar__list{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.app-sidebar__link{color:var(--text-secondary);border-radius:10px;align-items:center;gap:.65rem;padding:.62rem .85rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.app-sidebar__link:hover{background:var(--sidebar-hover);color:var(--text-primary)}.app-sidebar__link.is-active{background:var(--sidebar-active-bg);box-shadow:inset 3px 0 0 var(--accent-green);color:var(--sidebar-active-text)}.app-sidebar__footer{border-top:1px solid var(--sidebar-border);margin-top:auto;padding-top:1rem}.app-sidebar__logout{box-shadow:none;color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:.65rem;width:100%;padding:.62rem .85rem;font-size:.9rem;font-weight:600;display:flex}.app-sidebar__logout:hover{background:var(--sidebar-hover);color:var(--text-primary)}.app-shell__bottom{-webkit-backdrop-filter:var(--surface-blur);background:var(--bottombar-bg);border-top:1px solid var(--bottombar-border);box-shadow:var(--bottombar-shadow);padding-bottom:env(safe-area-inset-bottom,0);z-index:40;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.app-shell__bottom-list{max-width:640px;padding:.35rem .35rem calc(.35rem + env(safe-area-inset-bottom,0));grid-template-columns:repeat(5,minmax(0,1fr));gap:.1rem;width:100%;margin:0;list-style:none;display:grid}.app-shell__bottom-link{color:var(--text-muted);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.18rem;min-height:3.2rem;padding:.15rem;font-size:.64rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s;display:flex}.app-shell__bottom-link.is-active{background:var(--accent-muted);color:var(--bottombar-active)}.app-shell__bottom-link span{text-align:center;line-height:1.1}.auth-layout{min-height:100svh;padding-top:var(--shell-header-height)}@media (width<=639px){.app-brand__text{display:none}}@media (width>=768px){.app-shell-layout{padding-bottom:0;padding-left:var(--shell-sidebar-width);padding-top:var(--shell-header-height);transition:padding-left .2s}.app-shell-layout.is-sidebar-collapsed{padding-left:var(--shell-sidebar-collapsed-width)}.app-header__sidebar-toggle{display:inline-flex}.app-profile--mobile{display:none}.app-sidebar{-webkit-backdrop-filter:var(--surface-blur);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);bottom:0;left:0;top:var(--shell-header-height);width:var(--shell-sidebar-width);z-index:30;flex-direction:column;padding:0 .85rem 1.5rem;transition:width .2s;display:flex;position:fixed;overflow:hidden}.app-sidebar.is-collapsed{width:var(--shell-sidebar-collapsed-width);padding-left:.55rem;padding-right:.55rem}.app-sidebar__collapse-toggle{background:var(--surface-muted);border:1px solid var(--surface-border);box-shadow:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;margin:.75rem auto 0;font-size:.95rem;font-weight:700;display:inline-flex}.app-sidebar__collapse-toggle:hover{background:var(--sidebar-hover);color:var(--text-primary)}.app-sidebar.is-collapsed .app-sidebar__collapse-toggle{margin-top:.85rem}.app-sidebar.is-collapsed .app-sidebar__profile .app-profile__button{justify-content:center;padding-left:.35rem;padding-right:.35rem}.app-sidebar.is-collapsed .app-sidebar__link,.app-sidebar.is-collapsed .app-sidebar__logout{justify-content:center;padding-left:.55rem;padding-right:.55rem}.app-sidebar.is-collapsed .app-sidebar__link span,.app-sidebar.is-collapsed .app-sidebar__logout span{display:none}.app-sidebar.is-collapsed .app-sidebar__nav{padding-top:.5rem}.app-shell__bottom{display:none}.app-header__context{display:block}.app-shell__main{max-width:none;padding:1.35rem 1.75rem 2rem}}@media (width>=1024px){.app-shell__main{padding:1.5rem 2rem 2.5rem}}.print-sheet{box-sizing:border-box;background:#fff;gap:4mm;width:210mm;min-height:297mm;margin:0 auto;padding:8mm;display:grid}.print-sheet--portrait{grid-template-columns:repeat(3,54mm);grid-auto-rows:86mm}.print-sheet--landscape{grid-template-columns:repeat(2,86mm);grid-auto-rows:54mm}.print-sheet__slot{break-inside:avoid;page-break-inside:avoid}.print-sheet--format-cr80-portrait,.print-sheet--format-cr80-landscape,.print-sheet--format-single-portrait,.print-sheet--format-single-landscape{width:auto;min-height:auto;padding:0;display:block}.print-sheet--format-cr80-portrait .print-sheet__slot{page-break-after:always;width:54mm;height:86mm}.print-sheet--format-cr80-landscape .print-sheet__slot{page-break-after:always;width:86mm;height:54mm}.print-sheet--format-single-portrait .print-sheet__slot{page-break-after:always;width:54mm;height:86mm;margin:0 auto 8mm}.print-sheet--format-single-landscape .print-sheet__slot{page-break-after:always;width:86mm;height:54mm;margin:0 auto 8mm}.print-sheet--format-cr80-portrait .print-sheet__slot:last-child,.print-sheet--format-cr80-landscape .print-sheet__slot:last-child,.print-sheet--format-single-portrait .print-sheet__slot:last-child,.print-sheet--format-single-landscape .print-sheet__slot:last-child{page-break-after:auto}@media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.print-toolbar,.app-header,.app-shell,.designer-layout__form{display:none!important}.print-sheet{box-shadow:none;margin:0}.print-sheet--format-a4{padding:8mm}.print-sheet--format-a4.print-sheet--portrait{grid-template-columns:repeat(3,54mm);grid-auto-rows:86mm}.print-sheet--format-a4.print-sheet--landscape{grid-template-columns:repeat(2,86mm);grid-auto-rows:54mm}.print-sheet--format-cr80-portrait,.print-sheet--format-cr80-landscape,.print-sheet--format-single-portrait,.print-sheet--format-single-landscape{padding:0}@page{margin:0;size:A4 portrait}}.print-layout{min-height:100svh;padding-top:var(--shell-header-height)}.print-page{padding:1rem;overflow-y:auto}.print-toolbar{max-width:210mm;margin:0 auto 1rem}.print-toolbar p{color:var(--text-secondary);margin:0 0 .75rem}.print-toolbar__format{gap:.35rem;max-width:28rem;margin-bottom:.75rem;font-size:.9rem;display:grid}.print-preview{max-width:210mm;margin:0 auto}.print-preview__title{margin:0 0 .75rem;font-size:1rem}@media print{.print-layout{padding-top:0}.app-header,.print-toolbar,.print-preview__title{display:none!important}.print-page{background:#fff;padding:0}.print-preview{box-shadow:none;max-width:none;margin:0;padding:0}}.invoices-panel__table-wrap{margin-top:.75rem;overflow-x:auto}.invoices-panel__table{border-collapse:collapse;width:100%;min-width:720px}.invoices-panel__table th,.invoices-panel__table td{border-bottom:1px solid var(--surface-border);text-align:left;padding:.55rem .65rem}.invoices-panel__table th{color:var(--text-muted);font-size:.82rem;font-weight:600}.plan-catalog-panel__discounts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:.75rem;margin-bottom:1rem;display:grid}.plan-catalog-panel__list{gap:.85rem;display:grid}.plan-catalog-panel__item{border:1px solid var(--border-color);border-radius:10px;gap:.65rem;padding:.85rem;display:grid}.plan-catalog-panel__item-header{justify-content:space-between;align-items:center;display:flex}.plan-catalog-panel__active{align-items:center;gap:.35rem;display:flex}.plan-catalog-panel__fields{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem;display:grid}.subscription-requests-panel__list{gap:.85rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.subscription-requests-panel__item{border:1px solid var(--border-color);border-radius:10px;gap:.55rem;padding:.9rem;display:grid}.subscription-requests-panel__header{justify-content:space-between;align-items:center;display:flex}.subscription-requests-panel__quote{color:var(--brand-primary,#2e7d32);font-weight:700}.subscription-requests-panel__checkbox{align-items:center;gap:.45rem;display:flex}.admin-section-nav{flex-wrap:wrap;gap:.45rem;margin-bottom:1rem;display:flex}.admin-section-nav__link{background:var(--surface-muted);border:1px solid var(--surface-border);color:var(--text-secondary);border-radius:999px;padding:.38rem .85rem;font-size:.82rem;font-weight:600;text-decoration:none}.admin-section-nav__link:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--surface-border));color:var(--text-primary)}.admin-section-nav__link.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-color:color-mix(in srgb, var(--accent) 35%, var(--surface-border));color:var(--accent)}.subscription-payments__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.subscription-payments__header h3{margin:0 0 .25rem}.subscription-payments__total{margin:0;font-size:.95rem}.subscription-payments__form{border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem;padding-bottom:1.25rem;display:grid}.subscription-payments__form label{gap:.35rem;font-size:.9rem;display:grid}.subscription-payments__full{grid-column:1/-1}.subscription-payments__checkbox{grid-column:1/-1;align-items:center;gap:.5rem;display:flex!important}.subscription-payments__actions{grid-column:1/-1}.subscription-payments__history-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;margin-bottom:.75rem;display:flex}.subscription-payments__history-header h4{margin:0}.subscription-payments__history-header label{gap:.25rem;font-size:.85rem;display:grid}.subscription-payments__table-wrap{overflow-x:auto}.subscription-payments__table{border-collapse:collapse;width:100%;font-size:.88rem}.subscription-payments__table th,.subscription-payments__table td{border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:.55rem .45rem}.subscription-payments__table th{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.78rem}.subscription-payments__sub{font-size:.78rem;display:block}@media (width<=720px){.subscription-payments__form{grid-template-columns:1fr}}.initialize-database-page .initialize-database-counts{grid-template-columns:repeat(2,minmax(0,1fr))}@media (width>=700px){.initialize-database-page .initialize-database-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}.subscription-admin-panel__summary{background:color-mix(in srgb, var(--panel-bg) 85%, var(--brand-primary,#2e7d32) 5%);border:1px solid var(--border-color);border-radius:10px;margin:.75rem 0 1rem;padding:.85rem}.subscription-admin-panel__form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.subscription-admin-panel__checkbox{align-items:center;gap:.5rem;display:flex}.password-field{gap:.5rem;display:grid}.password-field__label-row{align-items:center;gap:.4rem;display:inline-flex}.password-field__help-trigger{background:var(--surface-muted);border:1px solid var(--surface-border);color:var(--text-muted);cursor:help;border-radius:999px;justify-content:center;align-items:center;width:1.2rem;height:1.2rem;padding:0;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.password-field__requirements{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:10px;padding:.65rem .8rem}.password-field__requirements-title{color:var(--text-secondary);margin:0 0 .35rem;font-size:.82rem;font-weight:600}.password-field .password-requirements{color:var(--text-muted);margin:0;padding:0;font-size:.82rem;line-height:1.5;list-style:none}.password-field .password-requirements li{padding-left:1.25rem;position:relative}.password-field .password-requirements li:before{content:"○";position:absolute;left:0}.password-field .password-requirements li.is-met{color:var(--accent-green)}.password-field .password-requirements li.is-met:before{content:"●"}.plan-card{background:var(--panel-bg);border:1px solid var(--border-color);text-align:left;border-radius:12px;gap:.75rem;padding:1rem;display:grid}.plan-card--selectable{cursor:pointer;width:100%;transition:border-color .15s,box-shadow .15s}.plan-card--selectable:hover{border-color:var(--brand-primary,#2e7d32)}.plan-card.is-selected{border-color:var(--brand-primary,#2e7d32);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand-primary,#2e7d32) 25%, transparent)}.plan-card__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.plan-card__header h3{margin:0;font-size:1rem}.plan-card__badge{background:color-mix(in srgb, var(--brand-secondary,#1565c0) 12%, transparent);color:var(--text-muted);border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.plan-card__description{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.plan-card__pricing{gap:.25rem;display:grid}.plan-card__monthly{align-items:baseline;gap:.35rem;margin:0;display:flex}.plan-card__monthly strong{color:var(--brand-primary,#2e7d32);font-size:1.35rem}.plan-card__monthly span,.plan-card__meta,.plan-card__total,.plan-card__billing-note{color:var(--text-muted);margin:0;font-size:.82rem}.plan-card__total{font-weight:600}.plan-card--compact{padding:.85rem}.plan-selector{gap:1rem;display:grid}.plan-selector__billing{border:1px solid var(--border-color);border-radius:10px;gap:.5rem;margin:0;padding:.85rem 1rem;display:grid}.plan-selector__billing legend{padding:0 .25rem;font-size:.85rem;font-weight:600}.plan-selector__billing label{align-items:center;gap:.45rem;display:flex}.plan-selector__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.plan-selector--compact .plan-selector__grid{grid-template-columns:1fr}.onboarding-page{background:var(--app-bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.onboarding-page--embedded{background:0 0;min-height:auto;padding:0;display:block}.onboarding-card{gap:1.25rem;width:min(820px,100%);display:grid}.onboarding-card__header h1{margin:0 0 .35rem}.onboarding-card__header p{color:var(--text-muted);margin:0}.onboarding-steps{gap:.45rem;margin:0;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.onboarding-steps li{text-align:center;color:var(--text-muted);flex:none;justify-items:center;gap:.35rem;min-width:4.8rem;font-size:.72rem;display:grid}.onboarding-steps li span{border:1px solid var(--border-subtle);background:var(--surface-elevated);border-radius:999px;place-items:center;width:1.75rem;height:1.75rem;display:grid}.onboarding-steps li.is-active{color:var(--text-primary);font-weight:600}.onboarding-steps li.is-active span,.onboarding-steps li.is-complete span{background:var(--btn-primary-bg);color:#fff;border-color:#0000}.onboarding-form{gap:1rem;display:grid}.onboarding-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.onboarding-form__full{grid-column:1/-1}.onboarding-form__stack{gap:.85rem;display:grid}.onboarding-form__grid label,.onboarding-form__branding label,.onboarding-form__stack label{gap:.35rem;font-size:.9rem;display:grid}.onboarding-form__branding{gap:1rem;display:grid}.onboarding-brand-preview{flex-wrap:wrap;gap:.5rem;display:flex}.onboarding-brand-preview span{color:#fff;border-radius:999px;padding:.35rem .65rem;font-size:.78rem}.onboarding-radio-group{border:1px solid var(--border-subtle);border-radius:12px;gap:.55rem;padding:.85rem;display:grid}.onboarding-radio-group legend{padding:0 .25rem;font-size:.9rem}.onboarding-radio-group label{align-items:center;gap:.5rem;display:flex}.onboarding-preview code{font-size:.95rem}.onboarding-form__actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.onboarding-form__actions--inline{flex-wrap:wrap;justify-content:flex-start}.education-structure{border:1px solid var(--border-subtle);border-radius:12px;gap:1rem;padding:1rem;display:grid}.education-structure__header h3{margin:0 0 .35rem;font-size:1rem}.education-structure__header p{margin:0}.education-structure__label{margin:0 0 .5rem;font-size:.85rem;font-weight:600}.education-structure__presets{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem;display:grid}.education-structure__preset{text-align:left;border:1px solid var(--border-subtle);background:var(--surface-elevated);cursor:pointer;border-radius:10px;gap:.2rem;padding:.7rem .8rem;display:grid}.education-structure__preset.is-active{border-color:var(--btn-primary-bg);box-shadow:0 0 0 1px var(--btn-primary-bg)}.education-structure__preset-title{font-size:.88rem;font-weight:600}.education-structure__preset-desc{color:var(--text-muted);font-size:.78rem}.education-structure__levels,.education-structure__grades{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.45rem;display:grid}.education-structure__level,.education-structure__grade{border:1px solid var(--border-subtle);border-radius:10px;align-items:flex-start;gap:.5rem;padding:.55rem .65rem;font-size:.85rem;display:flex}.education-structure__level span,.education-structure__grade span{gap:.1rem;display:grid}.education-structure__summary{margin:0;font-size:.85rem}.onboarding-class-groups{border:1px solid var(--surface-border);border-radius:12px;gap:.85rem;margin:0;padding:1rem;display:grid}.onboarding-class-groups__grade-label{margin:0 0 .35rem;font-size:.9rem;font-weight:600}.onboarding-class-groups__options{flex-wrap:wrap;gap:.65rem 1rem;display:flex}.onboarding-class-groups__defined{flex-wrap:wrap;gap:.45rem;margin-bottom:.65rem;display:flex}.onboarding-class-groups__empty{margin:0;font-size:.85rem}.onboarding-class-groups__chip{background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.85rem;display:inline-flex}.onboarding-class-groups__chip-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.onboarding-class-groups__add{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.onboarding-class-groups__add input{flex:1;min-width:0}.onboarding-class-groups__suggestions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.onboarding-class-groups__suggestion{border:1px dashed var(--border-subtle);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .55rem;font-size:.78rem}.onboarding-form__hint{flex:100%;margin:0}.onboarding-card--success .onboarding-success-credentials{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:12px;gap:.5rem;padding:1rem;display:grid}.onboarding-card--success .onboarding-success-credentials code{font-size:.95rem}@media (width<=720px){.onboarding-form__grid{grid-template-columns:1fr}}.subscription-banner{-webkit-backdrop-filter:var(--surface-blur);border:1px solid var(--surface-border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem 1rem;width:100%;max-width:1100px;margin:0 auto 1rem;padding:.65rem .85rem;display:flex}.subscription-banner p{flex:1;min-width:12rem;margin:0;font-size:.86rem;line-height:1.45}.subscription-banner__link{color:var(--tenant-secondary,var(--accent));white-space:nowrap;font-size:.82rem;font-weight:700;text-decoration:none}.subscription-banner__link:hover{text-decoration:underline}.subscription-banner--info{background:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 10%, var(--surface));border-color:color-mix(in srgb, var(--tenant-secondary,var(--accent)) 28%, transparent)}.subscription-banner--warning{background:color-mix(in srgb, #f59e0b 12%, var(--surface));border-color:#f59e0b59}.subscription-banner--danger{background:color-mix(in srgb, var(--danger) 10%, var(--surface));border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.admin-dashboard__intro{margin-bottom:1rem}.admin-dashboard__school{color:var(--accent);font-weight:700}.admin-dashboard__metrics{margin-bottom:1.25rem}.admin-dashboard__rate-hint{font-size:.78rem}.school-modules{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.85rem;display:grid}.school-module-card{background:var(--surface-muted);border:1px solid var(--card-border);border-radius:12px;gap:.45rem;padding:1rem;transition:border-color .15s,box-shadow .15s;display:grid}.school-module-card:hover{border-color:var(--accent-green);box-shadow:var(--accent-glow)}.school-module-card h3{margin:0;font-size:.95rem}.school-module-card p{margin:0;font-size:.84rem;line-height:1.45}.school-module-card__icon{background:var(--card-bg);border:1px solid var(--card-border);color:var(--accent);border-radius:10px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:inline-flex}.login-page{box-sizing:border-box;min-height:calc(100svh - var(--shell-header-height));justify-content:center;align-items:center;width:100%;padding:1.5rem 1rem 2rem;display:flex}.login-card{width:100%;max-width:420px;margin:0}.login-card__header{align-items:center;gap:.85rem;margin-bottom:1.25rem;display:flex}.login-card__logo{background:var(--sg-gradient);box-shadow:var(--accent-glow);color:#fff;letter-spacing:.04em;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:5rem;height:5rem;font-size:1rem;font-weight:800;display:flex}.login-card__logo--image{background:var(--surface-elevated);border:1px solid var(--surface-border);box-shadow:none;padding:.35rem;overflow:hidden}.login-card__logo--softgate{box-shadow:none;background:0 0;border:none;padding:0}.login-card__logo--image img{object-fit:contain;width:100%;height:100%;display:block}.login-card--branded .login-card__logo:not(.login-card__logo--image){background:linear-gradient(135deg, var(--tenant-primary) 0%, var(--tenant-secondary) 48%, var(--tenant-tertiary) 100%)}.login-card--branded .login-submit{background:var(--btn-primary-bg)}.login-card__title{margin:0;font-size:1.35rem;font-weight:700;line-height:1.2}.login-card__subtitle{color:var(--text-muted);margin:.15rem 0 0;font-size:.85rem}.login-lede{color:var(--text-secondary);margin:0 0 1.25rem;line-height:1.5}.login-form{gap:1rem;display:grid}.login-form label{gap:.4rem;font-size:.9rem;font-weight:600;display:grid}.login-submit{width:100%;margin-top:.35rem}@media (width>=640px){.login-page{padding:2rem 1.5rem 3rem}}.superadmin-notifications__form{margin-top:.75rem}.superadmin-notifications__field--wide{grid-column:1/-1}.superadmin-notifications__targets{flex-wrap:wrap;gap:1rem;margin-top:.75rem;display:flex}.superadmin-notifications__all{align-items:center;gap:.45rem;display:inline-flex}.superadmin-notifications__tenant-list{border:1px solid var(--surface-border);border-radius:10px;gap:.35rem;max-height:14rem;margin-top:.75rem;padding:.65rem;display:grid;overflow:auto}.superadmin-notifications__tenant{align-items:center;gap:.5rem;display:flex}.subscription-panel__summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin:1rem 0;display:grid}.subscription-panel__metric{background:color-mix(in srgb, var(--panel-bg) 80%, var(--brand-primary,#2e7d32) 4%);border:1px solid var(--border-color);border-radius:10px;gap:.2rem;padding:.75rem;display:grid}.subscription-panel__label{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:600}.subscription-panel__renewal{background:color-mix(in srgb, var(--brand-secondary,#1565c0) 10%, transparent);border-radius:8px;margin:.5rem 0 0;padding:.65rem .8rem}.subscription-panel__renewal.is-expired{background:#dc26261f}.subscription-panel__renewal.is-pending{background:#f59e0b24}.subscription-panel__status--pending{color:#b45309}.subscription-panel__upgrade{gap:1rem;margin-top:1rem;display:grid}.reports-charts__grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.85rem;display:grid}.reports-chart-card{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:10px;padding:.75rem}.reports-chart-card--wide{grid-column:1/-1}.reports-chart-card h4{color:var(--text-primary);margin:0 0 .35rem;font-size:.85rem}.reports-chart-card .recharts-default-legend{color:var(--text-secondary)}.reports-chart-card .recharts-tooltip-wrapper{color:var(--text-primary)}.reports-page .reports-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.reports-page .reports-tabs button{background:var(--surface-muted);border:1px solid var(--surface-border);color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.4rem .9rem;font-size:.85rem;font-weight:600}.reports-page .reports-tabs button.is-active{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-color:color-mix(in srgb, var(--accent) 35%, var(--surface-border));color:var(--accent)}.reports-filters{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;display:grid}.reports-filters__full{grid-column:1/-1}.reports-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.reports-view-toggle{gap:.35rem;display:flex}.reports-view-toggle button{background:var(--surface-muted);border:1px solid var(--surface-border);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:.35rem .75rem;font-size:.82rem;font-weight:600}.reports-view-toggle button.is-active{background:color-mix(in srgb, var(--accent-green) 14%, var(--surface));border-color:color-mix(in srgb, var(--accent-green) 35%, var(--surface-border));color:var(--accent-green)}.reports-metrics{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.65rem;display:grid}.reports-metric{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:10px;padding:.65rem .75rem}.reports-metric__label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .2rem;font-size:.72rem;font-weight:600}.reports-metric__value{color:var(--text-primary);margin:0;font-size:1.1rem;font-weight:700}.reports-table-wrap{overflow-x:auto}.reports-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.85rem}.reports-table th,.reports-table td{border-bottom:1px solid var(--surface-border);text-align:left;white-space:nowrap;padding:.55rem .65rem}.reports-table th{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;font-size:.72rem;font-weight:700}.reports-table tbody tr:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.reports-status{text-transform:uppercase;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:700;display:inline-block}.reports-status--present,.reports-status--active{background:color-mix(in srgb, var(--status-present) 16%, var(--surface-muted));color:var(--status-present)}.reports-status--absent,.reports-status--ended{background:color-mix(in srgb, var(--status-absent) 14%, var(--surface-muted));color:var(--status-absent)}.reports-status--late{background:color-mix(in srgb, var(--status-late) 16%, var(--surface-muted));color:var(--status-late-text)}.reports-status--pending,.reports-status--scheduled{background:color-mix(in srgb, var(--status-pending) 16%, var(--surface-muted));color:var(--status-pending)}.reports-status--excused{background:color-mix(in srgb, var(--status-excused) 14%, var(--surface-muted));color:var(--status-excused)}.plan-highlights__header{gap:.35rem;margin-bottom:.85rem;display:grid}.plan-highlights__header h2{margin:0}.plan-highlights__billing-note{margin:0;font-size:.9rem}.pricing-page{background:var(--app-bg);min-height:100vh}.pricing-page__main{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 2rem}.pricing-page__intro h1{margin:.25rem 0 .5rem}.pricing-page__list{gap:.65rem;margin:0;padding-left:1.1rem;display:grid}.pricing-page__cta .actions{flex-wrap:wrap;gap:.75rem;display:flex}.page-content{width:100%;max-width:1100px;margin:0 auto}.page-intro{margin-bottom:1rem}.page-intro h2{margin:0 0 .5rem}.eyebrow{color:var(--tenant-primary,var(--accent-green));letter-spacing:.1em;text-transform:uppercase;margin:0 0 .5rem;font-size:.72rem;font-weight:700}.lede{color:var(--text-secondary);margin:0;line-height:1.6}.lede--spaced{margin-bottom:1rem}.panel{-webkit-backdrop-filter:var(--surface-blur);background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--surface-shadow);border-radius:14px;margin-bottom:1.25rem;padding:1.25rem}.panel h2{margin:0 0 1rem;font-size:1.05rem}.panel__title{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem;font-size:.72rem;font-weight:700}.dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(11.5rem,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.metric-card{-webkit-backdrop-filter:var(--surface-blur);background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--surface-shadow);border-radius:14px;padding:1.15rem 1.25rem}.metric-card__label{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .5rem;font-size:.68rem;font-weight:700}.metric-card__value{color:var(--accent-metric);text-shadow:var(--accent-glow);margin:0 0 .35rem;font-size:2rem;font-weight:700;line-height:1.1}.metric-card__hint{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.4}.status-grid{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:1rem;display:grid}.status-grid__item{text-align:center}.status-grid__label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.68rem;font-weight:700;display:block}.status-grid__value{color:var(--accent-metric);font-size:1.5rem;font-weight:700}.quick-links{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.75rem;display:grid}.quick-link-card{background:var(--surface-muted);border:1px solid var(--card-border);border-radius:12px;gap:.5rem;padding:1rem;display:grid}.quick-link-card h3{margin:0;font-size:.95rem}.form-grid{gap:.9rem;margin-bottom:1rem;display:grid}label{color:var(--text-primary);gap:.35rem;font-size:.9rem;font-weight:600;display:grid}input{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-primary);font:inherit;border-radius:10px;padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--text-muted)}input:focus-visible{border-color:var(--input-focus-border);box-shadow:var(--focus-ring);outline:none}.actions{flex-wrap:wrap;gap:.75rem;display:flex}button{background:var(--btn-primary-bg);box-shadow:var(--accent-glow);color:var(--btn-primary-text);cursor:pointer;font:inherit;border:0;border-radius:10px;padding:.65rem 1rem;font-weight:600;transition:filter .15s,transform .1s}button:hover:not(:disabled){filter:brightness(1.05)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;filter:grayscale(.2);opacity:.55}.button-secondary{background:var(--surface-muted);border:1px solid var(--surface-border);box-shadow:none;color:var(--text-primary)}.button-link{background:var(--surface-muted);border:1px solid var(--card-border);color:var(--text-primary);border-radius:10px;align-items:center;padding:.65rem 1rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.button-link:hover{background:var(--accent-muted);border-color:var(--accent-green)}.status{color:var(--text-secondary);margin:0 0 1rem}.muted{color:var(--text-muted);margin:0}.result{background:var(--code-bg);border:1px solid var(--surface-border);color:var(--code-text);border-radius:10px;margin:0;padding:1rem;font-size:.85rem;overflow-x:auto}.route-state{color:var(--text-secondary);justify-content:center;align-items:center;min-height:100svh;padding:2rem;display:flex}.form-error{color:var(--danger);margin:0;font-size:.9rem}.theme-toggle{flex-wrap:wrap;gap:.5rem;display:flex}.theme-toggle button{background:var(--surface-muted);border:1px solid var(--surface-border);box-shadow:none;color:var(--text-primary);padding:.5rem .85rem;font-size:.85rem}.theme-toggle button.is-active{background:var(--btn-primary-bg);box-shadow:var(--accent-glow);color:var(--btn-primary-text);border-color:#0000}
