:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f9ff;--bg-2:#e9f4ff;--panel:#ffffffe6;--panel-border:#2e7fd524;--text:#12304d;--muted:#5f7790;--accent:#1a86c8;--accent-2:#8cccf3;--danger:#dc5f5f;--shadow:0 18px 50px #1f58961f;font-family:Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--text);background:radial-gradient(circle at top left, #8cccf373, transparent 30%), radial-gradient(circle at 85% 15%, #1a86c81f, transparent 26%), linear-gradient(180deg, #fff 0%, var(--bg) 45%, var(--bg-2) 100%);margin:0}.page-shell{min-height:100vh;padding:32px}.app{width:min(1240px,100%);margin:0 auto}.hero{grid-template-columns:minmax(0,1.8fr) minmax(320px,.9fr);align-items:end;gap:24px;margin-bottom:24px;display:grid}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:.78rem}h1{margin:0;font-size:clamp(2.6rem,5vw,5rem);line-height:.95}.lede{max-width:60ch;color:var(--muted);margin:16px 0 0;font-size:1.05rem;line-height:1.6}.hero-card,.panel{border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hero-card{border-radius:24px;padding:20px}.hero-card__label,.file-meta__label{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px;font-size:.72rem;display:block}.hero-card__label{align-items:center;gap:8px;display:inline-flex}.privacy-icon svg{width:14px;height:14px;color:var(--accent);display:block}.dropzone__icon{width:56px;margin:0 auto 6px;display:block}.dropzone__img{filter:brightness(0)saturate()invert(20%)sepia(90%)saturate(400%)hue-rotate(170deg)brightness(95%);width:56px;height:auto;display:block}.privacy-text{color:var(--text);margin:0 0 6px;line-height:1.4}.privacy-text--muted{color:var(--muted);font-size:.95rem}.workspace{grid-template-columns:380px minmax(0,1fr);gap:20px;display:grid}.workspace[hidden],[hidden]{display:none!important}.mode-switch{box-shadow:var(--shadow);background:#fffc;border:1px solid #2e7fd529;border-radius:18px;gap:10px;margin:8px 0 18px;padding:6px;display:inline-flex}.tab-btn{color:var(--muted);background:0 0;border:1px solid #0000}.tab-btn.active{color:#fff;background:linear-gradient(135deg, var(--accent), #5fb5e5)}.tab-btn.active:hover:not(:disabled){transform:translateY(-1px)}.panel{border-radius:28px;padding:20px}.upload-panel{flex-direction:column;gap:18px;display:flex}.dropzone{cursor:pointer;background:linear-gradient(#8cccf324,#fffffff5);border:1px dashed #1a86c84d;border-radius:22px;gap:10px;padding:28px 20px;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:grid}.dropzone--active,.dropzone--dragover{background:linear-gradient(#8cccf338,#fff);border-color:#1a86c8a6;transform:translateY(-1px);box-shadow:0 18px 40px #1f58961f}.dropzone input{display:none}.dropzone__title{font-size:1.1rem;font-weight:700}.dropzone__subtitle{color:var(--muted);line-height:1.5}.dropzone__action{color:var(--accent);background:#ffffffe0;border:1px solid #2e7fd52e;border-radius:999px;justify-self:start;margin-top:4px;padding:10px 14px;font-weight:800}.consent-check{color:var(--muted);background:#ffffffe0;border:1px solid #2e7fd524;border-radius:18px;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;padding:14px 16px;line-height:1.55;display:grid}.consent-check input{width:18px;height:18px;accent-color:var(--accent);margin:2px 0 0}.file-meta,.stats,.status-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.file-meta strong,.stats strong,.status-row span{font-size:1rem}.file-meta input{width:100%;color:var(--text);background:#fff;border:1px solid #2e7fd529;border-radius:14px;padding:12px 14px}.actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}button{color:#fff;background:linear-gradient(135deg, var(--accent), #5fb5e5);font:inherit;cursor:pointer;border:0;border-radius:16px;padding:14px 16px;font-weight:800}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.55}button.ghost{color:var(--accent);background:#fff;border:1px solid #2e7fd52e}.status-row{color:var(--muted);align-items:center}.status-pill{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;background:#8cccf329;border:1px solid #1a86c82e;border-radius:999px;justify-self:end;padding:.35rem .7rem;font-size:.78rem;font-weight:700}.progress-track{background:#2e7fd51f;border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-bar{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));width:0;height:100%;transition:width .18s}.output-panel{flex-direction:column;gap:14px;display:flex}.manual-output-panel{min-height:0}.structured-panel{gap:12px;display:grid}.structured-panel pre{color:var(--text);white-space:pre-wrap;word-break:break-word;background:#f8fbff;border:1px solid #2e7fd524;border-radius:22px;margin:0;padding:16px;font:500 .92rem/1.6 Consolas,Courier New,monospace;overflow:auto}.panel-header h2{margin:0;font-size:1.3rem}.panel-header p{color:var(--muted);margin:8px 0 0}.manual-panel{flex-direction:column;gap:16px;display:flex}.manual-form{gap:12px;display:grid}.manual-form label{gap:8px;display:grid}.manual-form select{width:100%;color:var(--text);background:#fff;border:1px solid #2e7fd529;border-radius:14px;padding:12px 14px}.manual-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-result__signature{color:var(--accent);margin:0 0 12px;font-family:Consolas,Courier New,monospace}.output-box{color:var(--text);background:#fff;border:1px solid #2e7fd524;border-radius:16px;margin-top:.5rem;padding:1rem;font-family:monospace;font-size:.95rem}.treatment-empty{color:var(--muted);padding:1rem}.treatment-results{gap:16px;display:grid}.treatment-card{background:#fff;border:1px solid #2e7fd524;border-radius:22px;gap:12px;padding:16px;display:grid}.treatment-card__section{gap:10px;display:grid}.treatment-card__section h4{color:var(--accent);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.95rem}.treatment-pathogen-table{margin-top:0}.treatment-card h3{margin:0;font-size:1.08rem}.treatment-card .panel-header p{margin-top:6px}.treatment-preview{border:1px solid #d1d5db;border-radius:14px;min-height:560px;overflow:hidden}.treatment-preview object{border:0;min-height:560px;display:block}.treatment-preview__fallback{text-align:center;padding:1rem}.pathogen-table{border-collapse:collapse;width:100%;color:var(--text);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px #1f589614}.pathogen-table th,.pathogen-table td{text-align:left;border-bottom:1px solid #2e7fd51f;padding:.85rem 1rem}.pathogen-table thead th{color:#2b547a;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#f2f8ff 0%,#eaf4ff 100%);font-size:.82rem}.pathogen-table tbody tr:last-child th,.pathogen-table tbody tr:last-child td{border-bottom:0}.pathogen-table tbody th,.pathogen-table td:last-child{font-weight:700}.risk-high{color:#c2410c;font-weight:700}.risk-moderate{color:#b45309;font-weight:700}.risk-low{color:#166534;font-weight:700}.risk-unknown{color:#64748b;font-style:italic}.pathogen-table .risk-unknown{font-style:normal}textarea{resize:none;width:100%;color:var(--text);background:#fff;border:1px solid #2e7fd524;border-radius:22px;flex:1;padding:18px;font:500 .98rem/1.6 Consolas,Courier New,monospace}textarea::placeholder{color:#5f7790bd}@media (width<=980px){.hero,.workspace{grid-template-columns:1fr}.output-panel{min-height:0}}@media (width<=720px){.page-shell{padding:18px}.actions,.file-meta,.stats{grid-template-columns:1fr}}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{border:1px solid var(--panel-border);background:var(--panel);width:min(400px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px;padding:32px}.login-card h2{margin:0 0 8px;font-size:1.8rem}.login-card p{color:var(--muted);margin:0 0 20px;font-size:.95rem}.login-form{gap:16px;display:grid}.input-group{gap:6px;display:grid}.input-group label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.75rem;font-weight:700}.input-group input{width:100%;color:var(--text);background:#fff;border:1px solid #2e7fd529;border-radius:14px;padding:12px 14px;font-size:1rem}.input-group input:focus{outline:2px solid var(--accent)}.login-error{color:var(--danger)!important;margin:0!important;font-size:.88rem!important}
