/* Configurador Tiendamascold — estética industrial de frío:
   acero + azul hielo. Limpio, técnico, tipo configurador de vehículo. */
:root{
  --bg:#eef2f6; --surface:#fff;
  --steel:#0f2231; --steel-2:#1c3547;
  --ink:#0f2231; --muted:#64748b; --muted-2:#94a3b8;
  --line:#dde5ec;
  --ice:#0ea5e9; --ice-d:#0284c7; --ice-l:#7dd3fc; --ice-bg:#f0f9ff;
  --ok:#059669; --warn:#d97706; --danger:#dc2626;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased;overflow:hidden}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}

.note{background:var(--steel);color:var(--ice-l);font-size:11px;text-align:center;padding:7px 14px;letter-spacing:.02em}
.note b{color:#fff}

header{background:var(--steel);color:#fff;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.08)}
.brand{display:flex;align-items:center;gap:11px}
.brand .m{width:32px;height:32px;background:var(--ice);display:grid;place-items:center;font-weight:800;font-size:13px;color:#04212f;flex:none;border-radius:3px}
.brand b{font-size:14.5px;font-weight:600;letter-spacing:.01em;display:block}
.brand span{font-size:10px;color:var(--ice-l);letter-spacing:.14em;text-transform:uppercase}
.hint{font-size:11px;color:#94a3b8;display:flex;align-items:center;gap:7px}

.layout{display:grid;grid-template-columns:330px 1fr 320px;height:calc(100vh - 84px)}
.col{overflow-y:auto;background:var(--surface)}
.col.l{border-right:1px solid var(--line)}
.col.r{border-left:1px solid var(--line);display:flex;flex-direction:column}
.stage{position:relative;background:#eef2f6;min-height:0}
canvas{width:100%;height:100%;display:block;outline:0}

.sec{padding:16px;border-bottom:1px solid var(--line)}
.sec h3{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:11px;display:flex;align-items:center;gap:7px}
.sec h3 .n{width:17px;height:17px;background:var(--ice);color:#fff;display:grid;place-items:center;font-size:9px;border-radius:2px;flex:none}

.opts{display:grid;gap:7px}
.opt{border:1px solid var(--line);padding:10px 11px;cursor:pointer;transition:.12s;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:9px}
.opt:hover{border-color:var(--ice-l);background:var(--ice-bg)}
.opt.on{border-color:var(--ice);background:var(--ice-bg);box-shadow:inset 0 0 0 1px var(--ice)}
.opt .t{font-size:12.5px;font-weight:500}
.opt .d{font-size:10.5px;color:var(--muted-2);margin-top:1px}
.opt .p{font-size:11px;color:var(--ice-d);font-weight:600;white-space:nowrap}
.opts.row{grid-template-columns:1fr 1fr}

.rng{margin-bottom:14px}
.rng .lab{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.rng .lab span{font-size:11.5px;color:var(--muted)}
.rng .lab b{font-size:14px;font-weight:600}
.rng .lab b i{font-style:normal;font-size:10px;color:var(--muted-2);font-weight:400}
input[type=range]{width:100%;-webkit-appearance:none;height:4px;background:var(--line);outline:0;border-radius:2px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;background:var(--ice);border-radius:50%;cursor:pointer;border:2.5px solid #fff;box-shadow:0 1px 5px rgba(14,165,233,.5)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;background:var(--ice);border-radius:50%;cursor:pointer;border:2.5px solid #fff}
.mm{display:flex;justify-content:space-between;font-size:9.5px;color:var(--muted-2);margin-top:3px}

.chk{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:9px 11px;cursor:pointer;transition:.12s}
.chk:hover{border-color:var(--ice-l)}
.chk.on{border-color:var(--ice);background:var(--ice-bg)}
.chk .b{width:15px;height:15px;border:1.5px solid var(--muted-2);display:grid;place-items:center;font-size:10px;color:#fff;flex:none}
.chk.on .b{background:var(--ice);border-color:var(--ice)}
.chk .t{flex:1;font-size:12px}
.chk .p{font-size:11px;color:var(--ice-d);font-weight:600}

/* stage overlay */
.tools{position:absolute;left:14px;top:14px;display:flex;gap:7px;flex-wrap:wrap;z-index:3}
.tool{background:rgba(255,255,255,.94);border:1px solid var(--line);padding:8px 12px;font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;backdrop-filter:blur(6px)}
.tool:hover{border-color:var(--ice);color:var(--ice-d)}
.tool.on{background:var(--ice);color:#fff;border-color:var(--ice)}
.badge{position:absolute;right:14px;top:14px;background:rgba(15,34,49,.9);color:#fff;padding:8px 12px;font-size:10.5px;z-index:3;backdrop-filter:blur(6px)}
.badge b{color:var(--ice-l)}
.spin{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(15,34,49,.82);color:#cbd5e1;padding:7px 14px;font-size:10.5px;z-index:3;display:flex;gap:14px;backdrop-filter:blur(6px)}

/* resumen */
.sum{padding:16px;flex:1;overflow-y:auto}
.sum h3{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:12px}
.li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f1f5f9;font-size:12px}
.li .k{color:var(--muted);flex:1}
.li .v{font-weight:600;white-space:nowrap}
.price{padding:16px;border-top:1px solid var(--line);background:#fff}
.price .r{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:3px 0}
.price .tot{display:flex;justify-content:space-between;align-items:baseline;border-top:2px solid var(--steel);margin-top:8px;padding-top:10px}
.price .tot span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.price .tot b{font-size:26px;font-weight:700;letter-spacing:-.02em}
.btn{width:100%;font-family:inherit;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:13px;border:1px solid var(--ice);background:var(--ice);color:#fff;cursor:pointer;transition:.15s;margin-top:10px}
.btn:hover{background:var(--ice-d);border-color:var(--ice-d)}
.btn.gh{background:transparent;color:var(--steel);border-color:var(--line)}
.btn.gh:hover{background:var(--steel);color:#fff;border-color:var(--steel)}

.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,10px);background:var(--steel);color:#fff;border-left:3px solid var(--ice);padding:13px 18px;font-size:12.5px;opacity:0;transition:.25s;z-index:60;max-width:560px}
.toast.on{opacity:1;transform:translate(-50%,0)}
.tag{font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;background:var(--ice-bg);color:var(--ice-d);border:1px solid var(--ice-l)}

@media(max-width:1150px){
  body{overflow:auto}
  .layout{grid-template-columns:1fr;height:auto}
  .stage{height:52vh}
  .col{max-height:none}
}

/* selector de tipo de producto (§9) */
.tipos{display:flex;gap:2px;background:rgba(255,255,255,.07);padding:3px}
.tipos button{font-family:inherit;font-size:11.5px;font-weight:600;padding:8px 14px;border:0;background:transparent;color:#94a3b8;cursor:pointer;transition:.15s}
.tipos button:hover{color:#fff}
.tipos button.on{background:var(--ice);color:#04212f}
/* estados de compatibilidad (§15) */
.opt.off{opacity:.5;background:#fafbfc;border-style:dashed;cursor:not-allowed}
.opt.off .d{color:var(--danger)}
.rule{background:var(--ice-bg);border:1px solid #bae6fd;color:#075985;font-size:11px;padding:8px 10px;margin-bottom:9px;line-height:1.45}
.warn{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:11.5px;padding:9px 11px}
.vol{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:10px;padding-top:9px}
.vol span{font-size:11px;color:var(--muted)}
.vol b{font-size:17px;color:var(--ice-d)}
.li .sub{font-size:10px;color:var(--muted-2)}
.fld{margin-bottom:10px}
.fld label{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-weight:600}
.fld select{width:100%;font-family:inherit;font-size:13px;padding:9px 10px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.fld select:focus{outline:0;border-color:var(--ice)}
.nota{font-size:10.5px;color:var(--muted-2);line-height:1.45;margin-top:4px}
.pnota{font-size:10px;color:var(--muted);line-height:1.5;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.pnota b{color:var(--ink)}
