:root{--bg: #0f1620;--surface: #17202c;--surface-raised: #1e2937;--border: #2a3646;--border-strong: #3a4859;--text: #e8edf4;--text-muted: #8fa0b6;--text-dim: #6b7a8f;--accent: #3b82f6;--accent-bright: #60a5fa;--accent-dim: rgba(59, 130, 246, .14);--good: #34d399;--good-dim: rgba(52, 211, 153, .14);--warn: #fbbf24;--warn-dim: rgba(251, 191, 36, .12);--bad: #f87171;--bad-dim: rgba(248, 113, 113, .12);--radius: 14px;--radius-sm: 10px;--radius-lg: 18px;--formbar-height: 78px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--shadow: 0 8px 28px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}h1{font-size:1.55rem;line-height:1.22;letter-spacing:-.02em;margin:0 0 8px}h2{font-size:1.1rem;letter-spacing:-.01em;margin:0 0 8px}.muted{color:var(--text-muted);margin:0 0 20px}.small{font-size:.86rem}a{color:var(--accent-bright)}.container{width:100%;max-width:680px;margin:0 auto;padding:22px 18px calc(var(--formbar-height) + env(safe-area-inset-bottom) + 28px)}.container:focus{outline:none}.splash{min-height:100dvh;display:grid;place-items:center}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand{font-weight:700;font-size:1.15rem;letter-spacing:-.015em;display:flex;flex-direction:column}.brand__tag{font-size:.72rem;font-weight:400;color:var(--text-dim);letter-spacing:.01em;margin-top:2px}.brand--small{font-size:.95rem}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;background:#0f1620ed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.appbar__back{flex:0 0 auto}.appbar__progress{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.appbar__percent{font-size:.76rem;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:34px;text-align:right}.progress{flex:1;height:6px;background:var(--surface-raised);border-radius:99px;overflow:hidden}.progress__fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--good));border-radius:99px;transition:width .35s ease}.savestate{flex:0 0 auto;font-size:.72rem;color:var(--text-dim);min-width:56px;text-align:right}.savestate--saving,.savestate--pending{color:var(--warn)}.savestate--saved{color:var(--good)}.savestate--retrying{color:var(--warn)}.savestate--error{color:var(--bad);font-weight:600}.sectionnav{display:flex;gap:8px;overflow-x:auto;padding:12px 14px;border-bottom:1px solid var(--border);scrollbar-width:none;scroll-snap-type:x proximity}.sectionnav::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;scroll-snap-align:center;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:99px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:.83rem;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.chip.is-complete:not(.is-active){color:var(--good);border-color:#34d39961}.chip__tick{font-size:.72rem}.section-intro{margin-bottom:22px}.section-intro__icon{display:block;font-size:1.9rem;margin-bottom:6px;line-height:1}.section-intro__blurb{color:var(--text-muted);font-size:.93rem;margin:8px 0 0;padding-left:12px;border-left:2px solid var(--border)}.q{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px;animation:rise .2s ease both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.q--heading{background:transparent;border:none;border-left:3px solid var(--warn);border-radius:0;padding:4px 0 4px 14px;margin-bottom:18px;animation:none}.q--heading p{margin:0;color:var(--text-muted);font-size:.9rem}.q--prefilled{border-color:#60a5fa6b}.q__prefill{display:inline-block;margin:0 0 10px;padding:3px 9px;border-radius:99px;background:var(--accent-dim);color:var(--accent-bright);font-size:.72rem}.q__label{display:block;font-weight:600;margin-bottom:4px}.q__required{color:var(--accent)}.q__help{color:var(--text-muted);font-size:.86rem;margin:0 0 12px}.q__evidence{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border)}.input{width:100%;padding:13px 14px;font-size:16px;font-family:inherit;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.input--multiline{min-height:100px;resize:vertical;line-height:1.5}.input--select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%238fa0b6' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.input-prefix{position:relative}.input-prefix__symbol{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input--prefixed{padding-left:29px}.label{display:block;font-size:.85rem;color:var(--text-muted);margin:18px 0 6px}.yesno{display:flex;gap:8px}.yesno__button{flex:1;padding:14px 8px;font-size:.95rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;min-height:48px}.yesno__button:active{transform:scale(.97)}.yesno__button.is-on.yesno__button--yes{background:var(--good);border-color:var(--good);color:#06281c}.yesno__button.is-on.yesno__button--no{background:var(--surface);border-color:var(--text-muted);color:var(--text)}.yesno__button.is-on.yesno__button--unsure{background:var(--warn);border-color:var(--warn);color:#3a2a00}.options{display:flex;flex-direction:column;gap:8px}.option{display:flex;align-items:center;gap:11px;padding:13px 14px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-family:inherit;font-size:.95rem;color:var(--text);transition:all .15s;min-height:48px}.option:hover{border-color:var(--border-strong)}.option.is-on{border-color:var(--accent);background:var(--accent-dim)}.option__marker{width:21px;height:21px;flex:0 0 21px;border:2px solid var(--border-strong);border-radius:50%;display:grid;place-items:center;font-size:11px;color:transparent}.option--multi .option__marker{border-radius:5px}.option.is-on .option__marker{border-color:var(--accent);background:var(--accent);color:#fff}.repeater__row{border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;margin-bottom:10px;background:var(--surface-raised)}.repeater__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.repeater__number{font-weight:700;font-size:.9rem;color:var(--text-muted)}.repeater__field{margin-bottom:11px}.repeater__field:last-child{margin-bottom:0}.repeater__label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:5px}.filedrop__zone{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:14px;background:#3b82f60a;transition:border-color .15s,background .15s}.filedrop__zone.is-dragging{border-color:var(--accent);border-style:solid;background:var(--accent-dim)}.filedrop__zone.is-disabled{opacity:.55;pointer-events:none}.filedrop__dragging{margin:0;padding:18px 0;text-align:center;font-weight:600;color:var(--accent-bright)}.filedrop__hint{margin:0 0 11px;font-size:.83rem;color:var(--text-muted)}.filedrop__actions{display:flex;gap:8px;flex-wrap:wrap}.filedrop__droptext{display:none}.filedrop__problem{margin:10px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--warn-dim);border-left:3px solid var(--warn);font-size:.84rem;color:var(--warn)}.upload-progress{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:.76rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.upload-progress__track{flex:1;height:5px;background:var(--surface-raised);border-radius:99px;overflow:hidden}.upload-progress__fill{height:100%;background:var(--accent);transition:width .2s ease}.attachments{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}.attachment{display:flex;align-items:center;gap:10px;padding:8px 11px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.attachment__thumb{width:36px;height:36px;flex:0 0 36px;border-radius:6px;object-fit:cover;background:var(--bg)}.attachment__thumb--icon{display:grid;place-items:center;font-size:1.05rem}.attachment__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}.attachment__name:hover{color:var(--accent-bright)}.attachment__size{color:var(--text-dim);font-size:.76rem;flex:0 0 auto}.attachment__remove{background:none;border:none;color:var(--text-dim);font-size:1.05rem;cursor:pointer;padding:4px 6px;line-height:1;border-radius:6px}.attachment__remove:hover{color:var(--bad);background:var(--bad-dim)}.btn{padding:13px 18px;font-size:.95rem;font-weight:600;font-family:inherit;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .15s;min-height:46px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-bright)}.btn--secondary{background:var(--surface-raised);color:var(--text);border-color:var(--border)}.btn--secondary:hover:not(:disabled){border-color:var(--border-strong)}.btn--soft{background:var(--accent-dim);color:var(--accent-bright);border:1px solid rgba(59,130,246,.4);flex:1 1 150px}.btn--soft:hover:not(:disabled){background:#3b82f638}.btn--ghost{background:none;color:var(--text-muted);padding:8px 10px;font-size:.86rem;min-height:auto}.btn--ghost:hover:not(:disabled){color:var(--text)}.btn--block{width:100%;display:block}.btn--large{padding:16px 20px;font-size:1rem;margin-top:22px}.btn--small{padding:5px 10px;font-size:.8rem;min-height:auto}.formbar{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;gap:10px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:#0f1620f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.formbar .btn{flex:1}.formbar .btn--secondary{flex:0 0 34%}.signin{min-height:100dvh;display:grid;place-items:center;padding:20px}.signin__card{width:100%;max-width:420px}.signin__card .brand{margin-bottom:30px}.signin__alt{margin-top:32px;padding-top:18px;border-top:1px solid var(--border);font-size:.83rem;color:var(--text-dim);text-align:center}.yearlist{display:flex;flex-direction:column;gap:12px}.yearcard{display:flex;align-items:center;gap:15px;width:100%;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:border-color .15s,transform .1s}.yearcard:hover{border-color:var(--accent)}.yearcard:active{transform:scale(.99)}.yearcard__year{font-size:1.55rem;font-weight:700;letter-spacing:-.02em;flex:0 0 auto}.yearcard__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.yearcard__title{font-weight:600;font-size:.93rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.yearcard__badge{font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:99px;background:var(--accent-dim);color:var(--accent-bright)}.yearcard__meta{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--text-dim);flex-wrap:wrap}.yearcard__chevron{color:var(--text-dim);font-size:1.4rem;flex:0 0 auto}.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.73rem;font-weight:600}.pill--not_started{background:var(--surface-raised);color:var(--text-muted)}.pill--in_progress{background:var(--warn-dim);color:var(--warn)}.pill--submitted,.pill--in_review{background:var(--accent-dim);color:var(--accent-bright)}.pill--queries{background:var(--bad-dim);color:var(--bad)}.pill--complete{background:var(--good-dim);color:var(--good)}.summary{margin:0 0 26px}.summary__row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--border)}.summary__row dt{color:var(--text-muted);font-size:.9rem}.summary__row dd{margin:0;font-weight:600;text-align:right}.outstanding__list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:8px}.outstanding__list button{width:100%;display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--warn-dim);border:none;border-left:3px solid var(--warn);border-radius:0 var(--radius-sm) var(--radius-sm) 0;text-align:left;font-family:inherit;color:var(--text);font-size:.89rem;cursor:pointer}.outstanding__list button:hover{background:#fbbf2433}.outstanding__where{color:var(--text-dim);font-size:.78rem}.review__note{margin-top:16px;text-align:center}.notice{padding:12px 14px;border-radius:var(--radius-sm);font-size:.88rem;margin:0 0 18px;border-left:3px solid}.notice--good{background:var(--good-dim);border-color:var(--good);color:var(--good)}.notice--warn{background:var(--warn-dim);border-color:var(--warn);color:var(--warn)}.notice--error{background:var(--bad-dim);border-color:var(--bad);color:var(--bad)}.toasts{position:fixed;bottom:calc(var(--formbar-height) + env(safe-area-inset-bottom) + 14px);left:50%;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:430px;pointer-events:none}.toast{padding:12px 16px;border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border-strong);font-size:.87rem;box-shadow:var(--shadow);animation:toastIn .2s ease both}.toast--success{border-color:var(--good);color:var(--good)}.toast--error{border-color:var(--bad);color:var(--bad)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:70;margin:0;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:var(--warn);color:#3a2a00;font-size:.84rem;font-weight:600;text-align:center}@media (hover: hover) and (pointer: fine){.filedrop__droptext{display:block;margin:11px 0 0;font-size:.82rem;color:var(--text-dim);text-align:center}.filedrop__camera{display:none}.filedrop__zone{padding:20px}}@media (min-width: 900px){.questionnaire{display:grid;grid-template-columns:260px 1fr;grid-template-areas:"bar  bar" "nav  main";min-height:100dvh}.questionnaire .appbar{grid-area:bar}.questionnaire .sectionnav{grid-area:nav;flex-direction:column;overflow-x:visible;overflow-y:auto;border-bottom:none;border-right:1px solid var(--border);padding:18px 14px;gap:4px;align-self:start;position:sticky;top:62px;max-height:calc(100dvh - 62px)}.questionnaire .chip{width:100%;justify-content:flex-start;border-radius:var(--radius-sm);white-space:normal;text-align:left;padding:10px 12px}.questionnaire .container{grid-area:main;padding-bottom:40px}.questionnaire .formbar{grid-area:main;position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-top:1px solid var(--border);max-width:680px;margin:8px auto 40px;padding:18px;align-self:end}.toasts{bottom:24px;left:auto;right:24px;transform:none}h1{font-size:1.85rem}.yearlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}@media (prefers-contrast: more){:root{--border: #51607a;--border-strong: #6b7d99;--text-muted: #b6c3d4}}
