:root{--bg:#f5f6f8;--card:#fff;--border:#e4e7eb;--text:#16181d;--muted:#6b7280;--accent:#4f46e5;--accent-soft:#eef0fe;--warn:#b45309;--error:#dc2626;--ok:#059669;--track:#e9eaf0}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}#app{max-width:880px;margin:0 auto;padding:28px 20px 60px}header h1{letter-spacing:-.02em;margin:0 0 6px;font-size:26px}.tagline{color:var(--muted);max-width:640px;margin:0 0 24px;font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.card h2{margin:0 0 14px;font-size:16px}label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}textarea,input,select{border:1px solid var(--border);width:100%;font:inherit;color:inherit;background:#fff;border-radius:8px;padding:9px 11px}textarea:focus,input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{resize:vertical;min-height:80px}.note-row{flex-wrap:wrap;gap:14px;margin-top:8px;font-size:13px;display:flex}.muted{color:var(--muted)}.warn{color:var(--warn)}.hidden{display:none!important}.field-note{color:var(--muted);margin-top:8px;font-size:12.5px}.btn{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:8px;padding:9px 16px;font-weight:600}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){color:#fff;background:#4338ca}.btn:disabled{opacity:.45;cursor:not-allowed}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px}.link-btn:hover{text-decoration:underline}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;width:26px;height:26px;font-size:15px;line-height:1}.icon-btn:hover:not(:disabled){background:var(--track);color:var(--text)}.icon-btn:disabled{opacity:.3;cursor:default}.add-q-row{gap:10px;margin-top:6px;display:flex}.add-q-row select{max-width:260px}.empty-note{color:var(--muted);padding:10px 0;font-size:14px}.q-card{border:1px solid var(--border);background:#fcfcfd;border-radius:10px;margin-bottom:12px;padding:14px}.q-card.invalid{border-color:var(--error);background:#fef7f7}.q-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.q-num{font-size:14px;font-weight:700}.q-type{color:var(--accent);background:var(--accent-soft);border-radius:20px;padding:2px 10px;font-size:12px}.q-id{color:var(--muted);margin-left:auto;font-size:12px}.q-problem{color:var(--error);margin-bottom:8px;font-size:13px}.field{margin-bottom:10px}.opt-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.opt-row{grid-template-columns:1fr 1.4fr auto;align-items:center;gap:8px;display:grid}.opt-actions{gap:2px;display:flex}.run-card{align-items:center;gap:14px;display:flex}#run-status.error{color:var(--error)}.ans-card{border:1px solid var(--border);border-radius:10px;margin-bottom:12px;padding:14px 16px}.ans-head{align-items:center;gap:10px;margin-bottom:4px;display:flex}.ans-num{font-size:13px;font-weight:700}.ans-type{color:var(--muted);font-size:12px}.ans-ms{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.ans-text{margin-bottom:10px;font-size:14px}.noul-big{color:var(--accent);font-variant-numeric:tabular-nums;margin:6px 0 8px;font-size:40px;font-weight:700;line-height:1.1}.bar{background:var(--track);border-radius:8px;height:14px;overflow:hidden}.bar.slim{height:6px}.bar-fill{background:linear-gradient(90deg, #6366f1, var(--accent));border-radius:8px;height:100%;transition:width .25s}.bar-fill.cached{background:var(--ok)}.ans-sub{color:var(--muted);margin-top:8px;font-size:13px}.dist{flex-direction:column;gap:6px;display:flex}.dist-row{border-radius:6px;grid-template-columns:minmax(70px,220px) 1fr 52px;align-items:center;gap:10px;padding:3px 6px;display:grid}.dist-row.top{background:var(--accent-soft)}.dist-lbl{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.dist-row.top .dist-lbl{font-weight:700}.dist-bar{background:var(--track);border-radius:6px;height:10px;overflow:hidden}.dist-fill{background:#9ca1c8;border-radius:6px;height:100%}.dist-row.top .dist-fill{background:var(--accent)}.dist-pct{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.dist-row.top .dist-pct{color:var(--text);font-weight:700}.scale-wrap{margin-top:14px;padding:0 4px 2px}.scale-track{background:var(--track);border-radius:6px;height:8px;position:relative}.scale-marker{background:var(--accent);border:3px solid #fff;border-radius:50%;width:16px;height:16px;margin-left:-8px;position:absolute;top:-5px;box-shadow:0 1px 4px #16181d59}.scale-ticks{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.m-row{border-bottom:1px dashed var(--border);gap:14px;padding:7px 0;font-size:13.5px;display:flex}.m-row:last-child{border-bottom:none}.m-k{width:210px;color:var(--muted);flex:none}.m-v{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metrics-actions{margin-top:12px}#overlay{z-index:100;background:#0f11178c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.overlay-card{background:#fff;border-radius:14px;width:100%;max-width:520px;padding:24px 26px;box-shadow:0 20px 60px #0000004d}.overlay-card h3{margin:0 0 6px;font-size:18px}.overlay-card .muted{margin:0 0 14px;font-size:13px}.ov-file{margin-bottom:12px}.ov-file-head{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.ov-name{font-variant-numeric:tabular-nums;font-weight:600}.ov-size{color:var(--muted);font-variant-numeric:tabular-nums}#ov-status{margin-top:12px;font-size:13px}#ov-retry{margin-top:12px}footer{color:var(--muted);margin-top:30px;font-size:12.5px}footer a{color:var(--accent)}@media (width<=640px){.opt-row{grid-template-columns:1fr}.opt-actions{justify-content:flex-end}.m-row{flex-direction:column;gap:2px}.m-k{width:auto}.dist-row{grid-template-columns:minmax(60px,110px) 1fr 52px}}.banner{border:1px solid;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13.5px;line-height:1.5}.banner.hard{color:#7a4d06;background:#fff8e8;border-color:#f0c36d}.banner.soft{border-color:var(--border);color:var(--muted);background:#fafafc}.q-head-actions{gap:2px;display:flex}.q-id-input{width:92px;color:var(--muted);border:1px solid var(--border);background:#fff;border-radius:6px;margin-left:auto;padding:3px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.crit-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.q-budget{border-top:1px dashed var(--border);flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;font-size:12px;line-height:1.45;display:flex}.q-advice{color:var(--muted);border-left:2px solid var(--border);margin-top:6px;padding-left:12px;font-size:12px}.radio-row{flex-wrap:wrap;gap:14px;display:flex}.radio{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.calib-note{color:var(--muted);border-left:2px solid var(--accent-soft);margin-bottom:14px;padding-left:12px;font-size:12.5px;line-height:1.5}.breakdown{border:1px solid var(--border);background:#fafafc;border-radius:8px;margin-top:8px;padding:10px 12px}.breakdown .m-k{width:190px}.breakdown .m-row{padding:5px 0;font-size:12.5px}.table-wrap{margin-top:16px;overflow-x:auto}.metrics-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.metrics-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px 6px 0;font-weight:600}.metrics-table td{border-bottom:1px dashed var(--border);white-space:nowrap;padding:6px 10px 6px 0}.metrics-table tr:last-child td{border-bottom:none}@media (width<=640px){.crit-grid{grid-template-columns:1fr}.q-id-input{width:72px}}.bar.indeterminate{position:relative;overflow:hidden}.bar.indeterminate .bar-fill{width:35%;animation:1.4s ease-in-out infinite bar-slide;position:absolute}@keyframes bar-slide{0%{left:-35%}to{left:100%}}@media (prefers-reduced-motion:reduce){.bar.indeterminate .bar-fill{opacity:.35;width:100%;animation:none;left:0}}.ans-partial{color:var(--warn);font-size:12px;font-weight:400}.dist-pct.muted{font-variant-numeric:normal;font-size:11px}.q-budget .error{color:var(--error)}.q-budget .warn{color:var(--warn)}
