:root{--brand-primary: #0e5f52;--brand-primary-700: #0a4a40;--brand-primary-300: #4a9285;--brand-secondary: #b45309;--brand-accent: #d97706;--brand-dark: #0b1f1c;--brand-light: #f4f7f5;--brand-surface: #ffffff;--brand-text: #1f2a28;--brand-text-muted: #5a6b67;--brand-text-invert: #f4f7f5;--state-ok: #15803d;--state-warn: #b45309;--state-danger: #b91c1c;--state-info: #1d4ed8;--tint-ok: #e7f5ec;--tint-warn: #fdf1e3;--tint-danger: #fcebeb;--tint-info: #e8eefd;--line: rgba(11, 31, 28, .08);--line-strong: rgba(11, 31, 28, .16);--font-display: "Instrument Sans", "Inter", system-ui, sans-serif;--font-body: "Inter", -apple-system, system-ui, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(11, 31, 28, .04), 0 1px 3px rgba(11, 31, 28, .06);--shadow-md: 0 2px 4px rgba(11, 31, 28, .04), 0 4px 12px rgba(11, 31, 28, .07);--shadow-lg: 0 8px 24px rgba(11, 31, 28, .1), 0 2px 6px rgba(11, 31, 28, .05);--ease: cubic-bezier(.2, 0, .13, 1);--fast: .13s;--normal: .2s;--measure: 1080px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--brand-text);background:var(--brand-light);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--font-display);color:var(--brand-dark);letter-spacing:-.021em;line-height:1.15;margin:0;font-weight:600}h1{font-size:1.625rem}h2{font-size:1.125rem}h3{font-size:1rem}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:relative;z-index:1;background:radial-gradient(120% 140% at 78% -20%,rgba(74,146,133,.55) 0%,transparent 58%),linear-gradient(158deg,#12705f,#0e5f52 46%,#093f36);color:var(--brand-text-invert);padding:var(--space-5) var(--space-5) var(--space-10);padding-top:max(var(--space-5),env(safe-area-inset-top))}.topbar:after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}.topbar-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);max-width:var(--measure);margin:0 auto;width:100%}.wordmark{font-family:var(--font-display);font-weight:600;font-size:.9375rem;letter-spacing:.06em;text-transform:uppercase;opacity:.72}.school-name{font-family:var(--font-display);font-size:1.375rem;font-weight:600;letter-spacing:-.02em;margin-top:var(--space-1)}.term-context{font-size:.8125rem;opacity:.78;margin-top:var(--space-1);font-variant-numeric:tabular-nums}.avatar-btn{display:grid;place-items:center;width:42px;height:42px;min-height:42px;flex:0 0 42px;padding:0;border-radius:var(--radius-full);background:linear-gradient(180deg,#ffffff3d,#ffffff1f);box-shadow:inset 0 0 0 1px #ffffff38;color:var(--brand-text-invert);font-family:var(--font-display);font-weight:600;font-size:.875rem;border:none;cursor:pointer;transition:background var(--fast) var(--ease)}.avatar-btn:hover{background:#ffffff42}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + var(--space-2));min-width:190px;background:var(--brand-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--space-2);animation:pop var(--fast) var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu-name{padding:var(--space-2) var(--space-3)}.menu-name strong{display:block;color:var(--brand-text);font-size:.9375rem}.menu-name span{font-size:.8125rem;color:var(--brand-text-muted);text-transform:capitalize}.menu hr{border:none;border-top:1px solid var(--line);margin:var(--space-2) 0}.menu button{width:100%;text-align:left;background:none;border:none;padding:var(--space-3);min-height:44px;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:500;color:var(--brand-text);cursor:pointer}.menu button:hover{background:var(--brand-light)}.content{flex:1;max-width:var(--measure);width:100%;margin:0 auto;padding:0 var(--space-5) var(--space-10)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);position:relative;z-index:2;margin-top:var(--space-6);margin-bottom:var(--space-8)}.content>.fade-in:first-child>.stat-row:first-child,.content>.stat-row:first-child{margin-top:calc(var(--space-8) * -1)}.stat{background:linear-gradient(180deg,#fff,#fbfdfc);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-lg)}.stat .value{background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand-primary) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.stat .value{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--brand-dark);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.stat .label{font-size:.75rem;color:var(--brand-text-muted);margin-top:var(--space-1);letter-spacing:.01em}.group{margin-bottom:var(--space-6)}.group-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding-left:var(--space-1)}.group-head .count{margin-left:auto;font-size:.8125rem;color:var(--brand-text-muted);font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.pill-dev{background:var(--tint-info);color:var(--state-info)}.pill-graded{background:var(--tint-ok);color:var(--state-ok)}.pill-warn{background:var(--tint-warn);color:var(--state-warn)}.stack{background:var(--brand-surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.groups{display:grid;gap:var(--space-6)}@media (min-width: 880px){.groups{grid-template-columns:1fr 1fr;align-items:start}.group{margin-bottom:0}}.row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-3) var(--space-4);background:var(--brand-surface);border:none;border-bottom:1px solid var(--line);font-family:var(--font-body);font-size:1rem;color:var(--brand-text);text-align:left;cursor:pointer;transition:background var(--fast) var(--ease)}.row:last-child{border-bottom:none}.row:hover{background:#fafcfb}.row:active{background:var(--brand-light)}.row.static{cursor:default}.row.static:hover{background:var(--brand-surface)}.row-main{flex:1;min-width:0}.row-title{font-weight:500;letter-spacing:-.006em}.row-sub{font-size:.8125rem;color:var(--brand-text-muted);margin-top:1px}.row-meta{font-size:.8125rem;color:var(--brand-text-muted);font-variant-numeric:tabular-nums;flex:0 0 auto}.chevron{color:var(--brand-primary-300);flex:0 0 auto;transition:transform var(--fast) var(--ease)}.row:hover .chevron{transform:translate(2px)}.avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:var(--radius-full);font-family:var(--font-display);font-size:.8125rem;font-weight:600;letter-spacing:.01em;color:var(--brand-text)}.avatar-index{flex:0 0 26px;text-align:right;font-size:.75rem;color:var(--brand-text-muted);font-variant-numeric:tabular-nums}.auth-page{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:var(--space-6);max-width:440px;margin:0 auto;width:100%}body:has(.auth-page){background:radial-gradient(90% 60% at 50% -10%,rgba(14,95,82,.1) 0%,transparent 60%),var(--brand-light)}.auth-brand{margin-bottom:var(--space-8)}.auth-brand .mark{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--brand-primary);letter-spacing:-.025em}.auth-brand .tag{color:var(--brand-text-muted);margin-top:var(--space-2);font-size:.9375rem}.card{background:var(--brand-surface);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md)}label{display:block;font-size:.8125rem;font-weight:600;color:var(--brand-text);margin-bottom:var(--space-2);letter-spacing:.005em}input{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);font-size:1rem;font-family:var(--font-body);color:var(--brand-text);background:var(--brand-light);border:1.5px solid transparent;border-radius:var(--radius-sm);transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}input:focus{outline:none;background:var(--brand-surface);border-color:var(--brand-primary);box-shadow:0 0 0 3px #0e5f521f}input::placeholder{color:#9aa8a4}.field{margin-bottom:var(--space-5)}.hint{font-size:.8125rem;color:var(--brand-text-muted);margin-top:var(--space-2)}button,.btn{min-height:48px;font-family:var(--font-body);font-weight:600;font-size:1rem;letter-spacing:.005em;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);border:none;cursor:pointer;transition:background var(--fast) var(--ease),transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.btn-primary{background:linear-gradient(180deg,#14705f 0%,var(--brand-primary) 100%);color:var(--brand-text-invert);box-shadow:var(--shadow-sm),inset 0 1px #ffffff1f}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--brand-primary) 0%,var(--brand-primary-700) 100%);box-shadow:var(--shadow-md),inset 0 1px #ffffff1f}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%}.btn-ghost{background:transparent;color:var(--brand-primary);padding:var(--space-2) var(--space-3);font-size:.9375rem;display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px}.btn-ghost:hover{background:#0e5f5212}.banner{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:.9375rem;margin-bottom:var(--space-5);line-height:1.45}.banner-error{background:var(--tint-danger);border-left:3px solid var(--state-danger)}.banner-pending{background:var(--tint-warn);border-left:3px solid var(--brand-accent)}.skeleton{background:linear-gradient(90deg,#eef2f0 25%,#e4eae7 37%,#eef2f0 63%);background-size:400% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.sk-line{height:12px}.sk-avatar{width:38px;height:38px;border-radius:var(--radius-full);flex:0 0 38px}.empty-state{text-align:center;padding:var(--space-10) var(--space-6);background:var(--brand-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.empty-state .glyph{width:48px;height:48px;margin:0 auto var(--space-4);border-radius:var(--radius-full);background:var(--brand-light);display:grid;place-items:center;color:var(--brand-primary-300)}.empty-state h3{margin-bottom:var(--space-2)}.empty-state p{color:var(--brand-text-muted);margin:0;font-size:.9375rem}.fade-in{animation:fade var(--normal) var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.muted{color:var(--brand-text-muted)}.numeric{font-variant-numeric:tabular-nums}.register-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin:var(--space-4) 0 var(--space-4)}.tally{display:flex;gap:var(--space-4);font-size:.8125rem;color:var(--brand-text-muted)}.tally-item b{color:var(--state-ok);font-size:1.125rem;margin-right:4px}.tally-item.absent b{color:var(--state-danger)}.tally-item.late b{color:var(--state-warn)}.reg-row{border-left:3px solid transparent;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.reg-row.absent{border-left-color:var(--state-danger);background:#fefafa}.reg-row.late{border-left-color:var(--state-warn);background:#fffcf7}.seg{display:flex;gap:4px;background:var(--brand-light);padding:3px;border-radius:var(--radius-full);flex:0 0 auto}.seg-btn{width:44px;height:38px;min-height:38px;padding:0;border-radius:var(--radius-full);background:transparent;color:var(--brand-text-muted);font-family:var(--font-display);font-weight:600;font-size:.875rem;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.seg-btn.on{color:#fff;box-shadow:var(--shadow-sm)}.seg-btn.on.present{background:linear-gradient(180deg,#1a9350 0%,var(--state-ok) 100%)}.seg-btn.on.absent{background:linear-gradient(180deg,#d02525 0%,var(--state-danger) 100%)}.seg-btn.on.late{background:linear-gradient(180deg,#c9600b 0%,var(--state-warn) 100%)}.save-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom));background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.save-meta{font-size:.8125rem;color:var(--brand-text-muted)}.sync-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:4px var(--space-3);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;background:#ffffff29;color:var(--brand-text-invert);box-shadow:inset 0 0 0 1px #ffffff2e}.sync-chip .dot{width:7px;height:7px;border-radius:50%;background:#86efac}.sync-chip.pending .dot{background:var(--brand-accent);animation:pulse 1.6s ease-in-out infinite}.sync-chip.offline .dot{background:#fca5a5}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.tabs{display:flex;gap:var(--space-1);margin:var(--space-4) 0 var(--space-5);padding:4px;background:#0b1f1c0b;border-radius:var(--radius);width:fit-content;max-width:100%;overflow-x:auto}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;font:inherit;font-size:.875rem;font-weight:500;color:var(--brand-text-muted);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.tab:hover{color:var(--brand-text)}.tab.on{background:var(--brand-surface);color:var(--brand-primary);box-shadow:var(--shadow-sm)}.care-child{border-bottom:1px solid var(--line);transition:background var(--fast) var(--ease)}.care-child:last-child{border-bottom:none}.care-child.open{background:#fafcfb}.care-child .row{border-bottom:none}.care-panel{padding:0 var(--space-4) var(--space-4);animation:fade var(--fast) var(--ease)}.care-kinds{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:.8125rem;font-weight:500;padding:var(--space-2) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--brand-surface);color:var(--brand-text);cursor:pointer;transition:all var(--fast) var(--ease)}.chip:hover{border-color:var(--brand-primary-300)}.chip.on{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--brand-text-invert)}.chip.serious{color:var(--state-danger);border-color:#b91c1c47}.chip.serious.on{background:var(--state-danger);border-color:var(--state-danger);color:#fff}.care-options{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.btn-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:.9375rem;font-weight:500;padding:var(--space-3) var(--space-5);min-height:46px;border:1px solid var(--brand-primary-300);border-radius:var(--radius);background:var(--brand-surface);color:var(--brand-primary);cursor:pointer;transition:all var(--fast) var(--ease)}.btn-option:hover:not(:disabled){background:var(--tint-ok);box-shadow:var(--shadow-sm)}.btn-option:active:not(:disabled){transform:translateY(1px)}.btn-option:disabled{opacity:.55;cursor:not-allowed}.care-note{margin-top:var(--space-3)}.care-note textarea{width:100%;font:inherit;font-size:.9375rem;padding:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--brand-surface);color:var(--brand-text);resize:vertical;margin-bottom:var(--space-3)}.care-note textarea:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px #0e5f521f}.care-timeline{list-style:none;margin:var(--space-4) 0 0;padding:var(--space-3) 0 0;border-top:1px solid var(--line)}.care-timeline li{display:flex;align-items:baseline;gap:var(--space-3);font-size:.8125rem;color:var(--brand-text-muted);padding:var(--space-1) 0}.care-timeline li.serious{color:var(--state-danger)}.care-time{flex:0 0 auto;color:var(--brand-text-muted)}.care-what{flex:1;min-width:0}.care-what b{color:var(--brand-text);font-weight:500}.care-timeline li.serious .care-what b{color:var(--state-danger)}.care-pending{flex:0 0 auto;font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em;color:var(--brand-accent)}.gate-prompt{font-size:.8125rem;font-weight:500;color:var(--brand-text-muted);margin-bottom:var(--space-3)}.btn-option .gate-name{display:block;font-weight:500}.btn-option .gate-rel{display:block;font-size:.75rem;font-weight:400;color:var(--brand-text-muted);margin-top:1px}.btn-option.unauthorised{border-color:#b4530959;color:var(--brand-secondary)}.btn-option.unauthorised:hover:not(:disabled){background:var(--tint-warn)}.btn-option.unauthorised .gate-rel{color:var(--brand-secondary)}.gate-note{margin-top:2px;font-size:.75rem;font-style:italic;color:var(--brand-text-muted)}.care-timeline li.serious .gate-note{color:var(--state-danger)}.stuck-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.stuck-banner .btn-ghost{flex:0 0 auto;color:var(--state-danger)}.stuck-banner .btn-ghost:hover{background:#b91c1c14}.child-switch{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-4) 0 var(--space-2);margin-bottom:var(--space-2)}.child-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-full);background:var(--brand-surface);font:inherit;font-size:.9375rem;font-weight:500;color:var(--brand-text);cursor:pointer;white-space:nowrap;transition:all var(--fast) var(--ease)}.child-chip.on{border-color:var(--brand-primary);box-shadow:0 0 0 3px #0e5f521a}.child-head{margin:var(--space-5) 0 var(--space-4)}.child-head h2{font-size:1.375rem}.today-card{border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);background:linear-gradient(180deg,#fff,#fbfdfc);border-left:4px solid var(--brand-primary-300);box-shadow:var(--shadow-md)}.today-card.present{border-left-color:var(--state-ok);background:linear-gradient(180deg,#fff,#f6fcf8)}.today-card.late{border-left-color:var(--state-warn);background:linear-gradient(180deg,#fff,#fffcf7)}.today-card.absent{border-left-color:var(--state-danger);background:linear-gradient(180deg,#fff,#fefafa)}.today-card.unknown{border-left-color:var(--line-strong)}.today-label{font-size:.8125rem;color:var(--brand-text-muted);margin-bottom:var(--space-1)}.today-status{font-family:var(--font-display);font-size:1.25rem;font-weight:600;letter-spacing:-.021em;color:var(--brand-dark)}.care-timeline.family li{font-size:.9375rem;padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.care-timeline.family li:last-child{border-bottom:none}.family-foot{font-size:.8125rem;margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--line)}.readiness{background:linear-gradient(180deg,#fff,#fbfdfc);border-radius:var(--radius-lg);padding:var(--space-5);margin:var(--space-5) 0 var(--space-6);box-shadow:var(--shadow-md)}.readiness-count{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}.readiness-count strong{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.03em;color:var(--brand-primary)}.readiness-count span{color:var(--brand-text-muted);font-size:.9375rem}.readiness-bar{height:8px;border-radius:var(--radius-full);background:#0b1f1c14;overflow:hidden;margin-bottom:var(--space-3)}.readiness-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--brand-primary-300),var(--brand-primary));transition:width var(--normal) var(--ease)}.pill-danger{background:var(--tint-danger);color:var(--state-danger)}.register-pickers{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end;margin-bottom:var(--space-4)}.register-pickers label{display:flex;flex-direction:column;gap:4px}.register-pickers span{font-size:.75rem;color:var(--brand-text-muted)}.register-pickers select,.register-pickers input{font:inherit;font-size:.9375rem;padding:var(--space-2) var(--space-3);min-height:42px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--brand-surface);color:var(--brand-text)}.file-btn{position:relative;overflow:hidden;cursor:pointer}.file-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.expiry-row{display:flex;align-items:flex-end;gap:var(--space-4);padding:0 var(--space-4) var(--space-4)}.expiry-row label{display:flex;flex-direction:column;gap:4px}.expiry-row span{font-size:.75rem;color:var(--brand-text-muted)}.expiry-row input{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.print-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#6b7280;overflow:auto;padding:var(--space-6) var(--space-4) var(--space-10)}.print-actions{display:flex;justify-content:flex-end;gap:var(--space-3);max-width:210mm;margin:0 auto var(--space-4)}.print-actions .btn-ghost{background:#ffffffe6}.sheet{background:#fff;max-width:210mm;margin:0 auto;padding:16mm 14mm;box-shadow:var(--shadow-lg);color:#111}.sheet-head{text-align:center;margin-bottom:var(--space-6)}.sheet-head h1{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:2px;color:#111}.sheet-title{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;margin-top:var(--space-2)}.sheet-sub{font-size:.875rem;margin-top:2px}.sheet-strap{font-size:.6875rem;color:#555;margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid #ddd}.sheet-table{width:100%;border-collapse:collapse;font-size:.75rem}.sheet-table th,.sheet-table td{border:1px solid #999;padding:5px 6px;text-align:left;vertical-align:top}.sheet-table th{background:#f0f0f0;font-weight:600;font-size:.6875rem}.sheet-table .num{text-align:center;font-variant-numeric:tabular-nums}.sheet-table .flag{color:#b91c1c;font-weight:700;text-align:center}.sheet-empty{font-size:.875rem;color:#555;padding:var(--space-8) 0;text-align:center}.sheet-foot{margin-top:var(--space-8)}.sheet-foot .sign{display:flex;justify-content:space-between;gap:var(--space-8);font-size:.75rem;color:#333}.sheet-foot .sign span{flex:1;border-top:1px solid #999;padding-top:4px;margin-top:var(--space-8)}.sheet-gen{font-size:.625rem;color:#888;margin-top:var(--space-5);text-align:right}@media print{body.printing .shell{display:none!important}body.printing .print-overlay{position:static;background:none;padding:0;overflow:visible}body.printing .print-actions{display:none!important}body.printing .sheet{box-shadow:none;max-width:none;padding:0;margin:0}@page{size:A4;margin:14mm}thead{display:table-header-group}tr,.sheet-foot{break-inside:avoid}}.invite-card{background:linear-gradient(180deg,#fff,#f6fcf8);border-left:4px solid var(--state-ok);border-radius:var(--radius-lg);padding:var(--space-5);margin:var(--space-5) 0;box-shadow:var(--shadow-md)}.invite-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4)}.invite-pw{display:flex;flex-direction:column;gap:2px;padding:var(--space-3) var(--space-4);background:var(--brand-surface);border:1px dashed var(--brand-primary-300);border-radius:var(--radius);margin-bottom:var(--space-3)}.invite-pw span{font-size:.75rem;color:var(--brand-text-muted)}.invite-pw strong{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.01em;color:var(--brand-primary)}.invite-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.invite-actions .btn-primary{text-decoration:none;display:inline-flex;align-items:center}.invite-actions .btn-ghost{text-decoration:none}.pupil-picker{max-height:260px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:var(--radius);padding:var(--space-2)}.pupil-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:.9375rem}.pupil-option:hover{background:var(--brand-light)}.pupil-name{flex:1;min-width:0}.pupil-class{font-size:.8125rem;color:var(--brand-text-muted)}.check-line{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.field select{width:100%;font:inherit;font-size:1rem;padding:var(--space-3);min-height:48px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--brand-surface);color:var(--brand-text)}
