:root{--bg:#eef3f7;--ink:#101828;--muted:#667085;--card:#fff;--line:#d9e2ec;--blue:#1769aa;--teal:#087f83;--dark:#111827;--green:#067647;--warn:#8a5a00}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.hero{background:linear-gradient(135deg,#07111f,#123c63 55%,#0c7a7e);color:#fff;padding:24px clamp(16px,4vw,56px) 46px}nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:48px}.brand{display:flex;align-items:center;gap:12px;font-weight:750}.mark{width:42px;height:42px;border-radius:12px;background:#fff;color:#123c63;display:grid;place-items:center;font-weight:900}.domain{font-size:14px;color:#c6d7e8}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:30px;align-items:end;max-width:1180px;margin:auto}.eyebrow{color:#98f0f2;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}h1{font-size:clamp(36px,6vw,68px);line-height:.95;margin:0 0 18px;max-width:860px}.lead{font-size:19px;line-height:1.55;color:#dbeafe;max-width:760px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn{border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:11px 16px;font-weight:750;text-decoration:none;cursor:pointer}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.full{width:100%}.hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:22px;padding:24px;backdrop-filter:blur(10px)}.hero-card span{color:#b8d5ef;font-size:13px}.hero-card strong{display:block;font-size:32px;margin:8px 0}.hero-card p{color:#dbeafe}.layout{max-width:1180px;margin:-26px auto 40px;padding:0 16px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px}.panel,.catalog-wrap,.quote-wrap{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(16,24,40,.05)}.controls{grid-row:span 2}.summary{align-self:start}h2{margin:0 0 14px;font-size:20px}label{display:block;font-size:13px;font-weight:750;color:#344054;margin:14px 0 8px}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit;background:#fff}.upload{margin-top:18px;padding:14px;border:1px dashed #aec2d4;border-radius:14px;background:#f8fbfd}.upload p,.warning,footer{color:var(--muted);font-size:13px;line-height:1.45}.upload small{display:block;color:var(--muted);margin-top:8px}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.totals div{border:1px solid var(--line);border-radius:14px;padding:14px;background:#f8fbfd}.totals span{display:block;color:var(--muted);font-size:12px}.totals strong{font-size:23px}.totals .grand{background:#0b1324;color:#fff;border-color:#0b1324}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-head span{color:var(--muted);font-size:13px}.catalog{display:grid;gap:10px}.item{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:14px;align-items:center}.item:hover{border-color:#9cc4e4;background:#fbfdff}.item h3{font-size:15px;margin:0 0 6px}.meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.pill{font-size:11px;border:1px solid #d0dce7;border-radius:999px;padding:3px 8px;color:#456071;background:#f6f9fb}.desc{color:var(--muted);font-size:13px;line-height:1.4;margin:0}.price{font-weight:850;color:var(--blue);font-size:18px}.qty input{text-align:right;font-weight:800}.quote{display:grid;gap:8px}.quote.empty{color:var(--muted);display:block}.quote-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 115px 115px 115px;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;font-size:13px}.quote-row strong{font-size:14px}.quote-head{font-weight:850;color:#475467;text-transform:uppercase;font-size:11px}footer{text-align:center;padding:30px 16px}@media(max-width:850px){.hero-grid,.layout{grid-template-columns:1fr}.controls{grid-row:auto}.totals{grid-template-columns:1fr}.quote-row{grid-template-columns:1fr 70px 90px}.quote-row .hide-sm{display:none}nav{align-items:flex-start;gap:12px;flex-direction:column}}