:root{--font-size-question:32px;--font-size-option:24px;--font-size-hint:18px;--line-height:1.6;--option-padding:24px;--option-min-height:60px;--bg:#fff;--surface:#f5f7fb;--surface-2:#eaeef7;--text:#000;--text-muted:#2a2f3a;--primary:#0b3d91;--primary-text:#fff;--border:#15181f;--focus:#00e;--focus-bg:#ff6;--error:#b00020;--success:#1a7f37;--radius:10px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;font-size:18px;line-height:var(--line-height);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif}html[data-theme=dark]{--bg:#0e1117;--surface:#161b22;--surface-2:#20262e;--text:#f3f5f9;--text-muted:#d0d6df;--primary:#6aa6ff;--primary-text:#0a0f17;--border:#c5cad4;--focus:#ffcb44;--focus-bg:#4a3a00;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=high-contrast]{--bg:#000;--surface:#000;--surface-2:#0a0a0a;--text:#ff0;--text-muted:#ff0;--primary:#ff0;--primary-text:#000;--border:#ff0;--focus:#0ff;--focus-bg:#002a2a;--error:#f57;--success:#0f8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-font=large]{--font-size-question:38px;--font-size-option:28px;--font-size-hint:20px}html[data-font=x-large]{--font-size-question:46px;--font-size-option:34px;--font-size-hint:22px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100dvh;font-size:var(--font-size-hint);margin:0}:focus-visible{outline:4px solid var(--focus);outline-offset:3px;background-color:var(--focus-bg);border-radius:4px}button:focus-visible,.option-label:focus-within,input:focus-visible,textarea:focus-visible{outline:4px solid var(--focus);outline-offset:3px}.skip-link{left:var(--space-2);z-index:1000;background:var(--primary);color:var(--primary-text);padding:var(--space-1) var(--space-2);border-radius:var(--radius);font-weight:700;font-size:var(--font-size-option);text-decoration:none;position:absolute;top:-200px}.skip-link:focus{top:var(--space-2)}.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}.app-shell{max-width:800px;padding:var(--space-3) var(--space-2) var(--space-4);margin:0 auto}.survey-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);overflow:hidden}.site-header{align-items:stretch;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.site-header h1{margin:0;font-size:1.4rem;line-height:1.3}.toolbar{gap:var(--space-1) var(--space-2);flex-wrap:wrap;align-items:center;width:100%;display:flex}.toolbar fieldset{border:0;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;display:inline-flex}.toolbar fieldset+fieldset{margin-left:var(--space-1)}.toolbar legend{font-size:var(--font-size-hint);color:var(--text-muted);margin-right:4px;padding:0;font-weight:600}.toolbar button{background:var(--bg);color:var(--text);border:2px solid var(--border);font:inherit;font-size:var(--font-size-hint);cursor:pointer;border-radius:6px;min-height:40px;padding:6px 10px;line-height:1}.toolbar button[aria-pressed=true]{background:var(--primary);color:var(--primary-text);border-color:var(--primary);font-weight:700}main{padding:var(--space-3)}.welcome{text-align:left}.welcome h2{font-size:var(--font-size-question);margin-top:0}.welcome p{font-size:var(--font-size-option);white-space:pre-wrap}.intro{font-size:var(--font-size-hint);white-space:pre-wrap;margin-top:0}.progress{margin:var(--space-2) 0 var(--space-3)}.progress-track{background:var(--surface-2);border:2px solid var(--border);border-radius:999px;height:16px;overflow:hidden}.progress-bar{background:var(--primary);height:100%;transition:width .2s}.progress-text{font-size:var(--font-size-hint);color:var(--text);margin-top:6px;font-weight:600}.module-tag{background:var(--primary);color:var(--primary-text);font-size:var(--font-size-hint);margin-bottom:var(--space-1);border-radius:6px;padding:2px 10px;font-weight:700;display:inline-block}.question{border:0;margin:0;padding:0}.question legend{font-size:var(--font-size-question);margin-bottom:var(--space-2);padding:0;font-weight:700;line-height:1.3}.question .description{color:var(--text-muted);font-size:var(--font-size-hint);margin:0 0 var(--space-2);white-space:pre-wrap}.required-mark{color:var(--error);margin-left:4px}.options{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.option-label{align-items:center;gap:var(--space-2);background:var(--bg);border:3px solid var(--border);border-radius:var(--radius);padding:var(--option-padding);min-height:var(--option-min-height);cursor:pointer;font-size:var(--font-size-option);line-height:1.4;display:flex}.option-label:hover{border-color:var(--primary)}.option-label>span:last-child{flex:auto;min-width:0}.option-key{color:var(--primary);background:var(--bg);border:2px solid var(--primary);text-align:center;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2.2em;height:2.2em;font-size:.85em;font-weight:700;line-height:1;display:inline-flex}.option-label input[type=radio],.option-label input[type=checkbox]{appearance:none;background:var(--bg);border:3px solid var(--border);cursor:pointer;flex-shrink:0;width:28px;height:28px;margin:0;display:inline-block;position:relative}.option-label input[type=radio]{border-radius:50%}.option-label input[type=checkbox]{border-radius:6px}.option-label input[type=radio]:checked,.option-label input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.option-label input[type=radio]:checked:after{content:"";background:var(--primary-text);border-radius:50%;position:absolute;inset:5px}.option-label input[type=checkbox]:checked:after{content:"";border:solid var(--primary-text);border-width:0 3px 3px 0;width:8px;height:14px;position:absolute;top:2px;left:7px;transform:rotate(45deg)}.option-label:has(input:checked){border-color:var(--primary);background:var(--surface-2);font-weight:700}.option-label:has(input:checked) .option-key{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}textarea.text-input{width:100%;min-height:160px;padding:var(--space-2);font:inherit;font-size:var(--font-size-option);color:var(--text);background:var(--bg);border:3px solid var(--border);border-radius:var(--radius);resize:vertical}textarea.text-input:focus{border-color:var(--primary)}.voice-row{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.voice-status{font-size:var(--font-size-hint);color:var(--text-muted)}.scale{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.scale-labels{color:var(--text-muted);font-size:var(--font-size-hint);justify-content:space-between;margin-top:6px;display:flex}.scale-button{background:var(--bg);border:3px solid var(--border);border-radius:var(--radius);min-width:4rem;min-height:4rem;font:inherit;font-size:var(--font-size-option);cursor:pointer;color:var(--text);font-weight:700}.scale-button[aria-pressed=true]{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.contact-fields{gap:var(--space-2);flex-direction:column;display:flex}.contact-fields label{font-size:var(--font-size-option);font-weight:600}.contact-fields select,.contact-fields input[type=text]{width:100%;padding:var(--space-1);font:inherit;font-size:var(--font-size-option);color:var(--text);background:var(--bg);border:3px solid var(--border);border-radius:var(--radius);min-height:56px}.actions{margin-top:var(--space-3);gap:var(--space-1);flex-wrap:wrap;justify-content:space-between;display:flex}.btn{font:inherit;font-size:var(--font-size-option);border-radius:var(--radius);border:3px solid var(--primary);background:var(--primary);color:var(--primary-text);cursor:pointer;min-height:56px;padding:.8rem 1.6rem;font-weight:700}.btn.secondary{background:var(--bg);color:var(--text);border-color:var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.error-banner{background:var(--error);color:#fff;padding:var(--space-2);border-radius:var(--radius);margin-bottom:var(--space-2);font-size:var(--font-size-option);font-weight:600}.help-panel{margin-top:var(--space-2);padding:var(--space-2);background:var(--surface-2);border:2px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-hint)}.help-panel h3{font-size:var(--font-size-option);margin-top:0}.help-panel kbd{border:2px solid var(--border);background:var(--bg);border-radius:4px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,monospace;font-weight:700;display:inline-block}.help-panel ul{margin:0;padding-left:1.5rem}.help-panel section+section{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.help-panel .help-lead{margin:0 0 var(--space-1)}.help-panel li{margin-bottom:6px}.success{text-align:center;padding:var(--space-3) 0}.success h2{font-size:var(--font-size-question);margin-top:0}.success p{font-size:var(--font-size-option);white-space:pre-wrap;text-align:left}.success pre{text-align:left;background:var(--bg);border:2px solid var(--border);padding:var(--space-2);border-radius:var(--radius);font-size:var(--font-size-hint);overflow:auto}.privacy-note{text-align:left;background:var(--surface-2);border:2px solid var(--border);border-left-width:6px;border-left-color:var(--success);border-radius:var(--radius);padding:var(--space-2);margin-top:var(--space-3);font-size:var(--font-size-hint);line-height:1.6}.privacy-note strong{color:var(--text)}.share-hint{text-align:left;color:var(--text-muted);font-size:var(--font-size-hint);margin-top:var(--space-2)}.actions-share{justify-content:flex-start;gap:var(--space-2)}.actions-share .btn{flex:200px}.upload-status{text-align:left;margin:var(--space-2) 0 0;padding:var(--space-1) var(--space-2);border-radius:var(--radius);font-size:var(--font-size-hint);border:2px solid #0000;font-weight:600}.upload-status:empty{display:none}.upload-uploading{background:var(--surface-2);border-color:var(--border);color:var(--text-muted)}.upload-sent{background:var(--surface-2);border-color:var(--success);color:var(--success)}.upload-queued{background:var(--surface-2);border-color:var(--error);color:var(--error)}.resume-banner{background:var(--surface-2);border:3px solid var(--primary);border-radius:var(--radius);padding:var(--space-2);margin-bottom:var(--space-2)}.resume-banner h3{font-size:var(--font-size-option);margin-top:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mode-selector h2{font-size:var(--font-size-question);margin:0 0 var(--space-2)}.mode-hint{font-size:var(--font-size-hint);color:var(--text-muted);margin:0 0 var(--space-3)}.mode-foot{font-size:var(--font-size-hint);color:var(--text-muted);margin-top:var(--space-3)}.mode-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mode-card{gap:var(--space-1);text-align:left;width:100%;padding:var(--space-3);background:var(--bg);color:var(--text);border:3px solid var(--border);border-radius:var(--radius);font:inherit;cursor:pointer;flex-direction:column;min-height:96px;display:flex}.mode-card:hover{border-color:var(--primary);background:var(--surface-2)}.mode-title{font-size:var(--font-size-option);font-weight:700;line-height:1.3}.mode-desc{font-size:var(--font-size-hint);color:var(--text-muted);line-height:1.5}.toolbar-current{font-size:var(--font-size-hint);color:var(--text);align-items:center;padding:0 10px;font-weight:600;display:inline-flex}@media (pointer:coarse){.option-key{display:none}.help-panel{font-size:var(--font-size-hint)}}@media (width<=640px){:root{--font-size-question:26px;--font-size-option:20px;--font-size-hint:16px;--option-padding:18px}.app-shell{padding:0 0 calc(env(safe-area-inset-bottom,0) + 120px)}.survey-card{border-left:0;border-right:0;border-radius:0}.site-header,main{padding:var(--space-2)}.toolbar{gap:6px var(--space-1)}.toolbar fieldset+fieldset{margin-left:0}form .actions{z-index:50;padding:var(--space-1) var(--space-2) calc(env(safe-area-inset-bottom,0) + var(--space-1));background:var(--bg);border-top:3px solid var(--border);justify-content:space-between;gap:var(--space-1);flex-wrap:nowrap;margin:0;position:fixed;bottom:0;left:0;right:0}form .actions .btn{flex:1 1 0;min-width:0;padding:.7rem .5rem;font-size:1rem}.btn,.toolbar button,.scale-button,.mode-card{min-height:48px}}.voice-primary{justify-content:center;align-items:center;gap:var(--space-2);width:100%;margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3);min-height:64px;font:inherit;font-size:var(--font-size-option);color:var(--primary-text);background:var(--primary);border:3px solid var(--primary);border-radius:var(--radius);cursor:pointer;font-weight:700;display:flex}.voice-primary-icon{font-size:1.4em;line-height:1}.voice-primary.is-recording{background:var(--error);border-color:var(--error);animation:1.4s ease-in-out infinite voice-pulse}@keyframes voice-pulse{0%,to{box-shadow:0 0 #b00020b3}50%{box-shadow:0 0 0 12px #b0002000}}.voice-fallback{font-size:var(--font-size-hint);background:var(--surface-2);border:2px solid var(--border);border-radius:var(--radius);padding:var(--space-2);margin:0 0 var(--space-2);line-height:1.5}.voice-fallback strong{color:var(--primary)}.voice-error{gap:var(--space-1);padding:var(--space-2);margin-top:var(--space-2);background:var(--surface-2);border:3px solid var(--error);border-radius:var(--radius);flex-direction:column;display:flex}.voice-error-text{font-size:var(--font-size-hint);color:var(--text);margin:0;font-weight:600;line-height:1.5}.voice-error-retry{align-self:flex-start}.contact-type-row{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.contact-type{padding:var(--space-2);min-height:56px;font-size:var(--font-size-option);border:3px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:8px;font-weight:600;line-height:1.3;display:flex}.contact-type.is-active{border-color:var(--primary);background:var(--surface-2)}.contact-type.is-active span{color:var(--primary)}.contact-type input[type=radio]{width:1.2em;height:1.2em;accent-color:var(--primary);flex-shrink:0;margin:0}.contact-value-label{display:block}.contact-value-input{width:100%;padding:var(--space-2);font:inherit;font-size:var(--font-size-option);color:var(--text);background:var(--bg);border:3px solid var(--border);border-radius:var(--radius);min-height:56px}.contact-value-input:focus{border-color:var(--primary)}
