:root{font-family:Inter,Arial,sans-serif;color:#414141;background:#fff;--navy:#100b70;--red:#e62019;--blue:#008acb;--line:#e2e5e9;--muted:#747474;--paper:#f6f8f9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:#fff}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.calculator-header{padding:24px max(22px,calc((100vw - 1532px)/2)) 28px;border-top:4px solid var(--navy);border-bottom:1px solid var(--line)}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand-row img{display:block;width:250px;height:auto}.tag,.stage-badge{display:inline-flex;padding:6px 9px;border-radius:4px;background:#f1f1f3;color:#414141;font-size:12px;font-weight:800;letter-spacing:.05em}.calculator-header h1{max-width:1050px;margin:24px 0 8px;font-size:clamp(27px,3vw,38px);line-height:1.15;font-weight:650}.calculator-header p{margin:0;color:var(--muted);font-size:16px;line-height:1.55}main{max-width:1580px;margin:auto;padding:26px 24px 64px}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr) 315px;gap:18px;align-items:start}.panel,.stage{border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden}.panel{padding:22px}.panel h2,.stage h2{margin:0;font-size:19px;font-weight:650}.panel>h2{padding-bottom:16px;border-bottom:1px solid var(--line)}label{display:block;margin-top:16px;font-size:14px;font-weight:650}input,select,textarea{width:100%;min-height:44px;margin-top:7px;padding:10px 11px;border:1px solid #bfc8ce;border-radius:4px;background:#fff;color:#414141}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(0,138,203,.22);outline-offset:2px;border-color:var(--blue)}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.hint,.drawing-note,.order-note{color:var(--muted);font-size:13px;line-height:1.55}.preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:14px}.preset-row button{min-height:38px;padding:6px;border:1px solid #c8d0d4;border-radius:3px;background:#fff;color:#414141;font-size:13px;font-weight:700}.preset-row button.active{border-color:var(--navy);background:var(--navy);color:#fff}.products-heading{margin-top:24px!important}.product-pair{display:grid;gap:10px;margin-top:14px}.product-mini{display:grid;grid-template-columns:58px 1fr;gap:11px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:4px;background:#fafafa;text-decoration:none}.product-mini img{width:58px;height:58px;object-fit:contain;background:#fff}.product-mini strong{display:block;font-size:13px;line-height:1.35}.product-mini span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.stage{background:#eef2f4}.stage-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;background:#fafafa;border-bottom:1px solid var(--line)}.eyebrow{display:block;margin-bottom:5px;color:var(--navy);font-size:11px;font-weight:850;letter-spacing:.12em}.drawing{min-height:510px;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 50% 55%,#fff 0,#f1f5f6 66%,#e7edef 100%)}.drawing svg{display:block;width:100%;height:auto;max-height:500px}.stage-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stage-summary div{padding:16px;text-align:center;border-right:1px solid var(--line)}.stage-summary div:last-child{border-right:0}.stage-summary strong{display:block;color:var(--navy);font-size:25px}.stage-summary span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.drawing-note{margin:0;padding:15px 20px;background:#fff}.primary-result{margin-top:18px}.primary-result strong{display:block;color:var(--navy);font-size:43px;line-height:1}.primary-result span{display:block;margin-top:7px;color:var(--muted);font-size:14px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.metrics div{padding:11px;background:#f4f5f6;border-radius:3px}.metrics strong{display:block;font-size:20px;white-space:nowrap}.metrics span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.geometry-warning{padding:11px;border:1px solid #e4c676;background:#fff7df;color:#6b4b00;border-radius:4px;font-size:13px;line-height:1.45}table{width:100%;border-collapse:collapse;margin:18px 0;font-size:13px}td{padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top}td:last-child{text-align:right;padding-left:10px;font-weight:750;white-space:nowrap}td small{display:block;margin-top:3px;color:var(--muted);font-weight:400;line-height:1.35}.primary,.secondary{display:block;width:100%;min-height:45px;padding:12px 15px;border-radius:3px;text-align:center;text-decoration:none;font-weight:700}.primary{border:0;background:#414141;color:#fff}.primary:hover{background:#1e1e1e}.secondary{margin-top:9px;border:1px solid #c5cbd3;background:#fff;color:#414141}.technical-note{margin-top:20px;padding:16px 20px;border:1px solid #d9dfe2;border-left:4px solid var(--navy);background:#fafafa;color:#626262;font-size:13px;line-height:1.55}.quote-section{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;margin-top:28px;padding:32px;border:1px solid var(--line);border-top:3px solid var(--navy);background:#f8f8f8}.quote-intro h2{margin:10px 0 16px;font-size:28px}.quote-intro>p:not(.hint){padding:16px;border-left:3px solid var(--red);background:#fff;color:var(--navy);font-weight:750;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.quote-section textarea{resize:vertical}.submit{margin-top:18px}.arc-piece-even{fill:#b9e1ee;stroke:#2f819d}.arc-piece-odd{fill:#e8f5f8;stroke:#6ba6ba}.arc-joint{fill:#fff}.radius-line{stroke:#e62019;stroke-width:2;stroke-dasharray:6 5}.dimension-line{stroke:#4d5960;stroke-width:1.5}.svg-label{font-family:Inter,Arial,sans-serif;fill:#414141;font-size:15px}.svg-small{font-size:12px;fill:#66747a}@media(max-width:1160px){.workspace{grid-template-columns:280px minmax(0,1fr)}.bill{grid-column:1/-1}.bill{display:grid;grid-template-columns:1fr 2fr;gap:24px}.bill>h2{grid-column:1/-1}.bill .primary,.bill .secondary,.bill .order-note,.bill table,.bill .geometry-warning{grid-column:2}.primary-result,.metrics{grid-column:1}.drawing{min-height:470px}}@media(max-width:760px){main{padding:16px 14px 48px}.calculator-header{padding:20px 18px}.brand-row{align-items:flex-start;flex-direction:column}.brand-row img{width:210px}.workspace,.quote-section,.bill{display:grid;grid-template-columns:1fr}.controls,.stage,.bill{grid-column:1}.bill>*,.bill .primary,.bill .secondary,.bill .order-note,.bill table,.bill .geometry-warning{grid-column:1}.drawing{min-height:360px;padding:8px}.control-grid,.form-grid{grid-template-columns:1fr}.stage-summary strong{font-size:21px}.stage-summary div{padding:12px 7px}.quote-section{gap:20px;padding:22px}.preset-row{grid-template-columns:1fr 1fr}}@media print{.calculator-header{padding:10px 0}.controls,.primary,.secondary,.quote-section,.technical-note{display:none}.workspace{display:grid;grid-template-columns:1.4fr 1fr}.stage,.bill{grid-column:auto}main{padding:0}.drawing{min-height:360px}}/* Urealniony podgląd łuku: stałe proporcje pustaków i przełączany rzut 3D. */.product-mini{grid-template-columns:74px 1fr;gap:12px;padding:10px}.product-mini img{width:74px;height:74px;mix-blend-mode:multiply;filter:contrast(1.04) saturate(.92)}.stage-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.view-toggle{display:flex;padding:3px;border:1px solid #ccd5d9;border-radius:6px;background:#fff}.view-toggle button{min-height:34px;padding:6px 10px;border:0;border-radius:4px;background:transparent;color:#5f6a70;font-size:12px;font-weight:750}.view-toggle button.active{background:var(--navy);color:#fff}.radius-value{fill:#fff!important;font-family:Inter,Arial,sans-serif;font-weight:750}.radius-line,.dimension-line{vector-effect:non-scaling-stroke}.arc-piece-even{fill:url(#plan-allbend)}.arc-piece-odd{fill:url(#plan-half)}.glass-face{stroke:rgba(255,255,255,.94);stroke-width:.55}.glass-side{fill:url(#glass-side);stroke:rgba(255,255,255,.84);stroke-width:.45}.glass-top{fill:url(#glass-top);stroke:rgba(255,255,255,.9);stroke-width:.45}.ground-shadow{fill:#20343d;opacity:.14;filter:url(#soft-shadow)}@media(max-width:760px){.stage-head{align-items:flex-start;flex-direction:column}.stage-actions{width:100%;align-items:flex-start;justify-content:space-between}}