:root{--ink:#f0f0f0;--ink-secondary:#9ca3af;--ink-tertiary:#6b7280;--ink-faint:#374151;--surface:#111;--surface-raised:#181818;--surface-border:#2a2a2a;--accent:#2e7d82;--accent-hover:#1f5c60;--accent-bright:#5ab0b5;--accent-light:#2e7d821f;--accent-faint:#2e7d8214;--accent-border:#5ab0b573;--warn:#d4a054;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"DM Mono", Consolas, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--max-width:1120px;--transition:.2s ease}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--surface);color:var(--ink);background-image:radial-gradient(ellipse 90% 40% at 75% -5%, var(--accent-faint) 0%, transparent 65%);padding:0 24px 48px;font-size:16px;line-height:1.6}.container{max-width:var(--max-width);margin:0 auto}.masthead{align-items:center;gap:10px;padding:28px 0 6px;display:flex}.logo-mark{border-radius:var(--radius-sm);flex-shrink:0;width:32px;height:32px}h1{letter-spacing:-.03em;font-size:1.6rem;font-weight:300}h1 .brand-by{color:var(--ink-tertiary);margin-left:10px;font-size:.85rem;font-weight:400}h1 .brand-by a{color:var(--ink-secondary);transition:color var(--transition);text-decoration:none}h1 .brand-by a:hover{color:var(--accent-bright)}.sub{color:var(--ink-secondary);max-width:720px;margin-bottom:24px;font-size:.85rem}.grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.grid{grid-template-columns:1fr}}.card{background:var(--surface-raised);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:24px}.card h2{color:var(--accent-bright);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:500;font-family:var(--font-mono);margin:20px 0 12px}.card h2:first-child{margin-top:0}textarea{background:var(--surface);width:100%;min-height:180px;color:var(--ink);border:1px solid var(--surface-border);border-radius:var(--radius-md);font-family:var(--font-mono);resize:vertical;transition:border-color var(--transition);padding:12px;font-size:.83rem}textarea:focus,input:focus,select:focus{border-color:var(--accent);outline:none}button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:background var(--transition);border:none;margin-top:10px;padding:10px 22px}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:wait}label{color:var(--ink-secondary);margin:10px 0 3px;font-size:.8rem;display:block}input[type=number],input[type=text],input[type=password],select{background:var(--surface);width:100%;color:var(--ink);border:1px solid var(--surface-border);border-radius:var(--radius-sm);font-size:.9rem;font-family:var(--font-sans);transition:border-color var(--transition);padding:8px 10px}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.big{letter-spacing:-.02em;color:var(--accent-bright);font-size:2.1rem;font-weight:300}.big small{color:var(--ink-secondary);letter-spacing:0;font-size:1rem;font-weight:400}table{border-collapse:collapse;width:100%;margin-top:12px;font-size:.85rem}th,td{text-align:left;border-bottom:1px solid var(--surface-border);padding:7px 8px}th{color:var(--ink-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:500;font-family:var(--font-mono)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.note{color:var(--ink-tertiary);border-top:1px solid var(--surface-border);margin-top:14px;padding-top:10px;font-size:.75rem}.pill{background:var(--accent-light);border:1px solid var(--accent-border);font-size:.72rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.01em;color:var(--warn);border-radius:100px;align-items:center;gap:8px;margin-bottom:10px;padding:4px 12px;display:inline-flex}.pill.ok{color:var(--accent-bright)}.pill.ok:before{content:"";background:var(--accent-bright);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.toggle{align-items:center;gap:8px;margin-top:12px;font-size:.85rem;display:flex}.toggle input{width:auto;accent-color:var(--accent)}.toggle label{margin:0}.result-line{justify-content:space-between;padding:6px 0;font-size:.9rem;display:flex}.result-line.total{border-top:2px solid var(--surface-border);margin-top:8px;padding-top:10px;font-weight:600}.sanity{color:var(--warn);margin-top:6px;font-size:.75rem}.muted-small{color:var(--ink-secondary);font-size:.8rem}.dropzone{border:2px dashed var(--surface-border);border-radius:var(--radius-md);text-align:center;background:var(--surface);transition:border-color var(--transition), background var(--transition);padding:16px}.dropzone.over{border-color:var(--accent);background:var(--accent-faint)}.dropzone label{color:var(--ink-secondary);font-size:.8rem}details{margin-top:12px;font-size:.85rem}summary{cursor:pointer;color:var(--ink-secondary);transition:color var(--transition)}summary:hover{color:var(--ink)}.site-footer{max-width:var(--max-width);border-top:1px solid var(--surface-border);color:var(--ink-tertiary);margin:32px auto 0;padding-top:16px;font-size:.78rem}.site-footer a{color:var(--ink-secondary);transition:color var(--transition);text-decoration:none}.site-footer a:hover{color:var(--accent-bright)}
