:root{--bg: #f7f5f0;--card: #ffffff;--ink: #26221c;--muted: #6f675c;--line: #e5e0d6;--accent: #9a5b2d;--accent-ink: #fff;--ok: #2f7d43;--warn: #b45309;--error: #b3261e;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}.shell{max-width:760px;margin:0 auto;padding:24px 16px 64px}header.top{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}header.top h1{font-size:26px;margin:0;letter-spacing:-.5px}header.top .tag{color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px}.card h2{margin:0 0 8px;font-size:19px}.card p.hint{color:var(--muted);font-size:14px;margin:4px 0 12px}.steps{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.steps .step{font-size:13px;color:var(--muted);padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card)}.steps .step.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.steps .step.done{color:var(--ok);border-color:var(--ok)}button{font:inherit;cursor:pointer;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:10px 16px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button:hover:not(:disabled){filter:brightness(.97)}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.dropzone{border:2px dashed var(--line);border-radius:12px;padding:28px;text-align:center;color:var(--muted);background:#fbfaf7;cursor:pointer}.dropzone.drag{border-color:var(--accent);color:var(--accent)}.previews{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.previews img{width:110px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.templates{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.template{border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;background:var(--card);text-align:left}.template:hover:not(.disabled){border-color:var(--accent)}.template.disabled{opacity:.55;cursor:default}.template h3{margin:0 0 6px;font-size:16px}.template p{margin:0;font-size:13px;color:var(--muted)}.template .soon{display:inline-block;margin-top:8px;font-size:12px;color:var(--warn)}.observe{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:14px}.observe dt{color:var(--muted)}.observe dd{margin:0;font-weight:600}ul.plain{padding-left:20px;margin:8px 0}ul.plain li{margin:4px 0;font-size:14px}.q-text{font-size:18px;font-weight:600;margin:4px 0 6px}.q-error{background:#fdecea;border:1px solid #f5c6c0;color:var(--error);padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:10px}.q-note{background:#fff7e8;border:1px solid #f0dcb8;color:var(--warn);padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:10px}input.number{font:inherit;padding:10px 12px;width:180px;border:1px solid var(--line);border-radius:10px}.health li{list-style:none;margin:6px 0;font-size:14px}.health{padding-left:4px}.health .ok:before{content:"✔ ";color:var(--ok)}.health .warn:before{content:"⚠ ";color:var(--warn)}.health .error:before{content:"✖ ";color:var(--error)}table.parts{width:100%;border-collapse:collapse;font-size:13px}table.parts th,table.parts td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}table.parts th{color:var(--muted);font-weight:600}td.num,th.num{text-align:right}.cost-total{font-size:22px;font-weight:700}.cost-range{color:var(--muted);font-size:14px}.disclaimer{color:var(--muted);font-size:12px;margin-top:8px}.assumed{background:#f2f7f2;border:1px solid #d5e5d5;border-radius:10px;padding:10px 14px;font-size:14px;margin-top:10px}.spinner{color:var(--muted);font-size:14px}details summary{cursor:pointer;font-weight:600;margin:8px 0}
