:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--green-900:#143f27;--green-700:#1f5f3a;--green-100:#e6f0e9;--ink:#1a1a1a;--ink-muted:#5b615d;--line:#d9ddd9;--surface:#fff;--ground:#f5f6f3;--error:#a4262c;--error-bg:#fbeaea;--info-bg:#e6f0e9;--radius:12px;--tap:48px;--space:1rem;color:var(--ink);background:var(--ground);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--ground);min-height:100dvh;margin:0}h1,h2,p{margin:0}h2{font-size:1.25rem;line-height:1.3}.app{flex-direction:column;min-height:100dvh;display:flex}.page{width:100%;max-width:36rem;padding:var(--space) max(var(--space), env(safe-area-inset-right)) var(--space) max(var(--space), env(safe-area-inset-left));flex:1;margin:0 auto}.page-centered{min-height:100dvh;padding-top:max(var(--space), env(safe-area-inset-top));padding-bottom:max(var(--space), env(safe-area-inset-bottom));flex-direction:column;justify-content:center;gap:2rem;display:flex}.stack{gap:var(--space);flex-direction:column;display:flex}.actions-secondary{flex-direction:column;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}.brand{text-align:center}.brand-name{letter-spacing:-.02em;color:var(--green-700);font-size:2rem;font-weight:800}.brand-name-small{font-size:1.25rem}.brand-tagline{color:var(--ink-muted)}.topbar{z-index:1;justify-content:space-between;align-items:center;gap:var(--space);padding:max(.5rem, env(safe-area-inset-top)) max(var(--space), env(safe-area-inset-right)) .5rem max(var(--space), env(safe-area-inset-left));background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar-title{flex-direction:column;min-width:0;display:flex}.topbar-subtitle{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;overflow:hidden}.tabbar{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:1fr 1fr;display:grid;position:sticky;bottom:0}.tab{min-height:var(--tap);font:inherit;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-top:3px solid #0000;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.tab[aria-current=page]{color:var(--green-700);border-top-color:var(--green-700)}.field{flex-direction:column;gap:.375rem;display:flex}.field-label{font-weight:600}input{width:100%;min-height:var(--tap);background:var(--surface);color:var(--ink);font:inherit;border:1px solid #9aa19c;border-radius:8px;padding:.625rem .75rem;font-size:1rem}input:focus-visible{outline:3px solid var(--green-700);outline-offset:1px}input[aria-invalid=true]{border-color:var(--error)}input[aria-invalid=true]:focus-visible{outline-color:var(--error)}input:disabled{background:var(--ground)}.input-code{letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.75rem}a.button{justify-content:center;align-items:center;text-decoration:none;display:flex}.button{min-height:var(--tap);font:inherit;cursor:pointer;border:0;border-radius:8px;padding:.75rem 1rem;font-weight:700}.button-primary{background:var(--green-700);color:#fff;width:100%}.button-primary:active{background:var(--green-900)}.button-secondary{background:var(--surface);width:100%;color:var(--ink);border:1px solid #9aa19c}.button-danger{background:var(--error);color:#fff;width:100%}.button:disabled{opacity:.5;cursor:default}.button-link{min-height:var(--tap);font:inherit;color:var(--green-700);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0 .25rem;text-decoration:underline}.button-link:disabled{color:var(--ink-muted);cursor:default;text-decoration:none}button:focus-visible{outline:3px solid var(--green-700);outline-offset:2px}.hint{color:var(--ink-muted);font-size:.875rem}.message{border-radius:8px;padding:.75rem}.message-error{background:var(--error-bg);color:var(--error)}.message-info{background:var(--info-bg);color:var(--green-900)}.break-anywhere{overflow-wrap:anywhere}.empty{text-align:center;color:var(--ink-muted);flex-direction:column;gap:.5rem;margin-top:3rem;padding:1.5rem;display:flex}.empty h2{color:var(--ink)}.topbar-heading{text-align:center;font-weight:700}.back-link,.topbar-spacer{align-items:center;min-width:4.5rem;text-decoration:none;display:flex}.back-link span{margin-right:.25rem;font-size:1.5rem;line-height:1}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none;overflow:hidden}.list li+li{border-top:1px solid var(--line)}.list-row{min-height:3.25rem;color:var(--ink);justify-content:space-between;align-items:center;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:flex}.list-row:active{background:var(--green-100)}.list-row:focus-visible{outline:3px solid var(--green-700);outline-offset:-3px}.list-row-chevron{color:var(--ink-muted);font-size:1.5rem}select{width:100%;min-height:var(--tap);background:var(--surface);color:var(--ink);font:inherit;border:1px solid #9aa19c;border-radius:8px;padding:.625rem .75rem}.preview-name{color:var(--ink)}.consent{border:0;min-width:0;margin:0;padding:0}.consent legend{float:left;width:100%;margin-bottom:.5rem;padding:0}.check{min-height:var(--tap);cursor:pointer;align-items:flex-start;gap:.75rem;display:flex}.check input{width:1.5rem;height:1.5rem;min-height:1.5rem;accent-color:var(--green-700);flex:none;margin:.125rem 0 0}.student-name{font-size:1.75rem;line-height:1.2}.facts{gap:.5rem;margin:0;display:grid}.facts div{justify-content:space-between;gap:1rem;display:flex}.facts dt{color:var(--ink-muted)}.facts dd{text-align:right;margin:0}.danger-zone{border-color:#e3b7b9}.bullets{gap:.5rem;margin:0;padding-left:1.25rem;display:grid}.dialog{border-radius:var(--radius);width:min(32rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--ink);border:0;padding:1.25rem}.dialog::backdrop{background:#00000073}
