/* Configurador industrial · identidad 1A (grafito + naranja, Inter + IBM Plex Mono) */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fuentes/inter-latin-400-800.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url(../fuentes/inter-latin-ext-400-800.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fuentes/ibm-plex-mono-latin-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fuentes/ibm-plex-mono-latin-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../fuentes/ibm-plex-mono-latin-600.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --grafito:#15232D;--profundo:#0E1820;--naranja:#F46B27;--naranja-h:#D95A18;--acero:#667780;--txt2:#3F4F59;--claro:#B8C2C8;--claro2:#C9D1D6;--gris:#8E9BA3;
  --fondo:#F4F6F7;--blanco:#fff;--linea:#D5DBDF;--linea2:#E1E6E9;--fila:#F8FAFA;--ok:#1F7A4D;--aviso:#B4650A;--mal:#B3261E;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);--r:14px;--r2:20px;--sombra:0 10px 30px rgba(14,24,32,.10);--bar:58px;
}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}[hidden]{display:none!important}
body{margin:0;font:15px/1.5 var(--sans);color:var(--grafito);background:var(--fondo);min-height:100vh;font-feature-settings:'cv11','ss01'}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.015em;text-wrap:balance}h1{font-size:clamp(26px,3.2vw,40px);line-height:1.1}h2{font-size:clamp(20px,2.2vw,26px);line-height:1.2}h3{font-size:17px}
p{margin:0}a{color:inherit}button{font:inherit;cursor:pointer}img,svg{display:block}
.muted{color:var(--acero)}.eyebrow{font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--naranja)}
.mono{font-family:var(--mono)}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;border:1px solid var(--naranja);background:var(--naranja);color:#fff;font-weight:600;text-decoration:none;transition:background .2s var(--ease),transform .2s var(--ease),border-color .2s}
.btn:hover{background:var(--naranja-h);border-color:var(--naranja-h)}.btn:active{transform:scale(.98)}
.btn-ghost{background:transparent;color:var(--grafito);border-color:var(--claro2)}.btn-ghost:hover{background:#fff;border-color:var(--grafito)}
.btn-oscuro{background:var(--grafito);border-color:var(--grafito)}.btn-oscuro:hover{background:var(--profundo);border-color:var(--profundo)}
.btn.sm{padding:9px 16px;font-size:14px}.btn[disabled]{opacity:.5;cursor:not-allowed}
.bar .btn{white-space:nowrap}.bar .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}.bar .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ---------- barra ---------- */
.bar{position:sticky;top:0;z-index:30;height:var(--bar);display:flex;align-items:center;gap:18px;padding:0 clamp(14px,2.5vw,28px);background:var(--grafito);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.logo img{height:30px;width:auto}.logo-s{display:none}
.crumbs{flex:1;display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--claro);min-width:0;white-space:nowrap;overflow:hidden}
.crumbs a{color:var(--claro);text-decoration:none}.crumbs a:hover{color:#fff}.crumbs b{color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.bar-right{display:flex;align-items:center;gap:10px}
.pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:7px 12px 7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font:500 13px var(--mono);letter-spacing:.02em}
.pill-dot{width:8px;height:8px;border-radius:50%;background:#4fd1a5;box-shadow:0 0 0 3px rgba(79,209,165,.2)}
.pill.aviso .pill-dot{background:var(--naranja);box-shadow:0 0 0 3px rgba(244,107,39,.25)}.pill.fin .pill-dot{background:var(--mal);box-shadow:0 0 0 3px rgba(179,38,30,.25)}
.pill.libre{border-color:rgba(79,209,165,.5)}

/* ---------- portada (selector) ---------- */
.hub{padding-top:clamp(40px,7vw,96px);padding-bottom:80px;text-align:center}
.hub .lead{max-width:640px;margin:16px auto 0;font-size:17px;color:var(--txt2)}
.hub h1{font-size:clamp(32px,4.6vw,56px);letter-spacing:-.03em}
.hub-nota{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--linea);font-size:13.5px;color:var(--txt2)}
.hub-nota .mono{color:var(--grafito);font-weight:500}
.sect-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:48px;text-align:left}
.sect{display:flex;flex-direction:column;gap:12px;padding:22px 22px 20px;border-radius:var(--r2);background:#fff;border:1px solid var(--linea2);text-decoration:none;color:inherit;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s;position:relative;overflow:hidden}
.sect:hover{transform:translateY(-3px);box-shadow:var(--sombra);border-color:var(--claro2)}
.sect-thumb{aspect-ratio:16/9;margin:-22px -22px 0;background:linear-gradient(180deg,#eef1f3,#dde2e5);overflow:hidden;position:relative;display:grid;place-items:center}
.sect-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sect-thumb .ph{width:40px;height:40px;border:2px solid var(--claro2);border-radius:10px;animation:pulse 1.4s infinite}
.sect .ico{width:52px;height:52px;border-radius:14px;background:var(--fondo);display:grid;place-items:center;color:var(--grafito);margin-top:-30px;position:relative;border:3px solid #fff;box-shadow:0 4px 12px rgba(14,24,32,.08)}
.sect.generico .ico{border-color:var(--grafito);background:#243440}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}.presets-l{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acero);margin-right:2px}
.preset{padding:6px 11px;border-radius:999px;border:1px solid var(--claro2);background:#fff;font-size:12.5px;font-weight:600;color:var(--txt2);transition:all .15s}.preset:hover{border-color:var(--grafito);color:var(--grafito)}.preset.on{background:var(--grafito);color:#fff;border-color:var(--grafito)}
.cargando{position:absolute;inset:0;display:grid;place-items:center;background:#e3e7e9;z-index:4;color:var(--acero);font-size:13.5px;text-align:center}.cargando i{width:34px;height:34px;border:3px solid var(--claro2);border-top-color:var(--naranja);border-radius:50%;animation:spin .9s linear infinite;display:block;margin:0 auto 10px}
@keyframes spin{to{transform:rotate(360deg)}}
.sect .ico svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sect .ico .cota{stroke:var(--naranja)}
.sect h3{font-size:18px}.sect p{color:var(--acero);font-size:14px}
.sect .n{margin-top:auto;font:500 12px var(--mono);color:var(--txt2);letter-spacing:.04em;text-transform:uppercase}
.sect.generico{background:var(--grafito);color:#fff;border-color:var(--grafito)}.sect.generico .ico{background:rgba(255,255,255,.08);color:#fff}.sect.generico p,.sect.generico .n{color:var(--claro)}
.hub-pie{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;text-align:left}
.hub-pie div{padding:18px 20px;border-radius:var(--r);background:#fff;border:1px solid var(--linea2)}
.hub-pie b{display:block;font-size:14px;margin-bottom:4px}.hub-pie span{font-size:13.5px;color:var(--acero)}

/* ---------- sector ---------- */
.sector{padding-top:clamp(32px,5vw,64px);padding-bottom:80px}
.sector-head{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
.sector-head .lead{margin-top:14px;font-size:16.5px;color:var(--txt2);max-width:600px}
.resuelve{display:grid;gap:10px}.resuelve div{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 14px;border-radius:var(--r);background:#fff;border:1px solid var(--linea2);font-size:14px}
.resuelve svg{width:20px;height:20px;stroke:var(--naranja);fill:none;stroke-width:2;margin-top:2px}.resuelve b{display:block;font-weight:600}.resuelve span{color:var(--acero)}
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin-top:40px}
.card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--linea2);border-radius:var(--r2);overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.card:hover{transform:translateY(-3px);box-shadow:var(--sombra)}
.card .thumb{aspect-ratio:3/2;background:linear-gradient(180deg,#eef1f3,#dde2e5);display:grid;place-items:center;position:relative;overflow:hidden}
.card .thumb img{width:100%;height:100%;object-fit:cover}.card .thumb .ph{width:48px;height:48px;border:2px solid var(--claro2);border-radius:12px;animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.4}}
.card .body{padding:16px 18px 18px}.card h3{font-size:16.5px}.card p{font-size:13.5px;color:var(--acero);margin-top:4px}
.card .meta{margin-top:12px;display:flex;justify-content:space-between;font:500 12px var(--mono);color:var(--txt2);letter-spacing:.02em}
.card .meta b{color:var(--naranja);font-weight:600}
.volver{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--acero);text-decoration:none;margin-bottom:16px}.volver:hover{color:var(--grafito)}

/* ---------- configurador ---------- */
.cfg{display:grid;grid-template-columns:400px 1fr;height:calc(100vh - var(--bar));height:calc(100dvh - var(--bar))}
.side{display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--linea);min-height:0}
.side-head{padding:22px 24px 14px;border-bottom:1px solid var(--linea2)}
.side-head h1{font-size:24px;margin-top:6px}.side-head .muted{font-size:14px;margin-top:8px}
.side-body{flex:1;overflow:auto;padding:6px 24px 18px;scrollbar-width:thin}
.side-foot{border-top:1px solid var(--linea);padding:14px 24px 18px;background:#fff}
.total{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.total small{color:var(--acero);font-size:12.5px}
.total b{font:600 26px/1 var(--mono);letter-spacing:-.02em;color:var(--grafito)}.total .desde{font:500 13px var(--mono);color:var(--naranja);letter-spacing:.06em;text-transform:uppercase;margin-right:2px}
.foot-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.foot-btns .btn{padding:11px 12px;font-size:13.5px}

/* secciones numeradas */
.sec{border-bottom:1px solid var(--linea2)}
.sec summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;user-select:none}
.sec summary::-webkit-details-marker{display:none}
.sec .num{font:500 12px var(--mono);color:var(--naranja);letter-spacing:.06em;min-width:24px}
.sec summary h3{flex:1;font-size:15px}.sec .chev{width:18px;height:18px;stroke:var(--acero);fill:none;stroke-width:2;transition:transform .25s var(--ease)}
.sec[open] .chev{transform:rotate(180deg)}.sec .sec-body{padding:0 0 16px 36px}.sec .resumen{font-size:12.5px;color:var(--acero);max-width:160px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sec[open] .resumen{display:none}
.p{margin:0 0 14px}.p label,.p .lbl{display:flex;justify-content:space-between;gap:8px;font-size:13.5px;font-weight:600;margin-bottom:8px}
.p output,.p .lbl output{font:500 13px var(--mono);color:var(--txt2)}
.sub{display:block;font-size:12.5px;color:var(--acero);font-weight:400;margin:-6px 0 8px}
.rng{display:grid;grid-template-columns:1fr 112px;gap:10px;align-items:center}
input[type=range]{width:100%;accent-color:var(--naranja);height:28px;margin:0}
.numbox{display:flex;align-items:center;border:1px solid var(--claro2);border-radius:10px;overflow:hidden;background:#fff}
.numbox input{width:100%;border:0;padding:8px 8px;font:500 13.5px var(--mono);text-align:right;color:var(--grafito);background:transparent;-moz-appearance:textfield}
.numbox input::-webkit-outer-spin-button,.numbox input::-webkit-inner-spin-button{-webkit-appearance:none}
.numbox span{padding:0 8px 0 2px;font:12px var(--mono);color:var(--acero)}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.opt{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:10px;border:1px solid var(--claro2);background:#fff;text-align:left;font-size:13px;font-weight:500;line-height:1.3;color:var(--grafito);transition:border-color .15s,background .15s}
.opt small{font-size:11.5px;color:var(--acero);font-weight:400}.opt:hover{border-color:var(--grafito)}
.opt[aria-pressed=true]{border-color:var(--naranja);background:#FFF4EE;box-shadow:inset 0 0 0 1px var(--naranja)}
.sw{display:flex;flex-wrap:wrap;gap:8px}.sw button{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--claro2);cursor:pointer;padding:0}
.sw button[aria-pressed=true]{box-shadow:0 0 0 2px var(--naranja)}
.tgl{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--linea2);cursor:pointer}
.tgl:first-child{border-top:0}.tgl b{font-size:13.5px;font-weight:600}.tgl .sub{margin:2px 0 0}.tgl input{width:40px;height:22px;appearance:none;background:var(--claro2);border-radius:999px;position:relative;cursor:pointer;flex:none;transition:background .2s}
.tgl input::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s var(--ease)}
.tgl input:checked{background:var(--naranja)}.tgl input:checked::after{transform:translateX(18px)}
select,.txt-in{width:100%;padding:9px 10px;border:1px solid var(--claro2);border-radius:10px;font:inherit;background:#fff;color:var(--grafito)}
.note{font-size:12.5px;color:var(--acero);background:var(--fila);border-radius:10px;padding:8px 10px;margin-top:4px}

/* escenario */
.stage{position:relative;background:#e3e7e9;min-height:0;overflow:hidden}
.canvas,.canvas canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;touch-action:none}
.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tagw{pointer-events:none;transform:translate(-50%,-100%)}.tagl{display:inline-block;background:rgba(21,35,45,.88);color:#fff;font:500 11.5px var(--mono);padding:4px 8px;border-radius:7px;white-space:nowrap;letter-spacing:.01em;position:relative;top:-8px}
.tagl::after{content:'';position:absolute;left:50%;bottom:-5px;width:1px;height:6px;background:rgba(21,35,45,.6)}
.tagw--parte .tagl{background:var(--naranja)}
.dim{font:600 11.5px var(--mono);color:var(--naranja);background:rgba(255,255,255,.92);padding:2px 6px;border-radius:5px;white-space:nowrap}
.tools{position:absolute;top:14px;left:14px;display:flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border:1px solid rgba(21,35,45,.08)}
.tools button{border:0;background:transparent;padding:7px 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--txt2)}
.tools button[aria-pressed=true]{background:var(--grafito);color:#fff}
.demo-tag{position:absolute;top:20px;right:14px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--txt2);background:rgba(255,255,255,.8);padding:5px 10px;border-radius:999px}
.pieza{position:absolute;pointer-events:none;background:var(--grafito);color:#fff;font:500 12px var(--mono);padding:5px 9px;border-radius:7px;transform:translate(12px,14px);z-index:3;white-space:nowrap}
.checks{position:absolute;left:14px;bottom:88px;display:flex;flex-wrap:wrap;gap:6px;max-width:70%}
.chk{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.92);font-size:12.5px;font-weight:500;color:var(--grafito);border:1px solid rgba(21,35,45,.08)}
.chk::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--ok)}.chk.aviso::before{background:var(--aviso)}.chk.mal::before{background:var(--mal)}
.actions{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:6px;padding:6px;border-radius:16px;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border:1px solid rgba(21,35,45,.08);overflow-x:auto;scrollbar-width:none}
.actions::-webkit-scrollbar{display:none}
.actions button{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:62px;padding:7px 8px;border:0;border-radius:11px;background:transparent;color:var(--txt2);font-size:11.5px;font-weight:600;white-space:nowrap}
.actions svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.actions button:hover{background:var(--fondo)}.actions button[aria-pressed=true]{background:var(--grafito);color:#fff}
.actions button.primary{background:var(--naranja);color:#fff}.actions button.primary:hover{background:var(--naranja-h)}
.actions b{color:var(--naranja);margin-left:3px}.actions button[aria-pressed=true] b{color:#ffd1b8}
.explode-rng{position:absolute;left:50%;bottom:92px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.92);font-size:12.5px;font-weight:600;color:var(--txt2)}
.explode-rng input{width:160px}

/* marca de agua y bloqueo */
.marca-agua{position:absolute;inset:0;pointer-events:none;display:none;overflow:hidden;z-index:2}
.marca-agua span{position:absolute;left:-20%;width:140%;text-align:center;font:700 clamp(22px,3vw,40px) var(--sans);color:rgba(21,35,45,.14);letter-spacing:.06em;white-space:nowrap;transform:rotate(-22deg)}
.marca-agua .sello{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);border:3px solid rgba(244,107,39,.75);color:rgba(244,107,39,.9);font:800 clamp(16px,2vw,24px) var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:10px 18px;border-radius:10px;background:rgba(255,255,255,.55)}
body.bloqueado .marca-agua{display:block}
body.bloqueado .side-body{position:relative}
body.bloqueado .side-body .sec-body{pointer-events:none;filter:grayscale(.6);opacity:.55}
body.bloqueado .sec summary h3::after{content:'🔒';font-size:12px;margin-left:8px;opacity:.7}
body.bloqueado #total{filter:blur(7px);user-select:none}
body.bloqueado .side-body::after{content:'';position:absolute;inset:0;cursor:not-allowed}
.candado{display:flex;align-items:center;gap:12px;margin:10px 0 0;padding:12px 14px;border-radius:12px;background:#FFF4EE;border:1px solid #F9CDB6;font-size:13.5px}
.candado svg{width:20px;height:20px;stroke:var(--naranja);fill:none;stroke-width:2;flex:none}

/* ---------- diálogos ---------- */
.dlg{border:0;border-radius:var(--r2);padding:0;max-width:min(96vw,760px);width:100%;box-shadow:0 30px 80px rgba(14,24,32,.3);background:#fff;color:var(--grafito)}
.dlg::backdrop{background:rgba(14,24,32,.55);backdrop-filter:blur(3px)}
.dlg-close{position:absolute;top:10px;right:10px;margin:0}.dlg-close button{width:36px;height:36px;border-radius:50%;border:0;background:var(--fondo);font-size:20px;color:var(--txt2)}
#dlgBody{padding:28px 28px 26px}#dlgBody h2{margin-bottom:6px}#dlgBody .muted{font-size:14.5px}
.dlg-hero{margin:-28px -28px 20px;padding:28px 28px 22px;background:var(--grafito);color:#fff;border-radius:var(--r2) var(--r2) 0 0}
.dlg-hero .eyebrow{margin-bottom:8px}.dlg-hero h2{color:#fff}.dlg-hero p{color:var(--claro);margin-top:8px;font-size:14.5px}
.tabla{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:14px}.tabla th{text-align:left;font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acero);padding:8px 10px;border-bottom:1px solid var(--linea)}
.tabla td{padding:8px 10px;border-bottom:1px solid var(--linea2);vertical-align:top}.tabla td.r,.tabla th.r{text-align:right;font-family:var(--mono);white-space:nowrap}
.tabla tr.tot td{font-weight:600;border-top:2px solid var(--grafito);border-bottom:0}.tabla .ref{font:500 12.5px var(--mono);color:var(--txt2)}
.dlg-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.fila-btn{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.form .full{grid-column:1/-1}
.form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.form input,.form select,.form textarea{padding:11px 12px;border:1px solid var(--claro2);border-radius:10px;font:inherit;font-size:14.5px;background:#fff;color:var(--grafito)}
.form textarea{min-height:76px;resize:vertical}.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--naranja);outline-offset:1px;border-color:transparent}
.hpv{display:none}
.priv{font-size:12px;color:var(--acero)}.priv a{color:var(--txt2)}
.ok-box{text-align:center;padding:30px 10px}.ok-box .ico{width:60px;height:60px;border-radius:50%;background:#E7F5EE;color:var(--ok);display:grid;place-items:center;margin:0 auto 14px}.ok-box svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2.4}
.qr{display:grid;place-items:center;margin:16px 0}.qr img{width:220px;height:220px;border-radius:12px;border:1px solid var(--linea)}
.copyrow{display:flex;gap:8px}.copyrow input{flex:1;padding:10px;border:1px solid var(--claro2);border-radius:10px;font:13px var(--mono)}
model-viewer{width:100%;height:360px;border-radius:14px;background:#eef1f3}
.cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:14px}
.cmp .c{border:1px solid var(--linea2);border-radius:14px;overflow:hidden}.cmp img{width:100%;aspect-ratio:1.6;object-fit:cover}
.cmp .c div{padding:10px 12px;font-size:13px}.cmp .c b{font:600 18px var(--mono)}.cmp .dif{color:var(--naranja);font-weight:600}
.cmp .c button{width:100%;border:0;background:var(--fondo);padding:8px;font-size:12.5px;color:var(--txt2)}
.clave-row{display:flex;gap:8px;margin-top:10px}.clave-row input{flex:1;text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}

/* toast y aviso */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--grafito);color:#fff;padding:11px 18px;border-radius:999px;font-size:14px;z-index:60;box-shadow:var(--sombra);max-width:92vw}
.aviso{position:fixed;right:18px;bottom:18px;width:min(380px,calc(100vw - 36px));background:#fff;border-radius:var(--r2);box-shadow:0 20px 60px rgba(14,24,32,.25);border:1px solid var(--linea2);padding:18px 20px 18px;z-index:55;transform:translateY(20px);opacity:0;transition:all .4s var(--ease)}
.aviso.in{transform:none;opacity:1}.aviso h3{font-size:16px;padding-right:28px}.aviso p{font-size:13.5px;color:var(--txt2);margin-top:6px}
.aviso .aviso-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:var(--fondo);color:var(--txt2)}
.aviso .fila-btn{margin-top:12px}.aviso .btn{padding:9px 14px;font-size:13.5px}
.barra-t{height:4px;border-radius:2px;background:var(--linea2);margin-top:12px;overflow:hidden}.barra-t i{display:block;height:100%;background:var(--naranja);transition:width 1s linear}

@media (max-width:980px){
  .cfg{grid-template-columns:1fr;grid-template-rows:48vh 1fr;height:auto;min-height:calc(100dvh - var(--bar))}
  .stage{order:-1;height:48vh;position:sticky;top:var(--bar);z-index:5}
  .side{border-right:0;border-top:1px solid var(--linea)}.side-body{overflow:visible}
  .side-foot{position:sticky;bottom:0;box-shadow:0 -8px 24px rgba(14,24,32,.08)}
  .sector-head{grid-template-columns:1fr;gap:20px}.checks{bottom:84px;max-width:85%}
  .actions button{min-width:58px;font-size:11px}.tools button{padding:6px 10px;font-size:12px}
  .crumbs{display:none}.bar{gap:8px}.bar .btn-ghost.sm{display:none}.logo img{height:24px}.bar-right{margin-left:auto;gap:6px}.demo-tag{display:none}.pill{padding:6px 9px 6px 8px;font-size:12px}
  .dlg-cols,.form{grid-template-columns:1fr}
  .side-head h1{font-size:21px}.marca-agua span{font-size:18px}
}
@media (max-width:480px){.btn.sm{padding:8px 11px;font-size:12.5px}.pill{padding:6px 8px;font-size:11.5px}.hub{padding-top:36px}.logo-h{display:none}.logo-s{display:block;height:30px}.bar{padding:0 12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
