.calc{background:var(--panel);border:1px solid var(--hairline);box-shadow:var(--shadow);padding:1.5rem;border-radius:6px;max-width:680px}
.calc .row{margin-bottom:1.25rem}
.calc .lbl{display:block;font-family:'Avenir Next',Avenir,'Helvetica Neue',sans-serif;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5rem}
.opts{display:flex;flex-wrap:wrap;gap:.5rem}
.opts label{flex:1 1 150px;border:1px solid var(--hairline);border-radius:6px;padding:.6rem .75rem;cursor:pointer;background:var(--ground);font-size:.95rem;line-height:1.35}
.opts label small{display:block;color:var(--ink-soft);font-size:.8rem}
.opts input{position:absolute;opacity:0;pointer-events:none}
.opts label:has(input:checked){border-color:var(--gold);background:#fff;box-shadow:inset 0 0 0 1px var(--gold)}
.qty{display:flex;align-items:center;gap:.75rem}
.qty button{width:2.6rem;height:2.6rem;border:1px solid var(--hairline);background:var(--ground);font-size:1.3rem;border-radius:6px;cursor:pointer;color:var(--ink)}
.qty output{font-size:1.4rem;min-width:2ch;text-align:center}
.checks label{display:flex;gap:.5rem;align-items:flex-start;margin-bottom:.4rem;font-size:.95rem}
.result{border-top:1px solid var(--hairline);padding-top:1.25rem;margin-top:.5rem}
.result .big{font-size:2rem;line-height:1.2;color:var(--gold-deep)}
.result .per{color:var(--ink-soft)}
.fine{font-size:.85rem;color:var(--ink-soft)}
.tbl-wrap{overflow-x:auto}
table.prices{border-collapse:collapse;width:100%;min-width:480px;background:var(--panel)}
table.prices th,table.prices td{border:1px solid var(--hairline);padding:.55rem .7rem;text-align:left;font-size:.95rem}
table.prices th{background:var(--stripe-a)}
.calc [hidden]{display:none!important}
.opts.prod label{flex:1 1 140px}
