:root{font-family:Segoe UI,Arial,sans-serif;color:#eff2ec;background:#0f1113;font-synthesis:none;color-scheme:dark;--bg: #0f1113;--bg-elevated: #181b1e;--bg-soft: #171b1d;--panel: #111518;--surface: #171d20;--surface-strong: #1d252a;--text: #eff2ec;--text-soft: #b7c0bc;--muted: #8fa09a;--border: #2a3437;--button: #f5f7f3;--button-text: #111518;--accent: #dfe8df;--accent-strong: #c9d7c7;--met: #9ec7a1;--partial: #f0c780;--negative: #f4a29c;--shadow: rgba(0, 0, 0, .25)}.theme-light{color:#282924;background:#f3f1eb;color-scheme:light;--bg: #f3f1eb;--bg-elevated: #f8f7f2;--bg-soft: #f0efe9;--panel: #fffefa;--surface: #fffefa;--surface-strong: #f5f3ee;--text: #282924;--text-soft: #444a38;--muted: #696b61;--border: #d5d5ca;--button: #282924;--button-text: #fffefa;--accent: #3e5942;--accent-strong: #4d6751;--met: #3e5942;--partial: #785b2b;--negative: #8a4239;--shadow: rgba(15, 17, 19, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-size:14px;line-height:1.6;background:var(--bg);color:var(--text)}button,textarea,input{font:inherit;border-radius:0}button,summary,.drop{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}h1,h2,h3,p{margin:0}h2{font-size:15px;font-weight:600}h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:4px}button:disabled{cursor:not-allowed}.page{max-width:1200px;margin:0 auto;padding:48px 40px 24px;min-height:100vh;background:var(--bg);color:var(--text)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px}.theme-toggle{padding:8px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12px;font-weight:600;transition:background .2s ease,border-color .2s ease,transform .2s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:var(--accent-strong)}header{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid var(--border)}header .eyebrow{font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--text);margin-bottom:18px}header h1{font:400 clamp(40px,5vw,64px)/1.1 Georgia,"Times New Roman",serif;letter-spacing:-.045em;margin-bottom:12px}header>p:last-child{color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:start}main>*{min-width:0}footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.card{padding:24px;background:var(--surface);border:1px solid var(--border);box-shadow:0 10px 30px var(--shadow)}.inputs{display:grid;gap:28px}.results{display:grid;gap:16px}.muted,.hint{color:var(--muted)}.hint{font-size:11px;line-height:1.6;margin-top:8px}.field-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px}button.link{padding:0;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-soft);font-size:12px}button.link:hover{border-color:var(--text);color:var(--text)}.tabs{display:flex;gap:20px;margin-bottom:0;border-bottom:1px solid var(--border)}.tab{padding:6px 0 9px;border:0;border-bottom:2px solid transparent;background:transparent;font-size:11px;color:var(--muted)}.tab.active{border-bottom-color:var(--text);color:var(--text)}textarea,.preview{display:block;width:100%;height:230px;padding:16px;border:1px solid var(--border);border-top:0;background:var(--bg-soft);color:var(--text);font:12px/1.8 Consolas,monospace;resize:vertical}textarea::placeholder{color:var(--muted)}.preview{overflow:auto;font:inherit}.preview h1,.preview h2{font-size:15px;margin:12px 0 6px}.preview h1:first-child,.preview h2:first-child{margin-top:0}.preview ul{padding-left:20px}.preview a{color:var(--accent)}.preview img{max-width:100%}.drop{position:relative;display:grid;gap:3px;padding:24px 16px;margin-top:14px;border:1px dashed var(--border);text-align:center;overflow-wrap:anywhere;cursor:pointer;background:var(--bg-soft)}.drop strong{font-size:13px;font-weight:500}.drop span{font-size:11px;color:var(--muted)}.drop:hover,.drop.dragging,.drop:focus-within{border-color:var(--accent-strong);background:var(--surface-strong)}.drop:focus-within{outline:2px solid var(--accent-strong);outline-offset:3px}.drop input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;width:100%;height:100%;cursor:pointer}.actions{display:grid;gap:8px}.actions .hint{margin:0}button.primary{width:100%;padding:13px 20px;border:1px solid var(--button);background:var(--button);color:var(--button-text);font-size:12px;font-weight:600;letter-spacing:.03em}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:var(--button-text)}button.primary:disabled{color:var(--muted);background:var(--bg-soft);border-color:var(--border)}.empty{display:flex;flex-direction:column;justify-content:center;min-height:420px;padding:44px;background:transparent;border:1px solid var(--border)}.empty-mark{font:11px/1.5 Consolas,monospace;letter-spacing:.08em;color:var(--muted);margin-bottom:52px}.empty h2{font:400 34px/1.2 Georgia,serif;letter-spacing:-.025em;max-width:280px}.empty p{max-width:260px;margin-top:14px;color:var(--muted);font-size:13px}.empty-labels{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px;padding-top:16px;border-top:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.loading{min-height:280px;display:grid;align-content:center;justify-items:center;gap:12px}.loading p:last-child{font-size:12px}.spinner{width:28px;height:28px;border:2px solid var(--border);border-top-color:var(--text);animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.error{border-left:3px solid var(--negative)}.error p{margin-top:8px}.error-text{color:var(--negative);font-size:12px;margin-top:8px}.access-code-field{display:grid;gap:8px}.access-code-field span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.access-code-field input{width:100%;padding:12px 14px;border:1px solid var(--border);background:var(--bg-soft);color:var(--text)}.access-code-field input::placeholder{color:var(--muted)}@media(max-width:900px){.page{padding:32px 20px 20px}main{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}}
