:root{--ink:#17212b;--muted:#607080;--line:#dde4ea;--accent:#e95c36;--accent-dark:#bd3f20;--paper:#f5f7f9;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1120px)/2));gap:20px}.brand{font-weight:900;letter-spacing:.08em;text-decoration:none;color:var(--ink)}.brand span{color:var(--accent)}nav{display:flex;gap:20px}nav a{color:var(--muted);text-decoration:none;font-size:.9rem}nav a:hover{color:var(--accent)}.page{max-width:1120px;margin:0 auto;padding:50px 24px 70px}.hero{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:30px}.eyebrow{font-size:.72rem;letter-spacing:.16em;font-weight:800;color:var(--accent);margin:0 0 12px}.hero h1,.result-head h1{font-size:clamp(2rem,5vw,4rem);line-height:1.02;letter-spacing:-.05em;margin:0 0 16px}.lead{font-size:1.15rem;color:var(--muted);max-width:650px;line-height:1.6;margin:0}.hero-note{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;line-height:1.7;min-width:200px;color:var(--muted);box-shadow:0 10px 30px #18212b0a}.hero-note strong{color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 10px 30px #18212b0a}.form-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px}.upload-box{min-height:300px;border:2px dashed #c7d0d8;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);cursor:pointer;text-align:center}.upload-box:hover{border-color:var(--accent);background:#fffaf8}.upload-box input{max-width:90%;font-size:.85rem}.upload-icon{font-size:2.4rem;color:var(--accent);font-weight:300}.upload-box strong{color:var(--ink);font-size:1.2rem}.controls{display:grid;align-content:center;gap:7px}label{display:grid;gap:6px;font-size:.85rem;color:var(--muted);font-weight:650;margin-bottom:13px}input,select{width:100%;padding:12px 13px;border:1px solid #cfd8df;border-radius:9px;background:#fff;color:var(--ink);font:inherit}input:focus,select:focus{outline:3px solid #e95c3630;border-color:var(--accent)}button,.button{border:0;border-radius:9px;padding:13px 18px;font:inherit;font-weight:750;cursor:pointer;text-decoration:none;display:inline-block}.primary{background:var(--accent);color:#fff;margin-top:24px}.primary:hover{background:var(--accent-dark)}.secondary{color:var(--ink);background:#eef2f5}.secondary:hover{background:#e0e7ec}.info-grid,.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.info-card{padding:22px 4px}.info-card span{color:var(--accent);font-weight:800}.info-card h2{font-size:1.1rem;margin:12px 0 8px}.info-card p,.muted,.disclaimer{color:var(--muted);line-height:1.55}.messages{margin-bottom:20px}.message{border-radius:10px;padding:13px 16px;margin-bottom:8px}.message.error{background:#fff0ed;color:#a92f1c}.message.success{background:#eaf8ef;color:#20773b}.result-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.result-head h1{font-size:clamp(1.8rem,4vw,3rem)}.price-card{background:var(--ink);color:#fff;border-radius:16px;padding:28px;display:flex;justify-content:space-between;gap:28px;align-items:center}.price-card .muted,.price-card small{color:#b9c6cf;display:block}.price-card strong{font-size:clamp(2.5rem,6vw,4.5rem);line-height:1;display:block;margin:10px 0}.price-meta{display:grid;grid-template-columns:auto auto;gap:6px 24px;color:#b9c6cf;text-align:right}.price-meta b{color:#fff}.result-grid{grid-template-columns:1fr 1fr}.card h2{margin:0 0 20px;font-size:1.2rem}dl{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0}dt{color:var(--muted)}dd{margin:0;font-weight:750;text-align:right}.total-line{border-top:1px solid var(--line);padding-top:12px;margin-top:4px;color:var(--ink)}.disclaimer{font-size:.85rem;margin-top:20px}.admin-section{margin-top:30px}.admin-section>h2,.section-title h2{margin:0 0 12px}.section-title{margin-bottom:14px}.admin-form{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}.admin-form>div{align-self:end;margin-bottom:13px}.admin-row{display:grid;grid-template-columns:1.1fr .65fr .85fr .75fr 1.5fr auto auto;gap:12px;align-items:end;margin-bottom:12px;padding:18px}.admin-row label{margin:0}.admin-row h3{margin:0 0 10px}.admin-row.new-row{grid-template-columns:1.1fr .65fr .85fr .75fr 1.5fr auto auto}.checkbox{display:flex;align-items:center;gap:8px;white-space:nowrap;padding-bottom:12px}.checkbox input{width:auto}.admin-row button{margin-bottom:0}footer{text-align:center;color:#8997a2;font-size:.78rem;padding:0 24px 32px}@media(max-width:800px){.hero,.result-head{display:block}.hero-note{margin-top:20px}.form-grid,.info-grid,.result-grid,.admin-form{grid-template-columns:1fr}.price-card{display:block}.price-meta{text-align:left;margin-top:20px}.admin-row,.admin-row.new-row{grid-template-columns:1fr 1fr}.admin-row h3{grid-column:1/-1}nav{gap:10px;flex-wrap:wrap;justify-content:end}.topbar{height:auto;padding-top:18px;padding-bottom:18px}}
.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.preview-card{min-width:0}.preview-canvas{display:block;width:100%;height:auto;min-height:240px;border-radius:12px;background:linear-gradient(145deg,#15202a,#263746);touch-action:none}.upload-preview{display:none;width:92%;height:150px;min-height:0;border-radius:10px}.upload-box.has-preview .upload-preview{display:block}.upload-box.has-preview .upload-icon{display:none}.upload-copy{display:grid;gap:6px}.preview-hint{font-size:.78rem;color:var(--muted);white-space:nowrap}.preview-note{font-size:.8rem;color:var(--muted);line-height:1.45;margin:10px 0 0}.layer-control{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:16px 0 0}.layer-control input{padding:0;border:0;accent-color:var(--accent)}.layer-control output{font-weight:800;color:var(--ink);min-width:80px;text-align:right}.processing-status{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;border:1px solid #f2c2b4;border-radius:10px;background:#fff8f5;color:#8d321f}.processing-status>span:last-child{display:grid;gap:3px}.processing-status small{font-weight:500;color:#a65743}.spinner{width:22px;height:22px;border:3px solid #f3c7ba;border-top-color:var(--accent);border-radius:50%;animation:spin .85s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}button:disabled{opacity:.7;cursor:wait}@media(max-width:800px){.preview-grid{grid-template-columns:1fr}.preview-hint{white-space:normal}}
.selected-files{font-size:.78rem;color:var(--muted);max-width:90%;line-height:1.45}.selected-files:empty{display:none}.parts-card{margin-top:24px}.parts-list{display:grid;gap:8px}.part-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.part-row>div{display:grid;gap:4px}.part-row span{font-size:.82rem;color:var(--muted)}.fit-good,.fit-bad{font-size:.75rem;white-space:nowrap}.fit-good{color:#257944}.fit-bad{color:#b3311d;background:#fff0ed;padding:5px 8px;border-radius:6px}@media(max-width:800px){.part-row{display:grid}.fit-good,.fit-bad{justify-self:start}}
.selected-file-row{display:grid;grid-template-columns:1fr;gap:5px;padding:8px 0;border-top:1px solid #dbe2e8;width:100%}.selected-file-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-file-row select{font-size:.78rem;padding:7px 9px}
.minimum-note{display:block;color:#ffd1c3;font-size:.82rem;margin-top:10px}
.quote-code{margin:10px 0 0;color:var(--muted)}.quote-code strong{display:inline-block;color:var(--ink);background:#fff0eb;border:1px solid #f4c3b5;border-radius:7px;padding:5px 9px;letter-spacing:.08em}.quote-next strong{display:block;font-size:1.7rem;letter-spacing:.1em;margin:6px 0 14px}.quote-next p{color:var(--muted);line-height:1.5}.quote-summary{max-width:720px;margin-top:24px}.table-wrap{overflow:auto}.quotes-table{width:100%;border-collapse:collapse;font-size:.84rem}.quotes-table th,.quotes-table td{text-align:left;padding:11px 10px;border-top:1px solid var(--line);white-space:nowrap}.quotes-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.quotes-table a{color:var(--accent-dark);text-decoration:none}.empty-state{max-width:680px;margin:40px auto;text-align:center}.empty-state .primary{margin-top:12px}
