:root{--orange: #ff6600;--orange-dark: #d95600;--orange-deep: #b34700;--orange-soft: #fff1e8;--orange-grad: linear-gradient(135deg, #ff7a1f 0%, #ff6600 55%, #f05500 100%);--navy: #1f497d;--navy-dark: #16355c;--navy-soft: #e8eef6;--navy-grad: linear-gradient(135deg, #27568f 0%, #1f497d 60%, #16355c 100%);--gray: #a6a6a6;--gray-soft: #f2f2f2;--ink: #221d18;--muted: #8a8177;--line: #e6dfd6;--white: #ffffff;--cream: #faf7f2;--serif: "Book Antiqua", "Palatino Linotype", Palatino, "URW Palladio L", serif;--shadow-sm: 0 1px 3px rgba(31, 41, 61, .08);--shadow: 0 3px 14px rgba(31, 41, 61, .1);--shadow-lg: 0 12px 34px rgba(31, 41, 61, .16);--radius: 14px;--radius-sm: 9px;--ease: cubic-bezier(.22, .8, .36, 1)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{font-family:var(--serif);color:var(--ink);background:radial-gradient(1200px 500px at 85% -10%,rgba(255,102,0,.07),transparent 60%),radial-gradient(900px 420px at -10% 0%,rgba(31,73,125,.06),transparent 55%),var(--cream);background-attachment:fixed;font-size:15px;-webkit-font-smoothing:antialiased}::selection{background:var(--orange-soft);color:var(--orange-deep)}.boot-screen{display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;height:100vh;font-size:19px;color:var(--navy);letter-spacing:.5px}.boot-screen:before{content:"";width:44px;height:44px;border-radius:50%;border:3px solid var(--orange-soft);border-top-color:var(--orange);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.boot-screen.error{color:#b00020}.boot-screen.error:before{display:none}.app-header{display:flex;align-items:center;justify-content:space-between;background:#ffffffd9;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:10px 30px;position:sticky;top:0;z-index:40}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--orange-grad)}.brand{display:flex;align-items:center;gap:14px}.brand-logo{height:50px;width:auto;border-radius:10px;box-shadow:var(--shadow-sm)}.brand-name{font-size:21px;font-weight:700;letter-spacing:3px;color:var(--navy)}.brand-sub{font-size:11px;color:var(--orange-dark);letter-spacing:2.5px;text-transform:uppercase}.app-header nav{display:flex;gap:4px;position:relative}.app-header nav a{position:relative;padding:9px 20px;border-radius:999px;text-decoration:none;color:var(--navy);font-weight:700;font-size:14px;z-index:1;transition:color .2s var(--ease)}.app-header nav a.active{color:var(--white)}.nav-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--orange-grad);box-shadow:0 4px 12px #ff660059}.app-main{max-width:1300px;margin:0 auto;padding:26px 30px 90px}h1,h2,h3{color:var(--navy)}.page-title{font-size:27px;margin:6px 0 18px;letter-spacing:.5px}button,.btn{font-family:var(--serif);font-size:14px;cursor:pointer;border:1px solid var(--line);background:var(--white);color:var(--ink);padding:8px 17px;border-radius:10px;transition:all .18s var(--ease);box-shadow:var(--shadow-sm)}button:hover{border-color:var(--orange);color:var(--orange-dark);transform:translateY(-1px);box-shadow:var(--shadow)}button:active{transform:translateY(0)}button.primary{background:var(--orange-grad);border:none;color:var(--white);font-weight:700;box-shadow:0 4px 14px #ff660059}button.primary:hover{color:var(--white);filter:brightness(1.06);box-shadow:0 6px 18px #ff660073}button.navy{background:var(--navy-grad);border:none;color:var(--white);box-shadow:0 4px 14px #1f497d4d}button.navy:hover{color:var(--white);filter:brightness(1.08)}button.danger{color:#b00020}button.danger:hover{border-color:#b00020}button.ghost{border-color:transparent;background:transparent;box-shadow:none}button.ghost:hover{background:var(--orange-soft);transform:none;box-shadow:none}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button:focus{outline:none}button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}input,select,textarea{font-family:var(--serif);font-size:14px;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:var(--white);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px #ff66002e}input.num{width:92px;text-align:right;font-variant-numeric:tabular-nums}input.qty{width:74px;text-align:center;font-weight:700}label.fld{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--navy);font-weight:700;letter-spacing:.3px}label.fld input,label.fld select{font-weight:400}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:16px}.spacer{flex:1}.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.stat-chip{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow-sm)}.stat-chip .label{font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}.stat-chip .value{font-size:24px;font-weight:700;color:var(--navy);margin-top:2px;font-variant-numeric:tabular-nums}.stat-chip.accent .value{color:var(--orange-dark)}.quotes-table{width:100%;border-collapse:collapse}.quotes-table th{text-align:left;background:var(--navy-grad);color:var(--white);padding:11px 14px;font-size:12.5px;letter-spacing:1px;text-transform:uppercase}.quotes-table th:first-child{border-top-left-radius:var(--radius-sm)}.quotes-table th:last-child{border-top-right-radius:var(--radius-sm)}.quotes-table td{padding:12px 14px;border-bottom:1px solid var(--gray-soft)}.quotes-table tbody tr{transition:background .15s}.quotes-table tbody tr:hover td{background:var(--orange-soft)}.badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:12px;font-weight:700;background:var(--navy-soft);color:var(--navy);letter-spacing:.5px}.badge.orange{background:var(--orange-soft);color:var(--orange-deep)}.badge.green{background:#e5f4e8;color:#22713a}.badge.red{background:#fdebee;color:#a4243b}.series-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0 22px}.series-card{position:relative;cursor:pointer;border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white);transition:border-color .2s var(--ease),box-shadow .2s var(--ease);box-shadow:var(--shadow-sm)}.series-card:hover{box-shadow:var(--shadow-lg)}.series-card.selected{border-color:transparent}.series-ring{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:var(--radius);pointer-events:none;border:3px solid var(--orange);box-shadow:0 0 0 4px #ff66002e;z-index:2}.series-card .series-banner{background:var(--orange-grad);color:var(--white);font-size:17px;font-weight:700;padding:11px 12px;text-align:center;letter-spacing:2px}.series-card .img-frame{overflow:hidden;height:132px;background:var(--gray-soft)}.series-card img{width:100%;height:132px;object-fit:cover;display:block;transition:transform .5s var(--ease)}.series-card:hover img{transform:scale(1.06)}.series-card .series-meta{padding:10px 14px;display:flex;justify-content:space-between;font-size:13px;align-items:center}.series-card .tick{position:absolute;top:9px;right:9px;background:var(--white);color:var(--orange);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:var(--shadow);z-index:3}.tabs{display:flex;gap:6px;margin:18px 0 0;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;padding:8px 10px 0}.tabs button{position:relative;isolation:isolate;border:none;border-radius:10px 10px 0 0;padding:11px 20px;background:transparent;color:var(--muted);font-weight:700;box-shadow:none;transition:color .2s}.tabs button:hover{transform:none;color:var(--navy);box-shadow:none}.tabs button.active{color:var(--white)}.tab-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px 10px 0 0;background:var(--navy-grad);z-index:0}.tabs button>span.txt{position:relative;z-index:1}.tabs button .pill{margin-left:8px;background:var(--orange);color:var(--white);border-radius:999px;padding:1px 8px;font-size:12px;position:relative;z-index:1}.tab-body{background:var(--white);border:1px solid var(--line);border-top:none;padding:22px;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);overflow:hidden}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}.product-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--white);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .25s var(--ease),transform .25s var(--ease),border-color .2s}.product-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.product-card.in-quote{border-color:var(--orange);box-shadow:0 0 0 2px #ff660026,var(--shadow)}.product-card .img-wrap{height:150px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#fff,#faf8f5);border-bottom:1px solid var(--gray-soft);padding:8px;overflow:hidden}.product-card .img-wrap img{max-height:100%;max-width:100%;object-fit:contain;transition:transform .4s var(--ease)}.product-card:hover .img-wrap img{transform:scale(1.07)}.product-card .img-wrap .no-img{color:var(--gray);font-size:12px;letter-spacing:1px}.product-card .body{padding:11px 13px;display:flex;flex-direction:column;gap:6px;flex:1}.product-card .art{font-size:11.5px;color:var(--muted);letter-spacing:.4px}.product-card .desc{font-size:13px;line-height:1.38;flex:1}.product-card .price-row{display:flex;justify-content:space-between;align-items:center}.product-card .price{font-weight:700;color:var(--navy);font-size:15.5px;font-variant-numeric:tabular-nums}.product-card .unit{font-size:12px;color:var(--muted)}.product-card .qty-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--gray-soft);padding:9px 13px;background:#fcfaf7}.product-card .amount{font-size:13px;font-weight:700;color:var(--orange-deep);font-variant-numeric:tabular-nums}.stepper{display:flex;align-items:center;gap:0}.stepper button{width:30px;height:32px;padding:0;border-radius:10px 0 0 10px;font-size:16px;line-height:1;box-shadow:none}.stepper button:hover{transform:none}.stepper button:last-child{border-radius:0 10px 10px 0}.stepper input{width:54px;height:32px;border-radius:0;border-left:none;border-right:none;text-align:center;padding:0}.unavailable-note{font-size:12px;color:#a4243b;font-weight:700}.sec-table{width:100%;border-collapse:collapse;font-size:13.5px}.sec-table th{background:var(--navy-soft);color:var(--navy);text-align:left;padding:9px 11px;font-size:12px;letter-spacing:.8px;text-transform:uppercase}.sec-table td{padding:8px 11px;border-bottom:1px solid var(--gray-soft);vertical-align:middle}.sec-table tbody tr{transition:background .15s}.sec-table tbody tr:hover{background:#fdf9f4}.sec-table td.r,.sec-table th.r{text-align:right;font-variant-numeric:tabular-nums}.sec-table td.c,.sec-table th.c{text-align:center}.sec-table tr.picked td{background:var(--orange-soft)}.sec-table .amount{font-weight:700;color:var(--navy);white-space:nowrap}.group-head{background:var(--navy-grad);color:var(--white);font-weight:700;padding:10px 14px;font-size:13px;letter-spacing:1px;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.group-head .hint,.group-head .warn{color:#ffffffd9}.group-head .warn{color:#ffd9a3}.cascade-head{display:flex;justify-content:space-between;align-items:center;gap:8px 14px;flex-wrap:wrap}.cascade-head .title{white-space:nowrap}.cascade-head .controls{display:flex;gap:6px 14px;flex-wrap:wrap;margin-left:auto;align-items:center;font-size:12px;font-weight:400}.cascade-head .controls label{display:flex;align-items:center;gap:6px;white-space:nowrap}.cascade-head .controls input{width:78px;padding:3px 7px}.hint{font-size:12.5px;color:var(--muted)}.warn{color:#a4243b;font-size:12.5px;font-weight:700}.calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:16px}.calc-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--white);box-shadow:var(--shadow-sm)}.calc-card .calc-head{display:flex;justify-content:space-between;align-items:center;background:var(--navy-grad);color:var(--white);padding:10px 15px;font-weight:700;letter-spacing:.5px}.calc-card .calc-head .sqft-badge{background:var(--orange-grad);border-radius:999px;padding:3px 13px;font-size:13px;font-variant-numeric:tabular-nums;box-shadow:0 2px 8px #0003}.calc-card table{width:100%;border-collapse:collapse;font-size:13px}.calc-card th{background:var(--gray-soft);padding:7px 9px;text-align:left;font-size:11.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.calc-card td{padding:5px 9px;border-bottom:1px solid var(--gray-soft)}.calc-card input{width:84px;padding:5px 8px}.calc-card .calc-foot{padding:9px 13px;display:flex;justify-content:space-between;align-items:center;background:#fcfaf7}.cascade{width:100%;border-collapse:collapse;font-size:14px}.cascade td{padding:8px 14px;border-bottom:1px solid var(--gray-soft)}.cascade td.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cascade tr.sub td{background:#f7f4ef;font-weight:700}.cascade tr.grand td{background:var(--navy-grad);color:var(--white);font-weight:700;font-size:15px}.cascade input{width:90px;text-align:right;padding:4px 8px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}.package-banner{margin-top:22px;background:var(--orange-grad);color:var(--white);border-radius:var(--radius);padding:20px 28px;display:flex;justify-content:space-between;align-items:center;font-size:23px;font-weight:700;box-shadow:0 10px 30px #ff660059;position:relative;overflow:hidden;letter-spacing:1px}.package-banner.navy{background:var(--navy-grad);box-shadow:0 10px 30px #1f497d59}.package-banner:after{content:"";position:absolute;top:-60%;left:-20%;width:45%;height:220%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);transform:rotate(18deg)}.package-banner .val{font-variant-numeric:tabular-nums}.compare-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.compare-card{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;text-align:center;background:var(--white);box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease)}.compare-card:hover{box-shadow:var(--shadow)}.compare-card.current{border-color:var(--orange);background:var(--orange-soft)}.compare-card .name{font-weight:700;color:var(--navy);letter-spacing:2px;font-size:13px}.compare-card .val{font-size:20px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.admin-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.admin-tabs button{border-radius:999px}.admin-tabs button.active{background:var(--navy-grad);color:var(--white);border-color:transparent}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{background:var(--navy-soft);color:var(--navy);padding:8px 10px;text-align:left;position:sticky;top:74px;font-size:11.5px;letter-spacing:.8px;text-transform:uppercase;z-index:5}.admin-table td{padding:6px 10px;border-bottom:1px solid var(--gray-soft)}.admin-table tbody tr:hover{background:#fdf9f4}.admin-table img.thumb{height:42px;width:58px;object-fit:contain;background:var(--white);border:1px solid var(--gray-soft);border-radius:6px}.admin-table tr.inactive td{opacity:.45}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#16203280;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px}.modal{background:var(--white);border-radius:var(--radius);padding:24px;width:660px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 70px #00000059}.modal h3{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.series-price-block{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin-top:10px;background:#fcfaf7}.series-price-block h4{margin:0 0 8px;color:var(--orange-deep);font-size:12.5px;letter-spacing:2px}.print-root{background:#6b7280;min-height:100vh;padding:24px 0}.print-actions{position:sticky;top:0;z-index:50;display:flex;gap:10px;justify-content:center;padding:10px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow);margin-bottom:18px}.doc-page{width:210mm;min-height:297mm;margin:0 auto 16px;background:var(--white);padding:12mm 11mm;box-shadow:0 6px 26px #0006}.doc-banner{background:var(--orange);color:var(--white);text-align:center;font-size:24px;letter-spacing:1px;padding:14px 10px;font-weight:700}.doc-letterhead{display:flex;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:2px solid var(--navy)}.doc-letterhead .co .co-name{font-size:20px;font-weight:700;color:var(--navy)}.doc-letterhead .co div{font-size:12px;line-height:1.45}.doc-letterhead .cust{font-size:12.5px;line-height:1.6}.doc-letterhead .cust .cust-title{font-weight:700;color:var(--navy)}.doc-letterhead img.doc-logo{height:84px;align-self:center}.doc-subject{font-weight:700;padding:8px 4px;font-size:13.5px}.doc-sec-title{display:flex;justify-content:space-between;background:var(--navy);color:var(--white);font-weight:700;padding:8px 12px;margin-top:14px;font-size:15px}.doc-table{width:100%;border-collapse:collapse;font-size:11.5px}.doc-table th{background:var(--gray);color:var(--white);padding:6px 7px;text-align:left}.doc-table td{padding:5px 7px;border:1px solid #e3e3e3;vertical-align:middle}.doc-table td.r,.doc-table th.r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.doc-table td.c{text-align:center}.doc-table img.doc-img{max-height:58px;max-width:84px;object-fit:contain;display:block;margin:0 auto}.doc-cascade{margin-left:auto;margin-top:6px;width:320px;border-collapse:collapse;font-size:12px}.doc-cascade td{padding:4px 8px;border-bottom:1px solid #eee}.doc-cascade td.r{text-align:right;font-variant-numeric:tabular-nums}.doc-cascade tr.grand td{background:var(--gray-soft);font-weight:700;border-top:2px solid var(--navy)}.doc-summary-title{text-align:center;font-size:26px;font-weight:700;color:var(--navy);margin:24px 0 10px;letter-spacing:2px}.doc-package td{background:var(--orange)!important;color:var(--white);font-weight:700;font-size:14px}.doc-terms{margin-top:20px;font-size:11.5px}.doc-terms h4{text-decoration:underline;margin-bottom:8px}.doc-terms ol{padding-left:20px;margin:0}.doc-terms li{margin-bottom:4px;white-space:pre-line}.doc-sign{margin-top:34px;font-weight:700;font-size:13px}.avoid-break{break-inside:avoid}@media print{@page{size:A4 portrait;margin:8mm}body{background:var(--white)}.print-root{background:var(--white);padding:0}.print-actions{display:none}.doc-page{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.doc-banner,.doc-sec-title,.doc-table th,.doc-package td,.doc-cascade tr.grand td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.doc-table tr,.doc-cascade tr{break-inside:avoid;page-break-inside:avoid}.doc-sec-title,.doc-summary-title{break-after:avoid;page-break-after:avoid}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
