@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--leading-tight:1.25;--leading-normal:1.5;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.grid{display:grid}.hidden{display:none}.table{display:table}.italic{font-style:italic}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--black:#070707;--cream:#f2ede4;--orange:#ff5a1f;--orange-bright:#ff6a2b;--on-orange:#fff;--bg:var(--black);--surface:#11100f;--surface-raised:#1a1917;--text:var(--cream);--text-soft:#c6c0b8;--text-dim:#aaa49c;--muted:#a29c93;--line:#f2ede430;--rule:#6c6862;--header-bg:#070707d6;--contrast-bg:var(--cream);--contrast-text:var(--black);--accent:var(--orange);--accent-text:var(--orange);--accent-solid:#c93d0b;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--info:#60a5fa;--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;--space-12:3rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2rem;--leading-tight:1.15;--leading-normal:1.55;--radius:0;--tap-target:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:var(--cream);--surface:#e8e1d3;--surface-raised:#ded6c6;--text:var(--black);--text-soft:#4d473e;--text-dim:#5d564c;--muted:#6d665b;--line:#07070729;--rule:#9a9287;--header-bg:#f2ede4d9;--contrast-bg:var(--black);--contrast-text:var(--cream);--accent-text:#c93d0b;--success:#15803d;--warning:#a16207;--danger:#b91c1c;--info:#1d4ed8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}:focus-visible{outline:2px solid var(--orange-bright);outline-offset:3px}a{color:inherit}button,[role=button],input[type=submit]{min-height:var(--tap-target);border-radius:var(--radius)}input,select,textarea{font-family:inherit;font-size:var(--text-base);border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-shell{min-height:100svh;padding:var(--space-8) var(--space-5) var(--space-10);flex-direction:column;justify-content:flex-end;display:flex}@media (min-width:640px){.auth-shell{padding:var(--space-10) var(--space-5);justify-content:center}}.auth-card{width:100%;max-width:26rem;margin:0 auto}.auth-wordmark{margin:0 0 var(--space-8);font-size:var(--text-xl);letter-spacing:-.03em;font-weight:800}.auth-wordmark span{color:var(--accent)}.auth-shell h1{margin:0 0 var(--space-3);font-size:var(--text-2xl);line-height:var(--leading-tight);letter-spacing:-.02em}.auth-intro{margin:0 0 var(--space-5);color:var(--text-soft)}.auth-form{gap:var(--space-5);margin-top:var(--space-6);flex-direction:column;display:flex}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);font-weight:700}.field input{width:100%;min-height:var(--tap-target);padding:var(--space-3);border:1px solid var(--line);background:var(--surface);color:var(--text)}.field input:focus-visible{border-color:var(--orange-bright)}.field-hint{color:var(--muted);font-size:var(--text-sm);margin:0}.password-row{gap:var(--space-2);display:flex}.password-row input{flex:1;min-width:0}.reveal{padding:0 var(--space-3);border:1px solid var(--line);color:var(--text-soft);font-size:var(--text-sm);cursor:pointer;background:0 0;flex:none;font-weight:700}.submit{width:100%;padding:var(--space-3) var(--space-4);background:var(--accent-solid);color:var(--on-orange);font-size:var(--text-base);cursor:pointer;border:none;font-weight:800}.submit:disabled{opacity:.45;cursor:not-allowed}.form-error{padding:var(--space-3);border-left:3px solid var(--danger);background:var(--surface);color:var(--text);font-size:var(--text-sm);margin:0}.auth-help{color:var(--muted);font-size:var(--text-sm);margin:0}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line);background:var(--header-bg);flex-wrap:wrap;display:flex}.app-wordmark{font-size:var(--text-lg);letter-spacing:-.03em;margin:0;font-weight:800}.app-wordmark span{color:var(--accent)}.app-nav{gap:var(--space-5);font-size:var(--text-sm);font-weight:700;display:flex}.app-header-end{align-items:center;gap:var(--space-4);margin-left:auto;display:flex}.app-identity{color:var(--muted);font-size:var(--text-sm)}.ghost{padding:var(--space-2) var(--space-3);border:1px solid var(--line);color:var(--text);font-size:var(--text-sm);cursor:pointer;background:0 0;font-weight:700}.app-main{width:100%;padding:var(--space-6) var(--space-5) var(--space-12);flex:1}.student .app-main{max-width:40rem;font-size:var(--text-lg);margin:0 auto}.teacher .app-main{max-width:72rem;margin:0 auto}.app-main h1{margin:0 0 var(--space-3);font-size:var(--text-3xl);line-height:var(--leading-tight);letter-spacing:-.02em}.app-main h2{margin:var(--space-8) 0 var(--space-4);font-size:var(--text-xl);letter-spacing:-.02em}.page-head .eyebrow{margin:0 0 var(--space-2);color:var(--accent-text);font-size:var(--text-xs);letter-spacing:.11em;text-transform:uppercase;font-weight:800}.lede{color:var(--text-soft);margin:0}.empty-state{margin-top:var(--space-6);padding:var(--space-6);border:1px dashed var(--line);background:var(--surface)}.empty-state p{margin:0;font-weight:700}.empty-hint{color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-2)!important;font-weight:400!important}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--space-3);border-bottom:1px solid var(--line);text-align:left}.data-table th{color:var(--muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.import-form{gap:var(--space-4);max-width:34rem;margin-top:var(--space-6);flex-direction:column;display:flex}.import-form .submit{width:auto;padding:var(--space-3) var(--space-6);align-self:flex-start}.diff{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--line)}.diff-summary{margin:var(--space-5) 0;background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1px;padding:0;list-style:none;display:grid}.diff-summary li{gap:var(--space-1);padding:var(--space-4);background:var(--surface);font-size:var(--text-sm);flex-direction:column;display:flex}.diff-count{font-size:var(--text-2xl);font-weight:800;line-height:1}.diff-summary li.warn .diff-count{color:var(--warning)}.diff-summary li.danger .diff-count{color:var(--danger)}.diff-block{margin:var(--space-5) 0;padding:var(--space-4);border-left:3px solid var(--line);background:var(--surface);font-size:var(--text-sm)}.diff-block h3{margin:0 0 var(--space-2);font-size:var(--text-base)}.diff-block ul{margin:var(--space-2) 0;padding-left:var(--space-5)}.diff-block p{margin:var(--space-2) 0 0;color:var(--text-soft)}.warn-block{border-left-color:var(--warning)}.danger-block{border-left-color:var(--danger)}.ok-block{border-left-color:var(--success)}.execute-block{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--line);flex-direction:column;max-width:40rem;display:flex}.execute-block .submit{width:auto;padding:var(--space-3) var(--space-6);align-self:flex-start}.back-link{margin-top:var(--space-10)}.back-link a{text-decoration:underline}.cta{margin-top:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--accent-solid);color:var(--on-orange);font-size:var(--text-sm);font-weight:800;display:inline-block}.eyebrow a{text-decoration:underline}.data-table a{font-weight:700;text-decoration:underline}.student-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.student-card{padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.student-card form{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.student-card.is-archived .student-identity{color:var(--muted)}.student-identity{min-width:12rem}.student-name{margin:0;font-weight:700}.student-login{margin:var(--space-1) 0 0;color:var(--muted);font-size:var(--text-sm)}.student-login code{color:var(--text-soft)}.student-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.confirm-inline{gap:var(--space-2);display:flex}.ghost.danger{border-color:var(--danger);color:var(--danger)}.tag{margin-left:var(--space-2);padding:0 var(--space-2);border:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:700;display:inline-block}.tag-soft{text-transform:none;letter-spacing:0;border-style:dashed}.student-notice{margin:var(--space-3) 0 0;color:var(--text-soft);font-size:var(--text-sm)}.password-once{margin-top:var(--space-3);padding:var(--space-4);border:1px solid var(--accent);background:var(--surface-raised)}.password-once-label{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:700}.password-once .password-row{align-items:center}.password-once code{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--line);background:var(--surface);font-size:var(--text-lg);letter-spacing:.08em;word-break:break-all;flex:1}.password-once .field-hint{margin-bottom:0}.archived-section{margin-top:var(--space-10)}.archived-section summary{cursor:pointer;color:var(--muted);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.archived-section .field-hint{margin-top:var(--space-3);max-width:40rem}.class-section{margin-top:var(--space-12)}.composer{gap:var(--space-3);max-width:40rem;margin-bottom:var(--space-8);flex-direction:column;display:flex}.composer textarea{width:100%;padding:var(--space-3);border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:var(--text-base);resize:vertical;font-family:inherit;line-height:1.5}.composer .submit{width:auto;padding:var(--space-3) var(--space-6);align-self:flex-start}.checkbox{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;display:flex}.announcement-list{margin:0;padding:0;list-style:none}.announcement{padding:var(--space-4) 0;border-top:1px solid var(--line)}.announcement.is-archived{color:var(--muted)}.announcement-meta{align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;display:flex}.announcement-body{margin:var(--space-2) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.announcement-reads{margin:var(--space-2) 0 0;color:var(--muted);font-size:var(--text-sm)}.announcement-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.student-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.thread-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.thread-row{border-bottom:1px solid var(--line)}.thread-row a{justify-content:space-between;align-items:baseline;gap:var(--space-2);padding:var(--space-4) 0;flex-wrap:wrap;display:flex}.thread-name{font-weight:700}.thread-date{color:var(--muted);font-size:var(--text-sm)}.conversation{max-width:44rem}.conversation-notice{margin:0 0 var(--space-6);padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent);background:var(--surface);color:var(--text-soft);font-size:var(--text-sm)}.message-list{margin:0 0 var(--space-8);padding:0;list-style:none}.message{padding:var(--space-4) 0;border-bottom:1px solid var(--line)}.message-meta{align-items:center;gap:var(--space-2);color:var(--muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;margin:0;display:flex}.message-author{color:var(--text-soft);font-weight:800}.message.is-mine .message-author{color:var(--accent-text)}.message-body{margin:var(--space-2) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.message-edit{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.message-edit textarea{width:100%;padding:var(--space-3);border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:var(--text-base);resize:vertical;font-family:inherit;line-height:1.5}.message-edit-actions{gap:var(--space-2);display:flex}.link-button{margin-top:var(--space-2);color:var(--muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;text-decoration:underline}.preview-notice{margin:0 0 var(--space-6);padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent);background:var(--surface);color:var(--text-soft);font-size:var(--text-sm);max-width:44rem}a.ghost{text-decoration:none;display:inline-block}.invite{margin-bottom:var(--space-8);padding:var(--space-5);border:1px solid var(--line);background:var(--surface);max-width:44rem}.invite p{margin:0 0 var(--space-2)}.profile-form{gap:var(--space-8);max-width:44rem;margin-top:var(--space-8);flex-direction:column;display:flex}.question{border:0;border-top:1px solid var(--line);padding:0;padding-top:var(--space-5);margin:0}.question legend{font-size:var(--text-lg);padding:0;font-weight:700}.options{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.option{align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-4);border:1px solid var(--line);background:var(--surface);font-size:var(--text-base);cursor:pointer;display:inline-flex}.option.is-chosen{border-color:var(--accent);background:var(--accent-solid);color:var(--on-orange);font-weight:700}.option.is-full{opacity:.45;cursor:not-allowed}.option input{opacity:0;width:1px;height:1px;position:absolute}.option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.profile-form .submit{width:auto;padding:var(--space-3) var(--space-6);align-self:flex-start}.answer-list{max-width:44rem;margin:0}.answer-list div{padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.answer-list dt{color:var(--muted);font-size:var(--text-sm)}.answer-list dd{margin:var(--space-1) 0 0;font-weight:700}.tally{max-width:44rem;margin:0;padding:0;list-style:none}.tally li{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;grid-template-columns:12rem 1fr auto;display:grid}.tally-label{font-size:var(--text-sm)}.tally-bar{background:var(--accent-solid);min-width:2px;height:.75rem}.tally-count{font-variant-numeric:tabular-nums;font-weight:700}@media (max-width:560px){.tally li{grid-template-columns:1fr auto}.tally-bar{grid-column:1/-1}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
