@font-face{font-family:Manrope;src:url("../fonts/manrope-400.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url("../fonts/manrope-700.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
:root{color-scheme:light;--ink:#1e2c38;--muted:#455d70;--blue:#2374a6;--deep:#195679;--line:#dbe5ec;--paper:#f0f4f7;--white:#fff}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:#fff;color:var(--ink);font:14px/1.5 Manrope,Arial,sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.55}
:focus-visible{outline:3px solid #2c84bc;outline-offset:2px}
.wrap{width:100%;padding:5px 4px 9px}
.wrap>h1,.wrap>.lead{display:none}
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:start;gap:16px}
.panel{min-width:0;padding:clamp(12px,2.3vw,25px);border:1px solid var(--line);background:#fff}
.panel-title{font-size:clamp(17px,2.4vw,24px);line-height:1.2;letter-spacing:-.02em;margin:0 0 15px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.field{min-width:0;display:grid;align-content:start;gap:5px}
.field.full,.dimension-row,.add-size-wrap,.saved-products{grid-column:1/-1}
label{font-size:13px;font-weight:700}
select,input{width:100%;min-width:0;min-height:44px;padding:6px 10px;border:1px solid #aabfce;border-radius:0;color:var(--ink);background:#fff}
.hint{color:var(--muted);font-size:12px}
.warning{color:#8b3032;font-size:13px}
.warning:not(:empty){margin-top:12px}
.seg,.counter,.visual-tabs{display:flex;gap:5px;min-width:0}
.seg{flex-wrap:wrap}
.seg button,.counter button,.visual-tab,.add-size-btn,.remove-size,.saved-product button,.price-toggle,.kp-print-link{
  min-height:42px;padding:6px 9px;border:1px solid #aabfce;border-radius:0;background:#fff;color:var(--deep)
}
.seg button.active,.visual-tab.active{border-color:var(--blue);background:#e8f4fb;font-weight:700}
.counter button{flex:0 0 37px}
.dimension-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:end}
.dimension-row:first-child .remove-size{display:none}
.remove-size{min-width:34px}
.add-size-btn:hover,.counter button:hover,.visual-tab:hover,.saved-product button:hover,.kp-print-link:hover{background:#e8f4fb}
.saved-products{display:grid;gap:7px}
.saved-product{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;background:var(--paper)}
.saved-product span,.saved-product strong{display:block;overflow-wrap:anywhere}
.saved-product span{color:var(--muted);font-size:12px}
.mirror-stage{position:relative;isolation:isolate;display:grid;place-items:center;min-height:190px;aspect-ratio:4 / 3;overflow:hidden;background:#eef4f7}
.mirror{position:relative;max-width:85%;max-height:80%;aspect-ratio:3 / 2;border:1px solid #aabfce;background:linear-gradient(135deg,#d3dde4,#f9fbfc 48%,#b9cbd5)}
.mirror.figure{border-radius:45% 55% 45% 50%}
.mirror.rounded{border-radius:12px}
.mirror.bronze{background:linear-gradient(135deg,#b3a28f,#e5d5c2,#a29486)}
.mirror.graphite{background:linear-gradient(135deg,#53626f,#aebdc8,#445461)}
.mirror.clear{background:linear-gradient(135deg,#e3edf4,#fff,#c6d9e6)}
.facet-ring{display:none;position:absolute;inset:8px;border:1px solid #fff;border-radius:inherit}
.holes{position:absolute;inset:0}
.hole{position:absolute;width:8px;height:8px;border-radius:50%;background:#455d70}
.hole:nth-child(1){left:12%;top:15%}.hole:nth-child(2){right:12%;top:15%}.hole:nth-child(3){left:12%;bottom:15%}.hole:nth-child(4){right:12%;bottom:15%}
.operation-layer{display:none;position:absolute;inset:0}
.operation-layer.active{display:block}
.operation-layer img{display:block;width:100%;height:100%;object-fit:cover}
.operation-caption{position:absolute;inset:auto auto 0 0;padding:9px 11px;max-width:100%;background:#fffffff0}
.operation-caption b,.operation-caption span{display:block}
.operation-caption span{color:var(--muted);font-size:12px}
.visual-tabs{flex-wrap:wrap;margin-top:8px}
.visual-tab{min-height:37px;font-size:12px}
.summary{margin-top:12px}
.summary-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid var(--line);font-size:12px}
.summary-row span:last-child{color:var(--deep);text-align:end}
.spec-table{margin-top:12px;border:1px solid var(--line)}
.spec-head,.spec-row{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,.75fr));gap:6px;padding:7px 9px;overflow-wrap:anywhere;font-size:12px}
.spec-head{background:var(--paper);color:var(--deep);font-weight:700}
.spec-row{border-top:1px solid var(--line)}
.spec-head :nth-child(n+2),.spec-row :nth-child(n+2){text-align:end}
.spec-note,.product-group-title{grid-column:1/-1;color:var(--muted);font-size:11px}
.product-group-title,.spec-total,.total{padding:8px 10px;background:var(--paper)}
.spec-total,.total{display:flex;justify-content:space-between;gap:7px;color:var(--deep)}
.total{margin-top:10px}
.total small{color:var(--muted)}
.price{font-size:clamp(21px,3vw,30px);font-weight:700}
.calc-disclaimer,.price-note{margin:8px 0;color:var(--muted);font-size:12px}
.kp-box{margin-top:12px;padding:13px;background:var(--paper)}
.kp-box h3,.kp-box p{margin:0 0 7px}
.kp-box p{color:var(--muted);font-size:12px}
.kp-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kp-submit{margin-top:9px;min-height:44px;padding:7px 12px;border:0;background:var(--blue);color:#fff;font-weight:700}
.kp-submit:hover{background:var(--deep)}
.kp-status,.kp-print-link{display:none}
.kp-status.show,.kp-print-link.show{display:block;margin-top:8px}
.kp-status.error{color:#8b3032}.kp-status.success{color:#236144}
.price-accordion{margin-top:13px}
.price-toggle{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;gap:1px 5px;width:100%;text-align:start;padding:8px 12px}
.price-toggle small{color:var(--muted)}
.price-toggle b{grid-column:2;grid-row:1/3}
.price-toggle[aria-expanded=true] b{transform:rotate(45deg)}
.price-panel{margin-top:6px}
table{width:100%;border-collapse:collapse;font-size:12px;overflow-wrap:anywhere}
th,td{padding:7px 8px;border:1px solid var(--line);text-align:start}
th{background:var(--paper)}
@media(max-width:720px){.calc{grid-template-columns:minmax(0,1fr)}.dimension-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mirror-stage{max-height:410px}}
@media(max-width:410px){.grid,.kp-fields{grid-template-columns:minmax(0,1fr)}.spec-head,.spec-row{font-size:11px;gap:3px;padding:7px 5px}}
