@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-bg:#0f1623;--color-bg-2:#131d2e;--color-surface:#1a2236;--color-surface-2:#1e2d45;--color-surface-3:#243352;--color-border:#2a3550;--color-border-strong:#3a4763;--color-primary:#4f8ef7;--color-primary-hover:#6ba0f9;--color-primary-strong:#818cf8;--color-primary-soft:#1e3a5f;--color-primary-text:#60a5fa;--color-secondary:#34d399;--color-secondary-soft:#064e3b;--color-red:#f87171;--color-red-soft:#3f1717;--color-red-strong:#fca5a5;--color-orange:#fb923c;--color-orange-soft:#422006;--color-orange-strong:#fdba74;--color-green:#34d399;--color-green-soft:#064e3b;--color-green-strong:#6ee7b7;--color-text:#e2e8f0;--color-text-muted:#cbd5e1;--color-text-soft:#94a3b8;--color-text-disabled:#4a5568;--color-text-on-primary:#fff;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--font-family:"Inter", "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs:12px;--font-size-sm:13px;--font-size-base:15px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-loose:1.7;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 12px 32px #0000008c;--shadow-focus:0 0 0 3px #4f8ef759;--gradient-primary:linear-gradient(135deg, #4f8ef7, #6366f1);--gradient-logo:linear-gradient(135deg, #4f8ef7, #818cf8);--gradient-header:linear-gradient(180deg, #1a2236, #0f1623);--ease:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-base:.22s;--duration-slow:.32s;--z-header:50;--z-overlay:100;--z-modal:110;--z-toast:200;--touch-target:44px}[data-theme=light]{--color-bg:#f1f5f9;--color-bg-2:#e2e8f0;--color-surface:#fff;--color-surface-2:#f8fafc;--color-surface-3:#eef2f7;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-primary-soft:#dbeafe;--color-primary-text:#2563eb;--color-text:#0f172a;--color-text-muted:#475569;--color-text-soft:#64748b;--color-text-disabled:#94a3b8;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a1a;--shadow-lg:0 12px 32px #0f172a26}[data-contrast=high]{--color-text-muted:var(--color-text);--color-text-soft:var(--color-text)}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}button{font-family:inherit;font-size:inherit}button,[role=button],input,select,textarea{outline:none}button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-md)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-disabled)}::selection{background:var(--color-primary-soft);color:var(--color-text)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}#root{isolation:isolate}a{color:var(--color-primary-hover);text-decoration:none}a:hover{text-decoration:underline}p{margin:0 0 var(--space-3)}h1,h2,h3,h4{margin:0 0 var(--space-3);letter-spacing:-.01em}ul,ol{padding:0 0 0 var(--space-5);margin:0}.app-shell{background:var(--color-bg);min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom,0));flex-direction:column;display:flex}.app-main{width:100%;max-width:1200px;padding:var(--space-6) var(--space-5) var(--space-8);gap:var(--space-5);flex-direction:column;flex:1;margin:0 auto;display:flex}.app-header{z-index:var(--z-header);justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--gradient-header);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.brand{align-items:center;gap:var(--space-3);min-width:0;display:flex}.brand-mark{border-radius:var(--radius-md);background:var(--gradient-logo);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;display:inline-flex;box-shadow:0 4px 14px #4f8ef759}.brand-text{flex-direction:column;min-width:0;display:flex}.brand-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--color-text);line-height:1.15}.brand-tag{color:var(--color-text-soft);font-size:12px;font-weight:var(--font-weight-medium)}.header-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:var(--touch-target);min-width:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease), color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);white-space:nowrap;border:1px solid #0000;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 4px 14px #4f8ef740}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-red);color:#1a0a0a}.btn-danger:hover:not(:disabled){background:var(--color-red-strong)}.btn-icon{padding:0 var(--space-3)}.btn-label-md{display:none}@media (width>=720px){.btn-label-md{display:inline}}.badge-count{border-radius:var(--radius-pill);background:var(--color-primary-soft);min-width:22px;height:22px;color:var(--color-primary-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);justify-content:center;align-items:center;padding:0 6px;display:inline-flex}.btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.btn-block{width:100%}.status-pill{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border:1px solid #4f8ef740;padding:6px 12px;display:inline-flex}.status-pill .status-dot{background:var(--color-secondary);border-radius:50%;width:8px;height:8px}.status-pill.is-offline{background:var(--color-surface-2);color:var(--color-text-soft);border-color:var(--color-border)}.status-pill.is-offline .status-dot{background:var(--color-text-disabled)}.status-pill.is-online .status-dot{box-shadow:0 0 0 4px #34d3992e}.status-pill.is-pulsing{animation:1.4s ease-in-out infinite pulse}.hero{width:100%;padding:var(--space-6) 0 var(--space-2)}.hero-compact{padding:var(--space-3) 0 0}.hero-inner{gap:var(--space-2);flex-direction:column;display:flex}.hero-eyebrow{font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary-text);align-items:center;display:inline-flex}.hero-title{max-width:720px;font-size:clamp(22px,3vw,30px);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:-.02em;color:var(--color-text);margin:0}.hero-subtitle{max-width:640px;color:var(--color-text-muted);font-weight:var(--font-weight-regular);margin:0}.page{gap:var(--space-5);width:100%;animation:fade-in var(--duration-base) var(--ease);flex-direction:column;display:flex}.page-header{gap:var(--space-2);flex-direction:column;display:flex}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;line-height:var(--line-height-tight);color:var(--color-text);margin:0}.page-subtitle{color:var(--color-text-muted);max-width:720px;margin:0}.back-link{align-items:center;gap:var(--space-1);width:fit-content;color:var(--color-text-soft);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);padding:4px 0;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--color-primary-text);text-decoration:none}.controls{gap:var(--space-3);flex-direction:column;display:flex}.search-bar{padding:0 var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);height:var(--touch-target);transition:border-color var(--duration-fast) var(--ease);align-items:center;display:flex}.search-bar:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.search-icon{color:var(--color-text-soft);margin-right:var(--space-2);font-size:16px}.search-input{height:100%;font-size:var(--font-size-base);color:var(--color-text);background:0 0;border:none;flex:1}.search-input::placeholder{color:var(--color-text-soft)}.search-clear{cursor:pointer;width:28px;height:28px;color:var(--color-text-soft);background:0 0;border:none;border-radius:50%;font-size:14px}.search-clear:hover{background:var(--color-surface-2);color:var(--color-text)}.category-tabs{gap:var(--space-2);flex-wrap:wrap;display:flex}.tab-btn{height:36px;padding:0 var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast) var(--ease)}.tab-btn:hover{color:var(--color-text);background:var(--color-surface-2);border-color:var(--color-border-strong)}.tab-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.categories-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.category-card{gap:var(--space-1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);text-align:left;cursor:pointer;transition:transform var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);min-height:96px;color:var(--color-text);border-radius:16px;flex-direction:column;display:flex;box-shadow:0 2px 8px #0000004d}.category-card:hover{background:var(--color-surface-2);border-color:var(--color-primary);transform:translateY(-2px)}.category-card.category-card-all{background:var(--gradient-primary);color:#fff;border-color:#0000;box-shadow:0 6px 20px #4f8ef740}.category-card-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md)}.category-card-subtitle{letter-spacing:.1em;text-transform:uppercase;opacity:.9;font-size:11px}.symptoms-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.symptom-card{text-align:left;gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:84px;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease);flex-direction:column;display:flex;position:relative}.symptom-card:hover{background:var(--color-surface-2);border-color:var(--color-primary);transform:translateY(-1px)}.symptom-card.selected{background:var(--color-primary-soft);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary) inset}.symptom-check{border:1.5px solid var(--color-border-strong);border-radius:var(--radius-sm);width:22px;height:22px;font-size:14px;font-weight:var(--font-weight-bold);color:#0000;transition:all var(--duration-fast) var(--ease);background:0 0;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}.symptom-card.selected .symptom-check{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.symptom-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.symptom-cat{font-size:var(--font-size-xs);color:var(--color-text-soft)}.selection-bar{left:50%;bottom:calc(72px + var(--space-3));z-index:var(--z-overlay);align-items:center;gap:var(--space-4);width:min(960px, calc(100% - var(--space-6)));padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:slide-up var(--duration-base) var(--ease);display:flex;position:fixed;transform:translate(-50%)}.selection-summary{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.selection-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.selection-count strong{color:var(--color-text);font-size:var(--font-size-md)}.selection-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-size-xs);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.chip:hover{background:var(--color-red-soft);color:var(--color-red-strong);border-color:var(--color-red)}.chip.chip-more{cursor:default;background:0 0;border-style:dashed}.selection-actions{gap:var(--space-2);flex-shrink:0;display:flex}.analyze-btn{min-width:180px}.fixed-action-bar{left:50%;bottom:calc(72px + var(--space-3));z-index:var(--z-overlay);justify-content:space-between;align-items:center;gap:var(--space-4);width:min(960px, calc(100% - var(--space-6)));padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);display:flex;position:fixed;transform:translate(-50%)}.modal-overlay{z-index:var(--z-modal);padding:var(--space-4);-webkit-backdrop-filter:blur(4px);animation:fade-in var(--duration-fast) var(--ease);background:#0f1623b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-height:calc(100vh - var(--space-8));animation:slide-up var(--duration-base) var(--ease);flex-direction:column;display:flex;overflow:hidden}.modal-sm{max-width:420px}.modal-md{max-width:600px}.modal-lg{max-width:880px}.modal-header{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);color:#fff;display:flex}.modal-header-primary{background:var(--gradient-primary)}.modal-header-red{background:linear-gradient(135deg,#b91c1c,#7f1d1d)}.modal-header-orange{background:linear-gradient(135deg,#c2410c,#7c2d12)}.modal-header-green{background:linear-gradient(135deg,#047857,#064e3b)}.modal-header-neutral{background:var(--color-surface-2);color:var(--color-text)}.modal-header-icon{font-size:28px}.modal-header-text{flex:1;min-width:0}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin:0}.modal-subtitle{font-size:var(--font-size-sm);opacity:.9;margin:4px 0 0}.modal-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;display:inline-flex}.modal-close:hover{background:#ffffff47}.modal-body{padding:var(--space-5);overflow-y:auto}.modal-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-bg-2);justify-content:flex-end;gap:var(--space-3);display:flex}.dual-result-modal{gap:var(--space-4);flex-direction:column;display:flex}.comparison-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.model-card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-2);gap:var(--space-3);transition:all var(--duration-fast) var(--ease);flex-direction:column;display:flex}.model-card.consensus{border-color:var(--color-primary);background:var(--color-primary-soft)}.model-badge{background:var(--color-primary);color:#fff;border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.model-badge-engine{border-radius:var(--radius-pill);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;background:#ffffff40;align-items:center;padding:2px 6px;display:inline-flex}.model-disease{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.confidence-meter{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.meter-caption{font-size:var(--font-size-xs);color:var(--color-text-soft);flex-basis:100%}.meter-track{background:var(--color-border);border-radius:var(--radius-pill);flex:1;min-width:120px;height:8px;overflow:hidden}.meter-bar{background:var(--gradient-primary);border-radius:var(--radius-pill);height:100%;transition:width var(--duration-slow) var(--ease)}.meter-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);text-align:right;min-width:42px}.consensus-banner{padding:var(--space-3);background:var(--color-green-soft);color:var(--color-green-strong);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);text-align:center;line-height:var(--line-height-normal);border:1px solid #34d39940}.consensus-banner--warn{background:var(--color-orange-soft);color:var(--color-orange-strong);border-color:#fb923c40}.advice-box{padding:var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.advice-box h3{margin:0 0 var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-soft)}.advice-box p{line-height:var(--line-height-loose);color:var(--color-text);margin:0}.history-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.history-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.history-item--stacked{align-items:stretch;gap:var(--space-3);flex-direction:column}.history-item-row{align-items:center;gap:var(--space-3);width:100%;display:flex}.triage-dot{background:var(--color-surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:inline-flex}.history-content{flex:1;min-width:0}.history-disease{font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.history-meta{font-size:var(--font-size-xs);color:var(--color-text-soft);margin:2px 0 0}.history-followup{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-2);border-radius:var(--radius-md);border:1px solid var(--color-border);display:flex}.history-followup-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);flex-shrink:0}.history-followup-select{height:36px;font-size:var(--font-size-sm);flex:1}.triage-badge{border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.05em;padding:4px 10px}.triage-badge.triage-red{background:var(--color-red-soft);color:var(--color-red-strong)}.triage-badge.triage-orange{background:var(--color-orange-soft);color:var(--color-orange-strong)}.triage-badge.triage-green{background:var(--color-green-soft);color:var(--color-green-strong)}.empty-state{align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.empty-icon{font-size:36px}.empty-hint{font-size:var(--font-size-sm);color:var(--color-text-soft)}.loading-screen{justify-content:center;align-items:center;gap:var(--space-4);min-height:100vh;padding:var(--space-8);background:var(--color-bg);flex-direction:column;display:flex}.loading-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;margin:0}.loading-bar{background:var(--color-surface-2);border-radius:var(--radius-pill);width:min(320px,80vw);height:4px;overflow:hidden}.loading-bar-track{background:linear-gradient(90deg, transparent, var(--color-primary), transparent);width:40%;height:100%;animation:1.4s ease-in-out infinite indeterminate}.loading-step{font-size:var(--font-size-sm);color:var(--color-text-muted)}.error-screen{justify-content:center;align-items:center;gap:var(--space-3);min-height:100vh;padding:var(--space-8);text-align:center;background:var(--color-bg);flex-direction:column;display:flex}.error-icon{font-size:56px}.error-title{font-size:var(--font-size-2xl);color:var(--color-red-strong);font-weight:var(--font-weight-semibold);margin:0}.error-message{max-width:560px;color:var(--color-text);margin:0}.error-hint{max-width:560px;font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.auth-screen{justify-content:center;align-items:center;gap:var(--space-3);min-height:100vh;padding:var(--space-6);text-align:center;background:var(--color-bg);color:var(--color-text);flex-direction:column;display:flex}.auth-icon{font-size:64px}.auth-btn{height:var(--touch-target);padding:0 var(--space-6);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;border:none}.auth-btn:hover:not(:disabled){background:var(--color-primary-hover)}.auth-btn:disabled{opacity:.55;cursor:not-allowed}.auth-btn.danger{background:var(--color-red);color:#1a0a0a}.auth-btn.danger:hover:not(:disabled){background:var(--color-red-strong)}.auth-error{color:var(--color-red-strong);font-size:var(--font-size-sm);max-width:420px}.auth-help{font-size:var(--font-size-sm);color:var(--color-text-soft);max-width:420px}.auth-success{color:var(--color-secondary,#34d399);font-size:var(--font-size-sm);max-width:420px}.pin-screen{gap:var(--space-2)}.pin-pad{align-items:center;gap:var(--space-4);margin:var(--space-3) 0;flex-direction:column;width:100%;max-width:320px;display:flex}.pin-dots{justify-content:center;align-items:center;gap:14px;min-height:28px;display:flex}.pin-dot{border:2px solid var(--color-border,#2c3650);background:0 0;border-radius:50%;width:14px;height:14px;transition:background .12s,transform .12s}.pin-dot.is-filled{background:var(--color-primary);border-color:var(--color-primary);transform:scale(1.1)}.pin-keys{gap:var(--space-3);grid-template-columns:repeat(3,minmax(72px,1fr));width:100%;display:grid}.pin-key{border-radius:var(--radius-md);border:1px solid var(--color-border,#2c3650);background:var(--color-surface,#1a2236);height:64px;color:var(--color-text);font-size:24px;font-weight:var(--font-weight-semibold);cursor:pointer;transition:background .1s,transform .1s}.pin-key:active:not(:disabled){background:var(--color-surface-hover,#232c45);transform:scale(.97)}.pin-key:hover:not(:disabled){background:var(--color-surface-hover,#232c45)}.pin-key:disabled{opacity:.4;cursor:not-allowed}.pin-key-ghost{pointer-events:none;background:0 0;border-color:#0000}.pin-key-action{font-size:22px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.install-slot{margin-top:var(--space-4);max-width:320px}.dialog-backdrop{z-index:var(--z-modal,900);padding:var(--space-4);-webkit-backdrop-filter:blur(4px);background:#0f1623b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-card{background:var(--color-surface,#1a2236);color:var(--color-text);border-radius:var(--radius-lg,16px);padding:var(--space-6);align-items:center;gap:var(--space-3);flex-direction:column;width:min(420px,100%);display:flex;position:relative;box-shadow:0 20px 60px #0006}.dialog-title{font-size:var(--font-size-lg);margin:0}.dialog-close{color:var(--color-text-soft);cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute;top:12px;right:12px}.dialog-close:hover:not(:disabled){color:var(--color-text)}.ptr{z-index:var(--z-modal,900);pointer-events:none;opacity:0;will-change:transform, opacity;flex-direction:column;align-items:center;gap:6px;padding:8px 14px;transition:opacity .12s;display:flex;position:fixed;top:0;left:50%}.ptr.is-visible{opacity:1}.ptr.is-refreshing{transition:transform .22s ease-out,opacity .12s}.ptr-bubble{background:var(--color-surface,#1a2236);border:1px solid var(--color-border,#2c3650);width:44px;height:44px;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;box-shadow:0 6px 16px #00000040}.ptr-arrow{transition:transform 60ms linear;display:inline-block}.ptr-spinner{animation:.9s linear infinite ptr-spin;display:inline-block}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptr-label{font-size:var(--font-size-xs,12px);color:var(--color-text-soft,#b6c2d9);background:var(--color-surface,#1a2236);border:1px solid var(--color-border,#2c3650);white-space:nowrap;border-radius:999px;padding:2px 10px}@media (pointer:fine) and (hover:hover){.ptr{display:none}}.result-overlay{z-index:var(--z-modal);padding:var(--space-4);-webkit-backdrop-filter:blur(4px);background:#0f1623b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.result-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-height:calc(100vh - var(--space-8));flex-direction:column;display:flex;overflow:hidden}.result-header{padding:var(--space-4) var(--space-5);color:#fff;background:var(--gradient-primary)}.result-header h3{font-weight:var(--font-weight-semibold);margin:0}.result-body{padding:var(--space-5);color:var(--color-text);overflow-y:auto}.result-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-bg-2);justify-content:flex-end;display:flex}.close-btn{height:var(--touch-target);padding:0 var(--space-5);border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold);cursor:pointer;border:none}.gdpr-modal{max-width:640px}.gdpr-body{padding:var(--space-4);max-height:70vh;overflow-y:auto}.gdpr-body h4{margin:var(--space-3) 0 var(--space-1);font-size:var(--font-size-base);color:var(--color-primary-text)}.gdpr-body ul{margin:4px 0 var(--space-2) 18px}.gdpr-body p{line-height:var(--line-height-normal);margin:6px 0}.gdpr-section{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.gdpr-section:last-child{border-bottom:none}.gdpr-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.gdpr-danger h4{color:var(--color-red-strong)}.gdpr-feedback{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-top:var(--space-3)}.gdpr-feedback.ok{background:var(--color-green-soft);color:var(--color-green-strong)}.gdpr-feedback.err{background:var(--color-red-soft);color:var(--color-red-strong)}.gdpr-disclaimer{background:var(--color-orange-soft);color:var(--color-orange-strong);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.cards-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.action-card{gap:var(--space-1);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;text-align:left;min-height:140px;transition:all var(--duration-fast) var(--ease);border-radius:16px;flex-direction:column;text-decoration:none;display:flex;position:relative;box-shadow:0 2px 8px #0000004d}.action-card:hover{background:var(--color-surface-2);border-color:var(--color-primary);text-decoration:none;transform:translateY(-2px)}.action-card-primary{background:var(--gradient-primary);color:#fff;border-color:#0000;box-shadow:0 6px 24px #4f8ef74d}.action-card-primary:hover{color:#fff;background:var(--gradient-primary);border-color:#0000;transform:translateY(-2px)}.action-card-muted{background:var(--color-surface-2);cursor:default;opacity:.7}.action-card-muted:hover{background:var(--color-surface-2);border-color:var(--color-border);transform:none}.action-icon{margin-bottom:var(--space-2);font-size:28px}.action-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}.action-subtitle{font-size:var(--font-size-sm);opacity:.88}.action-arrow{right:var(--space-5);bottom:var(--space-5);font-size:22px;font-weight:var(--font-weight-bold);opacity:.6;position:absolute}.action-card:hover .action-arrow{opacity:1;transform:translate(2px)}.last-analysis-meta{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.last-analysis-meta .muted{font-size:var(--font-size-xs);color:var(--color-text-soft)}.bottom-nav{z-index:calc(var(--z-header) + 5);background:var(--color-bg-2);border-top:1px solid var(--color-border);height:64px;padding-bottom:env(safe-area-inset-bottom,0);justify-content:space-around;align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--color-text-disabled);font-size:11px;font-weight:var(--font-weight-semibold);padding:var(--space-2) var(--space-1);min-height:var(--touch-target);transition:color var(--duration-fast) var(--ease);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex;position:relative}.bottom-nav-item:hover{color:var(--color-text-soft);text-decoration:none}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item.active:before{content:"";background:var(--color-primary);border-radius:0 0 var(--radius-pill) var(--radius-pill);height:2px;position:absolute;top:0;left:30%;right:30%}.bottom-nav-icon{font-size:20px;line-height:1}.bottom-nav-label{letter-spacing:.01em}.profile-summary{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;display:flex}.profile-avatar{background:var(--gradient-logo);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;display:inline-flex;box-shadow:0 4px 14px #4f8ef74d}.profile-info{flex-direction:column;gap:2px;display:flex}.profile-stat{font-size:var(--font-size-md);color:var(--color-text);margin:0}.profile-stat strong{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.profile-stat-muted{font-size:var(--font-size-sm);color:var(--color-text-soft);margin:0}.settings-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.settings-item+.settings-item{border-top:1px solid var(--color-border)}.settings-item-disabled .settings-link{color:var(--color-text-disabled);cursor:default}.settings-link{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);min-height:var(--touch-target);color:var(--color-text);transition:background var(--duration-fast) var(--ease);text-decoration:none;display:flex}.settings-link:hover{background:var(--color-surface-2);text-decoration:none}.settings-icon{background:var(--color-primary-soft);border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-primary-text);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex}.settings-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.settings-description{font-size:var(--font-size-sm);color:var(--color-text-soft)}.settings-arrow{color:var(--color-text-soft);font-size:18px}.settings-soon{margin-left:var(--space-2);background:var(--color-orange-soft);color:var(--color-orange-strong);border-radius:var(--radius-pill);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;padding:1px 8px;display:inline-block}.form-control{width:100%;height:var(--touch-target);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);transition:border-color var(--duration-fast) var(--ease);font-family:inherit}.form-control:hover{border-color:var(--color-border-strong)}.form-control:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-control::placeholder{color:var(--color-text-soft)}textarea.form-control{height:auto;min-height:96px;padding:var(--space-3);resize:vertical}.form-grid{gap:var(--space-4);display:grid}.form-grid-2{grid-template-columns:1fr 1fr}@media (width<=480px){.form-grid-2{grid-template-columns:1fr}}.form-row{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-soft)}.form-row-inline{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;display:flex}.form-row-inline:not(:last-child){border-bottom:1px solid var(--color-border)}.form-row-inline .form-row-info{flex-direction:column;gap:2px;display:flex}.form-row-inline .form-row-info strong{font-weight:var(--font-weight-semibold);color:var(--color-text)}.form-row-inline .form-row-info small{font-size:var(--font-size-xs);color:var(--color-text-soft)}.toggle{appearance:none;background:var(--color-surface-3);border-radius:var(--radius-pill);cursor:pointer;width:44px;height:24px;transition:background var(--duration-fast) var(--ease);position:relative}.toggle:after{content:"";width:20px;height:20px;transition:transform var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:#cbd5e1;border-radius:50%;position:absolute;top:2px;left:2px}.toggle:checked{background:var(--color-primary)}.toggle:checked:after{background:#fff;transform:translate(20px)}.section-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);gap:var(--space-3);border-radius:16px;flex-direction:column;display:flex}.section-card .card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.section-card p{color:var(--color-text-muted);line-height:var(--line-height-normal);margin:0}.section-danger{background:#ef444414;border-color:#ef444459}.section-danger .card-title{color:var(--color-red-strong)}.section-danger p{color:var(--color-text-muted)}.actions-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);gap:var(--space-2);border-radius:16px;flex-direction:column;display:flex}.settings-heading{margin:0 0 var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-soft)}.step-content{gap:var(--space-4);flex-direction:column;display:flex}.step-progress{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.progress-bar{background:var(--color-surface-2);border-radius:var(--radius-pill);height:6px;overflow:hidden}.progress-bar-fill{background:var(--gradient-primary);border-radius:var(--radius-pill);height:100%;transition:width var(--duration-base) var(--ease)}.step-nav{justify-content:space-between;align-items:center;display:flex}.step-indicator{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-soft)}.recap-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);border-radius:16px}.recap-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.recap-list li{padding:var(--space-2) var(--space-3);background:var(--color-primary-soft);color:var(--color-primary-text);border-radius:var(--radius-pill);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.result-hero{padding:var(--space-6);border-radius:var(--radius-xl);text-align:center;color:#fff}.result-hero.red{background:linear-gradient(135deg,#b91c1c,#7f1d1d)}.result-hero.orange{background:linear-gradient(135deg,#c2410c,#7c2d12)}.result-hero.green{background:linear-gradient(135deg,#047857,#064e3b)}.result-hero-icon{margin-bottom:var(--space-2);font-size:48px;display:block}.result-hero-title{font-size:var(--font-size-xl);letter-spacing:.02em;font-weight:var(--font-weight-bold);text-transform:uppercase;margin:0}.result-hero-meta{margin:var(--space-1) 0 0;opacity:.92;font-size:var(--font-size-sm)}.emergency-card{color:#fff;padding:var(--space-5);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#b91c1c,#7f1d1d);border-radius:16px}.emergency-title{margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.emergency-card p{color:#ffffffe6}.emergency-numbers{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.emergency-btn{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:#fff;transition:all var(--duration-fast) var(--ease);background:#ffffff1f;border:1px solid #ffffff40;text-decoration:none;display:flex}.emergency-btn:hover{color:#fff;background:#fff3;text-decoration:none}.emergency-icon{font-size:24px}.emergency-label{flex-direction:column;display:flex}.emergency-label strong{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:1}.emergency-label em{font-style:normal;font-size:var(--font-size-xs);opacity:.9}.info-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);border-radius:16px}.info-card h2{margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.info-card ul{padding-left:var(--space-5);color:var(--color-text-muted);margin:0}.info-card li+li{margin-top:var(--space-1)}.info-card-muted{background:var(--color-surface-2)}.first-aid-list{gap:var(--space-3);flex-direction:column;display:flex}.first-aid-list article{padding:var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.first-aid-list h3{margin:0 0 var(--space-1);font-size:var(--font-size-base);color:var(--color-primary-text);font-weight:var(--font-weight-semibold)}.first-aid-list p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.faq-item{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-4) var(--space-5);transition:border-color var(--duration-fast) var(--ease);border-radius:16px}.faq-item[open]{border-color:var(--color-primary);background:var(--color-surface-2)}.faq-item summary{font-weight:var(--font-weight-semibold);cursor:pointer;color:var(--color-text);justify-content:space-between;align-items:center;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:var(--font-size-xl);color:var(--color-primary);transition:transform var(--duration-fast) var(--ease)}.faq-item[open] summary:after{content:"−"}.faq-item p{margin:var(--space-3) 0 0;color:var(--color-text-muted)}.about-mark{align-items:center;gap:var(--space-1);padding:var(--space-6);text-align:center;flex-direction:column;display:flex}.about-mark .about-icon{font-size:56px}.about-mark .about-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--color-primary-text)}.about-mark .about-version{font-size:var(--font-size-sm);color:var(--color-text-soft)}.toast-stack{z-index:var(--z-toast);right:var(--space-4);bottom:calc(72px + var(--space-3));gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:90vw;display:flex;position:fixed}.toast{pointer-events:auto;align-items:center;gap:var(--space-3);min-width:280px;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-text);animation:slide-up var(--duration-base) var(--ease);display:flex}.toast-icon{font-size:18px}.toast-msg{font-size:var(--font-size-sm);flex:1}.toast-close{cursor:pointer;color:var(--color-text-soft);background:0 0;border:none;font-size:14px}.toast-error{border-left:4px solid var(--color-red)}.toast-success{border-left:4px solid var(--color-secondary)}.toast-warning{border-left:4px solid var(--color-orange)}.toast-info{border-left:4px solid var(--color-primary)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media (width<=720px){.app-header{padding:var(--space-3) var(--space-4)}.brand-tag{display:none}.selection-bar{width:calc(100% - var(--space-4));flex-direction:column;align-items:stretch}.selection-actions{justify-content:flex-end}.analyze-btn{width:100%;min-width:0}.fixed-action-bar{width:calc(100% - var(--space-4))}}@media (width<=480px){.app-main{padding-left:var(--space-3);padding-right:var(--space-3)}.page-title{font-size:var(--font-size-xl)}}
