:root{--ink:#e4eef8;--dim:#9db3c8;--mist:#0b1a2b;--paper:#112540;--raised:#1a3350;--raised-2:#21405f;--input:#0d2036;--sky:#43a1db;--btn:#2574bd;--deep:#3d98d5;--accent-text:#8fd3fa;--accent-soft:#43a1db24;--accent-ring:#43a1db61;--glow:0 0 22px #43a1db47;--line:#96bee629;--line-strong:#96bee652;--live:#21b573;--live-text:#5fdc9f;--live-soft:#21b57329;--amber:#f5a623;--amber-text:#f5c462;--amber-soft:#f5a62329;--fail:#e85c5c;--fail-text:#ff8a80;--fail-soft:#e85c5c29;--seg-active:#24446a;--r-sm:10px;--r:14px;--r-lg:18px;--shadow:0 18px 40px -24px #000000b3;--shadow-card:0 1px 0 #96bee60f inset,0 12px 32px -22px #000000bf;--sans:"Segoe UI Variable Text","Segoe UI",Selawik,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.2,.7,.2,1);font-family:var(--sans);color:var(--ink);background:var(--mist);font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}html[data-theme=light]{--ink:#122a42;--dim:#52687d;--mist:#f2f7fb;--paper:#fff;--raised:#eaf0f6;--raised-2:#f6f9fc;--input:#fff;--sky:#43a1db;--btn:#1f6cb3;--deep:#2470b3;--accent-text:#1f6cb3;--accent-soft:#e6f2fb;--accent-ring:#43a1db47;--glow:none;--line:#183a5e21;--line-strong:#183a5e3d;--live:#21b573;--live-text:#0b8150;--live-soft:#e4f6ec;--amber:#f5a623;--amber-text:#8a5a00;--amber-soft:#fff3dc;--fail:#e85c5c;--fail-text:#b93838;--fail-soft:#fff0f0;--seg-active:#fff;--shadow:0 14px 34px -26px #122a4259;--shadow-card:0 1px 2px #122a420f,0 10px 30px -24px #122a4259;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{flex-direction:column;min-height:100dvh;margin:0;display:flex}main{flex:1}a{color:var(--deep);text-underline-offset:3px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.025em;margin-bottom:10px;font-size:clamp(1.65rem,1.2rem + 1.6vw,2.25rem);font-weight:700;line-height:1.15}h2{letter-spacing:-.01em;font-size:1.05rem;font-weight:650;line-height:1.3}p{line-height:1.55}.muted{color:var(--dim)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:6px}.skip-link{background:var(--paper);z-index:50;border-radius:var(--r-sm);box-shadow:var(--shadow);padding:12px 16px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--line-strong);background:var(--input);width:100%;color:var(--ink);height:48px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease);border-radius:12px;padding:0 14px;line-height:1.4}textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--dim) 65%,transparent)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--sky);box-shadow:0 0 0 4px var(--accent-ring),var(--glow);outline:0}input:not([type=checkbox]):not([type=radio]):hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:color-mix(in srgb,var(--line-strong) 60%,var(--sky))}input:disabled,select:disabled,textarea:disabled{background:var(--raised);color:var(--dim);opacity:1}input[type=date]{min-width:0}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-unit{position:relative}.input-unit input{padding-right:56px}.input-unit>span{color:var(--dim);pointer-events:none;font-size:.8rem;font-weight:600;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.select-wrap{position:relative}.select-wrap select{appearance:none;padding-right:40px}.select-wrap select:invalid,.select-wrap select option[value=""]{color:var(--dim)}.select-chevron{color:var(--dim);pointer-events:none;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.label{color:var(--ink);font-size:.92rem;font-weight:600;line-height:1.35;display:block}.help{color:var(--dim);margin-top:3px;font-size:.78rem;line-height:1.4;display:block}.required{color:var(--fail-text)}fieldset{border:0;min-width:0;margin:0;padding:0}.button{min-height:46px;transition:background .15s var(--ease),border-color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:.92rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.5}.primary{background:var(--btn);color:#fff;box-shadow:0 8px 20px -12px #2574bdcc}.primary:focus-visible{box-shadow:var(--glow)}.primary:hover:not(:disabled){background:var(--deep)}.secondary{background:var(--paper);color:var(--ink);border-color:var(--line-strong)}.secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--sky)}.text-button{text-align:left;color:var(--deep);text-underline-offset:3px;font-size:inherit;background:0 0;border:0;padding:0;line-height:1.5;text-decoration:underline}.site-header{background:var(--paper);border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:saturate(1.2)blur(8px);backdrop-filter:saturate(1.2)blur(8px);background:color-mix(in srgb,var(--paper) 88%,transparent);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1120px;margin:auto;padding:14px 28px;display:flex}.brand{color:var(--ink);align-items:center;gap:14px;text-decoration:none;display:flex}.brand img{width:auto;height:34px;display:block}html[data-theme=light] .logo-dark,html:not([data-theme=light]) .logo-light{display:none}.theme-toggle{border:1px solid var(--line-strong);background:var(--paper);width:42px;height:42px;color:var(--dim);transition:color .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--sky)}html[data-theme=light] .theme-toggle .icon-sun,html:not([data-theme=light]) .theme-toggle .icon-moon{display:none}.brand-product{color:var(--dim);border-left:1px solid var(--line-strong);letter-spacing:.01em;padding-left:14px;font-size:.95rem;font-weight:600;line-height:1}.site-footer{width:100%;max-width:1120px;color:var(--dim);justify-content:space-between;gap:16px;margin:40px auto 0;padding:20px 28px 28px;font-size:.75rem;display:flex}.page-container{width:100%;max-width:1120px;margin:0 auto;padding:36px 28px 24px}.auth-layout{place-items:center;width:100%;padding:56px 20px;display:grid}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:420px;box-shadow:var(--shadow-card);gap:12px;padding:36px;display:grid}.auth-card h1{margin:0;font-size:1.5rem}.auth-card>p{margin:0}.auth-card>.button,.auth-card form>.button{justify-self:start;margin-top:6px}.auth-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.sign-in-form{gap:10px;margin-top:4px;display:grid}.sign-in-form>.button{width:100%;margin-top:4px}.sign-in-note{color:var(--dim);text-align:center;margin:6px 0 0;font-size:.78rem}.notice{border:1px solid color-mix(in srgb,var(--sky) 40%,transparent);background:var(--accent-soft);color:var(--ink);border-radius:12px;align-items:flex-start;gap:10px;margin:0 0 18px;padding:13px 16px;font-size:.88rem;line-height:1.5;display:flex}.notice.success{border-color:color-mix(in srgb,var(--live) 45%,transparent);background:var(--live-soft);color:var(--live-text)}.notice.success svg{flex:none;margin-top:1px}.error-notice,.notice.error-notice{border-color:color-mix(in srgb,var(--fail) 50%,transparent);background:var(--fail-soft);color:var(--fail-text);flex-direction:column;gap:6px}.notice ul{margin:4px 0 0;padding-left:18px}.notice li{margin:2px 0}.recovery-help{margin:4px 0 0;font-size:.82rem}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.page-heading h1{margin-bottom:2px}.page-heading .muted{overflow-wrap:anywhere;margin:0;font-size:.9rem}.empty-state{background:var(--paper);border:1px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;padding:44px 24px}.empty-state p{color:var(--dim);margin:0 auto}.assignment-list{gap:10px;display:grid}.assignment-row{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-card);transition:border-color .15s var(--ease),transform .2s var(--ease);align-items:center;gap:16px;padding:18px 20px;text-decoration:none;display:flex}.assignment-row:hover{border-color:var(--sky);transform:translateY(-1px)}.document-icon{background:var(--accent-soft);color:var(--accent-text);border-radius:12px;flex:0 0 44px;place-items:center;width:44px;height:44px;display:grid}.assignment-copy{flex:1;gap:3px;min-width:0;display:grid}.assignment-copy strong{font-size:1rem;font-weight:650}.assignment-copy>span{color:var(--dim);font-size:.82rem}.status{white-space:nowrap;background:var(--raised);color:var(--dim);letter-spacing:.01em;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.72rem;font-weight:650;line-height:1.3;display:inline-flex}.status:before{content:"";opacity:.75;background:currentColor;border-radius:50%;width:7px;height:7px}.status-draft{background:var(--amber-soft);color:var(--amber-text)}.status-submitted{background:var(--live-soft);color:var(--live-text)}.row-action{color:var(--deep);align-items:center;gap:3px;font-size:.85rem;font-weight:650;display:inline-flex}.back-link{color:var(--dim);align-items:center;gap:6px;margin-bottom:18px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--deep)}.form-shell{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:40px;display:grid}.form-rail{gap:18px;display:grid;position:sticky;top:84px}.rail-progress{gap:8px;display:grid}.rail-count{color:var(--dim);align-items:baseline;gap:6px;font-size:.82rem;display:flex}.rail-count strong{color:var(--ink);letter-spacing:-.02em;font-size:1.5rem;line-height:1}.bar{background:var(--raised);border-radius:999px;height:6px;overflow:hidden}.bar>span{background:linear-gradient(90deg,var(--sky),var(--btn));height:100%;transition:width .35s var(--ease);border-radius:999px;display:block}.stepper{gap:2px;display:grid}.stepper a{color:var(--dim);transition:background .15s var(--ease),color .15s var(--ease);border-radius:10px;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;margin:0 -10px;padding:8px 10px;font-size:.86rem;line-height:1.3;text-decoration:none;display:grid}.stepper a:hover{background:var(--paper);color:var(--ink)}.step-index{border:1.5px solid var(--line-strong);width:24px;height:24px;color:var(--dim);background:var(--input);border-radius:50%;place-items:center;font-size:.7rem;font-weight:700;display:grid}.stepper a.is-partial .step-index{border-color:var(--sky);color:var(--accent-text)}.stepper a.is-complete .step-index{border-color:var(--live);background:var(--live);color:#fff}.step-title{color:var(--ink);font-weight:600}.step-count{font-variant-numeric:tabular-nums;color:var(--dim);font-size:.72rem}.rail-state{color:var(--dim);border-top:1px solid var(--line);align-items:center;gap:8px;margin:0;padding-top:14px;font-size:.78rem;display:flex}.dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px}.dot-green{background:var(--live)}.dot-amber{background:var(--amber);animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #f5a62373}50%{box-shadow:0 0 0 5px #f5a62300}}.form-main{min-width:0;max-width:780px}.form-head{margin-bottom:18px}.form-head h1{margin-bottom:8px}.form-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.legend-badge{color:var(--dim);background:var(--paper);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.74rem;font-weight:600;line-height:1.3;display:inline-flex}.legend-badge svg{color:var(--dim)}.questionnaire{min-width:0}.form-section{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin-bottom:16px;scroll-margin-top:88px;overflow:hidden}.section-heading{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 22px;display:flex}.section-heading h2{flex:1;margin:0}.section-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent-text);border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.section-count{font-variant-numeric:tabular-nums;color:var(--dim);background:var(--raised);border-radius:999px;padding:4px 9px;font-size:.74rem;font-weight:650}.rows{display:grid}.row{border-top:1px solid var(--line);grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:center;gap:8px 24px;padding:14px 22px;display:grid}.row:first-child{border-top:0}.row-wide{grid-template-columns:1fr;align-items:start}.row-wide .row-label{padding-top:0}.row-label{align-self:center;gap:0;min-width:0;display:grid}.row-control{gap:6px;min-width:0;display:grid}.row.has-error{background:color-mix(in srgb,var(--fail-soft) 60%,transparent)}.field-error{color:var(--fail-text);align-items:center;gap:6px;margin:0;font-size:.78rem;display:flex}.row [aria-invalid=true]{border-color:var(--fail)}.segmented{background:var(--raised);border-radius:999px;grid-auto-columns:minmax(72px,1fr);grid-auto-flow:column;align-items:stretch;gap:3px;width:max-content;max-width:100%;padding:3px;display:inline-grid;position:relative}.seg{cursor:pointer;min-height:40px;color:var(--dim);transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease);border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0 18px;font-size:.88rem;font-weight:600;display:flex;position:relative}.seg input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.seg:hover{color:var(--ink)}.seg:has(input:checked){background:var(--seg-active);color:var(--accent-text);box-shadow:0 1px 3px #0000002e,0 0 0 1px color-mix(in srgb,var(--sky) 45%,transparent)}.seg:has(input:focus-visible){outline:3px solid var(--sky);outline-offset:2px;box-shadow:var(--glow)}.seg:has(input:disabled){cursor:default}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{cursor:pointer;border:1px solid var(--line-strong);background:var(--input);min-height:40px;color:var(--ink);transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease),transform .18s var(--ease);border-radius:999px;align-items:center;gap:7px;margin:0;padding:0 14px 0 12px;font-size:.88rem;font-weight:500;line-height:1.2;display:inline-flex;position:relative}.chip input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.chip:hover{border-color:var(--sky);background:var(--accent-soft)}.chip-icon{color:var(--dim);transition:color .18s var(--ease);flex:none}.chip-check{color:#0000;width:0;transition:width .18s var(--ease),margin .18s var(--ease),color .18s var(--ease);margin-right:-7px}.chip:has(input:checked){background:var(--btn);border-color:var(--btn);color:#fff}.chip:has(input:checked) .chip-icon{color:#fff}.chip:has(input:checked) .chip-check{color:#fff;width:14px;margin-right:0}.chip:has(input:focus-visible){outline:3px solid var(--sky);outline-offset:2px;box-shadow:var(--glow)}.chip:has(input:disabled){cursor:default}.chip:active:not(:has(input:disabled)){transform:scale(.98)}.blank{height:40px;color:var(--dim);align-items:center;padding:0 10px;font-size:.85rem;display:inline-flex}.submit-body{gap:16px;padding:18px 22px 22px;display:grid}.confirm{cursor:pointer;align-items:center;gap:12px;width:max-content;max-width:100%;margin:0;font-size:.92rem;font-weight:500;display:flex;position:relative}.confirm input{opacity:0;width:1px;height:1px;position:absolute}.confirm-box{border:1.5px solid var(--line-strong);background:var(--input);color:#0000;width:24px;height:24px;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease);border-radius:7px;flex:0 0 24px;place-items:center;display:grid}.confirm:has(input:checked) .confirm-box{background:var(--btn);border-color:var(--btn);color:#fff}.confirm:has(input:focus-visible) .confirm-box{outline:3px solid var(--sky);outline-offset:2px}.confirm:has(input:disabled){cursor:not-allowed;opacity:.6}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.version-note{color:var(--dim);text-align:right;margin:14px 0 0;font-size:.72rem}.is-submitted .row input:not([type=checkbox]):not([type=radio]),.is-submitted .row select,.is-submitted .row textarea{color:var(--ink);background:0 0;border-color:#0000;height:auto;min-height:40px;padding-left:0;font-weight:500}.is-submitted .row textarea{resize:none;min-height:0;padding:9px 0}.is-submitted .input-unit>span{margin-left:6px;position:static;left:0;right:auto;transform:none}.is-submitted .input-unit{align-items:center;display:flex}.is-submitted .input-unit input{width:auto;max-width:160px;padding-right:0}.is-submitted .select-chevron,:is(.is-submitted .chip:not(:has(input:checked)),.is-submitted .seg:not(:has(input:checked))){display:none}.is-submitted .segmented{background:0 0;padding:0}.is-submitted .seg:has(input:checked){background:var(--accent-soft);color:var(--accent-text);box-shadow:none}.is-submitted .chip:has(input:checked){background:var(--accent-soft);color:var(--accent-text);border-color:#0000}:is(.is-submitted .chip:has(input:checked) .chip-icon,.is-submitted .chip:has(input:checked) .chip-check){color:var(--accent-text)}.is-submitted .row-control{min-height:40px}.is-submitted .input-unit input:placeholder-shown+span{display:none}.is-submitted .row input::placeholder,.is-submitted .row textarea::placeholder,.is-submitted input[type=date]:not(:valid),.is-submitted input[type=date][value=""]{color:var(--dim)}.skeleton-stack{gap:14px;max-width:720px;display:grid}.skeleton{background:linear-gradient(90deg,var(--raised) 25%,var(--raised-2) 50%,var(--raised) 75%);background-size:200% 100%;border-radius:12px;height:56px;animation:1.4s linear infinite shimmer;display:block}.skeleton-title{width:60%;height:34px}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width:900px){.form-shell{grid-template-columns:1fr;gap:16px}.form-rail{z-index:10;background:color-mix(in srgb,var(--mist) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 0 8px;grid-template-columns:auto 1fr;align-items:center;gap:8px;margin:0 -20px;padding-inline:20px;position:sticky;top:62px}.rail-progress{grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center;gap:10px}.rail-count strong{font-size:1.1rem}.stepper{scrollbar-width:none;grid-column:1/-1;gap:6px;margin:0;padding-bottom:2px;display:flex;overflow-x:auto}.stepper::-webkit-scrollbar{display:none}.stepper a{background:var(--paper);border:1px solid var(--line);border-radius:999px;flex:none;grid-template-columns:auto auto;gap:6px;margin:0;padding:6px 10px 6px 6px;font-size:.78rem}.stepper a .step-count{display:none}.step-index{width:20px;height:20px;font-size:.62rem}.rail-state{display:none}.form-main{max-width:none}}@media (max-width:600px){.header-inner{padding:12px 18px}.brand img{height:28px}.page-container{padding:22px 20px 16px}.auth-layout{padding:28px 16px}.auth-card{padding:26px 22px}.site-footer{flex-direction:column;gap:6px;margin-top:24px;padding:20px}.page-heading{flex-direction:column;align-items:stretch}.page-heading form .button{width:100%}.assignment-row{flex-wrap:wrap;gap:12px;padding:14px}.assignment-copy{flex-basis:calc(100% - 60px)}.assignment-row>.status{margin-left:56px}.row-action{margin-left:auto}.section-heading{padding:14px 16px}.row{grid-template-columns:1fr;align-items:start;gap:8px;padding:14px 16px}.row-label{align-self:start}.segmented{grid-auto-columns:1fr;width:100%}.seg,.chip{min-height:44px}.chips{gap:8px}.submit-body{padding:16px}.form-actions .button{flex:140px}.form-rail{margin:0 -20px;padding-inline:20px;top:53px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
