/* Fuente: estilos.css */
/* HARRINGTON GUNSMITH · estilos.css · versión 20261013h
   Este archivo va junto a index.html y app.js en la misma carpeta. */
*{box-sizing:border-box}
:root{--gold:#d7ae54;--gold2:#f3d47c;--green:#071a13;--green2:#0d281d;--wood:#26170f;--ink:#e9dec2;--muted:#a99a7d;--red:#6b1818}
html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font-family:Georgia,"Times New Roman",serif;overflow-x:hidden;background:
radial-gradient(circle at 50% -10%,#6a3d1d55,transparent 35%),
linear-gradient(#120d09cc,#050a07f5),
repeating-linear-gradient(90deg,#24160f 0 2px,#170f0a 2px 7px);min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:
repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px,transparent 5px);mix-blend-mode:soft-light}
body.modal-open{overflow:hidden}
button{font-family:inherit;-webkit-tap-highlight-color:transparent}
button:focus-visible,input:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1500px;margin:auto;padding:14px}

/* ===== CABECERA GRÁFICA ===== */
.hero-banner{position:relative;overflow:hidden;border:2px solid #8b6a2e;border-radius:10px;background:#050a07;box-shadow:0 10px 35px #0009,inset 0 0 45px #000;line-height:0}
.hero-banner img{display:block;width:100%;height:auto;max-height:440px;object-fit:cover;object-position:50% 50%}
.hero-bg{display:none}

/* ===== BOTONES DE CATEGORÍA (con imagen) ===== */
.cat-nav{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;margin:12px 0;padding:9px;border:1px solid #8b6a2e;border-radius:8px;background:#06130e}
.cat-btn{display:block;width:100%;padding:0;border:2px solid #5b4521;border-radius:8px;background:#050a07;cursor:pointer;overflow:hidden;line-height:0;filter:brightness(.82) saturate(.9);transition:filter .25s,box-shadow .25s,border-color .25s,transform .15s}
.cat-btn img{display:block;width:100%;height:auto;pointer-events:none;-webkit-user-drag:none;user-select:none}
.cat-btn:hover{filter:brightness(1) saturate(1);border-color:#a78235}
.cat-btn:active{transform:scale(.97)}
.cat-btn.active{filter:none;border-color:var(--gold2);box-shadow:0 0 0 1px #8b6a2e,0 0 16px 3px #d7ae5488}

/* ===== IMAGEN GRANDE DE CATEGORÍA ===== */
.category-visual{position:relative;overflow:hidden;height:210px;border:1px solid #72572b;border-radius:8px;margin:0 0 12px;background:#07120e;box-shadow:0 10px 30px #0008}
.category-visual img{width:100%;height:100%;object-fit:cover;display:block}
.category-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,#06110de8)}
.category-visual .visual-title{position:absolute;z-index:2;left:20px;bottom:15px;color:#f3d47c;font-size:30px;font-weight:bold;text-shadow:0 2px 8px #000}

/* ===== CATÁLOGO ===== */
.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.7fr);gap:12px}
.panel{border:1px solid #72572b;background:#07120eeb;border-radius:8px;box-shadow:0 10px 30px #0008;overflow:hidden;min-width:0}
.search{display:flex;gap:8px;padding:10px;border-bottom:1px solid #72572b;background:#091711}
.search input{width:100%;background:#040b08;border:1px solid #425746;color:#eee0bd;border-radius:6px;padding:12px;font-size:16px}
.table-head,.product{display:grid;grid-template-columns:44px minmax(170px,1fr) 105px 160px 105px;align-items:center}
.table-head{padding:9px 12px;color:#e8c96f;font-size:12px;font-weight:bold;border-bottom:1px solid #72572b;background:#15150d}
.product{padding:8px 12px;border-bottom:1px solid #26382d;min-height:60px;background:linear-gradient(90deg,#0a1711,#08110d);border-left:3px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s}
.product:hover{background:#10231a}
.product.has-qty{border-left-color:var(--gold);background:linear-gradient(90deg,#1b2a14,#0d1f16 70%);box-shadow:inset 0 0 22px #d7ae5416,0 0 0 1px #8b6a2e55}
.weapon-icon{color:#cda64c;font-size:23px;text-align:center;text-shadow:0 0 10px #e6bd5360}
.pname{font-size:16px}
.pname small{display:block;color:#786f5d;font-size:10px;margin-top:3px;text-transform:uppercase;letter-spacing:.12em}
.price,.subtotal{text-align:right;font-variant-numeric:tabular-nums}
.price{color:#f0dfae}
.subtotal{color:#f3d47c;font-weight:bold;transform-origin:right center}
.qty{display:flex;justify-content:center;align-items:center}
.qty button{width:37px;height:37px;background:#11140e;border:1px solid #b88931;color:#f4d87f;font-size:22px;cursor:pointer;touch-action:manipulation}
.qty button:active{background:#3a2a0c}
.qty input{width:58px;height:37px;text-align:center;background:#030806;color:white;border:1px solid #5d4928;border-left:0;border-right:0;font-size:16px;font-weight:bold;border-radius:0}
.no-results{padding:34px 16px;text-align:center;color:#827866}

/* ===== PEDIDO ===== */
.order{position:sticky;top:8px;align-self:start}
.order-title{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;border-bottom:1px solid #8b6a2e;background:linear-gradient(90deg,#25180e,#0d1c14);color:#f0d278;font-size:21px;font-weight:bold}
.danger{background:#5b1515;border:1px solid #a84532;color:#f7d7c4;border-radius:5px;padding:7px 10px;cursor:pointer}
.cart{padding:8px;max-height:clamp(100px,calc(100vh - 1000px),390px);overflow:auto;min-height:150px}
.empty{text-align:center;color:#827866;padding:40px 20px;line-height:1.6}
.cartrow{display:grid;grid-template-columns:1fr 45px 72px 80px;gap:5px;padding:8px 5px;border-bottom:1px solid #26382d;font-size:13px;align-items:center}
.cartrow span:not(:first-child){text-align:right}
.summary{margin:9px 9px 0;text-align:center;color:#c9b27a;font-size:14px;letter-spacing:.06em;font-style:italic}
.total{display:flex;justify-content:space-between;align-items:center;margin:6px 9px 9px;border:1px solid #8b6a2e;border-radius:6px;padding:14px;background:#0c2819;color:#f1cf68;font-size:25px;font-weight:bold}
.total #grand{display:inline-block;transform-origin:right center;font-variant-numeric:tabular-nums}
.actions{padding:0 9px 10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions button{padding:12px 8px;border-radius:6px;border:1px solid #76633e;background:#242522;color:#eee1c6;font-weight:bold;cursor:pointer;touch-action:manipulation}
.actions .finish{grid-column:1/-1;background:linear-gradient(#1b6c16,#0a430b);border-color:#d2a733;color:#fff7c9;font-size:16px}
.actions .new{grid-column:1/-1}
.stamp{margin:8px;border:1px solid #59482b;padding:14px;text-align:center;color:#9b865b;background:linear-gradient(#4e35141c,#291b0d33);font-size:12px;letter-spacing:.14em}
.stamp img{display:block;margin:0 auto 8px;height:52px;width:auto;opacity:.85}

/* Transición discreta al cambiar importes */
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.07);color:#fff0b6;text-shadow:0 0 10px #d7ae54aa}100%{transform:scale(1)}}
.bump{animation:bump .4s ease-out}

footer{text-align:center;color:#746a58;padding:18px;font-size:12px}
footer img{display:block;margin:0 auto 8px;height:40px;width:auto;opacity:.6}

/* ===== TOAST Y VOLVER ARRIBA ===== */
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(100px);background:#10291b;border:1px solid #c69a3f;color:#f5e3b3;padding:12px 18px;border-radius:7px;opacity:0;transition:.25s;z-index:90;box-shadow:0 6px 30px #000;max-width:92vw;text-align:center;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.to-top{position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;width:44px;height:44px;border-radius:50%;border:2px solid var(--gold);background:linear-gradient(#2a1c0d,#0d1c14);color:var(--gold2);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 4px 16px #000c;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility .25s}
.to-top.show{opacity:.92;visibility:visible;transform:translateY(0)}

/* ===== VENTANAS (confirmación y comprobante) ===== */
.modal-overlay{position:fixed;inset:0;z-index:60;display:flex;overflow-y:auto;padding:14px;background:#020604ee}
.modal-overlay[hidden]{display:none}
.modal-overlay.confirm{z-index:80;align-items:center;justify-content:center}
.confirm-box{width:100%;max-width:380px;border:2px solid #8b6a2e;border-radius:10px;padding:20px;background:linear-gradient(#1a120a,#0a1812);box-shadow:0 20px 60px #000;text-align:center}
.confirm-title{color:var(--gold2);font-size:20px;font-weight:bold;margin-bottom:8px}
.confirm-box p{margin:0 0 16px;color:#d9ccaa;line-height:1.5}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.confirm-actions button{padding:12px;border-radius:6px;border:1px solid #76633e;background:#242522;color:#eee1c6;font-weight:bold;cursor:pointer}
.confirm-actions .danger{padding:12px;font-weight:bold}

/* ===== COMPROBANTE ===== */
.receipt-wrap{margin:auto;width:100%;max-width:560px}
.receipt-paper{position:relative;padding:10px;color:#2a1a0d;border-radius:3px;background:
radial-gradient(circle at 20% 10%,#f4e6bc,transparent 55%),
linear-gradient(#ead8aa,#d8bd83);
box-shadow:0 20px 60px #000,inset 0 0 70px #8a5d2488}
.receipt-frame{position:relative;border:3px double #7a5a22;padding:24px 18px 20px;text-align:center}
.corner{position:absolute;width:22px;height:22px;line-height:22px;background:#e2cb96;color:#7a5a22;font-size:15px}
.corner.tl{top:-12px;left:-12px}.corner.tr{top:-12px;right:-12px}.corner.bl{bottom:-12px;left:-12px}.corner.br{bottom:-12px;right:-12px}
.receipt-emblem{display:block;margin:0 auto 6px;height:96px;width:auto;max-width:60%;object-fit:contain}
.receipt-name{font-size:clamp(22px,6vw,32px);font-weight:bold;letter-spacing:.08em;color:#1b3022}
.receipt-place{letter-spacing:.24em;font-size:13px;color:#6b4c1d;margin-top:2px}
.receipt-motto{font-style:italic;font-size:16px;margin-top:6px}
.receipt-orn{color:#7a5a22;letter-spacing:.3em;margin:8px 0}
.receipt-title{font-weight:bold;letter-spacing:.2em;font-size:14px;border-top:1px solid #7a5a22;border-bottom:1px solid #7a5a22;padding:6px 0;margin-bottom:12px}
.receipt-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;text-align:left;margin-bottom:14px;font-size:14px}
.receipt-meta .full{grid-column:1/-1}
.receipt-meta span{display:block;font-size:11px;letter-spacing:.14em;color:#6b4c1d;text-transform:uppercase}
.receipt-meta b{font-size:16px;font-variant-numeric:tabular-nums}
.rt-head,.rc-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 72px 82px;gap:6px;align-items:baseline;text-align:right;font-variant-numeric:tabular-nums}
.rt-head{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6b4c1d;border-bottom:2px solid #7a5a22;padding-bottom:5px}
.rt-head span:first-child,.rc-row span:first-child{text-align:left}
.rc-row{padding:7px 0;border-bottom:1px dotted #8a6d3a;font-size:14px}
.rc-row span:first-child{overflow-wrap:anywhere}
.receipt-summary{margin-top:12px;font-style:italic;color:#4a3315}
.receipt-total{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:10px 4px;border-top:3px double #7a5a22;border-bottom:3px double #7a5a22;font-size:24px;font-weight:bold;color:#1b3022}
.receipt-foot{margin-top:14px;font-size:11px;letter-spacing:.16em;color:#6b4c1d;line-height:1.6}
.receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.bit-box{margin-top:12px;padding:10px;border:1px solid #b88931;border-radius:6px;background:rgba(10,24,18,.85);display:grid;gap:8px}
.bit-box[hidden]{display:none}
.bit-box label{color:#f3e2b0;font-weight:bold;font-size:15px}.bit-box label i{font-weight:normal;opacity:.75}
.bit-box textarea{width:100%;box-sizing:border-box;min-height:70px;resize:vertical;padding:9px;border-radius:5px;border:1px solid #8a6a2c;background:#f6ecd2;color:#2b1d0e;font:inherit;font-size:16px}
.bit-box button{padding:12px 8px;min-height:44px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#1b2a1a,#0a1812);color:#f3e2b0;font-weight:bold;cursor:pointer}
.bit-box button:disabled{opacity:.6;cursor:default}
.receipt-actions button{padding:13px 8px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#1b2a1a,#0a1812);color:#f3e2b0;font-weight:bold;cursor:pointer;touch-action:manipulation}
.receipt-actions .primary{background:linear-gradient(#1b6c16,#0a430b);border-color:#d2a733;color:#fff7c9}

/* ===== CLIENTE / CONVENIO / CANTIDADES RÁPIDAS ===== */
.client-box{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:10px;border-bottom:1px solid #8b6a2e;background:#0a1711}
.client-box .fld{display:block;min-width:0}
.client-box .fld.wide{grid-column:1/-1}
.client-box .fld span{display:block;margin-bottom:3px;color:#c9b27a;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.client-box select,.client-box input{width:100%;min-height:42px;padding:9px 10px;font-size:16px;font-family:inherit;background:#040b08;border:1px solid #5d4928;border-radius:6px;color:#eee0bd}
.client-box select:focus,.client-box input:focus{border-color:var(--gold)}
.client-box [hidden]{display:none}
.client-note{grid-column:1/-1;color:#e8c96f;font-style:italic;font-size:13px}
.price small.was{display:block;color:#8a7d60;font-size:11px;text-decoration:line-through}
.qty{flex-wrap:wrap}
.qty .quick{flex-basis:100%;display:flex;gap:4px;margin-top:5px}
.qty .quick button{flex:1;width:auto;height:28px;font-size:13px;font-weight:bold}
.carthead{color:#e8c96f;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border-bottom-color:#72572b}

/* ===== ENCARGOS, SEÑAL Y DESGLOSE ===== */
.pay-box{margin:8px 9px 0;padding:10px;border:1px solid #8b6a2e;border-radius:6px;background:#0a1711}
.pay-box[hidden],.pay-box [hidden]{display:none}
.pay-title{color:#f0d278;font-size:12px;font-weight:bold;letter-spacing:.1em;margin-bottom:8px}
.pay-box .fld{display:block;margin-top:8px}
.pay-box .fld span{display:block;margin-bottom:3px;color:#c9b27a;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.money{display:flex;align-items:center;border:1px solid #5d4928;border-radius:6px;background:#040b08}
.money:focus-within{border-color:var(--gold)}
.money i{padding:0 4px 0 12px;color:#f3d47c;font-style:normal;font-weight:bold}
.money input{flex:1;min-width:0;width:100%;min-height:42px;padding:9px 10px 9px 4px;border:0;background:transparent;color:#eee0bd;font-size:16px;font-family:inherit;outline:0}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.seg button{min-height:44px;border-radius:6px;border:1px solid #76633e;background:#242522;color:#eee1c6;font-weight:bold;cursor:pointer;touch-action:manipulation}
.seg button.on{background:linear-gradient(#80601f,#3a2a0c);border-color:var(--gold2);color:#fff0b6;box-shadow:0 0 10px #d7ae5455}
.pay-err{margin-top:6px;color:#f0a58f;font-size:13px}
.breakdown{margin:6px 9px 0}
.brow{display:flex;justify-content:space-between;gap:8px;padding:5px 2px;font-size:14px;color:#d9ccaa;font-variant-numeric:tabular-nums}
.brow.disc{color:#e0c27a;font-style:italic}
.brow.paid{margin:3px 0;padding:6px 8px;border:1px dashed #3f7a52;border-radius:4px;background:#0d2a1a;color:#a7e3b6;font-weight:bold}
.total span:first-child{font-size:clamp(13px,3.6vw,17px);letter-spacing:.06em;padding-right:8px}
.rfin{display:flex;justify-content:space-between;gap:8px;padding:5px 2px;font-size:14px;font-variant-numeric:tabular-nums}
.rfin.disc{color:#6b4c1d;font-style:italic}
.rfin.paid{margin:4px 0;padding:5px 8px;border:1px dashed #1b3022;font-weight:bold;color:#1b3022;background:#1b30221a}
#rcFin{margin-top:10px;text-align:left}

/* ===== ENCARGOS ALMACENADOS ===== */
.clock-link.enc-btn{border-color:var(--gold);color:var(--gold2);font-weight:bold;letter-spacing:.08em;background:linear-gradient(#2a1c0d,#0d1c14)}
.loaded-banner{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-bottom:1px solid #8b6a2e;background:#1b2a14;color:#e9dec2;font-size:14px}
.loaded-banner[hidden]{display:none}
.loaded-banner b{color:var(--gold2);letter-spacing:.08em}
.cart-sub{padding:10px 5px 2px;color:#f0d278;font-size:11px;letter-spacing:.12em;font-weight:bold}
.rc-sub{text-align:left;padding:8px 0 2px;font-size:11px;letter-spacing:.14em;font-weight:bold;color:#6b4c1d}
.actions .finish-enc{grid-column:1/-1;background:linear-gradient(#80601f,#3a2a0c);border-color:#d2a733;color:#fff0b6;font-size:15px}
.enc-panel{margin:auto;width:100%;max-width:640px;border:2px solid #8b6a2e;border-radius:10px;background:linear-gradient(#150f09,#0a1812);box-shadow:0 20px 60px #000;overflow:hidden}
.enc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 14px;border-bottom:1px solid #8b6a2e;background:linear-gradient(90deg,#25180e,#0d1c14);color:#f0d278;font-size:19px;font-weight:bold}
#encBody{padding:10px}
.enc-empty{padding:34px 12px;text-align:center;color:#827866;line-height:1.6}
.enc-card{display:block;width:100%;margin-bottom:10px;padding:12px;text-align:left;border:1px solid #72572b;border-radius:8px;background:#0a1711;color:#e9dec2;cursor:pointer;font-family:inherit;font-size:15px}
.enc-card:hover{border-color:var(--gold)}
.enc-card .t{color:var(--gold2);font-weight:bold;margin-bottom:4px;overflow-wrap:anywhere}
.enc-card .it{color:#d9ccaa;font-size:14px;margin-bottom:6px;overflow-wrap:anywhere}
.enc-money{display:flex;flex-wrap:wrap;gap:2px 14px;margin-bottom:8px;font-size:14px;font-variant-numeric:tabular-nums}
.badges{display:flex;flex-wrap:wrap;gap:6px}
.badge{padding:3px 9px;border-radius:12px;border:1px solid;font-size:12px;font-weight:bold;letter-spacing:.05em}
.badge.pend{color:#f0c27a;border-color:#a8742f;background:#3a2a0c}
.badge.fab,.badge.si{color:#a7e3b6;border-color:#3f7a52;background:#0d2a1a}
.badge.no{color:#f0a58f;border-color:#a84532;background:#2a0f0b}
.enc-back{margin-bottom:10px;padding:10px 14px;min-height:44px;border-radius:6px;border:1px solid #76633e;background:#242522;color:#eee1c6;cursor:pointer;font-family:inherit;font-weight:bold}
.enc-id{color:#c9b27a;font-size:13px;margin-bottom:8px}
.enc-kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px}
.enc-kv .full{grid-column:1/-1}
.enc-kv span{display:block;color:#c9b27a;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.enc-kv b{overflow-wrap:anywhere}
.enc-sec{margin:12px 0;padding:10px;border:1px solid #8b6a2e;border-radius:6px;background:#0a1711}
.enc-sec label{display:block;margin-bottom:10px;color:#f0d278;font-size:12px;font-weight:bold;letter-spacing:.1em}
.enc-sec label:last-child{margin-bottom:0}
.enc-sec select{display:block;width:100%;min-height:44px;margin-top:4px;padding:9px 10px;font-size:16px;font-family:inherit;background:#040b08;border:1px solid #5d4928;border-radius:6px;color:#eee0bd}
.enc-note{margin-top:6px;color:#a99a7d;font-size:13px;font-style:italic}
.brow.due{margin-top:4px;padding:8px 2px;border-top:2px double #8b6a2e;font-size:18px;font-weight:bold;color:var(--gold2)}
.enc-actions{display:grid;gap:8px}
.enc-actions button{padding:13px 8px;min-height:44px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#1b2a1a,#0a1812);color:#f3e2b0;font-weight:bold;cursor:pointer;font-family:inherit}
.enc-actions .primary{background:linear-gradient(#1b6c16,#0a430b);border-color:#d2a733;color:#fff7c9}
.enc-actions .warn{background:#5b1515;border-color:#a84532;color:#f7d7c4}

/* ===== MODO JEFE Y DIRECCIÓN ===== */
.clock-link.boss-btn{min-height:38px;padding:8px 12px;font-size:12px;letter-spacing:.14em;color:#c9b27a}
.clock-link.boss-btn.on{color:var(--gold2);border-color:var(--gold)}
.boss-lbl{display:block;margin-bottom:4px;text-align:left;color:#c9b27a;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
#dirBody{padding:10px}
.dir-item{cursor:default}
.dir-item:hover{border-color:#72572b}
.dir-sec-title{margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid #8b6a2e;color:#f0d278;font-size:13px;font-weight:bold;letter-spacing:.14em}
.dir-form label{display:block;margin-bottom:10px;color:#f0d278;font-size:12px;font-weight:bold;letter-spacing:.1em}
.dir-form input,.dir-form select{display:block;width:100%;min-height:44px;margin-top:4px;padding:9px 10px;font-size:16px;font-family:inherit;background:#040b08;border:1px solid #5d4928;border-radius:6px;color:#eee0bd}
.enc-actions.two{grid-template-columns:1fr 1fr}
.dir-log{padding:8px 4px;border-bottom:1px solid #26382d;font-size:14px;color:#d9ccaa;overflow-wrap:anywhere}
.dir-log b{color:var(--gold2)}

/* ===== PESTAÑAS VENTA / PRESUPUESTO, EMPLEADOS, STOCK ===== */
.mode-tabs{display:grid;grid-template-columns:1fr 1fr;margin:0 0 12px;border:1px solid #8b6a2e;border-radius:8px;overflow:hidden;background:#06130e}
.mode-tab{min-height:48px;border:0;border-right:1px solid #8b6a2e;background:linear-gradient(#150f09,#0a1812);color:#a99a7d;font-size:15px;font-weight:bold;letter-spacing:.2em;cursor:pointer;touch-action:manipulation}
.mode-tab:last-child{border-right:0}
.mode-tab.on{background:linear-gradient(#80601f,#3a2a0c);color:#fff0b6;box-shadow:inset 0 0 14px #d7ae5444}
body.mode-presupuesto .only-venta{display:none!important}
.nostock{display:block;margin-top:2px;color:#f0a58f;font-size:11px;font-style:normal;letter-spacing:.14em;font-weight:bold}
.nostock[hidden]{display:none}
.product.no-stock{opacity:.55}
.enc-actions button:disabled{opacity:.45;cursor:default}
.enc-actions .gold{background:linear-gradient(#80601f,#3a2a0c);border-color:#d2a733;color:#fff0b6}
.emp-btns{display:flex;gap:6px;flex-wrap:wrap}
.emp-btns button{min-height:44px;padding:8px 10px;border-radius:6px;border:1px solid #b88931;background:#242522;color:#f3e2b0;font-weight:bold;cursor:pointer;font-family:inherit;font-size:12px}
.emp-btns .warn{background:#5b1515;border-color:#a84532;color:#f7d7c4}
.stock-cats{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-width:420px!important;margin:0 auto 10px!important}
.stock-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid #26382d}
.stock-row small{display:block;margin-top:2px;color:var(--gold2)}
.stock-row label{flex:0 0 96px;color:#c9b27a;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.stock-row input{display:block;width:100%;min-height:44px;margin-top:3px;text-align:center;font-size:16px;font-family:inherit;background:#040b08;border:1px solid #5d4928;border-radius:6px;color:#eee0bd}

/* ===== PARCHE: convenios por grupos, stock con +/-, registro de stock ===== */
.dir-form [hidden]{display:none}
.stock-row{flex-wrap:wrap}
.stock-row .qty{flex:0 0 auto;margin-left:auto}
.stock-row .qty input{width:64px;min-height:37px;margin:0}
.reg-line{display:flex;justify-content:space-between;gap:10px;padding:7px 4px;border-bottom:1px solid #26382d;font-size:15px;color:#d9ccaa}
.reg-line b{color:var(--gold2);white-space:nowrap}
.reg-line b.zero{color:#f0a58f}

/* ===== GASTOS Y BALANCE ===== */
.dir-form .money input{border:0;background:transparent;margin:0;min-height:42px}
.neg{color:#f0a58f}
.dir-log .emp-btns{margin-top:6px}

/* ===== PALABRA DE SEGURIDAD ===== */
.boss-hint{margin:-8px 0 12px;color:#a99a7d;font-size:12px;font-style:italic;text-align:left}
.boss-link{display:block;margin:0 auto 12px;padding:0 8px;min-height:36px;background:none;border:0;color:#c9a24a;text-decoration:underline;cursor:pointer;font-family:inherit;font-size:13px;letter-spacing:.06em}
.boss-link[hidden]{display:none}

/* ===== MEJORAS: barra de pedido, resumen de Dirección, gráficos, libro contable, sellos ===== */
.order-bar{display:none}
@media(max-width:900px){
 .order-bar:not([hidden]){display:flex}
 .order-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;gap:10px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(#10261aF2,#07120eF8);border-top:3px double #b88931;box-shadow:0 -8px 20px #000b}
 .ob-sum{flex:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:0;background:none;border:0;color:#d9ccaa;font-family:inherit;font-size:12px;letter-spacing:.06em;text-align:left;cursor:pointer}
 .ob-sum b{color:#f8e08c;font-size:21px;text-shadow:0 1px 0 #000}
 .ob-go{min-height:48px;padding:0 20px;border-radius:6px;border:1px solid #d2a733;background:linear-gradient(#26801f,#0a430b);color:#fff7c9;font-family:inherit;font-weight:bold;letter-spacing:.08em;box-shadow:inset 0 1px 0 #a6e89a55,0 3px 8px #000a;cursor:pointer}
 body.has-bar{padding-bottom:84px}
 body.has-bar .to-top{bottom:calc(92px + env(safe-area-inset-bottom,0px))}
 body.has-bar .toast{bottom:96px}
}
.dash{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.dash-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #8b6a2e;border-left:4px solid #b88931;border-radius:6px;background:linear-gradient(#0e1e16,#08130e);box-shadow:inset 0 0 0 1px #000,inset 0 0 16px #0009}
.dash-card small{color:#c9b27a;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.dash-card b{color:#f8e08c;font-size:20px;text-shadow:0 1px 0 #000;overflow-wrap:anywhere}
.dash-card span{color:#a99a7d;font-size:12px;font-style:italic;min-height:14px}
.mod-card{display:flex;align-items:center;gap:14px}
.mod-card .t{border-bottom:0;margin-bottom:2px;padding-bottom:0}
.mod-ico{flex:0 0 38px;width:38px;height:38px;fill:none;stroke:#d7ae54;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px #000)}
.dir-search{display:block;width:100%;min-height:44px;margin:0 0 10px;padding:9px 12px;font-size:16px;font-family:inherit;background:#040b08;border:1px solid #5d4928;border-radius:6px;color:#eee0bd;box-shadow:inset 0 2px 6px #000c}
.ledger{padding:4px 10px;border:1px solid #7a5a22;border-radius:4px;background:repeating-linear-gradient(0deg,transparent 0 31px,#7a5a2214 31px 32px),linear-gradient(#eadeb8,#d9c58f);box-shadow:inset 0 0 40px #8a5d2455,0 3px 8px #0008}
.ledger .dir-log{margin:0;padding:9px 6px;color:#2a1a0d;background:none;border-left:3px solid #7a5a22;border-bottom:1px dotted #7a5a2288;border-radius:0;box-shadow:none}
.ledger .dir-log b{color:#1b3022}
.ledger .enc-empty{color:#6b4c1d}
.lowtag{margin-left:4px;padding:0 6px;border:1px solid #a84532;border-radius:8px;color:#f0a58f;font-size:10px;font-weight:bold;letter-spacing:.1em}
.minlbl{display:flex;align-items:center;gap:6px;margin-top:5px;color:#a99a7d;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.stock-row .min-in{display:inline-block;width:64px;min-height:34px;margin:0;font-size:14px}
.weapon-icon{overflow:hidden}
.weapon-icon img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.receipt-meta{position:relative}
.paid-stamp{position:absolute;right:2px;bottom:0;padding:3px 12px;border:3px double #8d2a16;border-radius:4px;color:#8d2a16;font:bold 18px/1.1 Georgia,serif;letter-spacing:.16em;transform:rotate(-13deg);opacity:0;pointer-events:none;mix-blend-mode:multiply}
.paid-stamp.hit{animation:stampIn .5s .25s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes stampIn{from{opacity:0;transform:rotate(-13deg) scale(2.3)}60%{opacity:.92;transform:rotate(-13deg) scale(.94)}to{opacity:.82;transform:rotate(-13deg) scale(1)}}
.wax{display:grid;place-items:center;width:68px;height:68px;margin:10px auto 0;border-radius:46% 54% 52% 48%/52% 46% 54% 48%;background:radial-gradient(circle at 35% 30%,#b8321e,#7a1608 60%,#4d0d05);box-shadow:inset 0 0 0 3px #8d2a1699,inset 0 2px 6px #ff8a6a55,0 3px 6px #0006}
.wax img{width:34px;height:34px;object-fit:contain;filter:grayscale(1) brightness(.3) contrast(1.4);opacity:.8;mix-blend-mode:multiply}
@keyframes flip{from{opacity:0;transform:perspective(900px) rotateY(-7deg) translateX(-10px)}to{opacity:1;transform:none}}
.grid.flip{animation:flip .4s ease both}
@media(prefers-reduced-motion:reduce){.paid-stamp.hit{animation:none;opacity:.82}.grid.flip{animation:none}}

/* ===== Discord, copia de seguridad, productos, clientes, cierre ===== */
.dir-form input[type=checkbox]{display:inline-block;flex:none;width:22px;min-height:0;height:22px;margin:0 10px 0 0;vertical-align:middle;accent-color:#b88931;box-shadow:none}
.dir-form label.chk{display:flex;align-items:center;margin-bottom:8px;font-size:14px;letter-spacing:.04em;font-weight:normal;color:#d9ccaa}
.price-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 4px;border-bottom:1px solid #26382d}
.price-row .money{flex:0 0 118px}
.price-row .nm{min-width:0;overflow-wrap:anywhere}
.cust-tag{margin-left:6px;padding:0 6px;border:1px solid #3f7a52;border-radius:8px;color:#a7e3b6;font-size:10px;letter-spacing:.1em}
.bk-note{margin:0 0 10px;color:#a99a7d;font-size:13px;font-style:italic;line-height:1.45}
.void-tag{margin-left:6px;padding:0 7px;border:1px solid #a84532;border-radius:8px;color:#f0a58f;font-size:10px;font-weight:bold;letter-spacing:.12em}
.ledger .dir-log.voided{opacity:.55;text-decoration:line-through}
.ledger .dir-log.voided .void-tag{text-decoration:none}
.ledger .dir-log .emp-btns button{min-height:38px}

/* ===== Pantalla de bienvenida, ficha de producto ===== */
.splash{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;background:radial-gradient(circle at 50% 40%,#2e1f0f,#050a07 72%);pointer-events:none;animation:splashOut 2.1s ease forwards}
.splash img{height:130px;width:auto;max-width:60%;animation:lamp 1.5s ease both}
.sp-name{font-family:var(--f-brand);font-weight:700;color:#f0d278;font-size:clamp(20px,6vw,34px);letter-spacing:.06em;text-align:center;text-shadow:0 0 18px #d7ae5466}
.sp-sub{font-family:var(--f-sc);color:#c9b27a;letter-spacing:.3em;text-align:center}
@keyframes lamp{from{opacity:0;transform:scale(.92);filter:brightness(.4)}to{opacity:1;transform:none;filter:none}}
@keyframes splashOut{0%,68%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.splash{display:none}}
.pname{cursor:pointer}
.pname:hover{text-decoration:underline dotted #b88931;text-underline-offset:3px}
#prodBody{padding:14px}
.prod-sheet{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.prod-sheet .weapon-icon{flex:0 0 auto;margin:0}
.prod-desc{margin:0 0 14px;line-height:1.5;color:#d9ccaa;font-style:italic}
.prod-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px;padding:8px 10px;border:1px solid #5b4521;border-radius:5px;background:#08130e}

/* ===== FICHAJE ===== */
.clock-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:12px 0 0;padding:10px 12px;border:1px solid #8b6a2e;border-radius:8px;background:linear-gradient(90deg,#25180e,#0d1c14);box-shadow:0 6px 20px #0008}
.clock-info{min-width:0;color:#d9ccaa}
.clock-info b{display:block;color:var(--gold2);letter-spacing:.14em;font-size:13px}
.clock-status{font-size:15px;overflow-wrap:anywhere}
.clock-actions{display:flex;gap:8px;flex-wrap:wrap}
.clock-btn,.clock-link{padding:11px 16px;min-height:44px;border-radius:6px;border:1px solid #d2a733;background:linear-gradient(#1b6c16,#0a430b);color:#fff7c9;font-weight:bold;cursor:pointer;touch-action:manipulation}
.clock-btn.out{background:linear-gradient(#7a2a14,#4a1608);border-color:#c98a3f}
.clock-link{background:#242522;border-color:#76633e;color:#eee1c6;font-weight:normal}
.name-input{display:block;width:100%;margin:0 0 16px;padding:12px;font-size:16px;font-family:inherit;text-align:center;background:#040b08;border:1px solid #8b6a2e;border-radius:6px;color:#eee0bd}
.confirm-actions .ok{background:linear-gradient(#1b6c16,#0a430b);border-color:#d2a733;color:#fff7c9}
.receipt-actions .span2{grid-column:1/-1}

/* ===== RESPONSIVE ===== */
@media(min-width:901px){.order{max-height:calc(100vh - 16px);overflow-y:auto}}
@media(max-width:999px){.cat-nav{grid-template-columns:repeat(3,minmax(0,1fr));max-width:600px;margin:12px auto}}
@media(max-width:900px){.grid{grid-template-columns:1fr}.order{position:relative;top:0}.cart{max-height:390px}}
@media(max-width:650px){
.clock-actions{width:100%}.clock-btn{flex:1}
.qty .quick button{height:38px}
.client-box{grid-template-columns:1fr}
.wrap{padding:7px}
.hero-banner img{aspect-ratio:5/2;max-height:none}
.cat-nav{gap:6px;padding:7px}
.category-visual{height:155px}
.category-visual .visual-title{font-size:23px;left:14px;bottom:11px}
.table-head{display:none}
.product{grid-template-columns:34px 1fr 80px;gap:6px;padding:10px 7px}
.product .qty{grid-column:2/3;justify-content:flex-start}
.product .subtotal{grid-column:3/4;grid-row:2}
.pname{font-size:15px}
.price{font-size:14px}
.qty button{width:44px;height:44px}
.qty input{width:52px;height:44px}
.cartrow{grid-template-columns:1fr 34px 62px 70px;font-size:12.5px}
.receipt-frame{padding:22px 12px 16px}
.rt-head,.rc-row{grid-template-columns:minmax(0,1fr) 32px 58px 68px;gap:4px}
.rc-row{font-size:13px}
.receipt-total{font-size:21px}
}
@media(prefers-reduced-motion:reduce){.bump{animation:none}*{transition-duration:.01s!important}}

/* ===== PULIDO VISUAL 1880 (solo aspecto, sin cambios de funcionamiento) ===== */
body{font-family:"Palatino Linotype","Book Antiqua",Palatino,Georgia,serif}
::selection{background:#b8893166;color:#fff6d6}
html{scrollbar-color:#8b6a2e #08140e}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:#08140e}
*::-webkit-scrollbar-thumb{background:linear-gradient(#a07a2c,#5b4521);border-radius:6px;border:2px solid #08140e}

/* Marcos de latón: doble filete, como placas de armería */
.hero-banner{border:3px double #b88931;box-shadow:0 14px 40px #000b,inset 0 0 0 1px #000,inset 0 0 50px #000}
.cat-nav,.category-visual{border:3px double #8b6a2e}
.panel,.enc-panel,.confirm-box,.clock-bar,.mode-tabs{box-shadow:0 12px 34px #000a,inset 0 0 0 2px #07120e,inset 0 0 0 3px #5b4521}
.modal-overlay{background:radial-gradient(circle at 50% 25%,#0b1711f0,#020604f5)}

/* Rótulos y títulos en versalitas con relieve */
.order-title,.enc-head,.confirm-title,.dir-sec-title,.pay-title,.mode-tab,.table-head{font-variant:small-caps;text-shadow:0 1px 0 #000}
.order-title,.enc-head{border-bottom:3px double #8b6a2e;letter-spacing:.12em}
.order-title span:first-child{background:linear-gradient(#fbe8a0,#b88931);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.dir-sec-title:before,.pay-title:before{content:"✦ ";color:#b88931}
.table-head{background:linear-gradient(#1f1c0f,#14140c);border-bottom:3px double #8b6a2e;letter-spacing:.2em}
.category-visual .visual-title{font-variant:small-caps;letter-spacing:.06em;text-shadow:0 2px 10px #000,0 0 18px #d7ae5455}

/* Catálogo como libro de cuentas */
.product{background:linear-gradient(90deg,#0b1812,#08110d);border-bottom:1px solid #2c3d31}
.product:nth-child(even):not(.has-qty){background:linear-gradient(90deg,#0e1d16,#0a140f)}
.product:hover:not(.has-qty){background:#122619}
.price,.subtotal{font-variant-numeric:lining-nums tabular-nums;letter-spacing:.02em}
.search{background:linear-gradient(#0d1b14,#091711)}
.search input:focus,.client-box input:focus,.client-box select:focus{border-color:#b88931;box-shadow:0 0 0 2px #b8893133;outline:0}

/* Botones de latón con relieve */
button{transition:filter .15s,transform .1s,box-shadow .2s,background .2s}
button:not(.cat-btn):hover:not(:disabled){filter:brightness(1.12)}
button:not(.cat-btn):active:not(:disabled){transform:translateY(1px)}
.qty button{background:linear-gradient(#2d2612,#12100a);box-shadow:inset 0 1px 0 #e7c76a55,0 1px 2px #000}
.qty button:active:not(:disabled){background:#3a2a0c;box-shadow:inset 0 2px 4px #000}
.actions button,.enc-actions button,.confirm-actions button,.receipt-actions button,.clock-btn,.clock-link,.seg button{box-shadow:inset 0 1px 0 #ffffff1a,0 2px 5px #0009;text-shadow:0 1px 0 #000}
.actions .finish{background:linear-gradient(#26801f,#0a430b);box-shadow:inset 0 1px 0 #a6e89a55,0 3px 9px #000a,0 0 0 1px #6b4f1a;letter-spacing:.06em}
.mode-tab.on{background:linear-gradient(#8d6a21,#3a2a0c);box-shadow:inset 0 1px 0 #f3d47c66,inset 0 0 14px #d7ae5444}

/* Placa de total, como caja registradora de latón */
.total{background:linear-gradient(#153d28,#0a2316);border:2px solid #b88931;border-radius:4px;box-shadow:inset 0 0 0 2px #07120e,inset 0 0 0 3px #8b6a2e,0 4px 14px #0009;text-shadow:0 1px 0 #000}
.total #grand{color:#f8e08c;text-shadow:0 0 12px #d7ae5466,0 1px 0 #000}
.stamp{border:1px double #8b6a2e}

/* Detalles de pie y entrada suave */
footer{letter-spacing:.14em;text-transform:uppercase}
footer:before{content:"❖ ───── ✦ ───── ❖";display:block;margin-bottom:8px;color:#8b6a2e;letter-spacing:.08em;white-space:nowrap;overflow:hidden}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wrap>*{animation:rise .5s ease both}
@media(prefers-reduced-motion:reduce){.wrap>*{animation:none}}

/* ===== ACABADO ELABORADO 1880: madera, cuero, remaches y filigrana de latón ===== */
body{background:
radial-gradient(ellipse at 50% -8%,#8a4f2147,transparent 44%),
radial-gradient(ellipse at 50% 120%,#000000a0,transparent 55%),
linear-gradient(#0f0a07d9,#050a07f2),
repeating-linear-gradient(90deg,#00000066 0 2px,transparent 2px 170px),
repeating-linear-gradient(90deg,#2a190f 0 3px,#1b100a 3px 9px,#241610 9px 14px)}

/* Filigrana de latón en las esquinas de los marcos principales */
.cat-nav,.clock-bar,.panel:not(.order),.enc-panel,.confirm-box{position:relative}
.hero-banner:after,.cat-nav:after,.clock-bar:after,.panel:not(.order):after,.enc-panel:after,.confirm-box:after,.category-visual:before{content:"";position:absolute;inset:3px;z-index:3;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg transform='matrix(1 0 0 1 0 0)'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M2 46V15Q2 2 15 2H46'/%3E%3Cpath d='M8 46V19Q8 8 19 8H46' opacity='.55'/%3E%3Cpath d='M15 15q8 0 8 7t-8 7' opacity='.8'/%3E%3C/g%3E%3Ccircle cx='15' cy='15' r='2.4' fill='%23e7c76a'/%3E%3Cpath d='M2 2l6 6' stroke='%23e7c76a' stroke-width='1.4'/%3E%3C/g%3E%3C/svg%3E") left top/34px 34px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg transform='matrix(-1 0 0 1 48 0)'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M2 46V15Q2 2 15 2H46'/%3E%3Cpath d='M8 46V19Q8 8 19 8H46' opacity='.55'/%3E%3Cpath d='M15 15q8 0 8 7t-8 7' opacity='.8'/%3E%3C/g%3E%3Ccircle cx='15' cy='15' r='2.4' fill='%23e7c76a'/%3E%3Cpath d='M2 2l6 6' stroke='%23e7c76a' stroke-width='1.4'/%3E%3C/g%3E%3C/svg%3E") right top/34px 34px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg transform='matrix(1 0 0 -1 0 48)'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M2 46V15Q2 2 15 2H46'/%3E%3Cpath d='M8 46V19Q8 8 19 8H46' opacity='.55'/%3E%3Cpath d='M15 15q8 0 8 7t-8 7' opacity='.8'/%3E%3C/g%3E%3Ccircle cx='15' cy='15' r='2.4' fill='%23e7c76a'/%3E%3Cpath d='M2 2l6 6' stroke='%23e7c76a' stroke-width='1.4'/%3E%3C/g%3E%3C/svg%3E") left bottom/34px 34px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg transform='matrix(-1 0 0 -1 48 48)'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M2 46V15Q2 2 15 2H46'/%3E%3Cpath d='M8 46V19Q8 8 19 8H46' opacity='.55'/%3E%3Cpath d='M15 15q8 0 8 7t-8 7' opacity='.8'/%3E%3C/g%3E%3Ccircle cx='15' cy='15' r='2.4' fill='%23e7c76a'/%3E%3Cpath d='M2 2l6 6' stroke='%23e7c76a' stroke-width='1.4'/%3E%3C/g%3E%3C/svg%3E") right bottom/34px 34px no-repeat}
.hero-banner:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 0,#ffcf6a2b,transparent 62%)}

/* Cuero y fieltro en los paneles */
.panel,.enc-panel{background:repeating-linear-gradient(45deg,#ffffff05 0 1px,transparent 1px 4px),repeating-linear-gradient(-45deg,#ffffff04 0 1px,transparent 1px 4px),linear-gradient(#0a1811,#060f0b)}
.confirm-box{background:repeating-linear-gradient(45deg,#ffffff05 0 1px,transparent 1px 4px),linear-gradient(#1a120a,#0a1812)}
.order-title,.enc-head{background:repeating-linear-gradient(45deg,#ffffff07 0 2px,transparent 2px 7px),linear-gradient(90deg,#2b1c0f,#0f2218 60%,#2b1c0f)}
.cat-nav{background:linear-gradient(#071510,#050e0a)}
.cat-nav:before{content:"✦  CATEGORÍAS  ✦";grid-column:1/-1;text-align:center;color:#c9a24a;font-size:12px;letter-spacing:.32em;font-variant:small-caps;margin:-1px 0 1px}
.dir-sec-title{background:linear-gradient(90deg,#b88931,#b8893100) left bottom/100% 1px no-repeat;border-bottom:0;padding-bottom:6px}

/* Medallón de latón en cada producto */
.weapon-icon{display:grid;place-items:center;width:30px;height:30px;margin:auto;font-size:15px;line-height:1;border:1px solid #8b6a2e;border-radius:50%;background:radial-gradient(circle at 35% 30%,#3d3113,#0b0804);box-shadow:inset 0 0 6px #000,0 0 8px #d7ae5422;text-shadow:none}
.product.has-qty .weapon-icon{border-color:#e7c76a;box-shadow:inset 0 0 6px #000,0 0 12px #d7ae5477}
.product{box-shadow:inset 0 -1px 0 #00000066}

/* Campos hundidos en el cuero */
.search input,.client-box input,.client-box select,.dir-form input,.dir-form select,.name-input,.money,.enc-sec select{box-shadow:inset 0 2px 6px #000c,inset 0 0 0 1px #00000055}
.qty input{box-shadow:inset 0 2px 5px #000}

/* Costuras de cuero en los botones de acción */
.actions button:not(:focus-visible),.enc-actions button:not(:focus-visible),.clock-btn:not(:focus-visible),.confirm-actions button:not(:focus-visible),.receipt-actions button:not(:focus-visible){outline:1px dashed #e7c76a40;outline-offset:-4px}
.mode-tab.on:before{content:"❖  "}
.mode-tab.on:after{content:"  ❖"}

/* Placa del total con remaches */
.total{padding-left:26px;padding-right:26px;background:radial-gradient(circle at 11px 50%,#f0d57a 0 2.5px,#6b4f1a 3.5px,transparent 4.5px),radial-gradient(circle at calc(100% - 11px) 50%,#f0d57a 0 2.5px,#6b4f1a 3.5px,transparent 4.5px),linear-gradient(#153d28,#0a2316)}

/* Comprobante: papel con renglones y sello de la armería */
.receipt-paper{background:repeating-linear-gradient(0deg,transparent 0 27px,#7a5a2214 27px 28px),radial-gradient(circle at 20% 10%,#f4e6bc,transparent 55%),linear-gradient(#ead8aa,#d8bd83)}
.receipt-frame:after{content:"ARMERÍA HARRINGTON · SAINT DENIS · 1880";position:absolute;right:12px;bottom:20px;transform:rotate(-8deg);padding:5px 10px;border:2px double #7a2a1438;color:#7a2a1440;font-size:11px;font-weight:bold;letter-spacing:.18em;white-space:nowrap;pointer-events:none}
@media(max-width:650px){
.hero-banner:after,.cat-nav:after,.clock-bar:after,.panel:not(.order):after,.enc-panel:after,.confirm-box:after,.category-visual:before{background-size:26px 26px,26px 26px,26px 26px,26px 26px}
.receipt-frame:after{font-size:9px;right:6px;bottom:16px}
}

/* ===== TERCER ACABADO: paneles, tarjetas y cuadros más elaborados ===== */
:root{--rv:radial-gradient(circle at 8px 8px,#e3c26a 0 1.8px,#5b4521 2.8px,transparent 3.6px),radial-gradient(circle at calc(100% - 8px) 8px,#e3c26a 0 1.8px,#5b4521 2.8px,transparent 3.6px),radial-gradient(circle at 8px calc(100% - 8px),#e3c26a 0 1.8px,#5b4521 2.8px,transparent 3.6px),radial-gradient(circle at calc(100% - 8px) calc(100% - 8px),#e3c26a 0 1.8px,#5b4521 2.8px,transparent 3.6px)}

/* Selectores con flecha de latón */
.client-box select,.dir-form select,.enc-sec select,select.name-input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23d7ae54' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:right 12px center !important;padding-right:36px !important}

/* Cuadros con remaches de latón en las esquinas */
.pay-box,.enc-sec,.dir-form.enc-sec{background:var(--rv),linear-gradient(#0b1912,#07110d);border:1px solid #8b6a2e;box-shadow:inset 0 0 0 1px #000,inset 0 0 22px #0009,0 3px 10px #0008;padding:14px 16px}
.client-box{background:repeating-linear-gradient(45deg,#ffffff05 0 1px,transparent 1px 4px),linear-gradient(#0c1a13,#08130e);box-shadow:inset 0 -3px 10px #0008}
.loaded-banner{border-left:4px solid #e3c26a;background:linear-gradient(90deg,#26381a,#12241a)}

/* Tarjetas con lomo de latón */
.enc-card{border:1px solid #8b6a2e;border-left:5px solid #b88931;border-radius:6px;background:linear-gradient(#0e1e16,#08130e);box-shadow:inset 0 0 0 1px #000,inset 0 0 20px #0009,0 3px 9px #0009;transition:border-color .2s,box-shadow .2s,transform .15s}
.enc-card:hover{border-color:#e3c26a;box-shadow:inset 0 0 0 1px #000,inset 0 0 20px #0009,0 0 14px #d7ae5444,0 3px 9px #0009}
.enc-card.dir-item:hover{transform:none;border-color:#8b6a2e;box-shadow:inset 0 0 0 1px #000,inset 0 0 20px #0009,0 3px 9px #0009}
button.enc-card:active{transform:translateY(1px)}
.enc-card .t{font-variant:small-caps;letter-spacing:.08em;font-size:17px;border-bottom:1px solid #5b4521;padding-bottom:5px;margin-bottom:7px}
.dir-log{border-left:3px solid #8b6a2e;margin:6px 0;padding:9px 12px;background:linear-gradient(90deg,#0d1b14,#08130e);border-radius:0 5px 5px 0;box-shadow:inset 0 0 0 1px #00000066}
.reg-line:nth-child(even),.stock-row:nth-child(even){background:#ffffff05}
.badge{box-shadow:inset 0 1px 0 #ffffff22,0 1px 3px #000}

/* Cabeceras de ventana y de pedido más ricas */
.order-title,.enc-head{font-size:20px;padding:15px 16px;box-shadow:inset 0 -1px 0 #000,inset 0 1px 0 #e3c26a33}
.enc-head .danger,.order-title .danger{box-shadow:inset 0 1px 0 #ffffff22,0 2px 4px #000}
.category-visual .visual-title{padding:7px 22px 7px 16px;border-left:4px solid #e3c26a;background:linear-gradient(90deg,#000000b8,#00000000)}
.mode-tabs{border:3px double #8b6a2e}
.mode-tab{box-shadow:inset 0 1px 0 #ffffff14}

/* Detalles de lista, desglose y pedido */
.brow{border-bottom:1px dotted #3b4a3d}
.brow.paid,.brow.due{border-bottom:0}
.cart{background:repeating-linear-gradient(0deg,#ffffff02 0 23px,#ffffff07 23px 24px)}
.cartrow{border-bottom:1px dotted #2f4435}
.summary{letter-spacing:.1em;text-shadow:0 1px 0 #000}
.pname{text-shadow:0 1px 0 #000}
.pname small{display:inline-block;margin-top:3px;padding:1px 7px;border:1px solid #3b3220;border-radius:9px;background:#0b0a06}
.price{text-shadow:0 1px 0 #000}
.subtotal{text-shadow:0 1px 0 #000,0 0 10px #d7ae5433}
.stamp{background:var(--rv),linear-gradient(#4e351422,#291b0d44);box-shadow:inset 0 0 18px #0008}
.cat-btn{box-shadow:0 3px 8px #000a,inset 0 0 0 1px #000}
.money i{text-shadow:0 1px 0 #000}
.qty{filter:drop-shadow(0 2px 3px #0008)}

/* Aviso y ventanas */
.toast{border:2px double #c9a24a;background:linear-gradient(#164028,#0a2316);letter-spacing:.04em;box-shadow:0 8px 30px #000,inset 0 0 0 1px #000}
.toast:before{content:"❖ ";color:#e3c26a}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.modal-overlay:not([hidden])>*{animation:pop .3s ease both}
@media(prefers-reduced-motion:reduce){.modal-overlay:not([hidden])>*{animation:none}}

/* Comprobante: cinta de título y marco más ricos */
.receipt-title{background:linear-gradient(90deg,transparent,#7a5a2230 20%,#7a5a2230 80%,transparent);padding:8px 0;letter-spacing:.26em}
.receipt-total{background:linear-gradient(90deg,transparent,#1b302214 25%,#1b302214 75%,transparent)}
.receipt-frame{box-shadow:inset 0 0 0 4px #e9d9ac,inset 0 0 0 5px #7a5a2255}
.receipt-actions button,.enc-actions button{border-radius:5px}
@media(max-width:650px){.order-title,.enc-head{font-size:18px;padding:13px 14px}.pay-box,.enc-sec,.dir-form.enc-sec{padding:13px 14px}.enc-card .t{font-size:16px}}

.wax svg{display:block;width:52px;height:52px;filter:drop-shadow(0 1px 1px #0008)}

/* Si el emblema no carga, no se muestra ni el icono roto ni el texto alternativo */
.emblem[data-failed]{display:none}

/* ===== TIPOGRAFÍA 1880: Cinzel Decorative (marca y títulos), IM Fell English (texto), IM Fell English SC (botones y etiquetas) ===== */
:root{--f-brand:'Cinzel Decorative',Georgia,'Times New Roman',serif;--f-body:'FellCifras','IM Fell English',Georgia,'Times New Roman',serif;--f-sc:'FellCifras','IM Fell English SC','IM Fell English',Georgia,'Times New Roman',serif}
body,input,select,textarea{font-family:var(--f-body)}
body{font-size:17px}
button{font-family:var(--f-sc)}
/* Marca y títulos */
.receipt-name,.category-visual .visual-title,.order-title span:first-child,.enc-head>span,.confirm-title,.receipt-title,.enc-card .t{font-family:var(--f-brand);font-weight:700;font-variant:normal;letter-spacing:.04em}
.receipt-name{font-size:clamp(19px,5.2vw,28px)}
.category-visual .visual-title{max-width:calc(100% - 30px);line-height:1.15;font-size:26px}
.order-title,.enc-head{font-size:17px}
.receipt-title{font-size:13px;letter-spacing:.14em}
.enc-card .t{font-size:15px}
.confirm-title{font-size:18px}
/* Etiquetas, rótulos y pequeños encabezados: versalitas de imprenta */
.table-head,.fld span,.boss-lbl,.pay-title,.dir-sec-title,.dash-card small,.badge,.cart-sub,.carthead,.rt-head,.receipt-meta span,.clock-info b,.minlbl,.lowtag,.stamp,footer,.mode-tab,.cat-nav:before,.total span:first-child,.dir-form label,.enc-sec label,.enc-kv span,.receipt-foot,.rc-sub,.ob-sum,.ob-go{font-family:var(--f-sc)}
.dir-form input,.dir-form select,.enc-sec select,.client-box input,.client-box select,.name-input,.money input,.dir-search,.min-in{font-family:var(--f-body)}
.pname,.price,.subtotal,.brow,.dir-log,.reg-line,.stock-row b{font-size:17px}
.pname small{font-family:var(--f-sc)}
.clock-link,.clock-btn,.actions button,.enc-actions button,.receipt-actions button,.confirm-actions button,.seg button,.emp-btns button{white-space:normal;line-height:1.15}

/* ===== TEXTURAS E IMÁGENES DECORATIVAS (si un archivo falta, queda el fondo dibujado en código) ===== */
body{background:radial-gradient(ellipse at 50% -8%,#8a4f2147,transparent 44%),radial-gradient(ellipse at 50% 120%,#000000a0,transparent 55%),linear-gradient(rgba(10,6,4,.42),rgba(4,8,6,.66)),url(textura-madera.webp) 0 0/640px,linear-gradient(#0f0a07d9,#050a07f2),repeating-linear-gradient(90deg,#00000066 0 2px,transparent 2px 170px),repeating-linear-gradient(90deg,#2a190f 0 3px,#1b100a 3px 9px,#241610 9px 14px)}
.hero-banner{padding:8px;background:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.4)),url(textura-madera.webp) 0 0/420px,#1b100a}
.hero-banner img{border:2px solid #b88931;border-radius:4px;box-shadow:0 0 0 1px #000}
.cat-nav{background:linear-gradient(rgba(0,0,0,.22),rgba(0,0,0,.46)),url(textura-madera.webp) 0 0/420px,linear-gradient(#071510,#050e0a)}
.mode-tab{background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.68)),url(textura-madera.webp) center/300px,linear-gradient(#150f09,#0a1812)}
.order-bar{background:linear-gradient(rgba(8,16,11,.74),rgba(4,10,7,.9)),url(textura-madera.webp) 0 0/360px,linear-gradient(#10261aF2,#07120eF8)}
#receiptModal.modal-overlay{background:radial-gradient(circle at 50% 25%,rgba(10,23,17,.55),rgba(2,6,4,.9)),linear-gradient(rgba(2,6,4,.7),rgba(2,6,4,.82)),url(textura-madera.webp) 0 0/520px,#020604}
.panel,.enc-panel{background:linear-gradient(rgba(6,14,10,.55),rgba(4,10,7,.74)),url(textura-cuero.webp) 0 0/300px,repeating-linear-gradient(45deg,#ffffff05 0 1px,transparent 1px 4px),linear-gradient(#0a1811,#060f0b)}
.confirm-box{background:linear-gradient(rgba(10,8,5,.55),rgba(5,12,9,.75)),url(textura-cuero.webp) 0 0/300px,linear-gradient(#1a120a,#0a1812)}
.client-box{background:linear-gradient(rgba(8,16,11,.5),rgba(6,12,9,.7)),url(textura-cuero.webp) 0 0/300px,linear-gradient(#0c1a13,#08130e)}
.receipt-paper{background:repeating-linear-gradient(0deg,transparent 0 27px,#7a5a2214 27px 28px),url(textura-papel.webp) 0 0/520px,radial-gradient(circle at 20% 10%,#f4e6bc,transparent 55%),linear-gradient(#ead8aa,#d8bd83)}
.ledger{background:repeating-linear-gradient(0deg,transparent 0 31px,#7a5a2214 31px 32px),url(textura-papel.webp) 0 0/520px,linear-gradient(#eadeb8,#d9c58f)}
/* Sello de lacre real, si existe sello-lacre.webp */
body.has-lacre .wax{width:86px;height:86px;border-radius:0;background:url(sello-lacre.webp) center/contain no-repeat;box-shadow:none}
body.has-lacre .wax svg{display:none}
/* Sello PAGADO real, si existe sello-pagado.png (solo en ventas; los encargos conservan el texto ANOTADO) */
.paid-stamp.img{width:132px;height:66px;padding:0;border:0;font-size:0;color:transparent;background:url(sello-pagado.png) center/contain no-repeat;transform:rotate(-4deg)}
.paid-stamp.img.hit{animation-name:stampImg}
@keyframes stampImg{from{opacity:0;transform:rotate(-4deg) scale(2.3)}60%{opacity:.95;transform:rotate(-4deg) scale(.94)}to{opacity:.9;transform:rotate(-4deg) scale(1)}}
/* Esquinas de filigrana reales, si existe esquina-ornamento.png (se generan los 4 giros desde una sola imagen) */
body.has-corner :is(.hero-banner,.cat-nav,.clock-bar,.panel:not(.order),.enc-panel,.confirm-box):after,body.has-corner .category-visual:before{background:var(--c-tl) left top/42px 42px no-repeat,var(--c-tr) right top/42px 42px no-repeat,var(--c-bl) left bottom/42px 42px no-repeat,var(--c-br) right bottom/42px 42px no-repeat}
@media(max-width:650px){
 body.has-corner :is(.hero-banner,.cat-nav,.clock-bar,.panel:not(.order),.enc-panel,.confirm-box):after,body.has-corner .category-visual:before{background:var(--c-tl) left top/30px 30px no-repeat,var(--c-tr) right top/30px 30px no-repeat,var(--c-bl) left bottom/30px 30px no-repeat,var(--c-br) right bottom/30px 30px no-repeat}
 .category-visual .visual-title{font-size:19px}
 .order-title,.enc-head{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.paid-stamp.img.hit{animation:none;opacity:.9}}

/* Ajustes tras la nueva tipografía: cabecera de la tabla del ticket más compacta y sin marca de agua (ya hay sello y lacre) */
.receipt-frame:after{content:none!important}
.rt-head{font-size:11px;letter-spacing:.06em}
@media(max-width:650px){.rt-head{font-size:10px;letter-spacing:.03em}}

/* ===== Corrección tipográfica: cifras legibles y tabla del pedido ===== */
@font-face{font-family:'FellCifras';font-weight:400;font-style:normal;unicode-range:U+0030-0039;size-adjust:96%;src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Noto Serif'),local('NotoSerif-Regular'),local('Cambria'),local('Liberation Serif'),local('Tinos'),local('DejaVu Serif')}
.cartrow{font-size:14px;line-height:1.25}
.carthead{font-size:11px;letter-spacing:.04em;line-height:1.2}
@media(max-width:650px){
 .cartrow{grid-template-columns:minmax(0,1fr) 40px 64px 74px;font-size:13.5px;gap:4px}
 .carthead{font-size:10px;letter-spacing:.02em}
}

/* El botón de volver arriba más pequeño y translúcido para no tapar importes */
.to-top{width:40px;height:40px;right:10px;font-size:19px}
.to-top.show{opacity:.7}

/* ===== Dibujos de categoría en cada producto: medallón de papel crema con grabado en tinta sepia ===== */
.weapon-icon.has-icon{width:42px;height:42px;border-color:#e3c26a;background:radial-gradient(circle at 35% 30%,#f5e9c6,#dcc892 68%,#bda669);box-shadow:inset 0 0 7px #7a5a2288,0 2px 5px #000a}
.weapon-icon.has-icon img{padding:4px;object-fit:contain;border-radius:0}
.product.has-qty .weapon-icon.has-icon{box-shadow:inset 0 0 7px #7a5a2288,0 0 0 2px #e3c26a99,0 0 14px #d7ae5499}
@media(max-width:650px){
 .product{grid-template-columns:44px 1fr 80px}
 .weapon-icon.has-icon{width:40px;height:40px}
}
/* ===== Iconos de grabado en los botones principales ===== */
#finish,#finishEnc,#new,#rcNew,#rcCopy,#shCopy,[data-dir^="rep-cp"],[data-dir^="cc-cp"],[data-act="tele"],#rcDownload,#shDownload,[data-dir^="rep-dl"],[data-dir^="cc-dl"],#rcImgDl,#rcImgCp,[data-dir="stock-save"],[data-dir="gxsave"],[data-dir="cc-save"],[data-dir="wh-save"],[data-dir="price-save"],[data-dir="cl-save"],[data-dir="save-form"],[data-act="save"],[data-dir^="void:"],[data-act="load"]{--bi:none}
#finish{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10h14l1.5 4h-17z'/%3E%3Crect x='4' y='14' width='16' height='6' rx='1'/%3E%3Cpath d='M8 10V6h8v4M8 17h2M13 17h3'/%3E%3C/svg%3E")}
#finishEnc{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M8 12.5l2.6 2.6L16 9.5'/%3E%3C/svg%3E")}
#new,#rcNew{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 10-2.3 6M20 5v6h-6'/%3E%3C/svg%3E")}
#rcCopy,#shCopy,[data-dir^="rep-cp"],[data-dir^="cc-cp"],[data-act="tele"]{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='6' width='18' height='13' rx='1.5'/%3E%3Cpath d='M3 7l9 7 9-7'/%3E%3C/svg%3E")}
#rcDownload,#shDownload,[data-dir^="rep-dl"],[data-dir^="cc-dl"]{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v10M7.5 10L12 14.5 16.5 10M5 19h14'/%3E%3C/svg%3E")}
#rcImgDl,#rcImgCp{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1.5'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='M4 18l5-5 4 4 3-3 4 4'/%3E%3C/svg%3E")}
[data-dir="stock-save"],[data-dir="gxsave"],[data-dir="cc-save"],[data-dir="wh-save"],[data-dir="price-save"],[data-dir="cl-save"],[data-dir="save-form"],[data-act="save"]{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4c-6 0-11 4-12 11l-3 5 5-3c7-1 10-6 10-13z'/%3E%3Cpath d='M8 16l7-7'/%3E%3C/svg%3E")}
[data-dir^="void:"]{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M6 6l12 12'/%3E%3C/svg%3E")}
[data-act="load"]{--bi:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e2b0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V9M7.5 13.5L12 9l4.5 4.5M5 5h14'/%3E%3C/svg%3E")}
#finish::before,#finishEnc::before,#new::before,#rcNew::before,#rcCopy::before,#shCopy::before,[data-dir^="rep-cp"]::before,[data-dir^="cc-cp"]::before,[data-act="tele"]::before,#rcDownload::before,#shDownload::before,[data-dir^="rep-dl"]::before,[data-dir^="cc-dl"]::before,#rcImgDl::before,#rcImgCp::before,[data-dir="stock-save"]::before,[data-dir="gxsave"]::before,[data-dir="cc-save"]::before,[data-dir="wh-save"]::before,[data-dir="price-save"]::before,[data-dir="cl-save"]::before,[data-dir="save-form"]::before,[data-act="save"]::before,[data-dir^="void:"]::before,[data-act="load"]::before{content:"";display:inline-block;width:1.15em;height:1.15em;margin-right:.45em;vertical-align:-.22em;background:var(--bi) center/contain no-repeat}

/* ===== Botones de latón con bisel y destello ===== */
.actions button,.enc-actions button,.confirm-actions button,.receipt-actions button,.clock-btn,.clock-link,.seg button,.ob-go{position:relative;overflow:hidden;box-shadow:inset 0 1px 0 #ffffff33,inset 0 -2px 0 #0006,0 3px 6px #000a}
.actions button::after,.enc-actions button::after,.confirm-actions button::after,.receipt-actions button::after,.clock-btn::after,.clock-link::after,.ob-go::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,#ffffff26 50%,transparent 62%);transform:translateX(-130%);transition:transform .65s;pointer-events:none}
.actions button:hover::after,.enc-actions button:hover::after,.confirm-actions button:hover::after,.receipt-actions button:hover::after,.clock-btn:hover::after,.clock-link:hover::after,.ob-go:hover::after,.actions button:active::after,.enc-actions button:active::after,.clock-btn:active::after{transform:translateX(130%)}
.actions button:active:not(:disabled),.enc-actions button:active:not(:disabled),.receipt-actions button:active:not(:disabled),.clock-btn:active:not(:disabled){box-shadow:inset 0 3px 7px #000c,0 1px 2px #000}

/* ===== Ticket que sale del cajón ===== */
@keyframes drawer{from{opacity:0;transform:translateY(55%) rotate(-1.2deg)}to{opacity:1;transform:none}}
#receiptModal:not([hidden]) .receipt-wrap{animation:drawer .6s cubic-bezier(.2,.9,.3,1) both}
@media(prefers-reduced-motion:reduce){#receiptModal:not([hidden]) .receipt-wrap{animation:none}}

/* ===== Línea de progreso del encargo, semáforo de stock, etiqueta NUEVO ===== */
.steps{display:flex;align-items:flex-start;margin:6px 0 14px}
.stp{flex:1;position:relative;text-align:center;font-family:var(--f-sc);font-size:11px;letter-spacing:.08em;color:#a99a7d}
.stp i{display:grid;place-items:center;position:relative;z-index:1;width:26px;height:26px;margin:0 auto 4px;border:2px solid #5b4521;border-radius:50%;background:#0a1711;font-style:normal;color:#0a1711}
.stp.done{color:#f0d278}
.stp.done i{background:radial-gradient(circle at 35% 30%,#f3d47c,#b88931);border-color:#e3c26a;color:#2a1c0d;font-weight:bold}
.stp:not(:first-child):before{content:"";position:absolute;top:12px;left:-50%;right:50%;height:2px;background:#5b4521}
.stp.done:not(:first-child):before{background:#e3c26a}
.dot{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:50%;box-shadow:inset 0 1px 2px #ffffff55,0 0 6px currentColor}
.dot.g{background:#3fa35a;color:#3fa35a}.dot.a{background:#e0a838;color:#e0a838}.dot.r{background:#c2412a;color:#c2412a}
.newtag{display:inline-block;margin-left:6px;padding:0 7px;border:1px solid #e3c26a;border-radius:9px;color:#f8e08c;background:#3a2a0c;font-family:var(--f-sc);font-size:10px;letter-spacing:.12em}

/* ===== Alto contraste ===== */
body.hc .wrap,body.hc .modal-overlay>*{filter:contrast(1.25) brightness(1.12)}
body.hc .pname small,body.hc .fld span,body.hc .summary,body.hc .dash-card span,body.hc .bk-note,body.hc .enc-note,body.hc .stp{color:#f3e7c9!important}
body.hc .product.no-stock{opacity:.85}

/* ===== Tutorial ===== */
.wrap{position:relative}
.tut-btn{position:absolute;top:20px;right:22px;z-index:6;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border:2px solid #e3c26a;border-radius:20px;background:linear-gradient(#80601f,#3a2a0c);color:#fff0b6;font-family:var(--f-sc);font-weight:bold;font-size:13px;letter-spacing:.12em;cursor:pointer;box-shadow:inset 0 1px 0 #f3d47c66,0 3px 10px #000c}
.tut-btn b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f3e2b0;color:#3a2a0c;font-size:14px;line-height:1}
#tutBody{padding:10px}
.tut-intro{margin:0 0 10px;color:#a99a7d;font-style:italic;line-height:1.45}
details.tut{margin-bottom:8px;border:1px solid #8b6a2e;border-left:4px solid #b88931;border-radius:6px;background:linear-gradient(#0e1e16,#08130e);box-shadow:inset 0 0 0 1px #000}
details.tut>summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;font-family:var(--f-brand);font-weight:700;font-size:14px;letter-spacing:.04em;color:#f0d278}
details.tut>summary::-webkit-details-marker{display:none}
details.tut>summary::after{content:"▾";margin-left:auto;color:#c9a24a;transition:transform .2s}
details.tut[open]>summary::after{transform:rotate(180deg)}
details.tut[open]>summary{border-bottom:1px solid #5b4521}
.tut-n{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border:1px solid #e3c26a;border-radius:50%;font-family:var(--f-sc);font-size:13px;color:#e3c26a}
.tut-c{padding:10px 14px 14px;line-height:1.5;color:#d9ccaa}
.tut-c p{margin:0 0 8px}
.tut-c ul,.tut-c ol{margin:0 0 8px;padding-left:20px}
.tut-c li{margin-bottom:4px}
.tut-c b{color:#f3e2b0}
.tut-c .tag{display:inline-block;padding:0 7px;border:1px solid #3f7a52;border-radius:8px;color:#a7e3b6;font-size:11px;letter-spacing:.08em}
.tut-c .tag.boss{border-color:#a8742f;color:#f0c27a}
@media(max-width:650px){.tut-btn{top:16px;right:16px;min-height:34px;padding:0 11px;font-size:12px}}

/* Discord: un canal propio opcional por cada tipo de aviso */
.wh-row{margin-bottom:10px}
.wh-row .wh-own{display:block;width:100%;min-height:40px;margin:2px 0 0;font-size:14px}

/* ===== TEXTURAS VISIBLES: marcos de madera, cuero a la vista y velos mucho más suaves ===== */
html{background:#1b100a}
body{background:radial-gradient(ellipse at 50% -8%,#8a4f2133,transparent 44%),radial-gradient(ellipse at 50% 120%,#00000080,transparent 55%),linear-gradient(rgba(10,6,4,.1),rgba(4,8,6,.26)),url(textura-madera.webp) 0 0/600px,linear-gradient(#2a190f,#1b100a)}
/* Marcos de madera (si la imagen falta, queda un marco liso de color nogal) */
.panel,.enc-panel,.confirm-box,.clock-bar,.category-visual{border:10px solid #4a2c17;border-image:url(textura-madera.webp) 90/10px round}
.panel,.enc-panel,.confirm-box,.clock-bar{box-shadow:0 12px 34px #000a,inset 0 0 0 2px #b88931aa,inset 0 0 0 3px #000}
.category-visual{box-shadow:0 10px 30px #0008,inset 0 0 0 2px #b88931aa,inset 0 0 0 3px #000}
.hero-banner{padding:12px;background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.2)),url(textura-madera.webp) 0 0/380px,#3a2414}
.cat-nav{padding:12px;background:linear-gradient(rgba(0,0,0,.04),rgba(0,0,0,.2)),url(textura-madera.webp) 0 0/380px,linear-gradient(#2a190f,#1b100a)}
.mode-tab{background:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.4)),url(textura-madera.webp) center/300px,linear-gradient(#150f09,#0a1812)}
.order-bar{background:linear-gradient(rgba(8,16,11,.3),rgba(4,10,7,.5)),url(textura-madera.webp) 0 0/360px,linear-gradient(#10261aF2,#07120eF8)}
.order-title,.enc-head,.table-head{background:linear-gradient(rgba(0,0,0,.16),rgba(0,0,0,.36)),url(textura-madera.webp) 0 0/380px,linear-gradient(90deg,#2b1c0f,#0f2218 60%,#2b1c0f)}
.order-title,.enc-head{text-shadow:0 1px 3px #000}
#receiptModal.modal-overlay{background:radial-gradient(circle at 50% 25%,rgba(10,23,17,.25),rgba(2,6,4,.7)),linear-gradient(rgba(2,6,4,.35),rgba(2,6,4,.55)),url(textura-madera.webp) 0 0/520px,#1b100a}
/* Cuero a la vista: los velos oscuros son ligeros y las filas dejan pasar la textura */
.panel,.enc-panel{background:linear-gradient(rgba(5,12,9,.16),rgba(4,10,7,.3)),url(textura-cuero.webp) 0 0/280px,linear-gradient(#0a1811,#060f0b)}
.confirm-box{background:linear-gradient(rgba(10,8,5,.2),rgba(5,12,9,.35)),url(textura-cuero.webp) 0 0/280px,linear-gradient(#1a120a,#0a1812)}
.clock-bar{background:linear-gradient(rgba(5,12,9,.22),rgba(5,12,9,.4)),url(textura-cuero.webp) 0 0/280px,linear-gradient(90deg,#25180e,#0d1c14)}
.client-box{background:linear-gradient(rgba(6,12,9,.12),rgba(6,12,9,.3)),url(textura-cuero.webp) 0 0/260px,linear-gradient(#0c1a13,#08130e)}
.cart{background:linear-gradient(rgba(5,12,9,.1),rgba(5,12,9,.28)),url(textura-cuero.webp) 0 0/260px,repeating-linear-gradient(0deg,#ffffff02 0 23px,#ffffff07 23px 24px)}
.search{background:rgba(9,23,17,.55)}
.product{background:linear-gradient(90deg,rgba(10,22,16,.42),rgba(8,16,12,.34))}
.product:nth-child(even):not(.has-qty){background:linear-gradient(90deg,rgba(14,29,22,.52),rgba(10,20,15,.44))}
.product:hover:not(.has-qty){background:rgba(20,42,28,.68)}
.product.has-qty{background:linear-gradient(90deg,rgba(44,60,22,.8),rgba(13,31,22,.62) 70%)}
@media(max-width:650px){
 .panel,.enc-panel,.confirm-box,.clock-bar,.category-visual{border-width:7px;border-image-width:7px}
 .hero-banner{padding:8px}
 .cat-nav{padding:9px}
}

/* Estado de la nube */
.cloud-st{margin-left:8px;font-size:11px;letter-spacing:.06em;color:#a99a7d;text-transform:none}
.cloud-st.ok{color:#7fd39a}
.cloud-st.off{color:#f0a58f}

.wrap{overflow-x:clip}

/* ===== Pedidos a proveedores ===== */
#pedBody{padding:10px}
.np-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 104px 40px;gap:6px;align-items:end;margin-bottom:8px}
.np-row input{margin:0}
.np-row .money{margin:0}
.np-row .emp-btns button{min-height:44px;padding:0 10px}
.np-sub{grid-column:1/-1;margin:-4px 0 4px;color:#c9b27a;font-size:13px;text-align:right}
.serie-row,.pv-prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin-bottom:8px}
.pv-prod{grid-template-columns:minmax(0,1fr) 112px}
.mg-row .mg-det{grid-column:1/-1;margin-top:4px}.mg-det summary{cursor:pointer;color:#f0c27a;font-size:12px;letter-spacing:.04em}.mg-why{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:4px 0;border-bottom:1px dashed #7a5a2255;font-size:13px}.mg-why small{grid-column:1/-1;opacity:.75}.mg-btns{flex-wrap:wrap;gap:6px;margin-top:6px}.mg-btns button{flex:1 1 140px;font-size:12px}
.ex-row{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.cp-btn.add-btn{color:#f0c27a;border-color:#a0741e}
.serie-row input,.serie-row select,.pv-prod input,.pv-prod .money{margin:0;min-width:0}
.np-prod.on{background:rgba(184,137,49,.12)}
.np-prod.on b{color:var(--gold2)}
.enc-actions.emp3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mode-tabs{grid-template-columns:1fr 1.25fr 1.1fr}
@media(max-width:560px){.mode-tab{font-size:12px;letter-spacing:.06em;padding:0 4px}.mode-tab.on:before,.mode-tab.on:after{content:none}}
.mat-tab{color:#d8c690}
#matBody,#invBody,#appBody{padding:6px 12px 12px}
.mat-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid #26382d;font-size:16px;color:#e8dcbc}
.mat-line small{display:block;color:#a99a7d;font-size:12px;margin-top:2px}
.mat-line span{flex:none;font-weight:bold;color:var(--gold2)}
.mat-line span.zero,.stock-row small.rc{color:#c9b27a}
.mat-line span.zero{color:#d07a5e}
.fab-row{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:6px;margin-bottom:8px}
.fab-row select,.fab-row input{margin:0;min-width:0}
.fab-item{width:100%;text-align:left}
.cf-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #26382d}
.cf-line>div{min-width:0}
.cf-line small{display:block;color:#c9b27a;font-size:11px;letter-spacing:.1em}
.cf-line b{display:block;font-size:17px;color:#f0e2bd;overflow-wrap:anywhere}
.cp-btn{flex:none;min-height:40px;padding:6px 10px;border-radius:6px;border:1px solid #b88931;background:#242522;color:#f3e2b0;font-weight:bold;font-family:inherit;font-size:12px;cursor:pointer}
.cp-btn:active{transform:scale(.97)}
.cf-arma{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;margin-top:6px;padding:4px 8px;border:1px solid #2f4536;border-radius:6px;background:#0a1712}
.cf-n{font-weight:bold;color:var(--gold2);padding-top:10px;text-align:center}
.cf-arma .cf-line:last-child{border-bottom:0}
@media(max-width:650px){.np-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.np-row .np-mat{grid-column:1/-1}}
/* ===== Parche N: colores de estado comunes ===== */
:root{--st-pend:#e8b85c;--st-ok:#8fd6a0;--st-bad:#ef8b73;--st-bad-s:#c0392b;--st-pend-s:#e0a33a;--st-ok-s:#2e9e5b;--st-gold:#c9a24a}
.neg,.reg-line b.zero,.mat-line span.zero{color:var(--st-bad)}
.okc{color:var(--st-ok)}
.badge.pend{color:var(--st-pend);border-color:#a8742f;background:#3a2a0c}
.badge.fab,.badge.si{color:var(--st-ok);border-color:#3f7a52;background:#0d2a1a}
.badge.no{color:var(--st-bad);border-color:#a84532;background:#2a0f0b}
.lowtag{color:var(--st-bad);border-color:#a84532}
.enc-note.warnote{color:var(--st-pend);font-style:normal;border-left:3px solid var(--st-pend);padding:4px 8px;background:#2a200c}
.dot.g{background:#3fa35a;color:#3fa35a}.dot.a{background:#e0a838;color:#e0a838}.dot.r{background:#c2412a;color:#c2412a}
.ago{padding:3px 8px;font-size:11px;color:#a99a7d;font-style:italic}
/* avisos */
.toast.err{background:linear-gradient(#4a1810,#2a0c07);border-color:#d0603f;color:#ffe2d6}
.toast.err:before{content:"⚠ ";color:#ffb199}
.avisos{display:grid;gap:6px;margin-bottom:6px}
.aviso{padding:8px 10px;border-radius:6px;border-left:4px solid #6b5a3a;background:#0c1a13;color:#e8dcbc;font-size:14px}
.aviso.pend{border-left-color:var(--st-pend)}.aviso.bad{border-left-color:var(--st-bad);background:#1c0f0b}
/* guardando */
.cloud-st.saving{color:var(--st-pend)}
.cloud-st.saved{color:var(--st-ok)}
[data-busy]{opacity:.65;pointer-events:none}
[data-busy]::before{content:"⏳ "}
/* iconos grabados */
.bi{width:1.15em;height:1.15em;margin:-2px .35em 0 0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.clock-info b .bi{width:1.25em;height:1.25em}
.mode-tab .bi{margin-right:.25em}
@media(max-width:400px){.mode-tab .bi{display:none}}
/* ⚙ ajustes */
.set-wrap{position:relative;display:inline-flex}
#setBtn{font-size:20px;min-width:48px;padding:6px 12px;line-height:1}
.set-pop{position:fixed;z-index:60;padding:12px;border:2px double #b88931;border-radius:8px;background:linear-gradient(#10251a,#08150f);box-shadow:0 14px 34px #000c}
.set-t{color:var(--gold2);letter-spacing:.2em;font-size:12px;margin-bottom:8px;font-variant:small-caps}
.set-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-top:1px solid #26382d;color:#e8dcbc;font-size:14px}
.set-row .clock-link{min-width:56px;padding:8px 12px}
.set-g{display:flex;gap:6px}
/* fichaje */
.clock-status{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.shift-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid #3f7a52;border-radius:14px;background:#0d2a1a;color:#dff3e3;font-size:13px}
.shift-chip i{width:8px;height:8px;border-radius:50%;background:#5fd07f;box-shadow:0 0 6px #5fd07f;animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.35}}
/* medallas */
.medal{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;font-style:normal;font-size:12px;font-weight:bold;color:#2a1a0d;box-shadow:inset 0 0 0 2px #0004,0 1px 3px #000}
.medal.m1{background:radial-gradient(circle at 35% 35%,#fff1b0,#d9a520 60%,#8a6410)}
.medal.m2{background:radial-gradient(circle at 35% 35%,#ffffff,#c4c8cc 60%,#7c8287)}
.medal.m3{background:radial-gradient(circle at 35% 35%,#ffd9b0,#c07a3c 60%,#7a4418)}
/* barras de nivel */
.lvl{position:relative;display:block;height:6px;margin-top:5px;border-radius:3px;background:#1a2a20;overflow:visible;max-width:220px}
.lvl b{display:block;height:100%;border-radius:3px;background:#3fa35a}
.lvl.a b{background:#e0a838}.lvl.r b{background:#c2412a;min-width:3px}
.lvl u{position:absolute;top:-3px;width:2px;height:12px;background:#f0e2bd;text-decoration:none}
.reg-line.lv span{flex:1;min-width:0}
/* transición de páginas en Dirección */
@keyframes pgIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pgBack{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
#dirModal .enc-panel{overflow:clip}
#dirBody.pg-in{animation:pgIn .22s ease-out}
#dirBody.pg-back{animation:pgBack .22s ease-out}
/* Dirección por secciones */
.mod-sec{margin:8px 0;border:1px solid #3a4a3d;border-radius:8px;background:#08140f}
.mod-sec>summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:10px 14px;cursor:pointer;list-style:none;color:var(--gold2);letter-spacing:.14em;font-size:14px;font-variant:small-caps}
.mod-sec>summary::-webkit-details-marker{display:none}
.mod-sec>summary:after{content:"▸";transition:transform .2s;color:#c9b27a}
.mod-sec[open]>summary:after{transform:rotate(90deg)}
.mod-sec>summary small{margin-left:auto;color:#a99a7d;letter-spacing:0;font-variant:normal}
.mod-sec>.mod-card{margin:0 8px 8px;width:calc(100% - 16px)}
.mat-mins{margin:8px 0;border:1px solid #3a4a3d;border-radius:8px;padding:0 10px 10px;background:#08140f}
.mat-mins>summary{min-height:44px;padding:12px 2px;cursor:pointer;color:var(--gold2);letter-spacing:.1em;font-size:13px}
/* sello en pantalla */
.stamp-fx{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none}
.stamp-fx span{padding:10px 26px;border:5px double #a8321c;border-radius:8px;color:#b8361e;background:#efe0b4ee;font:bold 34px 'Cinzel Decorative',Georgia,serif;letter-spacing:.08em;transform:rotate(-12deg) scale(2.4);opacity:0;animation:stampIn 1.4s ease-out forwards;box-shadow:0 10px 40px #000a}
@keyframes stampIn{12%{transform:rotate(-12deg) scale(.92);opacity:1}20%{transform:rotate(-12deg) scale(1)}75%{opacity:1}100%{opacity:0;transform:rotate(-12deg) scale(1)}}
/* albarán de pedido */
.albaran{position:relative;margin:4px 0 6px;padding:14px 14px 12px;border-radius:4px;background:linear-gradient(#efe0b4,#dcc28a);color:#2a1a0d;box-shadow:inset 0 0 0 1px #7a5a22,inset 0 0 0 4px #efe0b4,inset 0 0 0 5px #7a5a22,0 6px 18px #000a}
.albaran .alb-h{text-align:center;font:bold 15px 'Cinzel Decorative',Georgia,serif;letter-spacing:.1em;color:#1b3022;margin-bottom:6px}
.albaran .enc-id,.albaran .enc-kv span{color:#6b4c1d}
.albaran .enc-kv b{color:#2a1a0d}
.albaran .cartrow{border-bottom:1px dotted #7a5a22;color:#2a1a0d}
.albaran .carthead{color:#6b4c1d}
.albaran .brow.due{color:#1b3022;border-top-color:#7a5a22}
.alb-stamps{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
.alb-st{padding:3px 10px;border:3px double;border-radius:4px;font:bold 14px 'Cinzel Decorative',Georgia,serif;transform:rotate(-8deg);opacity:.9}
.alb-st.ok{color:#1b5a30;border-color:#1b5a30}.alb-st.bad{color:#a8321c;border-color:#a8321c}
/* ficha de cliente en papel */
.cf-paper{padding:14px;border-radius:4px;background:linear-gradient(#efe0b4,#dcc28a);color:#2a1a0d;box-shadow:inset 0 0 0 1px #7a5a22,inset 0 0 0 4px #efe0b4,inset 0 0 0 5px #7a5a22,0 6px 18px #000a}
.cf-head{text-align:center;padding-bottom:8px;margin-bottom:8px;border-bottom:2px double #7a5a22}
.cf-head small{display:block;color:#6b4c1d;font-size:10px;letter-spacing:.18em}
.cf-name{font:bold 24px 'Cinzel Decorative',Georgia,serif;color:#1b3022;margin:4px 0;overflow-wrap:anywhere}
.cf-type{font-style:italic;color:#4a3417}
.cf-paper .dir-sec-title{color:#6b4c1d;border-color:#7a5a22;text-shadow:none}
.cf-paper .cf-line{border-bottom:1px dotted #7a5a22}
.cf-paper .cf-line small{color:#6b4c1d}
.cf-paper .cf-line b{color:#24324a;font-family:'IM Fell English',Georgia,serif}
.cf-paper .cf-arma{background:#e6d3a0;border-color:#b89a5a}
.cf-paper .cf-n{color:#7a1608}
.cf-paper .cp-btn{background:#f3e6c0;color:#3d2a12;border-color:#7a5a22}
.cf-paper .reg-line{color:#2a1a0d;border-color:#b89a5a}
.cf-paper .enc-empty{color:#6b4c1d}
/* presupuesto → venta */
body:not(.mode-presupuesto) .only-pres{display:none!important}
.actions .to-sale{grid-column:1/-1;background:linear-gradient(#80601f,#3a2a0c);border-color:#d2a733;color:#fff0b6;font-size:15px}
.prod-boss{margin:10px 0;padding:8px 10px;border:1px solid #6b4f1a;border-radius:6px;background:#0a1712}
.ser-l{display:block;margin:8px 0;color:#c9b27a;font-size:13px;letter-spacing:.05em}
.ser-l input{display:block;width:100%;min-height:44px;margin-top:4px}
@media(prefers-reduced-motion:reduce){#dirBody.pg-in,#dirBody.pg-back,.stamp-fx span,.shift-chip i{animation:none}.stamp-fx span{opacity:1;transform:rotate(-12deg)}}

/* ===================== PARCHE FINAL ===================== */
/* 17) monograma de la casa en los paneles */
:root{--veil1:rgba(5,12,9,.16);--veil2:rgba(4,10,7,.3);--mono:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-opacity='.10'%3E%3Ccircle cx='60' cy='60' r='54' stroke-width='3'/%3E%3Ccircle cx='60' cy='60' r='46' stroke-width='1.2'/%3E%3C/g%3E%3Ctext x='60' y='82' text-anchor='middle' font-family='Georgia,serif' font-weight='bold' font-size='66' fill='%23c9a24a' fill-opacity='.10'%3EH%3C/text%3E%3C/svg%3E")}
.panel,.enc-panel{background:var(--mono) right 16px bottom 16px/132px no-repeat,linear-gradient(var(--veil1),var(--veil2)),url(textura-cuero.webp) 0 0/280px,linear-gradient(#0a1811,#060f0b)}
.cf-paper{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Ccircle cx='60' cy='60' r='52' fill='none' stroke='%237a1608' stroke-opacity='.08' stroke-width='3'/%3E%3Ctext x='60' y='82' text-anchor='middle' font-family='Georgia,serif' font-weight='bold' font-size='66' fill='%237a1608' fill-opacity='.08'%3EH%3C/text%3E%3C/svg%3E") center 60%/180px no-repeat,linear-gradient(#efe0b4,#dcc28a)}
/* 10) ambiente día y noche */
body.theme-day{--veil1:rgba(40,26,10,0);--veil2:rgba(30,20,8,.12)}
body.theme-day{background:radial-gradient(ellipse at 50% -10%,#f6d38a40,transparent 50%),linear-gradient(rgba(60,38,18,.12),rgba(30,20,12,.42)),url(textura-madera.webp) 0 0/640px,linear-gradient(#2a1a0f,#140d08)}
body.theme-day .product{background:linear-gradient(90deg,rgba(18,34,26,.78),rgba(12,24,18,.72))}
body.theme-night{--veil1:rgba(3,7,5,.4);--veil2:rgba(2,5,4,.58)}
body.theme-night{background:radial-gradient(ellipse at 50% -8%,#ff9a3a3a,transparent 46%),radial-gradient(ellipse at 50% 120%,#000000c0,transparent 55%),linear-gradient(rgba(6,4,2,.62),rgba(2,4,3,.82)),url(textura-madera.webp) 0 0/640px,#050a07}
/* 11) luz de quinqué en la cabecera */
.hero-banner:before{background:radial-gradient(ellipse at 50% 0,#ffcf6a33,transparent 62%);animation:quinque 7s infinite}
body.theme-night .hero-banner:before{background:radial-gradient(ellipse at 50% 0,#ffb24a4d,transparent 66%)}
@keyframes quinque{0%,100%{opacity:.85}7%{opacity:1}11%{opacity:.78}17%{opacity:.95}35%{opacity:.88}52%{opacity:1}58%{opacity:.8}63%{opacity:.93}80%{opacity:.86}88%{opacity:1}}
/* 12) precios como etiquetas colgantes */
.product .price{position:relative;justify-self:end;margin-right:4px;padding:3px 8px 3px 15px;border-radius:3px 6px 6px 3px;background:linear-gradient(#efe0b4,#d6bb82);color:#2a1a0d;font-weight:bold;font-size:14px;line-height:1.2;white-space:nowrap;text-shadow:none;box-shadow:0 2px 4px #000a,inset 0 0 0 1px #8b6a2e;transform:rotate(-3deg);transform-origin:left center}
.product .price:before{content:"";position:absolute;left:5px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:#2a1a0d;box-shadow:inset 0 0 0 1px #8b6a2e}
.product .price:after{content:"";position:absolute;right:100%;top:50%;width:10px;height:1px;background:#c9a24a;transform:rotate(-14deg);transform-origin:right center}
@media(max-width:700px){.product .price{font-size:12.5px;padding:2px 6px 2px 13px}}
/* 13) Dirección en cuadrícula en pantalla grande */
.mod-grid .mod-card{margin:0 8px 8px;width:calc(100% - 16px)}
@media(min-width:1000px){
 #dirModal .enc-panel.wide{max-width:1080px}
 .enc-panel.wide .dash{grid-template-columns:repeat(4,1fr)}
 .enc-panel.wide .avisos{grid-template-columns:1fr 1fr}
 .enc-panel.wide .mod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 8px 8px}
 .enc-panel.wide .mod-grid .mod-card{margin:0;width:100%}
 .enc-panel.wide svg[role=img]{max-width:760px;margin-left:auto!important;margin-right:auto!important}
}
/* 14) grabados de tinta en las pantallas vacías */
.empty-art{display:block;width:96px;height:60px;margin:0 auto 8px;opacity:.75}
.empty-art img{display:block;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;-webkit-mask-image:radial-gradient(ellipse at center,#000 62%,transparent 84%);mask-image:radial-gradient(ellipse at center,#000 62%,transparent 84%)}
.empty-art:not(.nofile){width:min(280px,86%);height:auto;aspect-ratio:3/2;opacity:1}
.empty-art:not(.nofile) svg{display:none}
.empty-art.nofile img{display:none}
.empty-art svg{width:100%;height:100%;fill:none;stroke:#c9a24a;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 0 #000)}
/* 15) botones de latón y nogal: remaches, bisel y pulsación */
.enc-actions button,.actions button,.receipt-actions button,.confirm-actions button,.clock-btn{border-color:#b88931}
.actions button::after,.enc-actions button::after,.confirm-actions button::after,.receipt-actions button::after,.clock-btn::after,.ob-go::after{transform:none!important;transition:background-position .65s;background:radial-gradient(circle,#f6dc8e 0 1.1px,#5a4214 1.7px,transparent 2.3px) left 4px top 4px/6px 6px no-repeat,radial-gradient(circle,#f6dc8e 0 1.1px,#5a4214 1.7px,transparent 2.3px) right 4px top 4px/6px 6px no-repeat,radial-gradient(circle,#f6dc8e 0 1.1px,#5a4214 1.7px,transparent 2.3px) left 4px bottom 4px/6px 6px no-repeat,radial-gradient(circle,#f6dc8e 0 1.1px,#5a4214 1.7px,transparent 2.3px) right 4px bottom 4px/6px 6px no-repeat,linear-gradient(115deg,transparent 38%,#ffffff26 50%,transparent 62%) 100% 0/300% 100% no-repeat}
.actions button:hover::after,.enc-actions button:hover::after,.confirm-actions button:hover::after,.receipt-actions button:hover::after,.clock-btn:hover::after,.ob-go:hover::after,.actions button:active::after,.enc-actions button:active::after,.clock-btn:active::after{background-position:left 4px top 4px,right 4px top 4px,left 4px bottom 4px,right 4px bottom 4px,0% 0}
.enc-actions button:active:not(:disabled),.actions button:active:not(:disabled),.receipt-actions button:active:not(:disabled),.confirm-actions button:active,.clock-btn:active{transform:translateY(1px)}
[data-busy]::before{content:"⏳ "!important;position:static!important;background:none!important;inset:auto!important}
/* 3) FINALIZAR dice qué falta */
.actions .finish.not-ready{background:linear-gradient(#3a2c12,#1c1508);border:1px dashed #d2a733;color:#f0d79a;font-size:15px}
.actions .finish.not-ready:before{display:none}
.ob-go.not-ready{background:linear-gradient(#3a2c12,#1c1508)!important;border-style:dashed!important;color:#f0d79a!important}
/* 16) filigranas victorianas en los títulos de sección */
.dir-sec-title{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cg fill='none' stroke='%23c9a24a' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath d='M2 7h38M80 7h38'/%3E%3Cpath d='M40 7c6-6 12-6 14 0s8 6 12 0s8-6 14 0' /%3E%3Cpath d='M54 7c2 4 5 4 6 0M60 7c1 4 4 4 6 0' stroke-width='.9'/%3E%3C/g%3E%3Ccircle cx='60' cy='7' r='2' fill='%23e7c76a'/%3E%3Ccircle cx='2' cy='7' r='1.4' fill='%23c9a24a'/%3E%3Ccircle cx='118' cy='7' r='1.4' fill='%23c9a24a'/%3E%3C/svg%3E") right center/96px 12px no-repeat,linear-gradient(90deg,#b88931,#b8893100) left bottom/100% 1px no-repeat;padding-right:104px}
.cf-paper .dir-sec-title{background:linear-gradient(90deg,#7a5a22,#7a5a2200) left bottom/100% 1px no-repeat;padding-right:0}
/* 1) turnos olvidados */
.shift-chip.long{border-color:#a84532;background:#2a0f0b;color:#ffd9cc}
.shift-chip.long i{background:#ef6a4f;box-shadow:0 0 6px #ef6a4f}
.shift-fix{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:8px}
.shift-fix label{color:#c9b27a;font-size:12px;letter-spacing:.08em}
.shift-fix input{display:block;width:100%;min-height:44px;margin-top:4px}
.shift-fix button{min-height:44px;padding:8px 12px;border-radius:6px;border:1px solid #a84532;background:#5b1515;color:#f7d7c4;font-weight:bold;font-family:inherit;cursor:pointer}
.dir-item.shift-long{border-color:#a84532}
/* 5) ayuda en cada apartado */
.dir-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.help-q{min-height:44px;padding:8px 12px;border-radius:6px;border:1px solid #b88931;background:#242522;color:#f3e2b0;font-weight:bold;font-family:inherit;font-size:12px;letter-spacing:.06em;cursor:pointer}
/* 4) visita guiada */
.tour-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 10px;padding:10px;border:1px solid #6b4f1a;border-radius:8px;background:#0a1712}
.tour-wrap span{color:#c9b27a;font-size:13px;font-style:italic}
.tour-start{min-height:44px;padding:8px 16px;border-radius:6px;border:1px solid #d2a733;background:linear-gradient(#26801f,#0a430b);color:#fff7c9;font-weight:bold;font-family:inherit;cursor:pointer;letter-spacing:.06em}
#tourOv{position:fixed;inset:0;z-index:150;pointer-events:none}
#tourOv[hidden]{display:none}
#tourHi{position:fixed;border:2px solid #f0d278;border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.66),0 0 18px #f0d27888;transition:all .25s ease;pointer-events:none}
#tourTip{position:fixed;pointer-events:auto;padding:12px 14px;border:2px double #b88931;border-radius:8px;background:linear-gradient(#10251a,#08150f);color:#f0e2bd;box-shadow:0 14px 34px #000c;font-size:15px;line-height:1.35;transition:top .25s,left .25s}
.tour-b{display:flex;align-items:center;gap:6px;margin-top:10px}
.tour-b span{margin-right:auto;color:#a99a7d;font-size:12px}
.tour-b button{min-height:40px;padding:6px 10px;border-radius:6px;border:1px solid #b88931;background:#242522;color:#f3e2b0;font-weight:bold;font-family:inherit;cursor:pointer}
#tourNext{background:linear-gradient(#26801f,#0a430b);border-color:#d2a733;color:#fff7c9}
/* 6) apertura con sello de lacre */
.sp-seal{position:absolute;top:calc(50% - 150px);left:50%;width:96px;height:96px;margin-left:-48px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 38% 34%,#d4523a,#8a1a0a 62%,#4d0d05);box-shadow:0 8px 24px #000c,inset 0 0 0 7px rgba(61,10,4,.35),inset 0 0 0 9px rgba(224,112,90,.25);transform:scale(3) rotate(-25deg);opacity:0;animation:sealDrop .55s .1s cubic-bezier(.3,1.5,.5,1) forwards}
.sp-seal span{font:bold 46px Georgia,serif;color:#f0a08a;text-shadow:1px 2px 0 #3d0a04}
@keyframes sealDrop{60%{opacity:1}100%{opacity:1;transform:scale(1) rotate(-8deg)}}
.splash img.emblem{display:none}
.splash{animation:splashOut 2.9s ease forwards}
.sp-name i{display:inline-block;font-style:normal;opacity:0;transform:translateY(6px);animation:spL .32s ease forwards}
@keyframes spL{to{opacity:1;transform:none}}
.sp-name{margin-top:70px}
.sp-sub{opacity:0;animation:spL .5s 1.7s ease forwards}
/* 7) ¡récord! */
.record-fx{position:fixed;inset:0;z-index:95;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle,#f0d27833,transparent 60%);animation:recFade 3.6s ease forwards}
.record-fx div{display:grid;gap:6px;text-align:center;padding:18px 26px;border:5px double #d9a520;border-radius:10px;background:linear-gradient(#2a1d08,#120c03);box-shadow:0 0 50px #d9a52099,0 12px 40px #000;transform:scale(.4) rotate(-6deg);animation:recIn .6s cubic-bezier(.3,1.6,.5,1) forwards}
.record-fx b{font:bold clamp(22px,6vw,36px) 'Cinzel Decorative',Georgia,serif;color:#ffe08a;letter-spacing:.06em;text-shadow:0 0 18px #d9a520}
.record-fx span{color:#f0e2bd;font-size:16px}
@keyframes recIn{to{transform:scale(1) rotate(-3deg)}}
@keyframes recFade{0%,82%{opacity:1}100%{opacity:0}}
/* ausencias */
.au-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#ausBody{padding:10px}
#ausBody textarea,#ausModal textarea{display:block;width:100%;min-height:80px;margin-top:4px;padding:10px;border-radius:6px;border:1px solid #5d4928;background:#040b08;color:#eee0bd;font:inherit;font-size:16px;resize:vertical}
.au-mot{margin:6px 0;padding:6px 8px;border-left:3px solid #5A6E8C;background:#0a1420;color:#dfe6f0;font-size:14px;overflow-wrap:anywhere}
/* ===== Entrada ===== */
.gate{position:fixed;inset:0;z-index:110;overflow:hidden;overflow:clip;background:#04060a;color:#f3e2b5;--gimg:none;-webkit-user-select:none;user-select:none}
.gate[hidden]{display:none}
body.gate-open{overflow:hidden}
body.gate-open .modal-overlay{z-index:130}
body.gate-open .toast{z-index:140}
.gate::before{content:"";position:absolute;inset:-40px;background:var(--gimg) center/cover no-repeat;filter:blur(22px) brightness(.38) saturate(1.1);opacity:0;transition:opacity 1.2s}
.gate.img-ok::before{opacity:1}
.g-stage{position:absolute;top:0;left:50%;height:100%;aspect-ratio:var(--ar,2/3);transform:translateX(-50%);transform-origin:var(--ox,50%) var(--oy,60.35%);container-type:size;opacity:0;transition:opacity 1.3s ease,filter .6s}
.gate[data-ph="scene"] .g-stage,.gate[data-ph="open"] .g-stage,.gate[data-ph="zoom"] .g-stage{opacity:1}
.g-img{position:absolute;inset:0;background:var(--gimg) center/100% 100% no-repeat}
.gate.no-img .g-img{background:radial-gradient(ellipse at 50% 62%,#5a3510 0,#24160a 30%,#07090c 70%)}
.gate.no-img .g-doorwrap{background:#2a170b;border:2px solid #7a5527}
.gate.no-img .g-leafimg{background:linear-gradient(90deg,#3a210f,#5a3518 50%,#3a210f)!important}
.g-sign{position:absolute;left:var(--sl,29.3%);width:var(--sw,42%);top:var(--st,32.25%);height:var(--sh,5.1%);display:grid;place-items:center;pointer-events:none}
.g-sign span{font-family:'Cinzel Decorative',Georgia,serif;font-weight:700;font-size:var(--sf,2.15cqh);letter-spacing:.03em;white-space:nowrap;color:#f6d27c;text-shadow:0 .12cqh 0 #3a1f06,0 0 .7cqh #ffb94acc,0 0 1.8cqh #ff9f3a66}
.g-sign span i{display:inline-block;font-style:normal;opacity:0;transform:translateY(-.6cqh);animation:gLetter .5s ease forwards}
@keyframes gLetter{to{opacity:1;transform:none}}
.g-doorwrap{position:absolute;left:var(--dl,38.57%);top:var(--dt,47.33%);width:var(--dw,22.95%);height:var(--dh,26.04%);perspective:70cqh}
.g-interior{position:absolute;inset:0;overflow:hidden;background:#2a1406;box-shadow:inset 0 0 4cqh #2a1004}
.g-interior::before{content:"";position:absolute;inset:-4%;background:var(--gimg) 13.2% 54.1%/445% 384% no-repeat;filter:blur(1.5px) brightness(1.25) sepia(.35)}
.g-interior::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 42%,#fff3d0dd 0,#ffd27a88 25%,#c9771f33 55%,#2a10048c 100%);mix-blend-mode:screen}
.g-leaf{position:absolute;top:0;height:100%;overflow:hidden;transition:transform 1.9s cubic-bezier(.5,.05,.25,1),filter 1.9s;backface-visibility:visible}
.g-leaf.l{left:0;width:var(--ll,49.36%);transform-origin:0 50%}
.g-leaf.r{right:0;width:calc(100% - var(--ll,49.36%));transform-origin:100% 50%}
.g-leafimg{position:absolute;width:100cqw;height:100cqh;background:var(--gimg) center/100% 100% no-repeat}
.g-leaf.l .g-leafimg{left:calc(var(--lx1,38.57) * -1cqw);top:calc(var(--ly,47.33) * -1cqh)}
.g-leaf.r .g-leafimg{left:calc(var(--lx2,49.9) * -1cqw);top:calc(var(--ly,47.33) * -1cqh)}
.gate[data-ph="open"] .g-leaf.l,.gate[data-ph="zoom"] .g-leaf.l{transform:rotateY(-104deg);filter:brightness(.55)}
.gate[data-ph="open"] .g-leaf.r,.gate[data-ph="zoom"] .g-leaf.r{transform:rotateY(104deg);filter:brightness(.55)}
.g-spill{position:absolute;left:var(--pl,30%);width:var(--pw,40%);top:var(--pt,73.37%);height:22%;background:linear-gradient(180deg,#ffc76fcc,#ff9f3a33 55%,transparent);clip-path:polygon(22% 0,78% 0,100% 100%,0 100%);mix-blend-mode:screen;opacity:0;transition:opacity 1.6s .4s;pointer-events:none}
.gate[data-ph="open"] .g-spill,.gate[data-ph="zoom"] .g-spill{opacity:1}
.gate[data-ph="zoom"] .g-stage{transform:translateX(-50%) scale(3.6);transition:transform 2.3s cubic-bezier(.6,0,.7,.25),opacity .3s}
.g-lamp{position:absolute;width:15cqh;height:15cqh;margin:-7.5cqh 0 0 -7.5cqh;border-radius:50%;background:radial-gradient(circle,#ffd99a88 0,#ffb54a33 35%,transparent 68%);mix-blend-mode:screen;pointer-events:none;animation:gFlick 3.2s infinite}
.g-lamp.sm{width:10cqh;height:10cqh;margin:-5cqh 0 0 -5cqh;animation-duration:2.6s;animation-delay:-1.1s}
.g-lamp.win{width:24cqh;height:20cqh;margin:-10cqh 0 0 -12cqh;background:radial-gradient(ellipse,#ffbf6a33 0,transparent 65%);animation-duration:4.4s;animation-delay:-2s}
.g-lamp:nth-of-type(3){animation-delay:-.7s}.g-lamp:nth-of-type(4){animation-delay:-1.9s}.g-lamp:nth-of-type(7){animation-delay:-.3s}
@keyframes gFlick{0%,100%{opacity:.85}8%{opacity:.6}11%{opacity:.95}35%{opacity:.75}52%{opacity:1}55%{opacity:.62}58%{opacity:.9}80%{opacity:.7}}
.g-fog{position:absolute;left:-20%;right:-20%;bottom:0;height:42%;background:radial-gradient(ellipse at 30% 80%,#9fb2c826 0,transparent 55%),radial-gradient(ellipse at 75% 90%,#9fb2c81f 0,transparent 50%),linear-gradient(0deg,#0b10178c,transparent);animation:gFog 18s ease-in-out infinite alternate;pointer-events:none}
@keyframes gFog{from{transform:translateX(-6%)}to{transform:translateX(6%)}}
.g-dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.g-grain{position:absolute;inset:-50%;opacity:.09;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:gGrain .9s steps(5) infinite}
@keyframes gGrain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,6%)}80%{transform:translate(5%,-2%)}100%{transform:translate(0,0)}}
.g-vign{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 45%,#000a 100%)}
.g-flash{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 55%,#fff3d0,#ffc56a 40%,#7a3f12);opacity:0;transition:opacity .7s}
.gate[data-ph="flash"] .g-flash{opacity:1}
.gate[data-ph="cards"] .g-flash{transition:opacity 1.1s}
.gate[data-ph="cards"] .g-stage,.gate[data-ph="hello"] .g-stage,.gate[data-ph="close"] .g-stage{opacity:1;filter:blur(5px) brightness(.32);transform:translateX(-50%) scale(1.08);transition:opacity .8s,filter .8s}
.gate[data-ph="close"]{opacity:0;transition:opacity .7s ease}
.g-ui{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:20px 16px max(7vh,28px);overflow-y:auto}
.gate[data-ph="cards"] .g-ui,.gate[data-ph="hello"] .g-ui,.gate[data-ph="close"] .g-ui{justify-content:flex-start;padding-top:max(5vh,20px)}
.g-enter{min-width:220px;padding:15px 34px;border:2px solid #f7dc8f;border-radius:6px;background:linear-gradient(180deg,#f8dd8e,#d6a640 48%,#9a6c1d);color:#2a1606;font:700 19px 'Cinzel Decorative',Georgia,serif;letter-spacing:.18em;box-shadow:0 0 0 3px #2a1606,0 8px 26px #000c,0 0 30px #ffbf5577;cursor:pointer;opacity:0;animation:gIn .8s 1.5s ease forwards,gPulse 2.6s 2.4s ease-in-out infinite}
.g-enter:active{transform:translateY(2px)}
.g-hint{margin-top:10px;color:#e9d49acc;font:italic 14px 'IM Fell English',Georgia,serif;letter-spacing:.05em;opacity:0;animation:gIn .8s 2s ease forwards}
@keyframes gIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes gPulse{0%,100%{box-shadow:0 0 0 3px #2a1606,0 8px 26px #000c,0 0 22px #ffbf5555}50%{box-shadow:0 0 0 3px #2a1606,0 8px 26px #000c,0 0 42px #ffcf6fbb}}
/* Fichas: tarjetas de retrato de 1880 (cartes de visite) repartidas sobre el tapete verde del mostrador */
.g-felt{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .9s ease;background:radial-gradient(ellipse 80% 55% at 50% -6%,#ffd99a40 0,transparent 60%),radial-gradient(ellipse at 50% 30%,#285a40 0,#163a2a 42%,#0b2117 78%,#06120c 100%)}
.g-felt::before{content:"";position:absolute;inset:0;opacity:.22;background-image:repeating-linear-gradient(45deg,#ffffff08 0 1px,transparent 1px 3px),repeating-linear-gradient(-45deg,#00000014 0 1px,transparent 1px 3px)}
.g-felt::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(180deg,#5a3517,#2e1a0a);box-shadow:0 -2px 0 #c9a14a55,0 -10px 24px #0008}
.gate[data-ph="cards"] .g-felt,.gate[data-ph="hello"] .g-felt,.gate[data-ph="close"] .g-felt{opacity:1}
.gate[data-ph="cards"] .g-stage,.gate[data-ph="hello"] .g-stage{opacity:0!important}
.g-panel{width:min(720px,100%);padding-bottom:30px}
.g-title{margin:0;text-align:center;font:700 clamp(26px,7.5vw,38px)/1.1 'IM Fell English',Georgia,serif;color:#f6dfa4;text-shadow:0 2px 0 #0009,0 0 22px #ffcf7a40;animation:gIn .7s ease both}
.g-sub{margin:6px 0 22px;text-align:center;color:#cfe0cf;font:italic 16px/1.4 'IM Fell English',Georgia,serif;opacity:.85;animation:gIn .7s .15s ease both}
.g-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:22px 16px;padding:0 4px}
.g-card{--r:0deg;position:relative;display:flex;flex-direction:column;align-items:center;flex:none;width:clamp(130px,calc(50% - 8px),180px);aspect-ratio:5/6.8;padding:20px 12px 12px;border:0;border-radius:3px;cursor:pointer;color:#2a1a0d;font:inherit;
 background:linear-gradient(135deg,#f6ecd2 0,#eadbb2 55%,#dcc794 100%);
 box-shadow:inset 0 0 0 5px #f3e7c8,inset 0 0 0 6px #b48a3a,inset 0 0 0 7px #f3e7c8,inset 0 0 0 8px #d8bd7c,0 1px 0 #fff6 inset,0 14px 24px -6px #000c,0 3px 6px #0007;
 transform:rotate(var(--r));opacity:0;animation:gDeal .55s cubic-bezier(.2,.9,.3,1.15) forwards;transition:transform .25s ease,box-shadow .25s ease}
.g-card::after{content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;background:radial-gradient(ellipse at 30% 10%,#fff8 0,transparent 45%),radial-gradient(ellipse at 50% 100%,#8a6a3222 0,transparent 60%)}
@keyframes gDeal{from{opacity:0;translate:var(--dx,0) -70px;scale:1.1}to{opacity:1;translate:0 0;scale:1}}
.g-card:hover,.g-card:focus-visible{transform:rotate(0) translateY(-6px) scale(1.03);box-shadow:inset 0 0 0 5px #f3e7c8,inset 0 0 0 6px #b48a3a,inset 0 0 0 7px #f3e7c8,inset 0 0 0 8px #d8bd7c,0 22px 30px -8px #000d,0 0 0 2px #f6d27c;outline:none;z-index:2}
.gc-oval{position:relative;display:grid;place-items:center;width:68%;aspect-ratio:4/5;border-radius:50%;background:radial-gradient(ellipse at 45% 38%,#6b4a2a 0,#3a2413 48%,#170c05 100%);box-shadow:0 0 0 2px #c9a14a,0 0 0 4px #f3e7c8,0 0 0 5px #8a6a32,inset 0 0 18px #000c,inset 0 -6px 14px #b9804033}
.gc-mono{font:700 clamp(30px,10vw,44px) 'Cinzel Decorative',Georgia,serif;line-height:1;background:linear-gradient(180deg,#fff2c4 0,#e9bf5c 50%,#9c6a1c 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #0008)}
.gc-name{margin-top:14px;font:700 17px/1.12 'IM Fell English',Georgia,serif;text-align:center;overflow-wrap:anywhere}
.gc-role{margin-top:3px;font:italic 13px 'IM Fell English',Georgia,serif;color:#6b4c1d;text-align:center}
.gc-rank{display:flex;gap:3px;margin-top:auto;padding-top:6px;color:#9a7128}
.gc-rank svg{width:13px;height:13px;fill:currentColor}
.gc-wax{position:absolute;top:-9px;right:-9px;display:grid;place-items:center;width:40px;height:40px;border-radius:52% 48% 50% 46%;background:radial-gradient(circle at 35% 30%,#d4483a,#8e1c14 62%,#5a0d08);box-shadow:0 3px 6px #0009,inset 0 0 0 3px #7a150e,inset 0 0 0 4px #b8382a;transform:rotate(12deg)}
.gc-wax svg{width:17px;height:17px;fill:#f7c9b8}
.gc-stamp{position:absolute;top:38%;left:50%;padding:2px 8px;border:2px solid #8e1c14;border-radius:3px;color:#8e1c14;font:700 13px Georgia,serif;letter-spacing:.14em;transform:translate(-50%,-50%) rotate(-14deg);background:#f3e7c8cc;opacity:.85}
.g-card.picked{animation:none;opacity:1;transform:rotate(0) translateY(-14px) scale(1.08);z-index:3;box-shadow:inset 0 0 0 5px #f3e7c8,inset 0 0 0 6px #b48a3a,inset 0 0 0 7px #f3e7c8,inset 0 0 0 8px #d8bd7c,0 0 0 3px #f6d27c,0 0 40px #ffcf7a88}
.g-cards.chosen .g-card:not(.picked){opacity:.25!important;filter:grayscale(.6);transition:opacity .35s,filter .35s}
@media(max-width:380px){.g-cards{gap:18px 12px}.gc-name{font-size:15px}}
@media(prefers-reduced-motion:reduce){.g-card{animation:none;opacity:1}}
.g-msg{margin:0 0 14px;padding:10px 12px;border:1px solid #c85a3a;border-radius:6px;background:#3a0f0acc;color:#ffd9c9;text-align:center;font-size:15px}
.g-hello{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:6vh;cursor:pointer}
.g-hseal{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e0574a,#8e1c14 70%,#5a0d08);color:#ffd9c6;font:700 52px 'Cinzel Decorative',Georgia,serif;box-shadow:0 8px 22px #000c,inset 0 0 0 6px #6d130c,inset 0 0 0 8px #b8382a;animation:gStamp .55s .15s cubic-bezier(.3,1.6,.5,1) both}
@keyframes gStamp{0%{opacity:0;transform:scale(2.4) rotate(-14deg)}70%{opacity:1;transform:scale(.94) rotate(-4deg)}100%{opacity:1;transform:scale(1) rotate(-6deg)}}
.g-hi{margin:18px 0 4px;font:italic 20px 'IM Fell English',Georgia,serif;color:#e9d49a;animation:gIn .6s .55s both}
.g-name{font:700 clamp(28px,8vw,40px) 'Cinzel Decorative',Georgia,serif;color:#ffe2a0;text-shadow:0 0 18px #ffb94a88,0 2px 0 #000;animation:gIn .6s .7s both}
.g-role{margin-top:2px;color:#cdb27a;font:12px 'Cinzel Decorative',Georgia,serif;letter-spacing:.18em;animation:gIn .6s .8s both}
.g-lines{list-style:none;margin:18px 0 0;padding:12px 16px;border-top:1px solid #c69a3f66;border-bottom:1px solid #c69a3f66;max-width:460px;text-align:left}
.g-lines li{margin:7px 0;color:#f0e2bd;font-size:15px;opacity:0;animation:gIn .5s ease forwards}
.g-lines li::before{content:"✦ ";color:#e8b923}
.g-lines li b{color:#ffe08a}
.g-go{margin-top:16px;color:#e9d49acc;font:italic 14px 'IM Fell English',Georgia,serif;opacity:0;animation:gIn .6s 1.6s forwards}
.me-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid #c69a3f;border-radius:999px;background:#10291b;color:#f3dfa6;font-size:13px;font-weight:700;white-space:nowrap}
.me-chip[hidden]{display:none}
.me-chip svg{width:15px;height:15px}
.pres{display:inline-block;margin-top:4px;font-size:13px;color:#b8a77e}
.pres.on{color:#7fe08f}.pres.on::before{content:"● "}
.emp-ph{float:right;width:44px;height:55px;margin:0 0 6px 8px;border-radius:50%;object-fit:cover;filter:sepia(.8);box-shadow:0 0 0 2px #c9a14a}
.clv{display:block;margin-top:2px;font-size:13px;color:#b8a77e}.clv.ok{color:#d9c27a}
@media(prefers-reduced-motion:reduce){.g-grain,.g-fog,.g-lamp{animation:none}.gate[data-ph="zoom"] .g-stage{transform:translateX(-50%)}.g-leaf{transition:none}}
/* --- Entrada 2: lluvia, relámpagos, humo, letrero encendiéndose, interior y tarjetas trabajadas --- */
.gate[data-ph="scene"] .g-stage,.gate[data-ph="open"] .g-stage,.gate[data-ph="zoom"] .g-stage{animation:gKB 18s ease-out forwards}
@keyframes gKB{from{scale:1}to{scale:1.07}}
.g-sign span i{animation:gIgnite 1.1s ease forwards}
@keyframes gIgnite{0%{opacity:0;transform:translateY(-.4cqh)}25%{opacity:.85;transform:none}33%{opacity:.15}48%{opacity:1}56%{opacity:.55}100%{opacity:1;transform:none}}
.g-sign::after{content:"";position:absolute;inset:10% 3%;pointer-events:none;background:linear-gradient(100deg,transparent 38%,#fff3cf88 50%,transparent 62%) no-repeat;background-size:260% 100%;background-position:160% 0;mix-blend-mode:screen;animation:gShine 6s 3.2s ease-in-out infinite}
@keyframes gShine{0%{background-position:160% 0}35%,100%{background-position:-60% 0}}
.g-smoke{position:absolute;width:5cqh;height:5cqh;margin:-2.5cqh 0 0 -2.5cqh;border-radius:50%;background:radial-gradient(circle,#d8d2c866 0,#d8d2c822 45%,transparent 70%);filter:blur(.5cqh);pointer-events:none;opacity:0;animation:gSmoke 6.5s ease-out infinite}
.g-smoke.d2{animation-delay:-3.2s}
@keyframes gSmoke{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:.55}100%{opacity:0;transform:translate(1.4cqh,-9cqh) scale(2.6)}}
.g-bolt{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(180deg,#d9e6ffd9 0,#a9c0ff66 32%,#7f98d822 60%,transparent 85%);mix-blend-mode:screen}
.gate.bolt .g-bolt{animation:gBolt .9s ease-out}
.gate.bolt .g-img{animation:gBoltImg .9s ease-out}
@keyframes gBolt{0%{opacity:0}5%{opacity:.9}12%{opacity:.12}22%{opacity:.65}38%{opacity:.06}100%{opacity:0}}
@keyframes gBoltImg{0%,100%{filter:none}5%{filter:brightness(1.55) saturate(.7)}12%{filter:none}22%{filter:brightness(1.3) saturate(.8)}38%{filter:none}}
/* interior: mostrador */
.g-room{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s ease .2s}
.gate[data-ph="cards"] .g-room,.gate[data-ph="hello"] .g-room,.gate[data-ph="close"] .g-room{opacity:1}
.gr-lamp{position:absolute;left:50%;top:-34px;width:min(130px,28vw);transform-origin:50% 0;translate:-50% 0;animation:gSwing 7s ease-in-out infinite;filter:drop-shadow(0 6px 10px #0009)}
@keyframes gSwing{0%,100%{rotate:-1.6deg}50%{rotate:1.6deg}}
.gr-cone{position:absolute;left:50%;top:calc(min(130px,28vw)*1.11 - 40px);width:min(760px,150vw);height:85vh;translate:-50% 0;background:linear-gradient(180deg,#ffd99a2e 0,#ffd99a10 55%,transparent 90%);clip-path:polygon(47% 0,53% 0,88% 100%,12% 100%);filter:blur(16px);mix-blend-mode:screen}
.gr-rev{position:absolute;right:-30px;bottom:34px;width:min(340px,62vw);rotate:-14deg;filter:drop-shadow(10px 16px 10px #000b);opacity:.95}
.gr-box{position:absolute;left:-10px;bottom:30px;width:min(220px,40vw);rotate:6deg;filter:drop-shadow(8px 14px 10px #000b);opacity:.95}
.gate[data-ph="cards"] .g-ui,.gate[data-ph="hello"] .g-ui{padding-top:calc(min(130px,28vw)*1.11 - 14px)}
/* tarjetas: papel con relieve, filigrana, sello del estudio, inclinación 3D y brillo de pan de oro */
.g-card{aspect-ratio:5/7.5;padding:22px 12px 12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .32 0 0 0 0 .15 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23p)'/%3E%3C/svg%3E"),linear-gradient(135deg,#f8efd8 0,#ecdcb3 55%,#dcc590 100%);
 transform:perspective(700px) translateY(var(--lift,0px)) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) rotate(var(--r));transition:transform .18s ease-out,box-shadow .25s ease}
.g-card:hover,.g-card:focus-visible{--lift:-6px;transform:perspective(700px) translateY(var(--lift,0px)) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) rotate(0deg)}
.g-card::before{content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;z-index:2;opacity:0;transition:opacity .3s;mix-blend-mode:overlay;background:linear-gradient(115deg,transparent 30%,#fff3d0aa 45%,#f2c870aa 50%,transparent 62%);background-size:240% 240%;background-position:var(--gx,50%) var(--gy,50%)}
.g-card:hover::before,.g-card.tilt::before{opacity:.5}
.gc-cn{position:absolute;width:22px;height:22px;pointer-events:none;color:#a47a2c}
.gc-cn svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round}
.gc-cn.tl{top:9px;left:9px}.gc-cn.tr{top:9px;right:9px;transform:scaleX(-1)}.gc-cn.bl{bottom:9px;left:9px;transform:scaleY(-1)}.gc-cn.br{bottom:9px;right:9px;transform:scale(-1,-1)}
.gc-oval{overflow:hidden}
.gc-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;filter:sepia(.8) contrast(1.08) brightness(.92) saturate(1.1)}
.gc-oval.has-photo .gc-mono{display:none}
.gc-oval::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 16px #000b,inset 0 0 0 2px #00000055;pointer-events:none}
.gc-studio{margin-top:5px;font:italic 9.5px 'IM Fell English',Georgia,serif;letter-spacing:.06em;color:#8a6a32;opacity:.9;white-space:nowrap}
.gc-rank{margin-top:auto}
/* tarjeta grande: se acerca, pide contraseña y se da la vuelta con el saludo */
.g-bigwrap{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px;background:#020604b3;opacity:0;transition:opacity .35s}
.g-bigwrap.on{opacity:1}
.g-big{--bw:min(280px,72vw,calc((100vh - 250px) * .667));width:var(--bw);aspect-ratio:5/7.5;perspective:1100px;flex:none;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.g-bigwrap.hello .g-big{--bw:min(310px,80vw,calc((100vh - 70px) * .667))}
.gb-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.45,.05,.2,1)}
.g-big.flipped .gb-inner{transform:rotateY(180deg)}
.gb-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.g-card.gb-front{width:100%!important;height:100%;aspect-ratio:auto;opacity:1!important;animation:none!important;transform:none!important;cursor:default;padding:30px 16px 16px;box-shadow:inset 0 0 0 6px #f3e7c8,inset 0 0 0 7px #b48a3a,inset 0 0 0 8px #f3e7c8,inset 0 0 0 9px #d8bd7c,0 30px 60px -10px #000,0 0 50px #ffcf7a44}
.gb-front .gc-name{font-size:24px;margin-top:18px}.gb-front .gc-role{font-size:16px}.gb-front .gc-mono{font-size:60px}.gb-front .gc-studio{font-size:11px}.gb-front .gc-rank svg{width:16px;height:16px}.gb-front .gc-cn{width:30px;height:30px}
.gb-back{transform:rotateY(180deg);display:flex;flex-direction:column;align-items:center;padding:22px 18px;border-radius:4px;text-align:center;color:#f0e2bd;overflow:hidden;
 background:radial-gradient(ellipse at 50% 0,#3d2a12 0,#1d1308 70%),#1d1308;box-shadow:inset 0 0 0 6px #2a1c0c,inset 0 0 0 7px #c9a14a,inset 0 0 0 9px #2a1c0c,inset 0 0 0 10px #8a6a32,0 30px 60px -10px #000,0 0 50px #ffcf7a44}
.gb-back .g-hseal{width:78px;height:78px;font-size:36px;flex:none;animation:none;opacity:0}
.g-big.flipped .gb-back .g-hseal{animation:gStamp .55s .75s cubic-bezier(.3,1.6,.5,1) both}
.gb-back .g-hi{margin:10px 0 0;font-size:17px;animation:none}
.gb-back .g-name{font-size:clamp(22px,7vw,30px);animation:none;line-height:1.1}
.gb-back .g-role{animation:none;font-size:11px}
.gb-back .g-lines{margin:12px 0 0;padding:8px 2px;max-width:none;width:100%;font-size:13px}
.gb-back .g-lines li{font-size:13.5px;margin:5px 0;animation:none;opacity:1}
.gb-back .g-go{margin-top:auto;animation:none;opacity:.8;font-size:13px}
.g-big.flipped .gb-back .g-lines li{opacity:0;animation:gIn .45s ease forwards}
.g-pw{width:min(320px,88vw);display:flex;flex-direction:column;gap:8px;text-align:center;animation:gIn .4s .25s ease both}
.g-pw[hidden]{display:none}
.g-pw label{color:#f3dfa6;font:italic 17px 'IM Fell English',Georgia,serif}
.g-pw input{width:100%;padding:12px 14px;border:1px solid #c69a3f;border-radius:6px;background:#0b1a12ee;color:#fff3d6;font:18px Georgia,serif;letter-spacing:.2em;text-align:center}
.g-pw input:focus{outline:2px solid #f6d27c;outline-offset:1px}
.g-pw .gp-btns{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:4px}
.g-pw button{padding:12px;border-radius:6px;font:700 15px Georgia,serif;cursor:pointer}
.g-pw .gp-no{border:1px solid #8a6a32;background:#1a120899;color:#e9d49a}
.g-pw .gp-ok{border:2px solid #f7dc8f;background:linear-gradient(180deg,#f8dd8e,#d6a640 48%,#9a6c1d);color:#2a1606;letter-spacing:.08em}
.g-pw .gp-err{min-height:18px;color:#ffb4a0;font-size:14px}
.g-pw .gp-forgot{background:none;border:0;color:#cdb27a;font:italic 13px Georgia,serif;text-decoration:underline;padding:2px}
.g-pw .gp-note{color:#cfe0cf;font-size:13px;opacity:.85}
@media(prefers-reduced-motion:reduce){.g-smoke,.gr-lamp{animation:none}.g-card{transition:none}}
/* --- imágenes de la entrada: fachada ancha o vertical y el interior de la tienda --- */
.g-lamps{position:absolute;inset:0;pointer-events:none}
.gate.lw .g-stage{--gw:max(100vw,150vh);width:var(--gw);height:calc(var(--gw) / 1.5);aspect-ratio:auto;top:clamp(calc(100vh - var(--gw) / 1.5),calc(50vh - var(--gw) / 1.5 * .56),0px)}
.gate.int-ok .g-interior::before{background:var(--iimg) 50% 42%/cover no-repeat;filter:blur(1px) brightness(1.15)}
.gate.int-ok .g-felt{background:linear-gradient(180deg,#0205038c 0,#02050340 22%,#02050366 60%,#020503b3 100%),var(--iimg) 50% 100%/cover no-repeat,#0b2117}
.gate.int-ok .g-felt::before,.gate.int-ok .g-felt::after,.gate.int-ok .g-room{display:none}
.gate.int-ok[data-ph="cards"] .g-ui,.gate.int-ok[data-ph="hello"] .g-ui{padding-top:max(15vh,70px)}
.gate.int-ok .g-title{text-shadow:0 2px 0 #000,0 0 18px #000,0 0 28px #ffcf7a55}
.gate.int-ok .g-sub{color:#f3e7c8;text-shadow:0 1px 4px #000,0 0 12px #000}
/* ordenador: las tarjetas se reparten en una fila sobre el tapete del mostrador */
.gate.lw.int-ok[data-ph="cards"] .g-ui{padding-top:max(44vh,250px)}
.gate.lw .g-panel{width:min(1240px,96vw)}
.gate.lw .g-cards{gap:22px 20px}
/* ===== Pantalla de ordenador: ancha y aprovechando la pantalla (el móvil no cambia) ===== */
@media(min-width:1100px){
 .wrap{max-width:none;padding:14px clamp(16px,2vw,40px)}
 .hero-bg{display:block;position:absolute;inset:0;background:url(cabecera-web.webp) center/112% auto no-repeat,#120b06;filter:blur(16px) brightness(.42) saturate(1.1)}
 .hero-banner img{position:relative;width:auto;max-width:100%;height:min(34vh,340px);max-height:none;margin:0 auto;object-fit:contain;box-shadow:0 0 0 1px #000,0 0 40px #000c}
 .hero-banner img.ancha{width:100%;height:min(36vh,380px);object-fit:cover;object-position:50% 40%}
 .hero-banner:has(img.ancha) .hero-bg{display:none}
 .category-visual{height:clamp(200px,min(calc((100vw - 80px) / 2.9),44vh),560px)}
 .category-visual img{object-position:50% 50%}
 .grid{grid-template-columns:minmax(0,1fr) minmax(400px,31%);gap:16px}
 .enc-panel{max-width:min(1100px,94vw)}
 #dirModal .enc-panel,#dirModal .enc-panel.wide{max-width:min(1320px,96vw)}
 :is(#dirBody,#encBody,#pedBody,#ausBody){display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:12px}
 :is(#dirBody,#encBody,#pedBody,#ausBody)>*{flex:1 1 100%;min-width:0}
 :is(#dirBody,#encBody,#pedBody,#ausBody)>:is(.enc-card,.dir-log){flex:0 0 calc((100% - 24px) / 3);max-width:calc((100% - 24px) / 3)}
 :is(#dirBody,#encBody,#pedBody,#ausBody)>.mod-card{flex-basis:100%;max-width:none}
 :is(#dirBody,#pedBody,#ausBody)>:is(.dir-form,.ledger){max-width:820px;margin-left:auto;margin-right:auto}
 #dirBody>.mod-sec{flex-basis:calc(50% - 6px);max-width:calc(50% - 6px)}
 #dirBody>.mod-sec .mod-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 8px 8px}
 #dirBody>.mod-sec .mod-grid .mod-card{margin:0;width:100%}
 #dirBody svg[role=img]{max-width:900px;margin-left:auto!important;margin-right:auto!important}
 #tutModal .enc-panel{max-width:min(1000px,94vw)}
}
@media(min-width:1400px){.panel .table-head{display:none}#products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0}#products .product:nth-child(odd){border-right:1px solid #2c3d31}}
@media(min-width:2300px){#products{grid-template-columns:repeat(3,minmax(0,1fr))}#products .product{border-right:1px solid #2c3d31}}
/* ===== La tienda con los materiales de la entrada ===== */
.product::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:linear-gradient(110deg,transparent 35%,#fff1c41a 48%,#f2c8701c 52%,transparent 65%);background-size:250% 100%;background-position:120% 0}
.product{position:relative}
.product:hover::after{opacity:1;animation:prShine 1.1s ease forwards}
@keyframes prShine{to{background-position:-30% 0}}
.product.has-qty{background:radial-gradient(ellipse at 30% 50%,#1f4a33 0,#163a28 55%,#0f2a1d 100%)!important;box-shadow:inset 0 0 0 1px #c9a14a55,inset 0 0 0 4px #0b2117,inset 0 0 0 5px #c9a14a33,inset 0 0 22px #0007}
.cart{box-shadow:inset 0 0 0 1px #c9a14a44,inset 0 0 0 5px #0b211744,inset 0 0 26px #0008}
body::after{content:"";position:fixed;left:50%;top:-30vh;width:min(1400px,160vw);height:70vh;translate:-50% 0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 50% 30%,#ffd99a1c 0,transparent 62%)}
/* ===== El ticket sale imprimiéndose de la caja ===== */
.receipt-wrap{position:relative}
#receiptModal.printing .receipt-paper{animation:rcPrint 1.35s cubic-bezier(.3,.6,.35,1) both}
#receiptModal.printing .receipt-wrap::before{content:"";position:absolute;left:-10px;right:-10px;top:-8px;height:18px;z-index:3;border-radius:5px;background:linear-gradient(180deg,#f3d27a,#a0741e 55%,#5a3c0c);box-shadow:0 4px 10px #000c,inset 0 2px 0 #fff6,inset 0 -3px 0 #3a2606;animation:rcSlot 2.2s ease forwards}
@keyframes rcPrint{0%{clip-path:inset(0 0 100% 0);transform:translateY(-24px)}100%{clip-path:inset(0 0 0 0);transform:none}}
@keyframes rcSlot{0%,70%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){#receiptModal.printing .receipt-paper,#receiptModal.printing .receipt-wrap::before{animation:none}#receiptModal.printing .receipt-wrap::before{display:none}}
/* ===== Dirección como un libro de cuentas encuadernado en cuero ===== */
#dirModal .enc-panel{border:14px solid #3a2414;border-image:url(textura-cuero.webp) 80/14px round;outline:2px dashed #d9b45a66;outline-offset:-9px;box-shadow:0 30px 80px #000,inset 0 0 0 1px #000}
#dirModal .enc-head{background:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.45)),url(textura-cuero.webp) 0 0/260px,#2a1a0d;border-bottom:2px solid #c9a14a}
#dirModal #dirTitle{font-family:'Cinzel Decorative',Georgia,serif;letter-spacing:.08em;color:#f3d27a;text-shadow:0 1px 0 #000,0 0 10px #e8b92355}
#dirModal .dash-card b,#dirModal .dash-card strong{font-family:'IM Fell English',Georgia,serif}
#dirModal .mod-sec{--tab:#2f7a52;position:relative;border-left:6px solid var(--tab);background:linear-gradient(90deg,#00000033,transparent 30%),#08140f}
#dirModal .mod-sec>summary{padding-right:44px}
#dirModal .mod-sec>summary::before{content:"";position:absolute;right:12px;top:-2px;width:18px;height:30px;background:var(--tab);clip-path:polygon(0 0,100% 0,100% 100%,50% 76%,0 100%);box-shadow:0 2px 4px #0008}
#dirModal .mod-sec[data-sec="VENTAS Y CAJA"]{--tab:#2f7a52}
#dirModal .mod-sec[data-sec="CATÁLOGO, PRECIOS Y CONVENIOS"]{--tab:#8e2a2a}
#dirModal .mod-sec[data-sec="ALMACÉN Y FABRICACIÓN"]{--tab:#8a5a22}
#dirModal .mod-sec[data-sec="PROVEEDORES"]{--tab:#2d4f7a}
#dirModal .mod-sec[data-sec="PERSONAL"]{--tab:#6a3d7a}
#dirModal .mod-sec[data-sec="CLIENTES"]{--tab:#25706e}
#dirModal .mod-sec[data-sec="SISTEMA"]{--tab:#5a6470}
/* ===== Gotas en el cristal al entrar ===== */
.glass{position:fixed;inset:0;z-index:95;pointer-events:none;animation:glassOut 7s ease forwards}
.glass i{position:absolute;border-radius:50% 50% 48% 52%/60% 60% 40% 40%;background:radial-gradient(circle at 35% 30%,#ffffffb0 0,#ffffff30 22%,#cfe0ff14 55%,transparent 70%);box-shadow:0 1px 2px #0005,inset 0 -1px 2px #fff3;animation:glassSlide linear forwards}
@keyframes glassSlide{to{transform:translateY(var(--dy))}}
@keyframes glassOut{0%,55%{opacity:1}100%{opacity:0}}
/* ===== Deshacer, sin conexión y ver contraseña ===== */
.toast.has-undo{pointer-events:auto;display:flex;align-items:center;gap:12px}
.toast .t-undo{flex:none;padding:6px 12px;border:1px solid #f3d27a;border-radius:5px;background:#2a1d08;color:#f3d27a;font:700 13px Georgia,serif;letter-spacing:.1em;cursor:pointer}
.net-bar{position:fixed;left:0;right:0;top:0;z-index:150;padding:8px 14px;background:linear-gradient(#5a1a10,#3a0f08);border-bottom:2px solid #d0603f;color:#ffe2d6;font-size:14px;text-align:center;box-shadow:0 4px 14px #000a;animation:netIn .3s ease}
.net-bar[hidden]{display:none}
.g-msg.ok{border-color:#c9a14a;background:#1a2a12cc;color:#f3e7c8}
@keyframes netIn{from{transform:translateY(-100%)}to{transform:none}}
.pw-box{position:relative;display:block}
.pw-box input{padding-right:46px!important}
.pw-eye{position:absolute;right:6px;top:50%;translate:0 -50%;width:36px;height:36px;border:0;border-radius:6px;background:transparent;color:#d9c27a;font-size:18px;cursor:pointer;display:grid;place-items:center}
.pw-eye:focus-visible{outline:2px solid #f6d27c}
/* ===== Tarjeta de empleado pintada (tarjeta-empleado.webp): el nombre, el puesto y el retrato van encima ===== */
.gate.card-img .g-card{aspect-ratio:600/926;padding:0;border-radius:3.5%/2.3%;background:url(tarjeta-empleado.webp) center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(0 14px 16px #000c) drop-shadow(0 3px 4px #0009);container-type:inline-size}
.gate.card-img .g-card:hover,.gate.card-img .g-card:focus-visible,.gate.card-img .g-card.picked{box-shadow:none;filter:drop-shadow(0 22px 22px #000d) drop-shadow(0 0 14px #ffcf7a88)}
.gate.card-img .g-card::after{border-radius:3.5%/2.3%;background:radial-gradient(ellipse at 30% 8%,#fff5 0,transparent 40%)}
.gate.card-img .g-card::before{border-radius:3.5%/2.3%}
.gate.card-img .gc-cn,.gate.card-img .gc-studio{display:none}
.gate.card-img .gc-oval{position:absolute;left:17.1%;top:11.2%;width:65.7%;height:52.9%;aspect-ratio:auto;background:transparent;box-shadow:none}
.gate.card-img .gc-oval::after{box-shadow:inset 0 0 6cqw #000a}
.gate.card-img .gc-mono{font-size:22cqw;filter:drop-shadow(0 .6cqw 0 #000a)}
.gate.card-img .gc-name{position:absolute;left:15%;width:70%;top:73.4%;height:8.6%;margin:0;display:grid;place-items:center;font-size:min(9.6cqw,calc(128cqw / var(--nl,8)));line-height:1;color:#2a1a0d;text-shadow:0 1px 0 #fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gate.card-img .gc-role{position:absolute;left:16%;width:68%;top:84.2%;height:4.8%;margin:0;display:grid;place-items:center;font-size:min(6.6cqw,calc(100cqw / var(--rl,8)));line-height:1;color:#5a3e17;white-space:nowrap;overflow:hidden}
.gate.card-img .gc-rank{position:absolute;left:0;right:0;top:57.6%;justify-content:center;margin:0;padding:0;color:#f0c867;filter:drop-shadow(0 1px 1px #000)}
.gate.card-img .gc-rank svg{width:7.5cqw;height:7.5cqw}
.gate.card-img .gc-wax{top:-3%;right:-5%;width:24cqw;height:24cqw;background:url(sello-lacre.webp) center/contain no-repeat;box-shadow:none;border-radius:0;transform:rotate(10deg)}
.gate.card-img .gc-wax svg{display:none}
.gate.card-img .gc-stamp{top:40%;font-size:7cqw;border-width:.8cqw}
.gate.card-img .g-card.gb-front{padding:0;box-shadow:none;filter:drop-shadow(0 30px 40px #000) drop-shadow(0 0 40px #ffcf7a44)}
.gate.card-img .g-big{aspect-ratio:600/926}
.gate.card-img .gb-back{border-radius:3.5%/2.3%}
.gate.lw.card-img .g-card:not(.gb-front){width:clamp(140px,10.2vw,210px)}
.gate.lw.card-img .g-panel{width:min(1560px,98vw)}
.gate.lw.card-img[data-ph="cards"] .g-ui{padding-top:max(38vh,220px)}
.sbx-bar{position:fixed;left:0;right:0;top:0;z-index:149;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:7px 12px;background:repeating-linear-gradient(135deg,#5a3a00 0 14px,#3a2600 14px 28px);border-bottom:2px solid #f3b53a;color:#ffe9b0;font-size:13px;box-shadow:0 4px 14px #000a}
.sbx-bar[hidden]{display:none}
.sbx-bar b{letter-spacing:.12em;color:#ffd36a}
.sbx-bar button{padding:5px 10px;border:1px solid #f3b53a;border-radius:5px;background:#2a1a00;color:#ffd36a;font:700 12px Georgia,serif;letter-spacing:.08em;cursor:pointer}
body.sandbox{padding-top:44px}
body.sandbox .modal-overlay{padding-top:58px}
body.sandbox .set-pop{margin-top:44px}
body.sandbox .net-bar{top:44px}
.sbx-msg{margin:0 0 10px;padding:10px;border:1px solid #5d4928;border-radius:6px;background:#0a1610;white-space:pre-wrap;font-size:13px;color:#e9dcb8;overflow-wrap:anywhere}
.sbx-msg small{display:block;margin-bottom:4px;color:#d9b45a;letter-spacing:.08em}
.gc-stamp.prueba{border-color:#9a6a00;color:#9a6a00;background:#fff3c8dd}
.gate .gc-stamp.prueba{top:61%;font-size:6cqw}
/* ===== Imágenes nuevas ===== */
/* reverso de la tarjeta */
.gate.back-img .gb-back{background:url(tarjeta-reverso.webp) center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(0 30px 40px #000) drop-shadow(0 0 40px #ffcf7a44);padding:16% 14% 14%}
.gate.back-img .gb-back .g-lines{border-color:#d9b45a55}
/* sellos ENTREGADO / RECIBIDO */
.stamp-fx.img span{width:min(80vw,420px);aspect-ratio:var(--ar,2.6);padding:0;border:0;border-radius:0;background:var(--st) center/contain no-repeat;font-size:0;color:transparent}
.paid-stamp.img.ent{background-image:url(sello-entregado.webp)}
/* tablilla de AGOTADO */
body.has-agotado .nostock{width:74px;height:36px;margin:2px 0 0;font-size:0;color:transparent;background:url(tablilla-agotado.webp) center/contain no-repeat;transform-origin:50% 0;animation:sway 3.5s ease-in-out infinite}
@keyframes sway{0%,100%{rotate:-2.5deg}50%{rotate:2.5deg}}
/* monedas al cobrar */
.coin{position:fixed;z-index:96;width:38px;height:38px;pointer-events:none;background:url(moneda-oro.webp) center/contain no-repeat;filter:drop-shadow(0 3px 3px #000a);animation:coinFall var(--t,1s) cubic-bezier(.45,0,.9,.6) forwards}
@keyframes coinFall{0%{transform:translate(0,0) rotateY(0) scale(1);opacity:1}85%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotateY(var(--ry,720deg)) scale(.55);opacity:0}}
#grand.bump{animation:grandBump .45s ease}
@keyframes grandBump{50%{transform:scale(1.18);color:#ffe08a;text-shadow:0 0 14px #e8b923}}
/* reloj de bolsillo en el fichaje */
.pocket{position:relative;display:inline-block;flex:none;width:34px;height:53px;background:url(reloj-bolsillo.webp) center/contain no-repeat;filter:drop-shadow(0 2px 3px #000a);vertical-align:middle}
.pocket[hidden]{display:none}
.pocket .ph{position:absolute;left:48%;top:47.9%;width:2px;border-radius:2px;background:#1a1006;transform-origin:50% 100%;translate:-50% -100%}
.pocket .ph.h{height:15%;width:2.2px}.pocket .ph.m{height:22%;width:1.6px}.pocket .ph.s{height:23%;width:1px;background:#8e1c14}
/* cartel de SE BUSCA para el empleado de la semana */
.emp-week.wanted{gap:14px;padding:10px 14px}
.ew-poster{position:relative;flex:none;width:92px;aspect-ratio:480/741;background:url(cartel-se-busca.webp) center/100% 100% no-repeat;filter:drop-shadow(0 4px 6px #000b);transform:rotate(-3deg)}
.ew-poster .ew-ph{position:absolute;left:19.1%;top:25.5%;width:62.3%;height:44%;display:grid;place-items:center;overflow:hidden;color:#3a2412;font:700 26px 'Cinzel Decorative',Georgia,serif}
.ew-poster .ew-ph img{width:100%;height:100%;object-fit:cover;filter:sepia(.9) contrast(1.1)}
.ew-poster .ew-nm{position:absolute;left:14%;width:72%;top:72.8%;height:6.1%;display:grid;place-items:center;font:700 8px Georgia,serif;color:#2a1608;white-space:nowrap;overflow:hidden}
.ew-poster .ew-rw{position:absolute;left:13.4%;width:74.2%;top:81.9%;height:10.1%;display:grid;place-items:center;font:700 9px Georgia,serif;color:#5a1a0a}
/* objetivo de la semana */
.goal-bar{display:flex;align-items:center;gap:12px;margin:10px 0 0;padding:9px 14px;border:2px double #b88931;border-radius:8px;background:linear-gradient(90deg,#1b1408,#0e1a12);box-shadow:0 6px 18px #0008;cursor:pointer}
.goal-bar[hidden]{display:none}
.goal-bar small{display:block;color:#d9b65a;font-size:11px;letter-spacing:.16em}
.goal-bar .gl-t{flex:1;min-width:0}
.goal-bar .gl-track{position:relative;height:14px;margin-top:5px;border-radius:7px;background:#000a;box-shadow:inset 0 1px 3px #000;overflow:hidden}
.goal-bar .gl-fill{position:absolute;inset:0 auto 0 0;border-radius:7px;background:linear-gradient(90deg,#8a6410,#e8b923 70%,#fff1b0);box-shadow:0 0 10px #e8b92388;transition:width 1s ease}
.goal-bar b{color:#ffe08a;font-size:15px;white-space:nowrap}
.goal-bar.done{border-color:#4fbf6a}.goal-bar.done .gl-fill{background:linear-gradient(90deg,#1d6b34,#4fbf6a 70%,#d9ffe0)}
/* buscador y ficha de empleado en Dirección */
.dir-search{display:flex;gap:8px;margin:0 0 10px}
.dir-search input{flex:1;min-width:0;padding:11px 12px;border:1px solid #8b6a2e;border-radius:6px;background:#040b08;color:#eee0bd;font:16px Georgia,serif}
.ds-res .enc-card{cursor:default}
.ds-res .t small{margin-left:6px;padding:1px 6px;border:1px solid #8b6a2e;border-radius:4px;color:#d9b45a;font-size:11px;letter-spacing:.1em}
.ficha-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0}
.ficha-grid div{padding:9px 10px;border:1px solid #3a4a3d;border-radius:6px;background:#08140f}
.ficha-grid small{display:block;color:#b8a77e;font-size:11px;letter-spacing:.1em}
.ficha-grid b{color:#f3dfa6;font-size:17px}
.rev-ok{padding:14px;border:1px solid #2f7a52;border-radius:8px;background:#0b2416;color:#bff5c8;text-align:center}
/* ===== Imagen de cada producto: placa grabada integrada (sin círculo beige) ===== */
.table-head,.product{grid-template-columns:76px minmax(170px,1fr) 105px 160px 105px}
.weapon-icon.has-icon{position:relative;width:68px;height:46px;margin:0;padding:0;border:0;border-radius:6px;overflow:hidden;background:#07100b;
 box-shadow:0 0 0 1px #000,0 0 0 2px #8a6a32,0 0 0 3px #1a120a,0 3px 8px #000c}
.weapon-icon.has-icon img{width:100%;height:100%;padding:0;border-radius:0;object-fit:cover;object-position:50% 50%;transform:scale(1.18);filter:saturate(1.05) contrast(1.05);transition:transform .35s ease}
.weapon-icon.has-icon::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:6px;background:radial-gradient(ellipse at 50% 45%,transparent 45%,#000a 100%),linear-gradient(160deg,#fff2c41f 0,transparent 35%)}
.product:hover .weapon-icon.has-icon img{transform:scale(1.28)}
.product.has-qty .weapon-icon.has-icon{box-shadow:0 0 0 1px #000,0 0 0 2px #e3c26a,0 0 0 3px #1a120a,0 0 14px #d7ae5488}
.product.no-stock .weapon-icon.has-icon img{filter:grayscale(.8) brightness(.7)}
.prod-sheet .weapon-icon.has-icon{width:96px;height:64px}
@media(min-width:1400px){#products .product{grid-template-columns:70px minmax(120px,1fr) 92px 136px 84px;column-gap:6px}#products .weapon-icon.has-icon{width:62px;height:42px}}
/* V2 · tableta en vertical (651–900 px): la tabla completa del catálogo, que cabe de sobra */
@media(min-width:651px) and (max-width:900px){.table-head,#products .product{grid-template-columns:64px minmax(150px,1fr) 100px 156px 92px;column-gap:6px}.weapon-icon.has-icon{width:56px;height:38px}}
@media(max-width:650px){.product{grid-template-columns:58px 1fr 80px}.weapon-icon.has-icon{width:52px;height:36px}}
.me-chip{cursor:pointer}
.me-chip:hover,.me-chip:focus-visible{border-color:#f3d27a;outline:none;box-shadow:0 0 10px #e8b92355}
#miModal{z-index:75}
.mi-box{max-width:360px;text-align:center}
.mi-photo{width:150px;height:188px;margin:6px auto 10px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(ellipse at 45% 38%,#6b4a2a 0,#3a2413 48%,#170c05 100%);box-shadow:0 0 0 3px #c9a14a,0 0 0 6px #1a120a,0 0 0 7px #8a6a32,inset 0 0 20px #000c}
.mi-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.8) contrast(1.08)}
.mi-photo b{font:700 54px 'Cinzel Decorative',Georgia,serif;color:#e9bf5c}
.mi-name{font:700 22px 'IM Fell English',Georgia,serif;color:#f3dfa6}.mi-role{color:#b8a77e;font-style:italic;margin-bottom:10px}
.mi-box .enc-actions{display:grid;gap:8px;margin:8px 0}
/* ===== Tienda ABIERTA / CERRADA: abierta cuando hay alguien fichado ===== */
.g-shop{position:absolute;left:var(--dl,38.57%);width:var(--dw,22.95%);top:calc(var(--dt,47.33%) + var(--dh,26.04%) * .2);z-index:2;display:flex;flex-direction:column;align-items:center;pointer-events:none;opacity:0;transition:opacity .8s}
.gate[data-ph="scene"] .g-shop{opacity:1}
.gs-sign{width:96%;transform-origin:50% 0;animation:sway 4s ease-in-out infinite;filter:drop-shadow(0 .6cqh .8cqh #000c)}
.gs-who{margin-top:.6cqh;padding:.25cqh 1cqh;border-radius:.6cqh;background:#000a;color:#f6d27c;font:italic 1.25cqh Georgia,serif;white-space:nowrap;text-shadow:0 1px 2px #000}
.gs-who:empty{display:none}
.gate.closed .g-img{filter:brightness(.62) saturate(.8)}
.gate.closed .g-lamp.win{opacity:.15!important;animation:none}
.gate.closed .g-interior::after{background:radial-gradient(ellipse at 50% 42%,#ffd9a044 0,transparent 60%)!important}
.gate.closed .g-spill{opacity:.25!important}
.shop-sign{display:block;width:78px;height:auto;margin:-4px 0 4px;filter:drop-shadow(0 3px 3px #000a);transform-origin:50% 0;animation:sway 4s ease-in-out infinite}
.shop-sign[hidden]{display:none}
/* ===== Dirección sobre el escritorio del despacho ===== */
/* Sin «fixed»: el fondo fijo obligaba a repintar toda la ventana al desplazarse (saltos en DIRECCIÓN) */
#dirModal{background:linear-gradient(#020604c0,#020604d8),url(fondo-direccion.webp) center/cover no-repeat,#020604}
@media(min-width:900px){#dirModal{background:linear-gradient(#02060499,#020604c4),url(fondo-direccion-ancho.webp) center/cover no-repeat,#020604}}
#dirModal .enc-panel{background:linear-gradient(rgba(6,14,10,.86),rgba(4,10,7,.9)),url(textura-cuero.webp) 0 0/280px,#0a1811;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
/* ===== Tutorial: una página de manual antiguo ===== */
#tutModal{background:radial-gradient(ellipse at 50% 50%,#1a0f0899,#020604ee),#020604}
@media(min-width:900px){#tutModal{background:radial-gradient(ellipse at 50% 50%,#0000 30%,#000c 100%),linear-gradient(#02060488,#020604aa),url(tutorial-libro-ancho.webp) center/cover no-repeat,#120a06}}
#tutModal .enc-panel{--tw:min(760px,96vw);max-width:var(--tw);border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 30px 40px #000);color:#2a1a0d;
 border:0;border-image:url(tutorial-libro.webp) 230 128 320 180 fill / calc(var(--tw) * .2875) calc(var(--tw) * .16) calc(var(--tw) * .4) calc(var(--tw) * .225) stretch;
 padding:calc(var(--tw) * .17) calc(var(--tw) * .12) calc(var(--tw) * .2) calc(var(--tw) * .19)}
#tutModal .tour-wrap{background:#f3e7c899!important;border:1px solid #8a6a3288!important;box-shadow:none!important}
#tutModal .enc-head{background:none!important;border:0!important;box-shadow:none!important;padding:0 0 10px}
#tutModal #tutTitle{color:#3a220c!important;font-family:'Cinzel Decorative',Georgia,serif;letter-spacing:.1em;text-shadow:none}
#tutModal #tutBody{padding:0}
#tutModal .tut-intro{color:#5a4020}
#tutModal details.tut{background:#f3e7c866;border:1px solid #8a6a3266;border-left:4px solid #8a5a1e;box-shadow:none}
#tutModal details.tut>summary{color:#4a2a0a;text-shadow:none}
#tutModal details.tut[open]>summary{border-bottom-color:#8a6a3266}
#tutModal details.tut>summary::after{color:#7a4a14}
#tutModal .tut-n{border-color:#7a4a14;color:#7a4a14}
#tutModal .tut-c{color:#2e1e0e}
#tutModal .tut-c b{color:#5a1e08}
#tutModal .tut-c .tag{border-color:#2f6a42;color:#24603a}#tutModal .tut-c .tag.boss{border-color:#8a4a1e;color:#8a3a10}
#tutModal .tour-wrap span{color:#5a4020}
#tutModal .tut-group{margin:16px 0 8px;padding-top:10px;border-top:2px double #8a6a32;color:#6b2a0a;font:700 13px 'Cinzel Decorative',Georgia,serif;letter-spacing:.14em;text-align:center}

/* ===== Ticket sobre papel con membrete ===== */
.receipt-paper{border-radius:0;padding:calc(min(560px,94vw) * .36) calc(min(560px,94vw) * .075) calc(min(560px,94vw) * .2);background:none!important;border:0;border-image:url(ticket-papel.webp) 230 56 250 56 fill / calc(min(560px,94vw) * .36) calc(min(560px,94vw) * .088) calc(min(560px,94vw) * .39) stretch;filter:drop-shadow(0 18px 30px #000c)}
.receipt-frame{border:0!important;box-shadow:none!important;padding:0 6px 6px}
.receipt-frame>.corner{display:none}
.receipt-emblem{height:70px}
/* ===== Ventanas que se despliegan al abrirse ===== */
@keyframes unfold{0%{opacity:0;transform:perspective(900px) rotateX(-12deg) scaleY(.6);transform-origin:50% 0}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes popIn{0%{opacity:0;transform:scale(.88)}100%{opacity:1;transform:none}}
.modal-overlay>.enc-panel{overflow-x:clip}
.modal-overlay:not([hidden])>.enc-panel{animation:unfold .42s cubic-bezier(.2,.8,.25,1) both;transform-origin:50% 0}
.modal-overlay.confirm:not([hidden])>.confirm-box{animation:popIn .22s ease both}
@media(prefers-reduced-motion:reduce){.modal-overlay:not([hidden])>.enc-panel,.modal-overlay.confirm:not([hidden])>.confirm-box{animation:none}}
/* ===== Botones de latón ===== */
#finish,#finishEnc,#obGo,.clock-btn:not(.out),[data-dir^="su-pay"]{border:1px solid #f7dc8f!important;background:linear-gradient(180deg,#f6dc93 0,#d8a945 42%,#a8761f 58%,#8a5e16 100%)!important;color:#2a1606!important;text-shadow:0 1px 0 #fff3!important;font-weight:700;box-shadow:inset 0 1px 0 #fff8,inset 0 -2px 0 #5a3a0c,0 0 0 2px #2a1606,0 4px 10px #000a!important;transition:transform .08s,box-shadow .08s}
#finish:active,#finishEnc:active,#obGo:active,.clock-btn:not(.out):active,[data-dir^="su-pay"]:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #5a3a0c,0 0 0 2px #2a1606,0 1px 3px #000a!important}
#finish::before,#finishEnc::before{filter:brightness(.2) sepia(1)}
.clock-btn.out{border:1px solid #d9a08a!important;background:linear-gradient(180deg,#c86a4e 0,#8e2a16 55%,#5e160a 100%)!important;box-shadow:inset 0 1px 0 #fff5,inset 0 -2px 0 #3a0a04,0 0 0 2px #1a0602,0 4px 10px #000a!important}
.clock-btn.out:active{transform:translateY(2px)}
/* ===== Día y noche más marcados ===== */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;transition:background 2s}
body.theme-night::before{background:radial-gradient(ellipse 60% 40% at 50% 0,#ffae4a2a,transparent 70%),radial-gradient(ellipse at 50% 50%,transparent 40%,#000a 100%)}
body.theme-night .panel,body.theme-night .clock-bar{box-shadow:0 10px 30px #000b,0 0 40px #ff9a3a0d}
body.theme-night .product.has-qty{box-shadow:inset 0 0 0 1px #e9b95a77,inset 0 0 26px #ffae4a22}
body.theme-night .hero-banner img{filter:brightness(.88) saturate(1.05)}
body.theme-day::before{background:radial-gradient(ellipse 80% 50% at 50% -10%,#fff2c822,transparent 70%)}
body.theme-day .hero-banner img{filter:brightness(1.06) saturate(1.04)}
/* ===== Repaso del móvil: botones con tamaño de dedo y textos que no se cortan ===== */
@media(max-width:650px){
 .enc-actions button,.dir-form button,.confirm-actions button{min-height:44px}
 .enc-card .t{overflow-wrap:anywhere}
 .dir-log{overflow-wrap:anywhere}
 .badge{white-space:nowrap}
 .dash{grid-template-columns:1fr 1fr}
 .enc-money{flex-wrap:wrap;gap:4px 10px}
}
/* placa de día de pago */
.pay-plate{position:relative;display:flex;align-items:center;gap:12px;width:100%;margin:10px 0 0;padding:11px 14px;border:2px double #e8b923;border-radius:8px;background:linear-gradient(100deg,#3a2606,#1a1206 55%,#0e1a12);box-shadow:0 6px 18px #0008,inset 0 0 22px #e8b92333;color:inherit;font:inherit;text-align:left;cursor:pointer;overflow:hidden}
.pay-plate[hidden]{display:none}
.pay-plate small{display:block;color:#e2c26a;font-size:11px;letter-spacing:.16em}
.pay-plate b{display:block;font-family:'Cinzel Decorative',Georgia,serif;font-size:21px;letter-spacing:.06em;color:#ffe08a;text-shadow:0 0 12px #e8b92399,0 2px 0 #000}
.pay-plate span{color:#e9d49a;font-size:13px}
.pay-plate span b{display:inline;font-family:inherit;font-size:inherit;letter-spacing:0;text-shadow:none}
.pay-plate.due::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#fff3c455 48%,transparent 66%);transform:translateX(-120%);animation:ppShine 4.5s ease-in-out infinite;pointer-events:none}
@keyframes ppShine{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.pay-plate .pp-coin{font:700 22px Georgia,serif;color:#4a2f04;letter-spacing:0}
.pay-plate .pp-coin.ok{color:#06301a}
.pp-coin{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff1b0,#e8b923 58%,#8a6410);color:#4a2f04;font:700 22px Georgia,serif;box-shadow:0 2px 6px #000,inset 0 0 0 3px #0002}
.pay-plate.paid{border-color:#4fbf6a;background:linear-gradient(100deg,#0d3a1c,#0a1f12 60%,#0e1a12);box-shadow:0 6px 18px #0008,inset 0 0 22px #4fbf6a33}
.pay-plate.paid small{color:#9fd8a9}.pay-plate.paid b{color:#bff5c8;text-shadow:0 0 12px #4fbf6a88,0 2px 0 #000}.pay-plate.paid span{color:#cde9d1}
.pp-coin.ok{background:radial-gradient(circle at 35% 35%,#d9ffe0,#4fbf6a 58%,#1d6b34);color:#06301a}
.pp-stamp{position:absolute;right:12px;top:50%;transform:translateY(-50%) rotate(-12deg);padding:2px 8px;border:3px solid #6fdc8a;border-radius:4px;color:#6fdc8a;font:700 15px Georgia,serif;letter-spacing:.2em;font-style:normal;opacity:.55;pointer-events:none}
@media(max-width:420px){.pp-stamp{display:none}}
@media(prefers-reduced-motion:reduce){.pay-plate.due::after{animation:none;display:none}}
/* 19) empleado de la semana */
.emp-week{display:flex;align-items:center;gap:12px;margin:10px 0 0;padding:10px 14px;border:2px double #d9a520;border-radius:8px;background:linear-gradient(90deg,#2a1d08,#0e1a12);box-shadow:0 6px 18px #0008,inset 0 0 18px #d9a52022}
.emp-week[hidden]{display:none}
.ew-medal{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff1b0,#d9a520 60%,#8a6410);color:#5a3a06;font-size:22px;box-shadow:0 2px 6px #000,inset 0 0 0 2px #0003}
.emp-week small{display:block;color:#d9b65a;font-size:11px;letter-spacing:.18em}
.emp-week b{display:block;color:#ffe9a8;font-size:19px}
.emp-week span{color:#c9b27a;font-size:13px}
@media(prefers-reduced-motion:reduce){.hero-banner:before,.sp-seal,.sp-name i,.sp-sub,.record-fx,.record-fx div{animation:none;opacity:1;transform:none}}
/* PEGAR MENSAJE */
.dir-form .pz-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.pz-row .pz-btn{padding:10px 14px}
.pz-row .pz-btn{flex:0 0 auto}
.pz-row small{flex:1 1 180px;color:#cbbf9c;font-size:13px;line-height:1.35}
.pz-panel{margin:0 0 14px;padding:12px;border:1px dashed #b8913f;border-radius:8px;background:rgba(10,6,2,.45)}
.pz-panel textarea{display:block;width:100%;min-height:130px;margin-top:6px;padding:10px;border-radius:6px;border:1px solid #5d4928;background:#040b08;color:#eee0bd;font:inherit;font-size:16px;line-height:1.4;resize:vertical;box-sizing:border-box}
.pz-panel .bk-note{margin:6px 0 8px}
.pz-msg{margin:0 0 12px;padding:9px 11px;border-radius:7px;border:1px solid #4f7a3c;background:rgba(40,70,30,.35);color:#dfeccd;font-size:14px;line-height:1.4}
.pz-msg.bad{border-color:#8a3a2a;background:rgba(90,25,15,.35);color:#f1d2c6}
.pz-hit{animation:pzHit 2.4s ease-out 1}
@keyframes pzHit{0%,35%{box-shadow:0 0 0 2px #f0d278,0 0 14px rgba(240,210,120,.7)}100%{box-shadow:0 0 0 0 rgba(240,210,120,0)}}
@media (prefers-reduced-motion:reduce){.pz-hit{animation:none;outline:2px solid #f0d278}}
/* Historial del cliente */
.ch-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:6px 0 8px}
.ch-sum div{padding:8px 6px;border:1px solid #2f4536;border-radius:6px;background:#0a1712;text-align:center}
.ch-sum small{display:block;color:#bfae86;font-size:11px;letter-spacing:.06em}
.ch-sum b{display:block;color:#f0d278;font-size:17px;margin-top:2px}
.ch-row{padding:8px 10px;border:1px solid #2f4536;border-radius:6px;background:#0a1712;margin-top:6px}
.ch-row .ch-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.ch-row .ch-top b{color:#f0d278}
.ch-row small{display:block;color:#bfae86;font-size:12.5px;margin-top:2px;line-height:1.35}
.ch-row.void{opacity:.55}
.ch-row.void .ch-top b{text-decoration:line-through}
/* Comparar proveedores */
.cmp-tag{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:9px;font-size:11px;letter-spacing:.03em;font-style:normal;vertical-align:1px}
.cmp-tag.best{background:#24401f;color:#cde9b8;border:1px solid #4f7a3c}
.cmp-tag.alt{background:#3d2a12;color:#f3d79a;border:1px solid #8a6a2a}
.cmp-card{padding:9px 10px;border:1px solid #2f4536;border-radius:6px;background:#0a1712;margin-top:6px}
.cmp-card .t{color:#f0d278;font-weight:bold;margin-bottom:4px}
.cmp-line{display:flex;justify-content:space-between;gap:8px;padding:3px 0;color:#d9ccaa;font-size:14px}
.cmp-line.best b{color:#9fd884}
.cmp-line.best span::before{content:"✓ ";color:#9fd884}
/* Barra fija abajo (móvil) */
.mnav{display:none}
@media(max-width:900px){
 .mnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:41;padding:4px 3px calc(4px + env(safe-area-inset-bottom,0px));gap:0;background:linear-gradient(rgba(8,16,11,.55),rgba(4,10,7,.82)),url(textura-madera.webp) 0 0/360px,#07120e;border-top:2px solid #b88931;box-shadow:0 -6px 16px #000a}
 .mnav[hidden]{display:none}
 .mnav button{flex:1 1 auto;min-width:0;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 1px;border:0;border-radius:6px;background:none;color:#e9d9ad;font-family:var(--f-sc);font-size:10.5px;letter-spacing:.04em;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}
 .mnav button[hidden]{display:none}
 .mnav button:active{background:#ffffff14}
 .mnav .bi{width:22px;height:22px;stroke:#f0d278;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin:0}
 .mnav .mn-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .mnav .mn-n{position:absolute;top:2px;right:calc(50% - 22px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#b3261e;color:#fff;font:bold 11px/17px Georgia,serif;text-align:center;box-shadow:0 0 0 2px #07120e}
 .mnav .mn-clock.on{color:#bfe8a8}
 .mnav .mn-clock.on .bi{stroke:#9fd884}
 body.has-mnav{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
 body.has-mnav .order-bar{bottom:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:8px}
 body.has-mnav.has-bar{padding-bottom:calc(140px + env(safe-area-inset-bottom,0px))}
 body.has-mnav .to-top{bottom:calc(74px + env(safe-area-inset-bottom,0px))}
 body.has-mnav.has-bar .to-top{bottom:calc(152px + env(safe-area-inset-bottom,0px))}
 body.has-mnav .toast{bottom:78px}
 body.has-mnav.has-bar .toast{bottom:156px}
}
@media(max-width:379px){.mnav button{padding:4px 0}.mnav .mn-l{letter-spacing:.02em}}
.kb-help{display:none}
@media(hover:hover) and (pointer:fine){.kb-help{display:block}}
.kb-help kbd,.tut kbd{display:inline-block;min-width:1.5em;padding:0 5px;border:1px solid #8b6a2e;border-bottom-width:2px;border-radius:4px;background:#0a1712;color:#f0d278;font:12px/1.5 Georgia,serif;text-align:center}
/* Ficha del cliente: expediente con clip (imagen vertical en el móvil y apaisada en el ordenador) */
.cf-wrap,.pf-wrap{container-type:inline-size}
.cf-paper.cf-folder{background:none;box-shadow:none;border-radius:0;padding:2px 10px 6px 6px;border-style:solid;border-color:transparent;border-width:24.4cqw 9.3cqw 17.1cqw 12.2cqw;border-image:url(ficha-cliente.webp) 250 95 175 125 fill stretch}
@container (min-width:600px){.cf-paper.cf-folder{border-width:15.95cqw 7.16cqw 7.16cqw 10.4cqw;border-image:url(ficha-cliente-ancha.webp) 245 110 110 160 fill stretch;padding:10px 16px 8px}}
.cf-folder .cf-head{margin-top:-2px}
.cf-paper .cf-arma{background:rgba(255,248,225,.42)}
.cf-paper .ch-sum div,.cf-paper .ch-row{background:rgba(255,248,225,.42);border-color:#b89a5a}
.cf-paper .ch-sum small,.cf-paper .ch-row small{color:#6b4c1d}
.cf-paper .ch-sum b,.cf-paper .ch-row .ch-top b{color:#7a1608}
.cf-paper .ch-row .ch-top span{color:#2a1a0d}
/* Ficha del proveedor: contrato de suministro */
.pf-paper{position:relative;color:#2a1a0d;border-style:solid;border-color:transparent;border-width:29.3cqw 5.9cqw 26.9cqw 5.9cqw;border-image:url(ficha-proveedor.webp) 300 60 275 60 fill round;padding:4px 10px 8px;--pc1:11cqw;--pc3:12cqw;--ny:-15.1cqw;--nw:31cqw;--nf:clamp(11px,4.3cqw,24px)}
@container (min-width:600px){.pf-paper{border-width:18.55cqw 4.9cqw 17.9cqw 4.9cqw;border-image:url(ficha-proveedor-ancha.webp) 285 75 275 75 fill round;padding:4px 18px 10px;--pc1:8.5cqw;--pc3:9.4cqw;--ny:-9.44cqw;--nw:22cqw;--nf:clamp(12px,2.3cqw,26px)}}
.pf-name{position:absolute;left:50%;top:var(--ny);width:var(--nw);transform:translate(-50%,-50%);text-align:center;font:bold var(--nf)/1.1 'Cinzel Decorative',Georgia,serif;color:#1b3022;overflow-wrap:anywhere;max-height:2.3em;overflow:hidden}
.pf-sub{text-align:center;font-style:italic;color:#4a3417;margin:2px 0 6px;font-size:14px}
.pf-paper .cf-line{border-bottom:1px dotted #7a5a22}
.pf-paper .cf-line small{color:#6b4c1d}
.pf-paper .cf-line b{color:#24324a;font-family:'IM Fell English',Georgia,serif}
.pf-paper .cp-btn{background:#f3e6c0;color:#3d2a12;border-color:#7a5a22}
.pf-paper .dir-sec-title{color:#6b4c1d;border-color:#7a5a22;text-shadow:none;background:linear-gradient(90deg,#7a5a22,#7a5a2200) left bottom/100% 1px no-repeat}
.pf-row{display:grid;grid-template-columns:var(--pc1) minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 0;font-size:15px}
.pf-row .n{color:#7a1608;font-weight:bold;text-align:center}
.pf-row .nm{font-family:'IM Fell English',Georgia,serif;color:#24324a;overflow-wrap:anywhere}
.pf-row .pr{min-width:var(--pc3);text-align:right;font-weight:bold;color:#2a1a0d;white-space:nowrap}
.pf-row .pr small{display:block;font-weight:normal;font-size:11px;color:#6b4c1d}
.pf-paper .cmp-tag.best{background:#dfe9c9;color:#2e5320;border-color:#6f8f4a}
.pf-paper .cmp-tag.alt{background:#f3e0b4;color:#6b3c08;border-color:#a8792e}
.pf-paper .enc-empty{color:#6b4c1d}
.pf-paper .enc-actions{margin-top:10px}
/* Modo ligero: lo mismo que «reducir movimiento» del sistema, y algo más */
html.lite .paid-stamp.hit{animation:none;opacity:.82}
html.lite .grid.flip{animation:none}
html.lite .splash{display:none}
html.lite .bump{animation:none}
html.lite *{transition-duration:.01s!important}
html.lite .wrap>*{animation:none}
html.lite .modal-overlay:not([hidden])>*{animation:none}
html.lite .paid-stamp.img.hit{animation:none;opacity:.9}
html.lite #receiptModal:not([hidden]) .receipt-wrap{animation:none}
html.lite #dirBody.pg-in,html.lite #dirBody.pg-back,html.lite .stamp-fx span,html.lite .shift-chip i{animation:none}
html.lite .stamp-fx span{opacity:1;transform:rotate(-12deg)}
html.lite #receiptModal.printing .receipt-paper,html.lite #receiptModal.printing .receipt-wrap::before{animation:none}
html.lite #receiptModal.printing .receipt-wrap::before{display:none}
html.lite .modal-overlay:not([hidden])>.enc-panel,html.lite .modal-overlay.confirm:not([hidden])>.confirm-box{animation:none}
html.lite .pay-plate.due::after{animation:none;display:none}
html.lite .hero-banner:before,html.lite .sp-seal,html.lite .sp-name i,html.lite .sp-sub,html.lite .record-fx,html.lite .record-fx div{animation:none;opacity:1;transform:none}
html.lite .pz-hit{animation:none;outline:2px solid #f0d278}
html.lite .g-grain,html.lite .g-fog,html.lite .g-lamp,html.lite .gr-lamp{animation:none!important}
html.lite .glass,html.lite .g-smoke,html.lite .g-dust{display:none!important}
html.lite .pay-plate.due::after,html.lite .hero-banner:before{animation:none!important}
.hz-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:9px 11px;border:1px dashed #b8913f;border-radius:7px;background:rgba(60,40,10,.35);color:#e9d9ad;font-size:13.5px;line-height:1.35}
.hz-note span{flex:1 1 200px}
.hz-note button{flex:0 0 auto;padding:9px 12px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#1b2a1a,#0a1812);color:#f3e2b0;font-weight:bold;font-family:inherit;cursor:pointer}
.cf-paper .hz-note{background:rgba(255,248,225,.5);color:#3d2a12;border-color:#8a6a3a}
/* Libro de turno y «Para hoy» */
#libroBody{padding:10px}
.lb-new textarea{display:block;width:100%;min-height:70px;margin-top:4px;padding:10px;border-radius:6px;border:1px solid #5d4928;background:#040b08;color:#eee0bd;font:inherit;font-size:16px;resize:vertical;box-sizing:border-box}
.lb-note{position:relative;margin-top:8px;padding:10px 12px 10px 14px;border:1px solid #8b6a2e;border-left:4px solid #c9a24a;border-radius:6px;background:linear-gradient(#efe0b4,#dcc28a);color:#2a1a0d;box-shadow:0 3px 8px #0008}
.lb-note .lb-t{font-family:'IM Fell English',Georgia,serif;font-size:17px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}
.lb-note .lb-m{margin-top:4px;font-size:12px;color:#6b4c1d}
.lb-note .enc-actions{margin-top:8px}
.lb-note.done{opacity:.6;border-left-color:#4f7a3c}
.lb-note.done .lb-t{text-decoration:line-through}
.br-sec{margin-top:10px}
.br-sec .dir-sec-title{margin-bottom:4px}
.br-line{padding:7px 10px;margin-top:5px;border:1px solid #2f4536;border-radius:6px;background:#0a1712;color:#e9d9ad;font-size:14.5px;line-height:1.35}
.br-line.bad{border-color:#8a3a2a;background:#2a0f0a;color:#f1d2c6}
.br-hi{font:bold 19px var(--f-sc);color:#f0d278;margin:2px 0 4px}
/* Estadísticas */
.st-paper{padding:12px 14px;border-radius:4px;background:linear-gradient(#efe0b4,#dcc28a);color:#2a1a0d;box-shadow:inset 0 0 0 1px #7a5a22,inset 0 0 0 4px #efe0b4,inset 0 0 0 5px #7a5a22,0 6px 18px #000a;margin-bottom:12px}
.st-paper .dir-sec-title{color:#6b4c1d;border-color:#7a5a22;text-shadow:none;background:linear-gradient(90deg,#7a5a22,#7a5a2200) left bottom/100% 1px no-repeat;margin-top:12px}
.st-paper .dir-sec-title:first-child{margin-top:0}
.st-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
@media(min-width:700px){.st-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.st-kpi{padding:8px;border:1px solid #b89a5a;border-radius:6px;background:rgba(255,248,225,.45);text-align:center}
.st-kpi small{display:block;font-size:11px;letter-spacing:.06em;color:#6b4c1d}
.st-kpi b{display:block;font-size:19px;color:#1b3022;margin-top:2px}
.st-kpi i{display:block;font-style:normal;font-size:12px;margin-top:2px}
.st-up{color:#2e6b1f}.st-dn{color:#8a1d10}.st-eq{color:#6b4c1d}
.st-bar{display:grid;grid-template-columns:minmax(0,9em) 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:14px}
.st-bar .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'IM Fell English',Georgia,serif;color:#24324a}
.st-bar .b{height:14px;border:1px solid #3b2a14;border-radius:2px;background:linear-gradient(90deg,#8a6414,#b8892a);min-width:2px}
.st-bar .v{font-weight:bold;white-space:nowrap;color:#2a1a0d;font-size:13px}
.st-hours{display:flex;align-items:flex-end;gap:2px;height:110px;padding:4px 0 0;border-bottom:1.5px solid #3b2a14}
.st-hours div{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.st-hours span{display:block;width:100%;background:linear-gradient(#b8892a,#8a6414);border:1px solid #3b2a14;border-bottom:0;border-radius:2px 2px 0 0}
.st-hl{display:flex;gap:2px;font-size:10px;color:#6b4c1d}
.st-hl span{flex:1;text-align:center}
.st-note{font-size:12.5px;font-style:italic;color:#6b4c1d;margin:4px 0 0}
/* Buscador del tutorial */
.tut-search{position:sticky;top:0;z-index:3;margin:0 0 10px;padding:6px 0;background:inherit}
.tut-search input{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:8px;border:1px solid #b88931;background:#0b0704ee;color:#f3e2b0;font:inherit;font-size:16px}
.tut-search small{display:block;margin-top:4px;color:#d9ccaa;font-size:12.5px;min-height:1em}
#tutBody details.tut[hidden]{display:none}
#tutBody mark{background:#f0d27866;color:inherit;border-radius:2px;padding:0 1px}
@media(min-width:700px){.seg.seg4{grid-template-columns:repeat(4,1fr)}}
/* Estado de Discord */
.dch-box{margin:0 0 12px;padding:10px 12px;border:1px solid #8a3a2a;border-radius:7px;background:#2a0f0a;color:#f1d2c6}
.dch-box b{color:#ffd9c9}
.dch-line{padding:5px 0;border-bottom:1px dashed #8a3a2a66;font-size:14px;line-height:1.35}
.dch-line:last-of-type{border-bottom:0}
.dch-ok{margin:0 0 12px;padding:8px 12px;border:1px solid #4f7a3c;border-radius:7px;background:rgba(40,70,30,.35);color:#dfeccd;font-size:14px}
/* Márgenes */
.mg-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:7px 0;border-bottom:1px dashed #2f4536;font-size:14px}
.mg-row:last-child{border-bottom:0}
.mg-row .n{font-weight:bold;color:#f0e2bd;overflow-wrap:anywhere}
.mg-row .p{text-align:right;font-weight:bold;white-space:nowrap}
.mg-row small{grid-column:1/-1;color:#bfae86;font-size:12.5px;line-height:1.35}
.mg-bad{color:#ff9d8a}.mg-low{color:#f0c27a}.mg-ok{color:#9fd884}
/* Historial de cambios */
.au-row{padding:9px 11px;margin-top:6px;border:1px solid #2f4536;border-left:4px solid #8b6a2e;border-radius:6px;background:#0a1712}
.au-row .au-h{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12.5px;color:#bfae86}
.au-row .au-h b{color:#f0d278;font-size:14px}
.au-row ul{margin:4px 0 0;padding-left:18px;color:#e9d9ad;font-size:14px;line-height:1.4}
.au-cat{display:inline-block;padding:1px 7px;border-radius:9px;border:1px solid #8b6a2e;font-size:11px;letter-spacing:.04em;color:#f3d79a}
.au-filt{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.au-filt button{padding:7px 10px;border-radius:14px;border:1px solid #76633e;background:#242522;color:#eee1c6;font:inherit;font-size:12.5px;cursor:pointer}
.au-filt button.on{background:#5a4213;border-color:#d2a733;color:#fff3c4}
/* Productos que aún no tienen precio */
.product.noprice .price{color:#f0c27a;font-size:12px;letter-spacing:.05em;font-family:var(--f-sc)}
.product.noprice .qty{opacity:.45}
/* ===== Eventos: cartel de sorteo ===== */
.ev-plates{display:grid;gap:8px;margin:10px 0 0}
.ev-plate{position:relative;display:block;width:100%;padding:12px 14px 12px 16px;border:3px double #5a3a14;border-radius:6px;background:radial-gradient(circle at 20% 10%,#f6e7bf,#e3c98f 60%,#cfae6c);box-shadow:0 6px 18px #0009,inset 0 0 24px #7a4f1a55;color:#2a1a0d;font:inherit;text-align:left;cursor:pointer;overflow:hidden}
.ev-plate small{display:block;font-size:11px;letter-spacing:.14em;color:#6b4c1d;padding-right:84px}
.ev-plate b{display:block;font-family:'Cinzel Decorative',Georgia,serif;font-size:21px;letter-spacing:.04em;color:#3b1d08;margin:2px 0}
.ev-plate span{font-size:13px;color:#3a2410}
.ev-plate span b{display:inline;font-family:inherit;font-size:inherit;letter-spacing:0;color:#8d2a16}
.ev-plate .ev-rib{position:absolute;top:10px;right:-30px;transform:rotate(35deg);background:#8d2a16;color:#f6e7bf;font:700 11px/1 Georgia,serif;font-style:normal;letter-spacing:.12em;padding:5px 34px;box-shadow:0 2px 6px #0007}
.ev-plate.done .ev-rib{background:#1b3022}
.ev-plate.done{animation:evGlow 2.4s ease-in-out infinite}
@keyframes evGlow{0%,100%{box-shadow:0 6px 18px #0009,inset 0 0 24px #7a4f1a55}50%{box-shadow:0 6px 26px #e8b923aa,inset 0 0 24px #7a4f1a55}}
@media (prefers-reduced-motion:reduce){.ev-plate.done{animation:none}}
html.lite .ev-plate.done{animation:none}
.ev-poster{text-align:center;padding:14px 12px;margin:0 0 10px;border:3px double #5a3a14;border-radius:6px;background:radial-gradient(circle at 30% 10%,#f6e7bf,#d9bc7e);color:#2a1a0d}
.ev-poster small{display:block;font-size:10px;letter-spacing:.18em;color:#6b4c1d}
.ev-poster .ev-h{font-family:'Cinzel Decorative',Georgia,serif;font-size:30px;letter-spacing:.12em;color:#8d2a16;margin:4px 0}
.ev-poster .ev-arma{font-family:'Cinzel Decorative',Georgia,serif;font-size:20px;color:#3b1d08}
.ev-poster .ev-st{display:inline-block;margin-top:8px;padding:3px 10px;border:2px solid #3b1d08;border-radius:3px;font:700 12px Georgia,serif;letter-spacing:.14em;transform:rotate(-3deg)}
.ev-win{margin:12px 0 8px;padding:12px;border:2px double #e8b923;border-radius:8px;background:linear-gradient(120deg,#3a2606,#1a1206);text-align:center}
.ev-win small{display:block;color:#e2c26a;font-size:11px;letter-spacing:.16em}
.ev-win b{display:block;font-family:'Cinzel Decorative',Georgia,serif;font-size:22px;color:#ffe08a;margin:4px 0}
.ev-win span{display:block;color:#e9d49a;font-size:13px}
.ev-win span b{display:inline;font-family:inherit;font-size:inherit;color:#fff}
.ev-win .ev-num{display:inline-block;margin:4px 0 8px;padding:4px 14px;border:2px dashed #e8b923;border-radius:30px;font:700 22px Georgia,serif;color:#ffe08a}
.ev-win.bad{border-color:#8d2a16}
.reg-line.ev-me{background:#e8b92322;border-radius:4px}
.ev-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
/* Registro IC de armas */
.ic-plate[hidden],.ev-plates[hidden]{display:none}
.ser-ic{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:13px;color:#cfe6d4;padding:2px 2px 4px}
.ser-ic input{width:20px;height:20px;accent-color:#2e9e5b}
.ser-ic.pend{color:#f0a37a}
.ser-l .ser-ic{margin-top:4px}
.ic-note{margin:0 0 10px;padding:8px 10px;border:1px solid #8d2a16;border-radius:6px;background:#3a0f0a88;color:#f6d2c4;font-size:13px}
.cf-arma.ic-no{border-color:#c0392b;box-shadow:0 0 0 1px #c0392b55 inset}
.ic-plate{display:flex;align-items:center;gap:12px;width:100%;margin:10px 0 0;padding:10px 14px;border:2px solid #c0392b;border-radius:8px;background:linear-gradient(100deg,#3a0f0a,#1a0806);color:#f6d2c4;font:inherit;text-align:left;cursor:pointer;box-shadow:0 6px 18px #0008}
.ic-plate small{display:block;font-size:11px;letter-spacing:.14em;color:#f0a37a}
.ic-plate b{display:block;font-family:'Cinzel Decorative',Georgia,serif;font-size:18px;color:#ffd7c4}
.ic-plate span{font-size:12.5px}
.ic-plate .ic-warn{flex:0 0 34px;height:34px;border-radius:50%;background:#c0392b;color:#fff;font:700 22px/34px Georgia,serif;text-align:center}
/* Dirección: contadores y últimos usados */
.mod-card.has-b.bad{border-color:#c0392b}
.mod-card.has-b.pend{border-color:#b8862f}
.mod-b{display:inline-block;margin-top:5px;padding:2px 8px;border-radius:20px;font-size:11.5px;letter-spacing:.03em;font-weight:700}
.mod-b.bad{background:#c0392b;color:#fff}
.mod-b.pend{background:#e0a33a;color:#2a1a0d}
.mod-b.info{background:#2e6e4a;color:#e9f6ee}
.sec-b{margin-left:auto;margin-right:8px;min-width:22px;height:22px;padding:0 7px;border-radius:11px;font:700 12px/22px Georgia,serif;text-align:center}
.sec-b.bad{background:#c0392b;color:#fff}.sec-b.pend{background:#e0a33a;color:#2a1a0d}.sec-b.info{background:#2e6e4a;color:#fff}
.dir-rec{margin:0 0 10px}
.dir-rec-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.rec-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border:1px solid #5d4928;border-radius:8px;background:#0a1712;color:#e9d49a;font:600 10.5px/1.2 Georgia,serif;letter-spacing:.03em;text-align:center;cursor:pointer}
.rec-btn .mod-ico{width:24px;height:24px}
.rec-btn i{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:#e0a33a;color:#2a1a0d;font:700 11px/18px Georgia,serif;font-style:normal}
.rec-btn.bad i{background:#c0392b;color:#fff}.rec-btn.info i{background:#2e6e4a;color:#fff}
@media(max-width:420px){.dir-rec-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ph-ver{margin:0 0 10px;border:2px solid #8b6a2e;border-radius:10px;background:#0d1c15;padding:0 8px 4px}
.ph-ver>summary{display:flex;align-items:baseline;gap:10px;padding:12px 4px;cursor:pointer;list-style:none}
.ph-ver>summary::-webkit-details-marker{display:none}
.ph-ver>summary b{font-family:'Cinzel Decorative',Georgia,serif;font-size:17px;color:#ffe08a;letter-spacing:.06em}
.ph-ver>summary small{color:#a89366;font-size:12px}
.ph-card{margin:0 0 8px;border:1px solid #5d4928;border-radius:8px;background:#0a1712;padding:0 10px}
.ph-card summary{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;list-style:none}
.ph-card summary::-webkit-details-marker{display:none}
.ph-card .ph-n{flex:0 0 auto;min-width:38px;padding:2px 6px;border-radius:5px;background:#c9a24a;color:#2a1a0d;font:700 13px Georgia,serif;text-align:center}
.ph-card summary span{flex:1;color:#f3e2b0;font-weight:700}
.ph-card summary small{color:#a89366;font-size:12px}
.ph-card ul{margin:0 0 8px;padding-left:20px;color:#e9d49a;font-size:13.5px}
.ph-card li{margin:3px 0}
/* Tablón y campanita */
.tablon{margin:10px 0 0}
.tablon>*:not(.tb-chips){margin-top:0}
.tb-off{display:none!important}
.tb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.tb-chips[hidden]{display:none}
.tb-chip{padding:6px 12px;border:1px solid #5d4928;border-radius:20px;background:#0a1712;color:#e9d49a;font:600 12.5px Georgia,serif;cursor:pointer}
.tb-chip.on{background:#c9a24a;border-color:#c9a24a;color:#2a1a0d}
.tb-chip.bad{border-color:#c0392b;color:#ffb4a6}.tb-chip.bad.on{background:#c0392b;color:#fff}
.tb-chip.ev{border-color:#8d2a16}
.bell-btn{position:relative}
.bell-btn b{display:inline-block;margin-left:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e0a33a;color:#2a1a0d;font:700 11px/18px Georgia,serif}
.bell-btn.bad b{background:#c0392b;color:#fff}
@media (prefers-reduced-motion:no-preference){.bell-btn.bad{animation:bellShake 4s ease-in-out infinite}}
@keyframes bellShake{0%,90%,100%{transform:none}92%{transform:rotate(-8deg)}94%{transform:rotate(8deg)}96%{transform:rotate(-5deg)}98%{transform:rotate(4deg)}}
html.lite .bell-btn.bad{animation:none}
/* Formularios largos de Dirección: el botón de guardar se queda fijo abajo */
#dirModal .enc-actions:has(> [data-dir="cl-save"]),#dirModal .enc-actions:has(> [data-dir="pv-save"]),#dirModal .enc-actions:has(> [data-dir="ev-create"]),#dirModal .enc-actions:has(> [data-dir="np-emit"]),#dirModal .enc-actions:has(> [data-dir="fab-save"]),#dirModal .enc-actions:has(> [data-dir="price-save"]),#dirModal .enc-actions:has(> [data-dir="stock-save"]),#dirModal .enc-actions:has(> [data-dir="fq-save"]){position:sticky;bottom:0;z-index:5;margin-left:-6px;margin-right:-6px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(rgba(10,24,18,0),#0a1812 30%);}
body.has-mnav #dirModal .enc-actions:has(> [data-dir="cl-save"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="pv-save"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="ev-create"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="np-emit"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="fab-save"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="price-save"]),body.has-mnav #dirModal .enc-actions:has(> [data-dir="stock-save"]),#dirModal .enc-actions:has(> [data-dir="fq-save"]){bottom:0}
/* Pestañas de las fichas */
.cf-line.ic-line{flex-wrap:wrap;gap:6px}
.cf-line.ic-line>div{flex:1 1 100%}
.cf-arma.ic-no .ic-line b{color:#a8321c}
.ftabs{display:flex;gap:4px;margin:0 0 10px;padding:3px;border-radius:8px;background:rgba(60,38,12,.18);overflow-x:auto}
.ftab{flex:1 1 auto;min-width:0;padding:7px 4px;border:0;border-radius:6px;background:transparent;color:#5a3c14;font:700 11.5px Georgia,serif;letter-spacing:0;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ftabs{gap:2px}
.ftab i{font-size:10px!important;min-width:15px!important;padding:0 4px!important}
.ftab i{font-style:normal;display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:rgba(90,60,20,.18);font-size:11px}
.ftab.on{background:#3b2410;color:#f3e2b0}
.ftab.on i{background:#c9a24a;color:#2a1a0d}
.ftab.bad{color:#a8321c}.ftab.bad i{background:#c0392b;color:#fff}.ftab.bad.on{background:#7a1608;color:#fff}
.fpane[hidden]{display:none}
/* Un solo código de colores: rojo = urgente o pérdida, ámbar = pendiente, verde = hecho o ganancia, dorado = acción principal */
.neg,.pay-err,.mg-bad,.void-tag,.lowtag{color:var(--st-bad)}
.void-tag,.lowtag{border-color:var(--st-bad-s)}
.mg-low{color:var(--st-pend)}.mg-ok{color:var(--st-ok)}
.dot.g{background:var(--st-ok-s);color:var(--st-ok-s)}.dot.a{background:var(--st-pend-s);color:var(--st-pend-s)}.dot.r{background:var(--st-bad-s);color:var(--st-bad-s)}
.mod-b.bad,.sec-b.bad,.rec-btn.bad i,.bell-btn.bad b,.ftab.bad i,.ic-plate .ic-warn{background:var(--st-bad-s)}
.mod-b.pend,.sec-b.pend,.rec-btn i,.bell-btn b{background:var(--st-pend-s)}
.mod-b.info,.sec-b.info,.rec-btn.info i{background:var(--st-ok-s)}
.mod-card.has-b.bad,.tb-chip.bad,.ic-plate,.cf-arma.ic-no{border-color:var(--st-bad-s)}
.mod-card.has-b.pend{border-color:var(--st-pend-s)}
.tb-chip.bad.on{background:var(--st-bad-s)}
.tb-chip.on,.ph-card .ph-n{background:var(--st-gold);border-color:var(--st-gold)}
.rc-ic b{color:#a8321c}
.ph-tag{display:block;font-size:11px;font-weight:700;margin-top:2px}.ph-tag.up{color:var(--st-bad-s)}.ph-tag.down{color:#1e7a45}
.repo-box{margin:8px 0 12px;padding:10px;border:1px dashed #b8862f;border-radius:8px}
.mi-week{margin:10px 0 12px;padding:10px;border:1px solid #5d4928;border-radius:8px;background:#0a1712;text-align:left}
.mw-bar{height:12px;border-radius:6px;background:#1f2e25;overflow:hidden;margin:4px 0 8px}
.mw-bar i{display:block;height:100%;background:linear-gradient(90deg,#b8862f,#e0a33a)}
.mw-bar i.ok{background:linear-gradient(90deg,#2e9e5b,#5ccf86)}
.mw-row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:13.5px;color:#e9d49a}
.mw-row.tot{border-top:1px dashed #5d4928;margin-top:4px;padding-top:6px;font-size:15px}
.mw-row.tot b{color:#ffe08a}
.ev-cdbox{display:flex;align-items:baseline;gap:8px;margin-top:6px}
.ev-cdbox small{padding:0!important;font-size:10.5px!important}
.ev-plate .ev-cd{display:inline!important;font:700 20px Georgia,serif!important;letter-spacing:.04em!important;color:#8d2a16!important}
.ev-plate.soon{animation:evGlow 1.6s ease-in-out infinite}
.ev-plate.soon .ev-cdbox small{color:#8d2a16;font-weight:700}
@media (prefers-reduced-motion:reduce){.ev-plate.soon{animation:none}}
html.lite .ev-plate.soon{animation:none}
/* Cartel de la fachada: el nombre siempre cabe en la placa y va centrado */
.g-sign{justify-items:center;align-items:center}
.g-sign span{display:block;text-align:center;line-height:1;letter-spacing:.02em;justify-self:center;align-self:center;transform:translateY(4%)}
.dash-go{font:inherit;text-align:left;cursor:pointer;color:inherit}
.dash-go:hover,.dash-go:focus-visible{border-color:var(--st-gold);box-shadow:0 0 0 1px var(--st-gold) inset}
.dash-card.dash-bad{border-color:var(--st-bad-s)}
.fb-chart{margin:0 0 12px;padding:10px;border:1px solid #5d4928;border-radius:8px;background:#0a1712}
.fbc-row{display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr) auto;align-items:center;gap:8px;padding:3px 0;font-size:12.5px;color:#e9d49a}
.fbc-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbc-bar{position:relative;height:14px;border-radius:3px;background:#13241b}
.fbc-bar em{position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:#8b6a2e}
.fbc-bar i{position:absolute;top:0;bottom:0;border-radius:3px}
.fbc-bar i.pos{background:var(--st-ok-s)}.fbc-bar i.neg{background:var(--st-bad-s)}
.fbc-row b{font-size:12px;min-width:64px;text-align:right}
.fbc-leg{display:flex;justify-content:space-between;margin:4px 0 0 calc(34% + 8px);padding-right:72px;font-size:10.5px;color:#a89366}
.pg-x{display:none!important}
.pg-more{margin:8px 0}
.pr-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed #2f4536}.pr-row small{display:block;font-size:12.5px;color:#cbb886}

/* ===== Parche final V1: NPC, recuento, fabricar, auditoría y clientes ===== */
.npc-plate{border-color:#b9770e;background:linear-gradient(100deg,#3a250a,#1a1006)}
.npc-plate .ic-warn{background:#b9770e}
.npc-row{display:grid;grid-template-columns:1fr 76px 92px;gap:8px;align-items:end;padding:7px 0;border-bottom:1px dashed #2f4536}
.npc-row small{display:block;font-size:12.5px;color:#cbb886}.npc-row label{font-size:11px;letter-spacing:.08em}.npc-row .min-in{width:100%}
@media(max-width:420px){.npc-row{grid-template-columns:1fr 64px 80px}}
.fab-emp{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #2f4536}
.fab-emp small{display:block;font-size:12.5px;color:#cbb886}.fab-emp button{flex:0 0 auto;white-space:nowrap;padding:10px 12px;min-height:44px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#80601f,#3a2a0c);color:#fff0b6;font-weight:bold;cursor:pointer;font-family:inherit;letter-spacing:.04em}.fab-emp button:disabled{opacity:.45;cursor:not-allowed}.fab-emp.off{opacity:.6}
.mat-acts{margin-bottom:10px}
.pr-row .min-in,.npc-row .min-in,#invModal .min-in{display:inline-block;width:76px;min-height:38px;margin:0;padding:4px 8px;border:1px solid #6d5430;border-radius:6px;background:#0d0905;color:var(--ink);font-size:16px;text-align:center}
#invModal label select{width:100%}
.inc-open{border-left:4px solid #d08a1e}
.inc-nota{margin:8px 0 0}
.seg.seg3 button{padding-left:4px;padding-right:4px;font-size:clamp(11px,3.1vw,14px);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis}
.aud-f select{width:100%}
.g-cli{display:flex;flex-direction:column;align-items:center;gap:4px;width:min(520px,100%);margin:26px auto 0;padding:16px 18px 18px;border:2px solid #8b6a2e;border-radius:12px;background:linear-gradient(160deg,#2a1c0d,#0d1c14);color:#f3d47c;text-decoration:none;box-shadow:0 6px 22px #000b,inset 0 0 26px #d7ae5418;transition:transform .2s,box-shadow .2s}
.g-cli:hover,.g-cli:focus-visible{transform:translateY(-2px);box-shadow:0 10px 28px #000c,0 0 18px #d7ae5455}
.g-cli svg{width:min(260px,70%);height:auto;color:#d7ae54}
.g-cli b{font-family:'Cinzel Decorative',Georgia,serif;font-size:24px;letter-spacing:.08em}
.g-cli span{font:italic 14px/1.35 'IM Fell English',Georgia,serif;color:#cfe0cf;text-align:center}


/* ===== V2 · Pantallas táctiles (móvil y tableta): botones cómodos para el dedo ===== */
@media(pointer:coarse){
 .enc-head button{min-height:40px;min-width:64px}
 #clear{min-height:40px}
 .qty .quick button{min-height:38px}
 .au-filt button{min-height:40px}
 details.mg-det>summary{min-height:40px;display:flex;align-items:center}
 .wh-row label.chk input,#dirBody input[type=checkbox]{width:24px;height:24px}
 .stock-cats .cat-btn{min-height:40px}
 .seg button{min-height:42px}
}
/* ===== V2 · Letra legible: nada por debajo de 11 px ===== */
.pname small,.dash-card small,.lowtag{font-size:11px}
@media(max-width:650px){.carthead{font-size:11px}}

/* ===== V3 · Harrington AI (asistente por voz) ===== */
.ai-fab{position:fixed;left:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:31;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2px solid #e3c26a;background:radial-gradient(circle at 35% 30%,#a07a2c,#3a2a0c 70%);color:#fff0b6;cursor:pointer;box-shadow:inset 0 1px 0 #f3d47c88,0 6px 18px #000d;-webkit-tap-highlight-color:transparent}
.ai-fab svg{width:26px;height:26px;stroke:#fff3c4;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-fab:after{content:'AI';position:absolute;right:-4px;top:-4px;min-width:20px;height:18px;padding:0 4px;border-radius:9px;background:#0d281d;border:1px solid #e3c26a;color:#f3d47c;font:bold 10px/16px Georgia,serif;letter-spacing:.06em}
.ai-fab:active{transform:scale(.96)}
body:not(.has-me) .ai-fab,body.gate-open .ai-fab{display:none}
body:not(.ai-on) .ai-fab{display:none!important}
@media(max-width:900px){body.has-mnav .ai-fab{bottom:calc(74px + env(safe-area-inset-bottom,0px))}body.has-mnav.has-bar .ai-fab{bottom:calc(152px + env(safe-area-inset-bottom,0px))}}
.ai-panel{display:flex;flex-direction:column;max-height:min(92vh,760px)}
.ai-box{margin:10px 0 12px;padding:10px 12px;border:1px solid #b88931;border-radius:8px;background:linear-gradient(135deg,rgba(24,54,38,.95),rgba(10,24,18,.97));box-shadow:inset 0 0 0 1px rgba(227,194,106,.14),0 2px 8px rgba(0,0,0,.35);text-align:left}
.ai-box.compact{margin:6px 0 10px;padding:8px 10px}
.ai-sale{margin:8px 0 4px}.ai-sale[hidden]{display:none}.ai-sale .ai-box{margin:0}
.ai-rc .ai-box{margin:10px 0 0}
.ai-cli{grid-column:1/-1}.ai-cli[hidden]{display:none}.ai-cli .ai-box{margin:0}
.ai-box-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#f3d47c;font-family:var(--f-sc);letter-spacing:.12em;font-size:13px}
.ai-box-h small{letter-spacing:.02em;color:#c9b27a;font-size:12.5px;opacity:.9;text-transform:none}
.ai-seal{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#a07a2c,#3a2a0c 70%);border:1px solid #e3c26a;color:#fff3c4;font:bold 13px/1 Georgia,serif;letter-spacing:0}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px}
.ai-chip{min-height:38px;padding:6px 12px;border:1px solid #8b6a2e;border-radius:19px;background:#0d1c14;color:#f0d278;font-size:14px;line-height:1.2;cursor:pointer;text-align:left}
.ai-chip:hover{border-color:#e3c26a}.ai-chip.on{border-color:#e3c26a;background:#1d3a28}.ai-chip:disabled{opacity:.55;cursor:default}
.ai-ask{display:flex;gap:6px;margin-top:8px}
.ai-ask input{flex:1 1 auto;min-width:0;min-height:42px;padding:0 10px;border:1px solid #8b6a2e;border-radius:6px;background:#0b140f;color:#f6e7bf;font-size:16px}
.ai-ask button,.ai-out-acts button{flex:0 0 auto;min-height:42px;padding:0 12px;border:1px solid #b88931;border-radius:6px;background:linear-gradient(#1b2a1a,#0a1812);color:#f3e2b0;font-weight:bold;font-size:13px;cursor:pointer}
.ai-out-acts .primary{background:linear-gradient(#1b6c16,#0a430b);border-color:#d2a733;color:#fff7c9}
.ai-ask button:disabled{opacity:.55;cursor:default}
.ai-out{margin-top:10px;padding:10px 12px;border-radius:6px;background:#f3e8cc;color:#2b1d0e;border:1px solid #c9a54e;white-space:pre-line;line-height:1.5;font-size:15px;overflow-wrap:anywhere;max-height:420px;overflow-y:auto}
.ai-out.busy{background:transparent;color:#d9c79a;border-style:dashed;border-color:#8b6a2e}
.ai-out.err{background:#2a1210;color:#ffd8cf;border-color:#a8453c}
.ai-out-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ai-quill{display:inline-block;animation:aiQuill 1.1s ease-in-out infinite}
@keyframes aiQuill{0%,100%{transform:translateX(0) rotate(-10deg)}50%{transform:translateX(7px) rotate(8deg)}}
@media (prefers-reduced-motion:reduce){.ai-quill{animation:none}}
.ai-head-btns{display:flex;gap:8px;align-items:center}
.ai-snd{min-width:44px;min-height:40px;border:1px solid #8b6a2e;border-radius:8px;background:#0d1c14;color:#f0d278;font-size:18px;cursor:pointer}
.ai-snd.off{opacity:.55}
.ai-log{flex:1 1 auto;min-height:180px;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(#0b140f,#0a1812)}
.ai-msg{max-width:88%;padding:10px 13px;border-radius:12px;line-height:1.45;font-size:15px;white-space:pre-line;overflow-wrap:anywhere}
.ai-msg.u{align-self:flex-end;background:#2a1c0d;border:1px solid #8b6a2e;color:#f6e7bf;border-bottom-right-radius:3px}
.ai-msg.a{align-self:flex-start;background:#0f2a1e;border:1px solid #3d6b4f;color:#e9dec2;border-bottom-left-radius:3px}
.ai-msg.a b.ai-who{display:block;font-family:var(--f-sc);font-size:12px;letter-spacing:.14em;color:#d7ae54;margin-bottom:2px}
.ai-msg.ok{border-color:#6fa86c}
.ai-msg.err{border-color:#a8453c;background:#2a1210}
.ai-msg.ask{border-color:#d7ae54}
.ai-st{min-height:24px;padding:4px 14px;font-family:var(--f-sc);font-size:13px;letter-spacing:.08em;color:#c9b27a;border-top:1px solid #3a2c16}
.ai-st.listen{color:#ffb4a8}
.ai-st.listen:before{content:'';display:inline-block;width:9px;height:9px;margin-right:7px;border-radius:50%;background:#e2483c;animation:aiPulse 1s infinite}
.ai-st.think:before{content:'⚙ ';display:inline-block;animation:aiSpin 1.4s linear infinite}
@keyframes aiPulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes aiSpin{to{transform:rotate(360deg)}}
.ai-in{display:flex;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid #8b6a2e;background:#120d08}
.ai-in input{flex:1 1 auto;min-width:0;min-height:44px;padding:0 12px;border:1px solid #8b6a2e;border-radius:8px;background:#0b140f;color:#f6e7bf;font-size:16px}
.ai-in .primary{min-height:44px;padding:0 14px}
.ai-mic{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:2px solid #e3c26a;background:radial-gradient(circle at 35% 30%,#a07a2c,#3a2a0c 70%);cursor:pointer}
.ai-mic svg{width:24px;height:24px;stroke:#fff3c4;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ai-mic.on{background:radial-gradient(circle at 35% 30%,#d9574a,#5a1410 70%);border-color:#ffb4a8;box-shadow:0 0 0 0 #e2483c88;animation:aiRing 1.2s infinite}
.ai-mic[disabled]{opacity:.45;cursor:not-allowed}
@keyframes aiRing{0%{box-shadow:0 0 0 0 #e2483c88}100%{box-shadow:0 0 0 14px #e2483c00}}
.ai-tips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px;background:#120d08}
.ai-tips button{min-height:34px;padding:4px 10px;border:1px solid #5b4521;border-radius:16px;background:#0d1c14;color:#d9c79a;font-size:13px;cursor:pointer}
@media(max-width:650px){.ai-msg{max-width:94%;font-size:15px}.ai-log{padding:10px}}
@media(prefers-reduced-motion:reduce){.ai-mic.on,.ai-st.listen:before,.ai-st.think:before{animation:none}}
/* ===== V2 · Modo mostrador (tableta fija en la tienda) ===== */
.most{position:fixed;inset:0;z-index:58;display:flex;flex-direction:column;background:linear-gradient(rgba(5,12,9,.86),rgba(3,8,6,.94)),url(textura-cuero.webp) 0 0/300px,#050d09;color:var(--ink);padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}
.most[hidden]{display:none}
.most-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:2px solid #8b6a2e;background:linear-gradient(#2a1c0d,#120b06)}
.most-head b{font-family:'Cinzel Decorative',Georgia,serif;color:var(--gold2);font-size:20px;letter-spacing:.08em}
.most-head span{flex:1;color:#cbb886;font-size:14px}
.most-head button{min-height:44px;padding:8px 14px;border-radius:6px;font-weight:bold;cursor:pointer;font-family:inherit}
.most-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px}
.most-cat{display:flex;flex-direction:column;min-height:0;min-width:0;padding:10px 12px;gap:8px}
.most-side{min-width:0}
.most-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;flex:none}
.most-chips button{flex:none;min-height:42px;padding:8px 14px;border-radius:999px;border:1px solid #5d4928;background:#1a120b;color:var(--ink);font-family:inherit;font-size:14px;letter-spacing:.04em;cursor:pointer}
.most-chips button.on{border-color:var(--gold2);background:linear-gradient(#80601f,#3a2a0c);color:#fff0b6}
#mostQ{flex:none;min-height:44px;padding:8px 12px;border-radius:8px;border:1px solid #5d4928;background:#040b08;color:var(--ink);font:inherit;font-size:16px}
.most-grid{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;align-content:start;padding:2px 2px 12px}
.most-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:150px;padding:12px 8px;border:1px solid #3b2c17;border-radius:10px;background:linear-gradient(160deg,#16231a,#0b130e);color:var(--ink);font-family:inherit;cursor:pointer;text-align:center;transition:transform .12s,border-color .12s}
.most-tile:active{transform:scale(.97)}
.most-tile img{width:72px;height:52px;object-fit:contain}
.most-tile b{font-size:15px;line-height:1.2}
.most-tile .pr{color:var(--gold2);font-weight:bold;font-size:16px}
.most-tile.on{border-color:var(--gold);box-shadow:0 0 0 1px #8b6a2e,0 0 14px #d7ae5444}
.most-tile .q{position:absolute;top:6px;right:6px;min-width:30px;height:30px;padding:0 6px;border-radius:15px;background:var(--gold);color:#1a1006;font-weight:bold;line-height:30px;font-size:15px}
.most-tile.off{opacity:.45;cursor:not-allowed}
.most-tile .ag{font-size:12px;color:#f0a58f;letter-spacing:.08em}
.most-side{display:flex;flex-direction:column;min-height:0;border-left:2px solid #8b6a2e;background:linear-gradient(#120d08ee,#08110ccc);padding:10px 12px;gap:8px}
.most-cli{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.most-cli label{display:block;font-size:11px;letter-spacing:.1em;color:#f0d278;font-weight:bold}
.most-cli input,.most-cli select{display:block;width:100%;min-height:44px;margin-top:3px;padding:8px 10px;border-radius:6px;border:1px solid #5d4928;background:#040b08;color:var(--ink);font:inherit;font-size:16px}
.most-list{flex:1;min-height:0;overflow-y:auto}
.most-line{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;padding:8px 0;border-bottom:1px dashed #2f4536}
.most-line b{font-size:15px}.most-line small{color:#cbb886}
.most-q{display:flex;align-items:center;gap:6px}
.most-q button{width:42px;height:42px;border-radius:8px;border:1px solid #8b6a2e;background:#1a120b;color:var(--gold2);font-size:20px;cursor:pointer}
.most-q span{min-width:28px;text-align:center;font-weight:bold;font-size:17px}
.most-empty{color:#a99a7d;text-align:center;padding:30px 6px;font-style:italic}
.most-tot{display:flex;justify-content:space-between;align-items:baseline;padding:10px 4px;border-top:2px solid #8b6a2e;font-size:15px}
.most-tot b{font-size:26px;color:var(--gold2)}
.most-go{min-height:58px;border-radius:8px;border:2px solid #e3c26a;background:linear-gradient(#b38a2e,#6a4c14);color:#fff6d6;font-family:'Cinzel Decorative',Georgia,serif;font-size:19px;letter-spacing:.06em;cursor:pointer}
.most-go.not-ready{border-color:#6d5430;background:#1a120b;color:#cbb886;font-family:inherit;font-size:15px}
.most-clear{min-height:40px;border-radius:6px;border:1px solid #6b1818;background:#1a0806;color:#f0b0a0;cursor:pointer;font-family:inherit}
@media(max-width:900px){.most-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.most-side{border-left:0;border-top:2px solid #8b6a2e;max-height:46vh}.most-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}
@media(max-width:699px){.most-btn{display:none!important}}
/* ===== V2 · Aplicación instalable ===== */
.app-dl{display:flex;align-items:center;gap:12px;margin:16px auto 4px;padding:10px 18px 10px 12px;border:2px solid var(--gold);border-radius:10px;background:linear-gradient(#2a1c0d,#0d1c14);color:var(--gold2);cursor:pointer;font-family:inherit;text-transform:none;letter-spacing:normal;box-shadow:0 4px 16px #000a,inset 0 0 18px #d7ae5418;transition:transform .2s,box-shadow .2s;min-height:52px}
.app-dl[hidden]{display:none}
.app-dl:hover,.app-dl:focus-visible{transform:translateY(-1px);box-shadow:0 6px 20px #000c,0 0 14px #d7ae5455}
.app-dl img{display:block;width:34px;height:34px;margin:0;opacity:1;border-radius:6px}
.app-dl span{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.app-dl b{font-family:'Cinzel Decorative',Georgia,serif;font-size:15px;letter-spacing:.06em}
.app-dl small{font-size:12px;color:#cbb886;letter-spacing:.02em}
.app-steps{margin:8px 0 0;padding-left:22px;line-height:1.55}.app-steps li{margin:6px 0}
.app-chrome{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:12px;border-radius:6px;border:1px solid #b88931;background:linear-gradient(#80601f,#3a2a0c);color:#fff0b6;font-weight:bold;text-decoration:none;letter-spacing:.06em}
.app-ico{display:block;width:84px;height:84px;margin:4px auto 10px;border-radius:16px;box-shadow:0 4px 14px #000a}


/* Fuente: barra-gestion.css */
/* Accesos de gestión · latón envejecido y cuero verde. Fichaje conserva sus estilos. */
.clock-actions>.management-nav{
 --nav-brass:#a68b52;--nav-ink:#eee2c7;
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
 flex:1 1 100%;width:100%;padding:12px;
 border:1px solid #8d744640;border-radius:4px;
 background:linear-gradient(120deg,#15251ec9,#07140fdd);
 box-shadow:inset 0 1px #d9be7b12,inset 0 -1px #0008;
}
.management-nav>.clock-link{
 display:flex;align-items:center;justify-content:flex-start;gap:11px;
 position:relative;min-width:0;min-height:58px;margin:0;padding:12px 15px;
 border:1px solid #96815873;border-radius:3px;
 background:linear-gradient(135deg,#1c3027,#10221a);
 color:var(--nav-ink);font-family:var(--f-sc,Georgia,serif);font-size:12px;
 font-weight:600;letter-spacing:.095em;line-height:1.35;text-align:left;
 box-shadow:inset 0 1px #eee2c711,inset 0 -1px #0009,0 2px 4px #0003;
 text-shadow:0 1px 1px #000a;
 transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
.management-nav>.clock-link[hidden]{display:none!important}
.management-nav>.clock-link .bi{display:none}
.management-nav>.clock-link::after{display:none}
.management-nav>.clock-link:not(#mostBtn)::before{
 content:"";display:block;flex:0 0 21px;width:21px;height:21px;
 background:#c9b17b;mask:var(--nav-icon) center/contain no-repeat;
 -webkit-mask:var(--nav-icon) center/contain no-repeat;
 opacity:.92;
}
.management-nav>.clock-link:hover{background:linear-gradient(135deg,#284236,#173024);border-color:#cfb77a;box-shadow:inset 0 1px #eee2c71c,0 3px 8px #0005;transform:translateY(-1px)}
.management-nav>.clock-link:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #0006}
.management-nav>.clock-link:focus-visible{outline:2px solid #f1d99c;outline-offset:3px}
.management-nav>#dirBtn{border-color:#bd9e5a;background:linear-gradient(135deg,#4b3d24,#2d2b1d);color:#f5dfac}
.management-nav>#dirBtn:hover{background:linear-gradient(135deg,#64502e,#3d3721)}
.management-nav>#hacerInventarioBtn{border-color:#a28a5d9c}
.management-nav>#bellBtn{font-size:0;width:auto;animation:none}
.management-nav>#bellBtn::after{content:"AVISOS";display:block;position:static;inset:auto;width:auto;height:auto;transform:none;background:none;font-size:12px;letter-spacing:.095em;transition:none}
.management-nav>#bellBtn b{position:absolute;top:6px;right:6px;margin:0;min-width:17px;height:17px;font-size:10px;line-height:17px}
.management-nav>#bellBtn.bad{border-color:#b77b60}
.management-nav>#dirBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 8 9-5 9 5H3ZM5 9v10m5-10v10m4-10v10m5-10v10M3 21h18M3 18h18'/%3E%3C/svg%3E")}
.management-nav>#hacerInventarioBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='1'/%3E%3Cpath d='M9 4V2h6v2M8 10l1 1 2-2m2 1h3M8 16l1 1 2-2m2 1h3'/%3E%3C/svg%3E")}
.management-nav>#encBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h10l4 4v14H5V3Zm9 0v5h5M8 12h8m-8 4h6'/%3E%3C/svg%3E")}
.management-nav>#pedBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 7 9-4 9 4v11l-9 4-9-4V7Zm0 0 9 4 9-4M12 11v11M7 5l10 4v5'/%3E%3C/svg%3E")}
.management-nav>#ausBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='1'/%3E%3Cpath d='M7 3v4m10-4v4M3 10h18m-12 4 6 4m0-4-6 4'/%3E%3C/svg%3E")}
.management-nav>#libroBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 3h13v17H4a2 2 0 0 1 0-4h13M4 3v13m4-9h6m-6 4h5M20 5v16'/%3E%3C/svg%3E")}
.management-nav>#bellBtn{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14l-2-3V9a5 5 0 0 0-10 0v5l-2 3Zm5 3h4M12 2v2'/%3E%3C/svg%3E")}
.clock-actions>.management-nav:has(>#dirBtn[hidden]){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(min-width:1100px){.clock-actions>.management-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:13px}.management-nav>.clock-link{min-height:62px;padding:13px 18px}}
@media(min-width:651px) and (max-width:850px){.clock-actions>.management-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.clock-actions>.management-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px}.management-nav>.clock-link{min-height:56px;padding:10px;gap:8px;font-size:11px;letter-spacing:.055em}.management-nav>#bellBtn::after{font-size:11px;letter-spacing:.055em}.management-nav>.clock-link:not(#mostBtn)::before{flex-basis:18px;width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.management-nav>.clock-link{transition:none}.management-nav>.clock-link:hover,.management-nav>.clock-link:active{transform:none}}
@media(max-width:650px){.clock-actions>.management-nav:has(>#dirBtn[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}.management-nav>#libroBtn{grid-column:1/-1}}
body.hc .management-nav>.clock-link{color:#fff;border-color:#e3c77f;background:#07140e}


/* Fuente: acceso-discord.css */
/* Acceso completo y desplazable, incluso con teclado móvil o pantalla pequeña. */
.g-bigwrap:has(#gPw:not([hidden])){justify-content:flex-start;overflow-y:auto;padding:clamp(12px,4vh,36px) 16px;overscroll-behavior:contain}
.g-bigwrap:has(#gPw:not([hidden])) .g-big{display:none}
.g-bigwrap #gPw{flex:none;width:min(400px,92vw);padding:20px;background:#0b1d16f5;border:1px solid #b79a58;border-radius:10px;box-shadow:0 8px 32px #0009;margin:auto 0;box-sizing:border-box}
#hgDiscordIdentidad{padding-bottom:12px;border-bottom:1px solid #b79a5855;margin-bottom:8px}
#hgDiscordIdentidad p{line-height:1.4;margin:8px 0}
#hgDiscordPedir{width:100%;border:1px solid #c9ac69;background:#273e32;color:#fff1c7}
#hgDiscordEstado{overflow-wrap:anywhere}
.hg-access-name{margin:0 0 12px;font:700 20px Georgia,serif;color:#f3dfa6}
.gate[data-ph="scene"] #gEnter,.gate[data-ph="scene"] #gUi>.g-hint{position:relative;left:var(--entrada-desplazamiento,0px);text-align:center}
/* Margen de imagen para centrar la puerta sin dejar una franja vacía lateral. */
.gate.lw .g-stage{--gw:max(112vw,150vh)}


/* Fuente: coherencia-visual.css */
/* Ajustes de composición · conservan tipografías, materiales y fichaje. */
.management-nav>.clock-link{justify-content:center;text-align:center;overflow-wrap:anywhere}
.management-nav>.clock-link::before{align-self:center}
.management-nav>#mostBtn{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}
.category-visual img,.hero-banner img{object-position:center center}
.category-visual .visual-title{max-width:calc(100% - 32px);overflow-wrap:anywhere;line-height:1.25}
.enc-head>span,.dir-top>.enc-back,.mod-card>div,.rec-btn>span{min-width:0;overflow-wrap:anywhere}
.enc-head>span{flex:1}
.enc-head>.danger{flex:0 0 auto}
.mod-card{width:100%;text-align:left;align-items:center}
.mod-ico{align-self:center;flex-shrink:0}
.dir-top{flex-wrap:wrap}
.dir-top>.enc-back{flex:1 1 200px;text-align:left}
.dir-top>.help-q{flex:0 0 auto;min-height:44px}
.dir-rec-row{flex-wrap:wrap}
.rec-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.enc-actions button,.actions button,.receipt-actions button{display:flex;align-items:center;justify-content:center;gap:6px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.enc-actions.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cartrow{grid-template-columns:minmax(0,1fr) 36px 68px 76px}
.cartrow>span:first-child{min-width:0;overflow-wrap:anywhere}
.modal-overlay{overscroll-behavior:contain;scrollbar-gutter:stable}
.modal-overlay>.enc-panel{min-width:0;margin-block:auto}
@media(max-width:650px){
 .category-visual .visual-title{left:12px;max-width:calc(100% - 24px);font-size:clamp(18px,5vw,23px)}
 .enc-head{gap:10px;letter-spacing:.04em}
 .dir-rec-row>.rec-btn{flex:1 1 140px}
 .enc-actions.two{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){.enc-actions.two{grid-template-columns:1fr}.cartrow{grid-template-columns:minmax(0,1fr) 28px 60px 64px;gap:4px}}
@media(prefers-reduced-motion:reduce){
 .product,.category-visual img,.goal-bar .gl-fill{transition:none!important}
 .bump,.coin,.stamp-fx,.g-stage,.g-sign span i,.g-sign::after{animation:none!important}
}


/* Fuente: acabado-armeria.css */
/* Materiales compartidos: nogal, cuero verde y papel de cuentas. */
:root {
 --hg-leather:linear-gradient(120deg,#17302338,#050f0a88),url('textura-cuero.webp') center/460px;
 --hg-wood:linear-gradient(110deg,#2b190e22,#100d0988),url('textura-madera.webp') center/480px;
 --hg-line:#b49a635e;
 --hg-light:#efddb7;
}
/* Las superficies amplias llevan textura; las cifras conservan un fondo tranquilo. */
.panel,.enc-panel,.confirm-box,.clock-bar {
 background:var(--hg-leather);
 box-shadow:0 9px 24px #0006,inset 0 1px #efddb72b,inset 0 0 0 2px #07140d;
}
#dirModal .enc-panel {
 background:var(--hg-leather);
 -webkit-backdrop-filter:none;
 backdrop-filter:none;
}
.hero-banner,.cat-nav { background:var(--hg-wood);box-shadow:inset 0 1px #f6d8a440,0 7px 20px #0006; }
.cat-nav { border-color:#a1834c; }
.category-visual { box-shadow:0 8px 22px #0005,inset 0 0 0 1px #d4b77a; }
.category-visual .visual-title { text-shadow:0 2px 6px #000,0 0 18px #000; }
.order-title,.enc-head,.table-head {
 background:var(--hg-wood);
 color:#f5dfaf;
 border-bottom-color:#b49a63;
 box-shadow:inset 0 1px #ffe8b833,inset 0 -1px #0008;
 text-shadow:0 1px 3px #000;
}
.enc-head { line-height:1.45; }
.mode-tabs { padding:6px;gap:6px;background:var(--hg-wood);border-color:#a1834c;border-radius:8px; }
.mode-tab {
 min-height:48px;
 border:1px solid #a68a535c;
 border-radius:4px;
 color:#e5d8bb;
 background:linear-gradient(#18312366,#09170f99),url('textura-cuero.webp') center/400px;
 box-shadow:inset 0 1px #f8e5bd22,0 2px 3px #0004;
}
.mode-tab.on {
 color:#ffedbf;
 background:linear-gradient(#8a693a88,#302719aa),url('textura-cuero.webp') center/400px;
 border-color:#d7b876;
 box-shadow:inset 0 0 0 2px #e8cb8826,inset 0 -3px #d4b36a,0 2px 5px #0005;
}
.search,.client-box { background:var(--hg-leather);border-color:var(--hg-line); }
.search { padding:12px; }
.search input,.client-box input,.client-box select,.dir-form input,.dir-form select,
.dir-form textarea,.enc-sec input,.enc-sec select,.enc-sec textarea,.dir-search,.name-input {
 color:#f0e5cb;
 background-color:#08150f;
 border-color:#a58d5c88;
 border-radius:5px;
 box-shadow:inset 0 2px 5px #0006,0 1px #ead6a412;
}
input::placeholder,textarea::placeholder { color:#b4ad98;opacity:1; }
select option { background:#102019;color:#f0e5cb; }
.search input:focus-visible,.client-box input:focus-visible,.client-box select:focus-visible,
.dir-form :is(input,select,textarea):focus-visible,.enc-sec :is(input,select,textarea):focus-visible {
 outline:2px solid #efd39a;outline-offset:2px;border-color:#d8b873;
}
.product {
 background:linear-gradient(90deg,#13281fc9,#08150fef),url('textura-cuero.webp') center/460px;
 border-bottom:1px solid #a58d5c30;
}
.product:nth-child(even):not(.has-qty) {
 background:linear-gradient(90deg,#23402ec4,#0c1c14ed),url('textura-cuero.webp') center/460px;
}
.product.has-qty {
 background:linear-gradient(90deg,#41522ac9,#152b1aeb),url('textura-cuero.webp') center/460px;
 border-left-color:#e8c57b;
 box-shadow:inset 0 1px #e8c57b22,inset 0 -1px #e8c57b22;
}
.pname { color:#f0e5cb;line-height:1.4; }
.pname small { color:#c2b89e;border-color:#b49a6355;background:#07120ecc;line-height:1.5; }
.price { color:#ead8b1; }
.subtotal { color:#f4d78e; }
.qty button {
 background:linear-gradient(#4c4229,#241f16);
 color:#ffe6a4;
 border-color:#b49a63;
 box-shadow:inset 0 1px #f5e2b933,inset 0 -2px #0005;
}
.qty input { background:#07130d;color:#fff0d2;border-color:#a58d5c; }
.cart { background:linear-gradient(#0b1d12bb,#07140fe0),url('textura-cuero.webp') center/460px; }
.cartrow { border-bottom-color:#ac92583d;line-height:1.45; }
.carthead { color:#ddc48e; }
.empty,.no-results { color:#c0b49b; }
.total {
 background:linear-gradient(125deg,#29483499,#10271dbb),url('textura-cuero.webp') center/420px;
 border-color:#cfaf6d;
 box-shadow:inset 0 0 0 2px #07140f,inset 0 0 0 3px #c6a46277,0 4px 9px #0005;
}
.total #grand { color:#ffe3a0;text-shadow:0 1px 2px #000; }
.enc-sec,.dir-form.enc-sec { border-color:var(--hg-line); }
.enc-note,.bk-note,.summary { color:#cabea1;line-height:1.55; }
.receipt-paper,.ledger {
 background-color:#e8d7ac;
 background-image:linear-gradient(#fff8e21f,#9a73300f),url('textura-papel.webp');
 background-size:auto,560px;
 color:#302211;
 box-shadow:0 12px 30px #0005,inset 0 0 28px #7b501c24;
}
.receipt-frame { border-color:#84632f; }
.receipt-title { letter-spacing:.14em; }
.receipt-table td,.receipt-table th { border-color:#8c6d3b66; }
@media (hover:hover) {
 .product:hover:not(.has-qty) { background:linear-gradient(90deg,#2c4635be,#10251be8),url('textura-cuero.webp') center/460px; }
 .mode-tab:not(.on):hover { border-color:#e0c28a;color:#fff0ce;background:linear-gradient(#39533b77,#12271a99),url('textura-cuero.webp') center/400px; }
}
@media(max-width:650px) {
 .panel,.enc-panel,.confirm-box,.clock-bar,.category-visual { border-width:6px;border-image-width:6px; }
 #dirModal .enc-panel { border-width:8px;border-image-width:8px;outline-offset:-6px; }
 .search { padding:9px; }
 .mode-tabs { padding:4px;gap:4px; }
 .mode-tab { min-height:46px;letter-spacing:.04em; }
 .enc-head { padding:12px; }
 .product { padding-block:12px; }
}
/* La opción de alto contraste elimina el ruido de las superficies de lectura. */
body.hc :is(.panel,.enc-panel,.confirm-box,.clock-bar,.search,.client-box,.cart,.product,.product:nth-child(even),.mode-tab,.mode-tab.on,.total) {
 background:#07140e;color:#fff;border-color:#e2c386;
}
body.hc :is(input,select,textarea) { background:#030a06;color:#fff;border-color:#e2c386; }
@media print {
 .receipt-paper,.ledger { background:#fff;color:#211a10;box-shadow:none; }
}


/* Fuente: botones-artesanos.css */
/* Placas de cuero y latón: sin imágenes adicionales ni cambios de comportamiento. */
.clock-actions > .management-nav {
  gap: 11px;
  padding: 14px;
  border: 1px solid #967543;
  border-radius: 9px;
  background: linear-gradient(110deg,#20160f66,#100e0b99),url('textura-madera.webp') center/480px;
  box-shadow: inset 0 1px #e4c78a35,inset 0 0 0 4px #080d0a80,0 5px 14px #0004;
}
.management-nav > .clock-link {
  --plate-top: #294334;
  --plate-bottom: #102219;
  min-height: 70px;
  padding: 16px 18px;
  gap: 13px;
  justify-content: center;
  border: 2px ridge #b99a5b;
  border-radius: 6px;
  color: #f3e6c9;
  --plate-surface:
    radial-gradient(circle at 6px 6px,#d2b878 0 1px,#49351d 1.5px,transparent 2px),
    radial-gradient(circle at calc(100% - 6px) calc(100% - 6px),#bba068 0 1px,#49351d 1.5px,transparent 2px),
    linear-gradient(145deg,color-mix(in srgb,var(--plate-top) 26%,transparent),color-mix(in srgb,var(--plate-bottom) 54%,transparent)),
    url('textura-cuero.webp');
  background-image:var(--plate-surface);
  background-size:auto,auto,auto,440px;
  background-position:center;
  box-shadow: inset 0 1px #f5dda54d,inset 0 0 0 3px #07140f88,inset 0 -3px #0005,0 3px 0 #070e09,0 5px 8px #0004;
  font-size: 13px;
  letter-spacing: .07em;
  text-shadow: 0 1px 2px #000;
  transition: border-color .16s,box-shadow .16s,transform .16s;
}
.management-nav > #dirBtn {
  --plate-top: #6b512b;
  --plate-bottom: #322719;
  border-color: #d1af6b;
  color: #fff0ce;
}
.management-nav > #pedBtn { --plate-top:#3d4030;--plate-bottom:#20291d; }
.management-nav > .clock-link:not(#mostBtn)::before {
  flex-basis: 25px;
  width: 25px;
  height: 25px;
  background-color: #dfc48c;
  filter: drop-shadow(0 1px 1px #0008);
}
.management-nav > #bellBtn::after { color:#f3e6c9;font-size:13px;letter-spacing:.07em; }
.management-nav > #bellBtn { font-size:0; }
.management-nav > #bellBtn.bad { border-color:#d18769; }
.management-nav > #bellBtn b { top:5px;right:5px;box-shadow:0 1px 3px #0008; }
#dirModal .mod-card {
  padding: 16px;
  gap: 16px;
  border: 1px solid #9e83515e;
  border-left: 3px solid #bd9d62;
  border-radius: 7px;
  background: linear-gradient(120deg,#243b2f55,#10201999),url('textura-cuero.webp') center/440px;
  box-shadow: inset 0 1px #ecd8a922,inset 0 0 0 3px #07140f55,0 3px 7px #0003;
  transition: border-color .16s,transform .16s,box-shadow .16s;
}
#dirModal .mod-card .t { color:#f0ddb3;line-height:1.35; }
#dirModal .mod-card .it { color:#c5ccbe;line-height:1.45;margin-top:4px; }
#dirModal .mod-ico { width:38px;height:38px;stroke:#d8bb80; }
#dirModal .mod-card.bad { border-left-color:#d18a72; }
#dirModal .mod-card.pend { border-left-color:#dbbd72; }
#dirModal .mod-sec > summary { min-height:54px;box-shadow:inset 0 1px #e3c7841c; }
.enc-actions > button,.receipt-actions > button,.actions > button {
  border-radius: 6px;
  min-height: 46px;
  box-shadow: inset 0 1px #fff1c933,inset 0 -2px #0003,0 3px 5px #0003;
}
.management-nav > .clock-link:focus-visible,#dirModal .mod-card:focus-visible,
.enc-actions > button:focus-visible,.receipt-actions > button:focus-visible,.actions > button:focus-visible {
  outline: 2px solid #ffe1a3;
  outline-offset: 3px;
}
.management-nav > .clock-link:disabled,#dirModal .mod-card:disabled {
  opacity:.5;cursor:not-allowed;transform:none;box-shadow:inset 0 1px #ffffff18;
}
@media (hover:hover) {
  .management-nav > .clock-link:not(:disabled):hover,#dirModal .mod-card:not(:disabled):hover {
    border-color:#efd39a;
    transform:translateY(-2px);
    box-shadow:inset 0 1px #f5dda55c,inset 0 0 0 3px #d5b77614,0 5px 10px #0005;
  }
}
.management-nav > .clock-link:not(:disabled):active,#dirModal .mod-card:not(:disabled):active {
  transform:translateY(1px);
  box-shadow:inset 0 2px 5px #0006;
}
@media (max-width:650px) {
  .clock-actions > .management-nav { padding:10px;gap:9px; }
  .management-nav > .clock-link { min-height:64px;padding:13px 10px;gap:9px;font-size:11px;letter-spacing:.045em; }
  .management-nav > #bellBtn::after { font-size:11px;letter-spacing:.045em; }
  .management-nav > #bellBtn { font-size:0; }
  .management-nav > .clock-link:not(#mostBtn)::before { flex-basis:22px;width:22px;height:22px; }
  #dirModal .mod-card { padding:13px;gap:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .management-nav > .clock-link,#dirModal .mod-card { transition:none; }
  .management-nav > .clock-link:not(:disabled):hover,#dirModal .mod-card:not(:disabled):hover,
  .management-nav > .clock-link:not(:disabled):active,#dirModal .mod-card:not(:disabled):active { transform:none; }
}
body.hc .management-nav > .clock-link,body.hc #dirModal .mod-card {
  background:#07140e;color:#fff;border-color:#f5d28a;text-shadow:none;
}

/* El grano permanece visible también al pasar el ratón. */
@media (hover:hover) {
 .management-nav > .clock-link:not(:disabled):hover {
  background-image:var(--plate-surface);
  background-size:auto,auto,auto,440px;
  background-position:center;
 }
 #dirModal .mod-card:not(:disabled):hover {
  background:linear-gradient(120deg,#35523b55,#10201999),url('textura-cuero.webp') center/440px;
 }
}
.management-nav > .clock-link {
 outline:1px dashed #dcc18a55;
 outline-offset:-6px;
}
.management-nav > .clock-link:focus-visible { outline:2px solid #ffe1a3;outline-offset:3px; }
.enc-actions > button:not(.danger):not(.warn),.receipt-actions > button:not(.danger):not(.warn) {
 background-image:linear-gradient(120deg,#1c302555,#10201999),url('textura-cuero.webp');
 background-size:auto,440px;
 border-style:ridge;
 border-color:#b59a63;
 color:#f6e6c5;
 text-shadow:0 1px 2px #000;
}
body.hc .management-nav > .clock-link,body.hc .management-nav > .clock-link:hover,
body.hc #dirModal .mod-card,body.hc #dirModal .mod-card:hover,
body.hc .enc-actions > button,body.hc .receipt-actions > button {
 background:#07140e;color:#fff;border-color:#f5d28a;
}


/* Fuente: pulido-harrington.css */
/* Pulido del diseño existente. No sustituye imágenes, contenido ni estructura. */
.clock-bar {
 border-color:#5a3b22;
 box-shadow:0 6px 16px #0006,inset 0 0 0 1px #c5a56b77,inset 0 0 0 4px #08180f;
}
.clock-info b { color:#efd399;text-shadow:0 1px 2px #000; }
.clock-status { color:#c5bea9; }
.clock-actions > .management-nav {
 background:linear-gradient(#07180f88,#06130ca8),url('textura-cuero.webp') center/460px;
 border:1px solid #aa8a52;
 border-radius:5px;
 padding:11px;
 gap:10px;
 box-shadow:inset 0 0 0 3px #09170f,0 2px 4px #0005;
}
.management-nav > .clock-link {
 --plate-top:#254a35;
 --plate-bottom:#0b2015;
 --plate-surface:
  radial-gradient(circle at 6px 6px,#d2b67a 0 1px,#544020 1.5px,transparent 2.5px),
  radial-gradient(circle at calc(100% - 6px) 6px,#cbb078 0 1px,#544020 1.5px,transparent 2.5px),
  radial-gradient(circle at 6px calc(100% - 6px),#b69960 0 1px,#49351d 1.5px,transparent 2.5px),
  radial-gradient(circle at calc(100% - 6px) calc(100% - 6px),#b69960 0 1px,#49351d 1.5px,transparent 2.5px),
  linear-gradient(135deg,#2d51393d,#07190e80),url('textura-cuero.webp');
 background-image:var(--plate-surface);
 background-size:auto,auto,auto,auto,auto,460px;
 background-position:center;
 border:1px solid #b79b60;
 border-radius:4px;
 outline:1px solid #c5a56b44;
 outline-offset:-4px;
 min-height:66px;
 padding:14px 16px;
 color:#f0dfb6;
 box-shadow:inset 0 1px #f4ddb93b,inset 0 -2px #0005,0 2px 0 #071209,0 4px 6px #0004;
 letter-spacing:.065em;
}
.management-nav > #dirBtn,.management-nav > #pedBtn {
 border-color:#c0a266;
 color:#f0dfb6;
}
.management-nav > .clock-link:not(#mostBtn)::before {
 background-color:#d7b979;
 filter:drop-shadow(0 1px 1px #000);
}
.management-nav > #bellBtn::after { color:#f0dfb6; }
.management-nav > #bellBtn.bad { border-color:#d58e72; }
.management-nav > .clock-link:focus-visible { outline:2px solid #ffe4a8;outline-offset:3px; }
.cat-nav {
 border:1px solid #947445;
 border-radius:6px;
 box-shadow:inset 0 0 0 2px #20160f,0 5px 12px #0005;
}
.cat-nav > .cat-btn {
 border-color:#7e663e;
 border-radius:4px;
 box-shadow:0 2px 5px #0006,inset 0 0 0 1px #d4b77a22;
}
.cat-nav > .cat-btn.active {
 border-color:#ebc778;
 box-shadow:0 0 0 1px #d9b876,inset 0 0 0 1px #ead29977,0 3px 8px #0006;
}
.category-visual { border-radius:6px;box-shadow:0 6px 16px #0005,inset 0 0 0 1px #c4a16666; }
.panel,.enc-panel,.confirm-box {
 box-shadow:0 8px 22px #0006,inset 0 0 0 1px #c5a56b88,inset 0 0 0 4px #07170f;
}
.search { border-bottom:1px solid #a38a5055; }
.search input { border-color:#8b825f;box-shadow:inset 0 2px 4px #0006,0 1px #dbc38e1a; }
.table-head { color:#e1c995;letter-spacing:.12em; }
.product { border-bottom-color:#b89b6038; }
.product.has-qty { border-left-color:#e9c579; }
.pname { color:#eee2c4; }
.price { color:#ddcfae; }
.subtotal { color:#efd59c; }
.order-title,.enc-head { color:#f0d7a1;border-bottom:1px solid #b79b6077; }
.carthead { color:#c8b68d; }
.total { border-width:1px;color:#f0d7a1; }
.total #grand { color:#ffe5ac; }
#dirModal .mod-card,.enc-card {
 border-radius:5px;
 border-color:#a68b515c;
 box-shadow:inset 0 1px #f0d7a117,0 2px 6px #0004;
}
#dirModal .mod-card .t { color:#ecd8ac; }
#dirModal .mod-card .it { color:#c0c4b4; }
.enc-head > button,.enc-back,.rec-btn { line-height:1.35; }
@media(hover:hover) {
 .management-nav > .clock-link:not(:disabled):hover {
  background-image:var(--plate-surface);
  background-size:auto,auto,auto,auto,auto,460px;
  background-position:center;
  border-color:#f0d095;
  box-shadow:inset 0 1px #f4ddb94b,inset 0 0 0 3px #d0b37718,0 3px 7px #0005;
  transform:translateY(-1px);
 }
}
@media(max-width:650px) {
 .clock-actions > .management-nav { padding:8px;gap:8px; }
 .management-nav > .clock-link { min-height:62px;padding:12px 9px;gap:8px;font-size:11px;letter-spacing:.035em; }
 .management-nav > #bellBtn { font-size:0; }
 .management-nav > #bellBtn::after { font-size:11px;letter-spacing:.035em; }
 .cat-nav { padding:8px; }
 .table-head { letter-spacing:.06em; }
}
@media(prefers-reduced-motion:reduce) {
 .management-nav > .clock-link:not(:disabled):hover { transform:none; }
}
body.hc .management-nav > .clock-link,body.hc .management-nav > .clock-link:hover,
body.hc .management-nav > #dirBtn,body.hc .management-nav > #pedBtn {
 background:#07140e;color:#fff;border-color:#f5d28a;
}

/* Detalles artesanos: metal cepillado en el canto y puntadas en el cuero. */
.management-nav > .clock-link {
 border-width:2px;
 border-image:repeating-linear-gradient(170deg,#8a6b39 0 1px,#d2b77e 1px 2px,#ab8a50 2px 4px,#dfc58e 4px 5px,#967643 5px 7px) 1;
 outline:1px dashed #d6bd825c;
 outline-offset:-6px;
 box-shadow:inset 0 1px #fff0be44,inset 0 0 0 3px #04110980,inset 0 -3px #0006,0 3px 0 #071209,0 5px 8px #0005;
}
.management-nav > .clock-link:focus-visible {
 outline:2px solid #ffe4a8;outline-offset:3px;
}
.management-nav > #bellBtn.bad { border-image:none;border-color:#d58e72; }
.panel,.enc-panel,.confirm-box,.clock-bar {
 outline:1px dashed #cbb47b50;
 outline-offset:-7px;
}
#dirModal .enc-panel { outline:1px dashed #cbb47b66;outline-offset:-8px; }
#dirModal .mod-card {
 outline:1px dashed #cbb47b33;
 outline-offset:-6px;
 box-shadow:inset 0 1px #f2dfab22,inset 0 -2px #0004,0 3px 7px #0004;
}
#dirModal .mod-card:focus-visible { outline:2px solid #ffe4a8;outline-offset:3px; }
.cat-nav {
 box-shadow:inset 0 1px #f4d5a24d,inset 0 -2px #050803b3,inset 0 0 0 3px #372414aa,0 4px 10px #0005;
}
.order-title,.enc-head {
 border-bottom:2px solid #b69a60;
 border-image:repeating-linear-gradient(175deg,#806439 0 1px,#ceb37c 1px 2px,#a98b54 2px 4px) 1;
}
.total {
 border:2px solid #b69a60;
 border-image:repeating-linear-gradient(170deg,#92713f 0 1px,#d6bc84 1px 2px,#ad8e54 2px 4px) 1;
}
.receipt-paper,.ledger {
 background-image:repeating-linear-gradient(2deg,transparent 0 7px,#76582e08 7px 8px,transparent 8px 13px),linear-gradient(#fff8e21f,#9a73300f),url('textura-papel.webp');
 background-size:auto,auto,560px;
}
.receipt-name,.receipt-title,.receipt-total { text-shadow:.3px .3px #704c201f; }
@media(hover:hover) {
 .management-nav > .clock-link:not(:disabled):hover {
  border-image:repeating-linear-gradient(170deg,#a7864e 0 1px,#f0d8a2 1px 2px,#c4a469 2px 4px,#e4ca95 4px 5px) 1;
  box-shadow:inset 0 1px #ffebbd55,inset 0 0 0 3px #d0b37718,0 4px 9px #0005;
 }
 .management-nav > #bellBtn.bad:hover { border-image:none;border-color:#edb19b; }
}
.management-nav > .clock-link:disabled { border-image:none;box-shadow:inset 0 1px #ffffff18; }
@media(max-width:650px) {
 .panel,.enc-panel,.confirm-box,.clock-bar { outline-offset:-5px; }
 #dirModal .enc-panel { outline-offset:-6px; }
}
body.hc .management-nav > .clock-link,body.hc .management-nav > .clock-link:hover,
body.hc .total,body.hc .order-title,body.hc .enc-head { border-image:none;border-color:#f5d28a; }
body.hc :is(.panel,.enc-panel,.confirm-box,.clock-bar) { outline:none; }
@media print {
 .receipt-paper,.ledger { background:#fff;box-shadow:none; }
 .receipt-name,.receipt-title,.receipt-total { text-shadow:none; }
}


/* Fuente: controles-visibles.css */
/* Los controles conservan su espacio; ninguna decoración puede recortarlos. */
button[hidden],input[hidden],select[hidden],textarea[hidden] { display:none!important; }
#products .product { min-width:0; }
#products .pname { min-width:0;overflow-wrap:anywhere; }
#products .qty {
 display:grid;
 grid-template-columns:40px minmax(44px,1fr) 40px;
 align-items:center;
 justify-content:stretch;
 gap:0;
 min-width:124px;
 width:100%;
 filter:none;
}
#products .qty > .minus,#products .qty > .plus {
 display:block;
 width:40px;
 min-width:40px;
 height:44px;
 min-height:44px;
 padding:0;
 line-height:1;
 flex:none;
}
#products .qty > input { width:100%;min-width:0;height:44px;padding:0 2px; }
#products .qty > .minus { grid-column:1;grid-row:1; }
#products .qty > input { grid-column:2;grid-row:1; }
#products .qty > .plus { grid-column:3;grid-row:1; }
#products .qty > .quick { grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;min-width:0; }
#products .qty .quick button { flex:1 1 36px;min-width:36px;height:38px;padding:0 2px;font-size:12px; }
/* Un nombre largo o el panel de pedido nunca empujan el botón + fuera del catálogo. */
@media(min-width:651px) {
 .table-head,#products .product { grid-template-columns:64px minmax(0,1fr) 88px 132px 84px;column-gap:8px; }
}
/* En la zona intermedia caben mejor los controles en una segunda línea. */
@media(min-width:901px) and (max-width:1199px),(min-width:1400px) {
 .panel .table-head { display:none; }
 #products .product { grid-template-columns:64px minmax(0,1fr) 88px;gap:8px 10px; }
 #products .product > .weapon-icon { grid-column:1;grid-row:1;max-width:100%; }
 #products .product > .pname { grid-column:2;grid-row:1; }
 #products .product > .price { grid-column:3;grid-row:1; }
 #products .product > .qty { grid-column:1/3;grid-row:2;width:140px;max-width:100%;justify-self:end; }
 #products .product > .subtotal { grid-column:3;grid-row:2; }
}
@media(max-width:650px) {
 #products .product { grid-template-columns:52px minmax(0,1fr) 76px;gap:8px; }
 #products .product > .weapon-icon { grid-column:1;grid-row:1;max-width:100%; }
 #products .product > .pname { grid-column:2;grid-row:1; }
 #products .product > .price { grid-column:3;grid-row:1; }
 #products .product > .qty { grid-column:1/3;grid-row:2;width:140px;max-width:100%;justify-self:end; }
 #products .product > .subtotal { grid-column:3;grid-row:2; }
}
.actions > button,.enc-actions > button,.receipt-actions > button { min-width:0;overflow-wrap:anywhere; }


/* Fuente: claridad-gestion.css */
/* Jerarquía de cantidades, estados y acciones sobre el diseño de la armería. */
#products .qty { grid-template-columns:44px minmax(44px,1fr) 44px;min-width:132px; }
#products .qty > .minus,#products .qty > .plus { width:44px;min-width:44px;border-radius:4px 0 0 4px; }
#products .qty > .plus { border-radius:0 4px 4px 0; }
#products .qty > input { font-variant-numeric:tabular-nums;font-size:18px;color:#f4e7c7; }
#products .qty > .quick {
 padding-top:7px;margin-top:6px;
 border-top:1px dashed #bda16a66;
}
#products .qty .quick button {
 border-radius:4px;
 border-color:#978252;
 background:linear-gradient(#25382b,#101f16);
 color:#e7d5ad;
 font-size:12px;
 letter-spacing:0;
 box-shadow:inset 0 1px #f2dfab22,0 1px 2px #0004;
}
#products .product.has-qty .qty > input {
 background:#29442b;
 color:#fff0b8;
 box-shadow:inset 0 0 0 1px #d6b56f,inset 0 2px 4px #0005;
}
#products .product.has-qty .subtotal { color:#ffe3a2;font-weight:bold; }
#products .product.has-qty .pname { color:#fff0ce; }
#products .qty button:focus-visible,#products .qty input:focus-visible {
 outline:2px solid #ffe4a8;outline-offset:2px;position:relative;z-index:1;
}
#products .qty button:disabled { cursor:not-allowed;box-shadow:none; }
.badges { align-items:center;gap:7px;margin-top:8px; }
.badge {
 display:inline-flex;
 align-items:center;
 gap:6px;
 max-width:100%;
 padding:5px 9px;
 border-radius:5px;
 font-size:12px;
 line-height:1.4;
 letter-spacing:.035em;
 white-space:normal;
 overflow-wrap:anywhere;
 box-shadow:inset 0 1px #ffffff14,0 1px 2px #0004;
}
.badge::before { flex:0 0 auto;font-family:Georgia,serif;font-size:13px;font-weight:bold;line-height:1; }
.badge.pend { color:#f2d392;background:#392e16;border-color:#bb9753; }
.badge.pend::before { content:'◷'; }
.badge.fab,.badge.si { color:#c3ebcc;background:#143324;border-color:#699675; }
.badge.fab::before,.badge.si::before { content:'✓'; }
.badge.no { color:#f0c4b1;background:#381d19;border-color:#b57d68; }
.badge.no::before { content:'!'; }
/* Se conserva el texto de cada estado: el color nunca es la única señal. */
:is(#dirModal,#encModal,#pedModal,#invModal,#matModal,#ausModal) .enc-head {
 gap:12px;
 min-height:64px;
 align-items:center;
 padding:14px 16px;
}
:is(#dirModal,#encModal,#pedModal,#invModal,#matModal,#ausModal) .enc-head > span {
 line-height:1.4;
 letter-spacing:.05em;
}
.enc-head > button { min-height:44px;min-width:68px;padding:9px 12px; }
.enc-kv { gap:12px 16px; }
.enc-kv span { margin-bottom:4px;line-height:1.4;color:#cdbb93; }
.enc-kv b { line-height:1.5; }
.enc-sec { margin-block:14px;padding:14px;border-color:#a88f585e; }
.dir-form label,.enc-sec label { line-height:1.45;letter-spacing:.055em; }
.dir-form input:not([type=checkbox]):not([type=radio]),.dir-form select,.dir-form textarea,
.enc-sec input:not([type=checkbox]):not([type=radio]),.enc-sec select,.enc-sec textarea { max-width:100%; }
.enc-money { display:flex;flex-wrap:wrap;gap:5px 16px;line-height:1.5;margin-block:7px; }
.enc-card .t { line-height:1.4; }
.enc-card .it { line-height:1.5; }
.enc-actions,.receipt-actions { gap:10px;margin-top:12px; }
.enc-actions > button,.receipt-actions > button,.actions > button { min-height:48px;padding:12px;line-height:1.4; }
.enc-actions > .primary,.actions > .finish,.receipt-actions > .primary {
 border-color:#d5bd7b;
 background-image:linear-gradient(#315b3888,#13331fbb),url('textura-cuero.webp');
 background-size:auto,440px;
 color:#fff0c4;
 box-shadow:inset 0 1px #fff3ce44,inset 0 -2px #0005,0 3px 7px #0004;
}
.cat-nav > .cat-btn.active { outline:2px solid #e5c88d;outline-offset:2px; }
.mode-tab.on { border-bottom:3px solid #edce8c;color:#fff0c7; }
@media(hover:hover) {
 #products .qty button:not(:disabled):hover { border-color:#f2d99d;color:#fff2cc; }
}
@media(max-width:650px),(pointer:coarse) {
 #products .qty .quick button { min-height:44px;height:44px;padding:4px 2px; }
 .enc-actions > button,.actions > button,.receipt-actions > button { min-height:50px; }
}
@media(max-width:650px) {
 :is(#dirModal,#encModal,#pedModal,#invModal,#matModal,#ausModal) .enc-head { padding:12px;gap:8px; }
 .enc-sec { padding:12px;margin-block:12px; }
 .enc-kv { gap:10px; }
 .badge { font-size:11px;letter-spacing:.02em; }
 .enc-actions.emp3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .enc-actions.emp3 > button:last-child { grid-column:1/-1; }
 .enc-actions,.receipt-actions { padding-bottom:env(safe-area-inset-bottom,0px); }
}
@media(max-width:380px) {
 .enc-kv { grid-template-columns:minmax(0,1fr); }
 .enc-actions.emp3 { grid-template-columns:minmax(0,1fr); }
}
body.hc .badge { background:#07140e;color:#fff;border-color:#e6ce95; }
body.hc #products .product.has-qty .qty > input { background:#07140e;color:#fff;outline:1px solid #f5d28a; }
body.hc .enc-actions > .primary,body.hc .actions > .finish,body.hc .receipt-actions > .primary { background:#102d19;color:#fff;border-color:#f5d28a; }


/* Fuente: fichas-progreso.css */
/* La imagen original se muestra completa y los controles siguen junto al producto. */
#prodModal .enc-panel { max-width:760px; }
#prodModal .prod-sheet { display:grid;grid-template-columns:minmax(0,1fr);gap:12px; }
#prodModal .prod-sheet .weapon-icon { width:100%;height:clamp(160px,30vh,290px);margin:0;max-width:100%;font-size:56px; }
#prodModal .prod-sheet .weapon-icon img { width:100%;height:100%;object-fit:contain;transform:none;filter:none; }
#prodModal .prod-sheet .weapon-icon::after { background:linear-gradient(180deg,#ffffff08,transparent 30%,#00000018); }
#prodModal .prod-desc { line-height:1.65;font-size:17px; }
#prodModal .prod-meta { flex-wrap:wrap;align-items:center;gap:12px;padding:13px; }
#prodModal .prod-meta b { font-size:20px; }
#products .weapon-icon[role=button] { cursor:zoom-in; }
#products .weapon-icon[role=button]:focus-visible { outline:2px solid #f4d99d;outline-offset:4px; }
.hg-prod-qty { display:grid;grid-template-columns:48px minmax(60px,110px) 48px;justify-content:center;gap:0;margin:18px 0;padding:16px;border:1px solid #ac92585c;border-radius:6px;background:#07180fac; }
.hg-prod-label { grid-column:1/-1;text-align:center;margin-bottom:10px;color:#d8c296;font:12px var(--f-sc);letter-spacing:.1em; }
.hg-prod-qty button { height:48px;padding:0;border:1px solid #b69a60;background:linear-gradient(#314733,#15281a);color:#f5dfad;font-size:24px;cursor:pointer; }
.hg-prod-qty input { min-width:0;width:100%;height:48px;text-align:center;border:1px solid #9a8758;border-inline:0;border-radius:0;background:#07140e;color:#fff0c6;font-size:20px; }
.hg-prod-qty button:disabled,.hg-prod-qty input:disabled { opacity:.5;cursor:not-allowed; }
.hg-flow { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;margin:14px 0 18px;padding:14px 8px;border:1px solid #ac92584d;border-radius:6px;background:#08180fba; }
.hg-flow li { min-width:0;text-align:center;position:relative;line-height:1.4;color:#c1b79e; }
.hg-flow li:not(:last-child)::after { content:'';position:absolute;top:15px;left:calc(50% + 19px);width:calc(100% - 30px);height:1px;background:#b69a6055; }
.hg-flow i { display:grid;place-items:center;position:relative;z-index:1;width:30px;height:30px;margin:0 auto 7px;border:1px solid #968259;border-radius:50%;background:#112217;color:#bdaf90;font-size:16px;font-style:normal; }
.hg-flow span { display:block;overflow-wrap:anywhere;font:13px/1.4 var(--f-sc); }
.hg-flow small { display:block;margin-top:3px;font-size:11px;opacity:.85; }
.hg-flow [data-state=done] i { background:#254831;border-color:#8db58d;color:#d6f0d5; }
.hg-flow [data-state=done] span { color:#dbedcb; }
.hg-flow [data-state=partial] i { background:#49381d;border-color:#d7b373;color:#f4d69a; }
.hg-flow-mini { margin:12px 0 0;padding:10px 5px;border-inline:0;border-bottom:0;border-radius:0;background:transparent;gap:5px; }
.hg-flow-mini small { display:none; }
.hg-flow-mini i { width:24px;height:24px;font-size:13px; }
.hg-flow-mini span { font-size:11px;letter-spacing:0; }
.hg-flow-mini li:not(:last-child)::after { top:12px;left:calc(50% + 15px);width:calc(100% - 24px); }
#pedBody>.hg-flow { flex:1 1 100%; }
/* Misma cabecera y lectura de formularios en todas las pantallas de gestión. */
:is(#dirModal,#invModal,#pedModal,#encModal,#libroModal,#matModal,#ausModal,#prodModal) .enc-head { min-height:64px;line-height:1.4;gap:12px; }
:is(#dirModal,#invModal,#pedModal,#encModal,#libroModal,#matModal,#ausModal,#prodModal) .dir-sec-title { line-height:1.45;letter-spacing:.07em; }
@keyframes hgPanelIn { from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none} }
.modal-overlay:not(#tutModal):not([hidden])>.enc-panel { animation:hgPanelIn .16s ease-out both;transform-origin:center; }
html.lite .modal-overlay:not(#tutModal):not([hidden])>.enc-panel,html.hg-no-transitions .modal-overlay:not(#tutModal):not([hidden])>.enc-panel { animation:none; }
@media(prefers-reduced-motion:reduce) { .modal-overlay:not(#tutModal):not([hidden])>.enc-panel { animation:none; } }
@media(max-width:650px) {
 #prodModal .prod-sheet .weapon-icon { height:210px; }
 #prodModal .prod-desc { font-size:16px; }
 .hg-flow { gap:5px;padding:12px 5px; }
 .hg-flow span { font-size:11px;letter-spacing:0; }
 .hg-flow small { font-size:10px; }
 .hg-flow-mini { padding-top:10px;padding-bottom:0; }
}
body.hc .hg-flow { background:#07140e;border-color:#e6ce95; }
body.hc .hg-flow li,body.hc .hg-flow span { color:#fff; }
body.hc .hg-flow i { border-color:#f5d28a; }


/* Fuente: texturas-harrington.css */
/* Texturas aportadas por la Dirección: superficies coherentes e iconos de catálogo uniformes. */
body:not(.hc) {
 --hg-leather:linear-gradient(120deg,#16302322,#050e0a55),url('texturas/cuero.webp') center/512px;
}
body:not(.hc) :is(.panel,.enc-panel,.confirm-box,.clock-bar,.search,.client-box) {
 background:var(--hg-leather);
}
body:not(.hc) #dirModal .enc-panel { background:var(--hg-leather); }
body:not(.hc) .management-nav > .clock-link {
 background-image:linear-gradient(135deg,#17332633,#07180e55),url('texturas/pavonado.webp');
 background-size:auto,384px;
 background-position:center;
 border-image:url('texturas/laton.webp') 24 round;
}
body:not(.hc) .management-nav > #dirBtn {
 background-image:linear-gradient(135deg,#74582c55,#20190f66),url('texturas/pavonado.webp');
}
body:not(.hc) .management-nav > #pedBtn {
 background-image:linear-gradient(135deg,#3c4b3033,#10221955),url('texturas/pavonado.webp');
}
body:not(.hc) .management-nav > #bellBtn.bad { border-image:none; }
body:not(.hc) #dirModal .mod-card,
body:not(.hc) .enc-card {
 background-image:linear-gradient(135deg,#193a2b33,#071b1355),url('texturas/cuero.webp');
 background-size:auto,512px;
}
body:not(.hc) :is(.enc-actions,.receipt-actions) > .primary,
body:not(.hc) .actions > .finish {
 background-image:linear-gradient(#315b3866,#10351f77),url('texturas/pavonado.webp');
 background-size:auto,384px;
}
body:not(.hc) :is(.order-title,.enc-head,.total) {
 border-image:url('texturas/laton.webp') 24 round;
}
body:not(.hc) .receipt-paper,
body:not(.hc) .ledger {
 background-color:#f0e2c4;
 background-image:linear-gradient(#fff9e83d,#b9975421),url('texturas/papel.webp');
 background-size:auto,512px;
}
body:not(.hc) #prodModal .weapon-icon.has-icon {
 background-color:#071b11;
 background-image:linear-gradient(#061b1266,#03100866),url('texturas/terciopelo.webp');
 background-size:auto,384px;
 background-position:center;
}
/* Una misma piel para todas las filas, sin alternancia de pares e impares. */
body:not(.hc) #products .product,
body:not(.hc) #products .product:nth-child(even):not(.has-qty) {
 background:linear-gradient(100deg,#193b2922,#07180e44),url('texturas/cuero.webp') center/512px;
}
body:not(.hc) #products .product.has-qty {
 background:linear-gradient(100deg,#3e613855,#173a244d),url('texturas/cuero.webp') center/512px!important;
}
/* La falta de stock no debe hacer desaparecer la textura ni el nombre. */
body:not(.hc) #products .product.no-stock { opacity:1; }
body:not(.hc) #products .product .price {
 background-image:linear-gradient(#fff0c966,#deb96b33),url('texturas/laton.webp');
 background-size:auto,192px;
}
/* La geometría es idéntica con imagen cargada, pendiente o ausente. */
#products .product .weapon-icon {
 position:relative;display:grid;place-items:center;
 width:68px;height:46px;margin:0;padding:0;
 border:1px solid #a68a54;border-radius:6px;overflow:hidden;
 background:linear-gradient(#061b1222,#03100833),url('texturas/terciopelo.webp') center/256px;
 box-shadow:inset 0 0 0 2px #06150c66,0 2px 5px #0006;
}
#products .product .weapon-icon img,
#products .product:hover .weapon-icon img {
 width:100%;height:100%;padding:4px;border-radius:3px;
 object-fit:contain;object-position:center;transform:none;
}
#products .product .weapon-icon::after { border-radius:5px;background:linear-gradient(#ffffff06,transparent); }
@media(min-width:1400px) {
 #products .product .weapon-icon { width:62px;height:42px; }
}
@media(min-width:651px) and (max-width:900px) {
 #products .product .weapon-icon { width:56px;height:38px; }
}
@media(max-width:650px) {
 #products .product .weapon-icon { width:52px;height:36px; }
}
body.hc #products .product .weapon-icon { background:#07140e;border-color:#f5d28a; }
@media(hover:hover) {
 body:not(.hc) #products .product:not(.has-qty):hover {
  background:linear-gradient(100deg,#43614333,#14392344),url('texturas/cuero.webp') center/512px;
 }
 body:not(.hc) .management-nav > .clock-link:not(:disabled):hover {
  border-image:url('texturas/laton.webp') 24 round;
  box-shadow:inset 0 1px #fff0c46b,inset 0 0 0 3px #c7a15a26,0 4px 9px #0005;
 }
 body:not(.hc) .management-nav > #bellBtn.bad:hover { border-image:none; }
}
@media print {
 body:not(.hc) :is(.receipt-paper,.ledger) { background:#fff; }
}


/* Fuente: vistoso.css */
/* HARRINGTON · Vistoso (v3.0 · 19/10/2026)
   Portada según la hora de Saint Denis con lámparas que parpadean y polvo en la luz, pantalla de carga con el sello de lacre,
   avisos en papel de telegrama, ventanas que se abren como un cajón o un pergamino, ticket que se imprime línea a línea,
   contadores de latón, gráfica de la semana a tinta, retratos sepia con marco ovalado, ornamentos victorianos,
   letras con pan de oro y la cabecera del despacho de la Dirección. Todo es visual: no cambia ningún dato ni ningún botón.
   Con «Animaciones: ligeras» o «reducir movimiento» del sistema, todo se queda quieto. */

:root{--hg-oro1:#fff3c4;--hg-oro2:#f0cd6e;--hg-oro3:#b88931;--hg-oro4:#6e4a12;--hg-tinta:#2b1d0e;--hg-tinta-roja:#7a2412;
 --f-telegrama:'Special Elite','Courier New',Courier,monospace;--f-cartel:'Rye','Cinzel Decorative',Georgia,serif}

/* ===================== 1) Portada: luces y polvo ===================== */
.hero-banner img{transition:filter .6s ease}
.hero-fx{position:absolute;z-index:2;pointer-events:none;overflow:hidden;contain:strict}
.hero-fx .luz{position:absolute;width:var(--r);height:var(--r);margin:calc(var(--r) / -2) 0 0 calc(var(--r) / -2);border-radius:50%;
 background:radial-gradient(circle,rgba(255,214,130,.62) 0,rgba(255,170,60,.26) 28%,rgba(255,140,30,.08) 52%,transparent 70%);mix-blend-mode:screen;opacity:var(--o,.8);
 animation:hgParpadeo var(--d,3.3s) var(--dl,0s) infinite;will-change:opacity,transform}
@keyframes hgParpadeo{0%,100%{opacity:var(--o,.8);transform:scale(1)}8%{opacity:calc(var(--o,.8) * .72)}11%{opacity:var(--o,.8)}37%{opacity:calc(var(--o,.8) * .9);transform:scale(.97)}52%{opacity:calc(var(--o,.8) * .62);transform:scale(1.04)}55%{opacity:calc(var(--o,.8) * .95)}79%{opacity:calc(var(--o,.8) * .84)}}
.hero-fx .mota{position:absolute;width:var(--s,3px);height:var(--s,3px);border-radius:50%;background:radial-gradient(circle,#fff6d6 0,#ffe3a0aa 45%,transparent 72%);opacity:0;
 filter:blur(.3px);animation:hgMota var(--d,12s) var(--dl,0s) ease-in-out infinite;will-change:transform,opacity}
@keyframes hgMota{0%{opacity:0;transform:translate3d(0,0,0)}18%{opacity:var(--o,.75)}50%{transform:translate3d(var(--dx,14px),var(--dy,-18px),0)}82%{opacity:calc(var(--o,.75) * .7)}100%{opacity:0;transform:translate3d(calc(var(--dx,14px) * 1.8),calc(var(--dy,-18px) * 1.6),0)}}
/* rayos de sol por la mañana, desde los ventanales de la derecha */
.hero-fx .rayo{position:absolute;top:-10%;right:2%;width:46%;height:130%;background:repeating-linear-gradient(112deg,transparent 0 8%,rgba(255,236,180,.10) 9% 13%,transparent 14% 22%);mix-blend-mode:screen;transform-origin:100% 0;animation:hgRayo 9s ease-in-out infinite alternate;opacity:.85}
@keyframes hgRayo{from{opacity:.55;transform:skewX(-2deg)}to{opacity:.95;transform:skewX(2deg)}}
.hero-fundido{position:absolute;z-index:1;pointer-events:none;transition:opacity 1.6s ease}
html[data-franja=noche] .hero-banner:before{background:radial-gradient(ellipse at 50% 0,#ffb24a40,transparent 66%)}
html[data-franja=manana] .hero-banner:before{background:radial-gradient(ellipse at 80% 10%,#fff2c42e,transparent 60%)}

/* ===================== 2) Pantalla de carga con el sello de lacre ===================== */
.carga-lacre{position:fixed;inset:0;z-index:400;display:grid;place-items:center;pointer-events:none;
 background:radial-gradient(ellipse at 50% 48%,transparent 30%,#000a 100%),url(fondo-carga.webp) center/cover no-repeat,#140c06;
 animation:hgCargaFuera .55s 1.75s ease forwards}
.cl-centro{display:grid;justify-items:center;gap:6px;transform:translateY(-2%)}
.cl-sello{display:block;width:min(36vw,190px);aspect-ratio:1;background:url(sello-lacre.webp) center/contain no-repeat;filter:drop-shadow(0 10px 14px #0009);
 animation:hgSello .62s .25s cubic-bezier(.3,1.6,.5,1) both}
@keyframes hgSello{0%{opacity:0;transform:scale(2.4) rotate(-24deg);filter:drop-shadow(0 40px 30px #0006) blur(2px)}70%{opacity:1;filter:drop-shadow(0 6px 8px #000a)}100%{opacity:1;transform:scale(1) rotate(-6deg)}}
.cl-nombre{font:400 clamp(30px,7vw,56px)/1 var(--f-cartel);letter-spacing:.06em;color:#3a1608;text-shadow:0 1px 0 #f7e2b066;opacity:0;animation:hgTinta .7s .85s ease forwards}
.cl-sub{font:italic 400 clamp(13px,2.6vw,17px)/1.2 'IM Fell English',Georgia,serif;color:#4a2a12;letter-spacing:.08em;opacity:0;animation:hgTinta .7s 1.05s ease forwards}
@keyframes hgTinta{from{opacity:0;filter:blur(3px);transform:translateY(4px)}to{opacity:1;filter:none;transform:none}}
@keyframes hgCargaFuera{to{opacity:0;visibility:hidden}}
html.sin-carga .carga-lacre,html.lite .carga-lacre{display:none}
@media(prefers-reduced-motion:reduce){.carga-lacre{display:none}}

/* ===================== 3) Avisos en papel de telegrama ===================== */
.toast{min-height:56px;padding:8px 14px 8px 8px;border-style:solid!important;border-width:12px 14px 12px 70px!important;border-color:transparent!important;border-radius:0;
 border-image:url(papel-telegrama.webp) 34 34 34 300 fill / 12px 14px 12px 70px stretch!important;background:none!important;
 color:#2b1d0e!important;font:400 15px/1.35 var(--f-telegrama);letter-spacing:.02em;text-align:left;text-shadow:0 0 .6px #2b1d0e66;
 box-shadow:none!important;filter:drop-shadow(0 8px 14px #000b);max-width:min(560px,94vw);min-width:min(300px,90vw)}
.toast:after{content:"";position:absolute;left:-46px;top:50%;width:34px;height:26px;transform:translateY(-50%);background:url(icono-telegrafo.webp) center/contain no-repeat;filter:sepia(.5) drop-shadow(0 1px 1px #0006)}
.toast.show{animation:hgTelegrama .5s ease both}
@keyframes hgTelegrama{0%{clip-path:inset(0 100% 0 0);transform:translateX(-50%) translateY(0) rotate(-1.2deg)}70%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 0);transform:translateX(-50%) translateY(0) rotate(-.4deg)}}
.toast.err{color:#6e1b0c!important}
.toast:before{content:none}
.toast.err:before{content:"URGENTE · ";color:#8a2410;font-weight:700;font-size:1em;letter-spacing:.08em}
.toast .t-undo{background:#2b1d0e;border-color:#2b1d0e;color:#f6e6bd;font-family:var(--f-telegrama)}
html.lite .toast.show{animation:none}

/* ===================== 4) Ventanas: cajón y pergamino ===================== */
.modal-overlay:not([hidden])>.abre-cajon{animation:hgCajon .46s cubic-bezier(.2,.9,.25,1.12) both!important;transform-origin:50% 0}
@keyframes hgCajon{0%{opacity:0;transform:perspective(900px) translateY(-34px) rotateX(9deg) scale(.985)}60%{opacity:1}100%{opacity:1;transform:none}}
.modal-overlay:not([hidden])>.abre-pergamino{animation:hgPergamino .7s cubic-bezier(.35,.0,.2,1) both!important}
@keyframes hgPergamino{0%{clip-path:inset(49% 0 49% 0);opacity:.6}12%{opacity:1}100%{clip-path:inset(0 0 0 0);opacity:1}}
.rodillo{position:fixed;z-index:200;height:34px;pointer-events:none;background:url(rodillo-pergamino.webp) center/100% 100% no-repeat;filter:drop-shadow(0 6px 6px #0008)}
html.lite .modal-overlay:not([hidden])>.abre-cajon,html.lite .modal-overlay:not([hidden])>.abre-pergamino{animation:none!important}

/* ===================== 5) Ticket que se imprime y sello de PAGADO ===================== */
.receipt-paper.imprime .receipt-frame>*:not(.paid-stamp):not(.corner){animation:hgLinea .32s calc(.25s + var(--i,0) * .07s) ease both}
.receipt-paper.imprime #rcRows>*,.receipt-paper.imprime #rcFin>*{animation:hgLinea .3s calc(.9s + var(--j,0) * .09s) ease both}
@keyframes hgLinea{from{opacity:0;transform:translateY(-3px);filter:blur(1.5px)}to{opacity:1;transform:none;filter:none}}
.receipt-frame.golpe{animation:hgGolpe .28s ease}
@keyframes hgGolpe{30%{transform:translateY(3px) scale(.995)}60%{transform:translateY(-1px)}}
.moneda-salto{position:fixed;z-index:210;width:34px;height:34px;margin:-17px 0 0 -17px;pointer-events:none;background:url(moneda-oro.webp) center/contain no-repeat;filter:drop-shadow(0 3px 3px #0008)}
html.lite .receipt-paper.imprime .receipt-frame>*,html.lite .receipt-paper.imprime #rcRows>*,html.lite .receipt-paper.imprime #rcFin>*,html.lite .receipt-frame.golpe{animation:none!important}

/* ===================== 6) Cartel ABIERTO / CERRADO que se balancea y gira ===================== */
.shop-sign{transform-origin:50% 0;animation:hgVaiven 5.5s ease-in-out infinite;cursor:default}
@keyframes hgVaiven{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.shop-sign.gira{animation:hgGira 1.3s cubic-bezier(.3,.7,.3,1) both}
@keyframes hgGira{0%{transform:perspective(400px) rotateY(0) rotate(0)}40%{transform:perspective(400px) rotateY(180deg) rotate(9deg)}70%{transform:perspective(400px) rotateY(360deg) rotate(-6deg)}85%{transform:rotate(3deg)}100%{transform:rotate(-1deg)}}
html.lite .shop-sign,html.lite .shop-sign.gira{animation:none}

/* ===================== 7) Contadores de latón ===================== */
hg-odo.odo{display:inline-block;position:relative;overflow:hidden;vertical-align:baseline;min-width:.66em;padding:0 .06em;margin:0 .02em;text-align:center;border-radius:2px;
 background:linear-gradient(#0a0805,#211609 45%,#0a0805);box-shadow:inset 0 1px 2px #000,inset 0 -1px 0 #e3c26a33,0 0 0 1px #8a6a32aa;color:#ffe7a6;text-shadow:0 1px 0 #000}
hg-odo.odo>hg-d{display:inline-block;font-style:normal;font-size:1em}
hg-odo.odo.rueda>hg-d{animation:hgRueda .7s calc(var(--k,0) * .06s) cubic-bezier(.2,.9,.3,1.25) both}
@keyframes hgRueda{0%{transform:translateY(-120%);filter:blur(2px)}60%{filter:none}100%{transform:none}}
.dash-card b hg-odo{font:inherit;font-variant-numeric:tabular-nums;line-height:1.15}
html.lite hg-odo.odo.rueda>hg-d{animation:none}

/* ===================== 8) Gráfica de la semana a tinta ===================== */
.grafica-tinta{display:block;margin:6px auto 12px;max-width:640px;border-radius:3px;box-shadow:0 6px 18px #0009,0 0 0 1px #6e4a12}
.grafica-tinta .trazo{stroke-dasharray:1;stroke-dashoffset:1;animation:hgTrazo 1.1s calc(var(--k,0) * .12s) ease forwards}
.grafica-tinta .relleno{opacity:0;animation:hgRelleno .6s calc(.5s + var(--k,0) * .12s) ease forwards}
.grafica-tinta .cifra{opacity:0;animation:hgRelleno .5s calc(.9s + var(--k,0) * .12s) ease forwards}
@keyframes hgTrazo{to{stroke-dashoffset:0}}
@keyframes hgRelleno{to{opacity:1}}
html.lite .grafica-tinta .trazo,html.lite .grafica-tinta .relleno,html.lite .grafica-tinta .cifra{animation:none;stroke-dashoffset:0;opacity:1}

/* ===================== 9) Retratos sepia con marco ovalado ===================== */
.retrato{position:relative;display:block;aspect-ratio:560/743;width:150px;margin:6px auto 10px}
.retrato:after{content:"";position:absolute;inset:0;background:url(marco-ovalado.webp) center/100% 100% no-repeat;pointer-events:none;filter:drop-shadow(0 4px 6px #000a)}
.retrato .ret-foto{position:absolute;left:16.4%;right:16.4%;top:16.4%;bottom:19.8%;border-radius:50%;overflow:hidden;background:#2a1a0c}
.retrato .ret-foto img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:sepia(.85) contrast(1.08) brightness(.95) saturate(1.05)}
.retrato .ret-foto:after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 18px #000c;background:radial-gradient(ellipse at 50% 40%,transparent 55%,#2a14055c 100%);pointer-events:none}
.mi-photo.retrato{width:170px;height:auto;border-radius:0;overflow:visible;background:none;box-shadow:none}
.mi-photo.retrato>b,.mi-photo.retrato>img{display:none}
.retrato-mini{float:right;width:58px;margin:0 0 6px 8px}
.retrato-mini .ret-foto{left:16%;right:16%;top:16%;bottom:19.5%}
.retrato-mini .ret-foto:after{box-shadow:inset 0 0 6px #000c}
.retrato-mini .emp-ph{float:none;width:100%;height:100%;margin:0;border-radius:0;box-shadow:none}
/* en la tarjeta de la entrada, la silueta si no hay foto */
.gc-oval .gc-sil{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;border-radius:50%;filter:sepia(.35) contrast(1.05) brightness(.95)}
.gc-oval.has-sil .gc-mono{position:absolute;bottom:7%;left:50%;transform:translateX(-50%);font-size:clamp(13px,4.6cqw,20px)!important;padding:.1em .45em;border-radius:3px;background:#120a04cc;box-shadow:0 0 0 1px #c9a14a88;-webkit-background-clip:border-box;background-clip:border-box;color:#f0cd6e;filter:none;letter-spacing:.08em}
.sil-elige{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 2px;font-size:13px;color:#d9c08a}
.sil-elige button{padding:5px 12px;border-radius:14px;border:1px solid #8a6a32;background:#120d07;color:#e8d6a8;font:600 13px Georgia,serif;cursor:pointer}
.sil-elige button.on{background:linear-gradient(#e9c46a,#a77a25);color:#2a1a06;border-color:#f3d27a}

/* ===================== 10) Pantallas vacías con dibujo ===================== */
.empty-art.mini{width:min(150px,58%);height:auto;aspect-ratio:3/2;margin:2px auto 6px;opacity:.95}
.empty-art.mini img{mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none;object-fit:contain;filter:drop-shadow(0 4px 6px #0009)}
.empty-art.mini svg{display:none}

/* ===================== 11) Cabecera del despacho de la Dirección ===================== */
.dir-cab{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:clamp(4px,1vw,8px);padding:0 0 0 clamp(14px,3.4vw,34px);box-sizing:border-box;height:clamp(120px,22vw,210px);margin:-2px 0 14px;border-radius:6px;overflow:hidden;border:2px solid #8b6a2e;box-shadow:0 8px 22px #000a,inset 0 0 40px #000;
 background:linear-gradient(90deg,#050302f2 0,#05030299 34%,transparent 62%),url(cabecera-direccion-ancha.webp) 70% 40%/cover no-repeat,#0b0805}
.dir-cab:before{content:"Despacho de la Dirección";position:static;font:400 clamp(22px,4.2vw,40px)/1.05 var(--f-cartel);letter-spacing:.03em;max-width:55%;
 background:linear-gradient(100deg,var(--hg-oro4) 0,var(--hg-oro2) 22%,var(--hg-oro1) 30%,var(--hg-oro2) 38%,var(--hg-oro3) 70%,var(--hg-oro4) 100%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
 filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 10px #0009);animation:hgPanOro 7s ease-in-out infinite}
.dir-cab:after{content:"Casa Harrington · Saint Denis, 1880";position:static;max-width:60%;padding-left:1px;font:italic 400 clamp(12px,1.8vw,16px)/1.2 'IM Fell English',Georgia,serif;color:#d9bf86;letter-spacing:.06em;text-shadow:0 1px 2px #000}
@media(max-width:700px){.dir-cab{background:linear-gradient(180deg,#050302d9 0,#05030266 55%,transparent 80%),url(cabecera-direccion.webp) 50% 60%/cover no-repeat,#0b0805}.dir-cab{justify-content:flex-start;padding-top:clamp(12px,4vw,22px)}.dir-cab:before{max-width:90%}.dir-cab:after{max-width:90%}}

/* ===================== 12) Ornamentos victorianos ===================== */
.dir-sec-title{background:url(separador-ornamento.webp) right 2px bottom -1px/auto 16px no-repeat,linear-gradient(90deg,#b88931,#b8893100 92%) left bottom/100% 1px no-repeat}
.g-title:after,.tut-hero-title:after{content:"";display:block;width:min(420px,80%);height:30px;margin:4px auto 0;background:url(separador-ornamento.webp) center/contain no-repeat;filter:drop-shadow(0 2px 2px #000a)}
.confirm-title:after{content:"";display:block;width:min(260px,80%);height:20px;margin:6px auto 0;background:url(separador-ornamento.webp) center/contain no-repeat}
.confirm-box{border:14px solid transparent!important;border-image:url(marco-ornamento.webp) 80 / 22px / 4px stretch!important;background-clip:padding-box}

/* ===================== 13) Letras con pan de oro y en relieve ===================== */
.g-title,.enc-head>span:first-child,.confirm-title,.order-title>span:first-child{
 background:linear-gradient(100deg,var(--hg-oro4) 0,var(--hg-oro2) 20%,var(--hg-oro1) 28%,var(--hg-oro2) 36%,var(--hg-oro3) 68%,#f6dc8c 84%,var(--hg-oro4) 100%) 0 0/260% 100%;
 -webkit-background-clip:text;background-clip:text;color:transparent!important;text-shadow:none!important;filter:drop-shadow(0 1px 0 #000) drop-shadow(0 -1px 0 #ffffff14);animation:hgPanOro 8s ease-in-out infinite}
@keyframes hgPanOro{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.g-title{font-family:var(--f-cartel);font-weight:400;letter-spacing:.03em}
.dir-sec-title,.dash-card small,.cat-nav:before{text-shadow:0 1px 0 #000,0 -1px 0 #ffffff12}
html.lite .g-title,html.lite .enc-head>span:first-child,html.lite .confirm-title,html.lite .order-title>span:first-child,html.lite .dir-cab:before{animation:none}
@media(prefers-reduced-motion:reduce){.g-title,.enc-head>span:first-child,.confirm-title,.order-title>span:first-child,.dir-cab:before,.hero-fx .luz,.hero-fx .mota,.hero-fx .rayo,.shop-sign{animation:none!important}.hero-fx .mota{display:none}}

/* ===================== 14) Ajustes: micrófono, nombre de la categoría y títulos ===================== */
/* 20/10/2026: el micrófono vuelve a la izquierda: a la derecha tapaba FINALIZAR y «Fichar entrada» */
.ai-fab{width:52px;height:52px}
.category-visual .visual-title{background:linear-gradient(90deg,#000000d9,#000000a6 60%,#00000000);padding-right:48px}
.order-title,.enc-head{font-size:18px}
.confirm-title{font-size:19px}
@media(max-width:650px){.order-title,.enc-head{font-size:16px}.confirm-title{font-size:17px}}

/* ===================== 15) Botón CLIENTES de la entrada con la escena del mostrador ===================== */
.g-cli{position:relative;width:min(560px,100%);padding:0 0 14px;overflow:hidden;gap:2px;border:3px double #b88931;background:linear-gradient(#1a120a,#0b0805)}
.g-cli .g-cli-esc{position:relative;display:block;width:100%;aspect-ratio:2/1;overflow:hidden;margin-bottom:8px;border-bottom:2px solid #8b6a2e}
.g-cli .g-cli-esc img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease,filter .6s ease;filter:brightness(.92) saturate(1.02)}
.g-cli .g-cli-esc:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,transparent 55%,#0008),linear-gradient(transparent 70%,#0b0805);pointer-events:none}
.g-cli .g-cli-esc:not(.sin) svg{display:none}
.g-cli .g-cli-esc.sin{aspect-ratio:auto;border:0;display:grid;place-items:center;padding-top:14px}
.g-cli .g-cli-esc.sin:after{display:none}
.g-cli:hover .g-cli-esc img,.g-cli:focus-visible .g-cli-esc img{transform:scale(1.05);filter:brightness(1.06) saturate(1.1)}
.g-cli b{font-family:var(--f-cartel);font-weight:400;font-size:28px;margin-top:-34px;position:relative;z-index:1;
 background:linear-gradient(100deg,var(--hg-oro4) 0,var(--hg-oro2) 22%,var(--hg-oro1) 30%,var(--hg-oro2) 38%,var(--hg-oro3) 70%,var(--hg-oro4) 100%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000) drop-shadow(0 0 8px #000);animation:hgPanOro 8s ease-in-out infinite}
.g-cli .g-cli-esc.sin~b{margin-top:0}
.g-cli span:not(.g-cli-esc){padding:0 14px}
html.lite .g-cli b,html.lite .g-cli .g-cli-esc img{animation:none;transition:none}
/* 20/10/2026 · Cabecera de Dirección: con la fuente Rye el título ocupa dos líneas altas; más interlineado y separación
   para que «Casa Harrington · Saint Denis, 1880» no se monte, y la cabecera crece en vez de recortar */
.dir-cab{height:auto;min-height:clamp(120px,22vw,210px);padding-top:clamp(12px,2.4vw,20px);padding-bottom:clamp(12px,2.4vw,20px);gap:clamp(8px,1.6vw,14px)}
.dir-cab:before{line-height:1.22;max-width:min(62%,560px);padding-top:.06em}
.dir-cab:after{line-height:1.35}
@media(max-width:700px){.dir-cab:before{max-width:92%}}


/* Fuente: vistoso2.css */
/* HARRINGTON · Vistoso, segunda tanda (v3.0 · 20/10/2026) · los efectos están en vistoso2.js */

/* ---------- capa común ---------- */
.hg-capa{position:fixed;inset:0;z-index:260;display:grid;place-items:center;pointer-events:none;animation:hgCapaIn .3s ease both}
.hg-capa.fuera{animation:hgCapaOut .45s ease forwards}
@keyframes hgCapaIn{from{opacity:0}to{opacity:1}}
@keyframes hgCapaOut{to{opacity:0}}
body.gate-open .hg-capa{z-index:400}

/* ===================== 1) Reloj de fichar ===================== */
.hg-fichar{background:radial-gradient(circle at 50% 50%,#000a,#0000 70%)}
.hf-reloj{position:relative;width:min(62vw,270px);aspect-ratio:357/560;animation:hgRelojIn .45s cubic-bezier(.2,1.3,.4,1) both}
.hf-reloj>img{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 14px 22px #000c);animation:hgGolpeReloj .35s .82s ease}
@keyframes hgRelojIn{from{transform:translateY(30px) scale(.85);opacity:0}to{transform:none;opacity:1}}
@keyframes hgGolpeReloj{30%{transform:translateY(4px) scale(.99)}60%{transform:translateY(-2px)}}
.hf-ranura{position:absolute;left:21%;width:53%;bottom:38.5%;height:200%;overflow:hidden;pointer-events:none}
.hf-tarjeta{position:absolute;left:0;right:0;bottom:0;aspect-ratio:300/444;transform:translateY(-55%);animation:hgTarjeta 2.6s .1s cubic-bezier(.45,0,.25,1) both;filter:drop-shadow(0 6px 8px #0009)}
.hf-tarjeta>img{display:block;width:100%;height:100%}
@keyframes hgTarjeta{0%{transform:translateY(-55%)}26%{transform:translateY(100%)}44%{transform:translateY(100%)}66%,100%{transform:translateY(-8%)}}
.hf-nom,.hf-sello,.hf-hora{position:absolute;left:8%;right:8%;text-align:center;opacity:0;animation:hgSellado .25s 1.75s ease forwards}
.hf-nom{top:14%;font:italic 400 clamp(10px,3vw,15px)/1.1 'IM Fell English',Georgia,serif;color:#1d1408;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hf-sello{top:36%;font:400 clamp(11px,3.4vw,17px)/1 var(--f-telegrama);font-style:normal;letter-spacing:.04em;color:#8a1e10;border:2px solid #8a1e10;border-radius:3px;padding:3px 0;transform:rotate(-7deg);mix-blend-mode:multiply;animation:hgSelloGolpe .3s 1.7s cubic-bezier(.3,1.6,.5,1) forwards}
.hf-sello.out{color:#1f3a6e;border-color:#1f3a6e}
.hf-hora{top:56%;font:400 clamp(10px,2.8vw,14px)/1 var(--f-telegrama);color:#2b1d0e}
@keyframes hgSellado{to{opacity:1}}
@keyframes hgSelloGolpe{0%{opacity:0;transform:rotate(-7deg) scale(2)}100%{opacity:.9;transform:rotate(-7deg) scale(1)}}

/* ===================== 2) Chispas y humo ===================== */
.hg-chispa{position:fixed;z-index:265;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff6c0 0,#ffb030 45%,#ff6a0000 75%);box-shadow:0 0 8px 2px #ff8a1c99}
.hg-fogonazo{position:fixed;inset:0;z-index:264;pointer-events:none;background:radial-gradient(ellipse at 50% 62%,#ff9a3a55,#0000 45%);animation:hgFogonazo .9s ease forwards}
@keyframes hgFogonazo{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
.hg-humo{position:fixed;z-index:265;width:90px;height:90px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#d8d2c4aa 0,#a9a29455 40%,#0000 70%);filter:blur(4px)}

/* ===================== 3) Caja del pedido ===================== */
.hc-in{position:relative;width:min(60vw,280px);aspect-ratio:420/316;animation:hgCajaBote 2.4s ease both}
.hc-in img{position:absolute;left:0;bottom:0;width:100%;filter:drop-shadow(0 12px 16px #000c)}
.hc-in .cerrada{animation:hgCajaTiembla .5s .25s ease,hgFueraYa .01s .95s forwards}
.hc-in .abierta{opacity:0;animation:hgDentroYa .25s .95s ease forwards}
@keyframes hgCajaBote{0%{transform:translateY(40px) scale(.8);opacity:0}15%{transform:none;opacity:1}40%{transform:none}48%{transform:translateY(-14px)}56%{transform:none}}
@keyframes hgCajaTiembla{20%,60%{transform:rotate(-3deg)}40%,80%{transform:rotate(3deg)}}
@keyframes hgFueraYa{to{opacity:0}}
@keyframes hgDentroYa{to{opacity:1}}

/* ===================== 4) Sobre de paga ===================== */
.hs-in{position:relative;width:min(70vw,340px);aspect-ratio:560/318}
.hs-in img{display:block;width:100%}
.hs-in .abierto{position:absolute;left:10%;width:80%;bottom:0;animation:hgFueraYa .3s 1.1s forwards}
.hs-in .cerrado{position:absolute;inset:0;opacity:0;animation:hgSobreCierra .5s 1.15s cubic-bezier(.3,1.5,.5,1) forwards;filter:drop-shadow(0 12px 18px #000c)}
@keyframes hgSobreCierra{0%{opacity:0;transform:scale(.92) rotate(-2deg)}100%{opacity:1;transform:none}}
.hs-in .cerrado b{position:absolute;left:8%;right:8%;top:60%;text-align:center;font:italic 400 clamp(15px,4.4vw,22px)/1.1 'IM Fell English',Georgia,serif;color:#2b1d0e}
.hs-in .cerrado span{position:absolute;left:8%;right:40%;top:78%;text-align:center;font:400 clamp(10px,2.8vw,13px)/1 var(--f-telegrama);color:#4a3208}
.hs-firma{position:absolute;right:7%;bottom:4%;width:30%!important;transform:rotate(-4deg);mix-blend-mode:multiply}

/* ===================== 5) Diploma ===================== */
.hg-diploma{background:#000b;cursor:pointer}
.hd-in{position:relative;width:min(94vw,760px);container-type:inline-size;animation:hgDiplomaIn .7s cubic-bezier(.2,1.2,.35,1) both}
.hg-diploma.quieto .hd-in{animation:none}
@keyframes hgDiplomaIn{0%{transform:perspective(900px) rotateX(70deg) translateY(-40px);opacity:0}100%{transform:none;opacity:1}}
.hd-in>img:first-child{display:block;width:100%;filter:drop-shadow(0 20px 30px #000)}
.hd-txt{position:absolute;left:14%;right:14%;top:27%;bottom:30%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35em;text-align:center;color:#2b1d0e;font:italic 400 2.2cqw/1.15 'IM Fell English',Georgia,serif}
.hd-txt small{font:400 2.5cqw/1 'IM Fell English SC',Georgia,serif;font-style:normal;letter-spacing:.2em;color:#5a3d12}
.hd-txt b{font:400 5cqw/1.05 var(--f-cartel);color:#3a1608;font-style:normal}
.hd-txt strong{font:700 3.5cqw/1.1 'Cinzel Decorative',Georgia,serif;color:#1e4a2a;font-style:normal}
.hd-txt span{font-size:.9em;color:#4a3208}
.hd-txt i{position:absolute;left:0;top:118%;color:#5a3d12;font-size:2cqw}
.hd-sello{position:absolute;left:45%;width:10%;top:79.5%;opacity:0;animation:hgSelloGolpe2 .35s .8s cubic-bezier(.3,1.6,.5,1) forwards;mix-blend-mode:multiply}
@keyframes hgSelloGolpe2{0%{opacity:0;transform:scale(2.4) rotate(-20deg)}100%{opacity:.92;transform:rotate(-8deg)}}
.hd-firma{position:absolute;right:13%;width:25%;top:68%;opacity:0;clip-path:inset(0 100% 0 0);animation:hgFirma 1.2s 1.1s ease forwards}
@keyframes hgFirma{0%{opacity:1;clip-path:inset(0 100% 0 0)}100%{opacity:1;clip-path:inset(0 0 0 0)}}
.hd-cerrar{position:absolute;left:0;right:0;bottom:-34px;margin:0;text-align:center;color:#e9dec2;font:italic 14px 'IM Fell English',Georgia,serif;opacity:.8}
.hg-diploma.quieto .hd-sello,.hg-diploma.quieto .hd-firma{animation:none;opacity:.92;clip-path:none}

/* ===================== 6) Monedas del objetivo ===================== */
.hg-moneda{position:fixed;top:0;z-index:266;width:30px;height:30px;margin-left:-15px;pointer-events:none;background:url(moneda-oro.webp) center/contain no-repeat;filter:drop-shadow(0 3px 3px #0008)}

/* ===================== 7) Medallas ===================== */
.g-card .gc-med{position:absolute;left:4%;top:15%;z-index:3;display:flex;flex-direction:column;gap:2px;width:13%;pointer-events:auto}
.g-card .gc-med img{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 2px #000a)}
.mi-med{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:6px;margin:-2px 0 10px}
.mi-med img{width:30px;height:auto;filter:drop-shadow(0 2px 2px #000a)}
.mi-med small{flex-basis:100%;text-align:center;color:#d9c08a;font:italic 13px/1.3 'IM Fell English',Georgia,serif}
.med-fila{float:right;display:flex;gap:3px;margin:0 6px 4px 0}
.med-fila img{width:16px;height:auto;filter:drop-shadow(0 1px 1px #000a)}

/* ===================== 8) Escenas: taller y muelle ===================== */
.escena{position:relative;height:clamp(96px,19vw,170px);margin:0 0 10px;border-bottom:2px solid #8b6a2e;overflow:hidden;background-position:50% 55%;background-size:cover;box-shadow:inset 0 -20px 30px #000a}
.dir-cab~.escena,#dirBody>.escena{border:2px solid #8b6a2e;border-radius:6px;margin:4px 0 12px}
.escena:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050302e6,#05030266 40%,#0000 70%)}
.escena b{position:absolute;left:clamp(12px,3vw,26px);top:50%;transform:translateY(-50%);font:400 clamp(20px,3.8vw,34px)/1 var(--f-cartel);letter-spacing:.03em;
 background:linear-gradient(100deg,var(--hg-oro4) 0,var(--hg-oro2) 22%,var(--hg-oro1) 30%,var(--hg-oro2) 38%,var(--hg-oro3) 70%,var(--hg-oro4) 100%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 #000);animation:hgPanOro 8s ease-in-out infinite}
.escena-taller{background-image:url(taller.webp)}
.escena-muelle{background-image:url(muelle.webp)}
@media(min-width:900px){.escena-taller{background-image:url(taller-ancho.webp)}.escena-muelle{background-image:url(muelle-ancho.webp)}}
.escena-taller:after{content:"";position:absolute;left:38%;top:30%;width:22%;height:40%;border-radius:50%;background:radial-gradient(circle,#ff9a3a44,#0000 70%);mix-blend-mode:screen;animation:hgParpadeo 2.4s infinite;pointer-events:none}
html.lite .escena b,html.lite .escena-taller:after{animation:none}

/* ===================== 9) Tablón de corcho en ENCARGOS ===================== */
#encModal .enc-panel.corcho{background:url(tablon-corcho.webp) center/cover,#5a3a1c!important}
.enc-panel.corcho>#encBody{padding:18px 16px 22px}
#encBody.corcho-notas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px 16px}
#encBody.corcho-notas>:not(.enc-card){grid-column:1/-1}
#encBody.corcho-notas>.enc-card{position:relative;display:block;width:100%;max-width:none!important;flex:none!important;min-height:180px;margin:0;padding:34px 22px 22px;border:0!important;border-radius:0;text-align:left;color:#2b1d0e;
 background:url(nota-encargo.webp) center/100% 100% no-repeat!important;box-shadow:none!important;filter:drop-shadow(0 6px 8px #0008);transform:rotate(-1.4deg);transition:transform .2s,filter .2s}
#encBody.corcho-notas>.enc-card:nth-child(2n){transform:rotate(1.2deg)}
#encBody.corcho-notas>.enc-card:nth-child(3n){transform:rotate(-.4deg)}
#encBody.corcho-notas>.enc-card:hover,#encBody.corcho-notas>.enc-card:focus-visible{transform:rotate(0) scale(1.03);filter:drop-shadow(0 10px 14px #000a)}
#encBody.corcho-notas>.enc-card .t{color:#3a1608!important;font-size:16px;text-shadow:none}
#encBody.corcho-notas>.enc-card .it,#encBody.corcho-notas>.enc-card .enc-money,#encBody.corcho-notas>.enc-card .enc-money span,#encBody.corcho-notas>.enc-card .ago{color:#3b2a14!important;text-shadow:none}
#encBody.corcho-notas>.enc-card .enc-money{border-color:#8a6a3266!important;background:none!important}
#encBody.corcho-notas>.enc-card :is(small,span,label):not(.badge):not(.badge *){color:#3b2a14!important;text-shadow:none!important}
.enc-panel.corcho .enc-empty{background:#efe2c0e6;border-radius:4px;color:#2b1d0e;padding:16px}

/* ===================== 10) Calendario de ausencias ===================== */
.calendario{position:relative;width:min(280px,78%);margin:4px auto 14px;filter:drop-shadow(0 10px 14px #000a)}
:is(#ausBody,#dirBody)>.calendario{flex:0 0 min(280px,78%)!important;max-width:min(280px,78%)!important;margin:4px auto 14px!important}
.cd-hoja{position:relative}.cd-hoja>img{display:block;width:100%}
.cd-rej{position:absolute;left:5.8%;right:6%;top:57.5%;bottom:7.7%;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(4,1fr)}
.cd-rej .cd{position:relative;display:grid;place-items:center;color:#2b1d0e;font:400 clamp(11px,1.2vw,14px)/1 'IM Fell English',Georgia,serif}
.cd-rej .cd small{position:absolute;top:1px;left:3px;font:700 7px/1 Georgia,serif;color:#7a5a22}
.cd-rej .cd.pasado{opacity:.4}
.cd-rej .cd.hoy b{display:grid;place-items:center;width:1.9em;height:1.9em;border:2px solid #b88931;border-radius:50%}
.cd-rej .cd.aus{background:radial-gradient(circle,#b0201033 0,#b0201022 45%,#0000 70%)}
.cd-rej .cd.aus b{color:#8a1e10;font-weight:700}
.cd-rej .cd i{position:absolute;right:2px;bottom:1px;font:700 8px/1 Georgia,serif;font-style:normal;color:#fff;background:#8a1e10;border-radius:6px;padding:1px 3px}
.calendario p{margin:6px 0 0;text-align:center;color:#d9c08a;font:italic 12px/1.3 'IM Fell English',Georgia,serif;filter:none}

/* ===================== 11) Mapa de proveedores ===================== */
.mapa-prov{position:relative;width:100%;max-width:820px;margin:4px auto 4px!important;flex:1 1 100%;border:3px double #b88931;border-radius:4px;overflow:hidden;box-shadow:0 8px 20px #0009}
.mapa-prov>img{display:block;width:100%;height:auto}
.mapa-prov .pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;padding:0;border:0;background:none;cursor:pointer;color:#2b1d0e;z-index:1}
.mapa-prov .pin i{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:radial-gradient(circle at 40% 40%,#ff8a6a,#a3200f 60%,#5a0e06);box-shadow:0 3px 4px #000a,inset 0 0 0 2px #ffffff33}
.mapa-prov .pin span{order:-1;margin-bottom:3px;padding:2px 6px;border-radius:3px;background:#f3e6c4ee;border:1px solid #8a6a32;font:700 11px/1.15 Georgia,serif;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 4px #0007}
.mapa-prov .pin:hover,.mapa-prov .pin:focus-visible{z-index:2}
.mapa-prov .pin:hover span,.mapa-prov .pin:focus-visible span{background:#fff4d4;max-width:240px}
.mapa-prov .pin:hover i{filter:brightness(1.2)}
@media(max-width:600px){.mapa-prov .pin span{font-size:9px;max-width:90px;padding:1px 4px}.mapa-prov .pin i{width:14px;height:14px}}
.mapa-nota{margin:2px 0 10px}

/* ===================== 12) Firma y sello ===================== */
.rc-firma{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;min-height:56px;margin:6px 0 2px}
.rc-firma .fi{width:min(200px,55%);height:auto;transform:rotate(-3deg);mix-blend-mode:multiply}
.rc-firma .se{width:62px;height:auto;opacity:.82;transform:rotate(-11deg);mix-blend-mode:multiply}
.rc-firma.alb{justify-content:flex-end;margin-top:10px}

/* ===================== 13) Poste roto ===================== */
.net-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.net-bar .poste{flex:none;width:30px;height:48px;background:url(poste-roto.webp) center/contain no-repeat;filter:drop-shadow(0 2px 2px #000a);animation:hgPoste 3s ease-in-out infinite;transform-origin:50% 100%}
@keyframes hgPoste{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
html.lite .net-bar .poste{animation:none}

/* ===================== 14) Lluvia de noche y profundidad ===================== */
.hero-lluvia{position:absolute;z-index:2;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12%,#000 88%,#0000);translate:calc(var(--hx,0) * 3px) calc(var(--hy,0) * 2px)}
.hero-lluvia .gotas{position:absolute;inset:-40px 0 0;background:repeating-linear-gradient(104deg,#0000 0 9px,#c8dcff40 9px 10px,#0000 10px 23px);background-size:46px 120px;animation:hgLluvia .55s linear infinite;opacity:.8}
.hero-lluvia .g2{background:repeating-linear-gradient(100deg,#0000 0 15px,#dfe9ff30 15px 16px,#0000 16px 31px);background-size:62px 180px;animation-duration:.8s;opacity:.6}
@keyframes hgLluvia{to{background-position:-30px 120px}}
.hero-lluvia .g2{animation-name:hgLluvia2}
@keyframes hgLluvia2{to{background-position:-40px 180px}}
.hero-lluvia .rayo-l{position:absolute;inset:0;background:#dfe9ff;opacity:0;animation:hgRelampago 23s 4s infinite}
@keyframes hgRelampago{0%,96.6%,100%{opacity:0}97%{opacity:.55}97.4%{opacity:.05}97.8%{opacity:.35}98.4%{opacity:0}}
.hero-banner{--hx:0;--hy:0}
.hero-fx .mota{translate:calc(var(--hx) * -9px) calc(var(--hy) * -6px);transition:translate .4s ease-out}
.hero-fx .luz{translate:calc(var(--hx) * -1.5px) calc(var(--hy) * -1px);transition:translate .4s ease-out}
.hero-banner img.ancha{object-position:calc(50% + var(--hx) * 1.2%) calc(40% + var(--hy) * 2%);transition:object-position .5s ease-out,filter .6s ease}
.hero-banner:before{translate:calc(var(--hx) * 10px) 0;transition:translate .5s ease-out}

/* ===================== 15) Pasar página al cambiar de categoría ===================== */
.category-visual{perspective:1400px}
.category-visual.pasa img{animation:hgPagina .7s cubic-bezier(.3,.1,.2,1) both;transform-origin:0 50%}
@keyframes hgPagina{0%{transform:rotateY(-80deg);filter:brightness(.4)}60%{filter:brightness(1.05)}100%{transform:none;filter:none}}

/* ===================== 16) AGOTADO que cae ===================== */
.nostock.cae{animation:hgCae .9s cubic-bezier(.3,1.5,.5,1) both!important}
@keyframes hgCae{0%{transform:translateY(-60px) rotate(-25deg);opacity:0}55%{transform:translateY(4px) rotate(8deg);opacity:1}75%{transform:rotate(-5deg)}100%{transform:rotate(0)}}

@media(prefers-reduced-motion:reduce){.hero-lluvia,.nostock.cae,.category-visual.pasa img,.escena b{animation:none!important}}

/* ===================== 17) Correcciones de colocación (20/10/2026) ===================== */
/* las ventanas pequeñas más altas que la pantalla (Mi ficha, confirmaciones…) empiezan arriba y se desplazan, sin cortarse */
.modal-overlay.confirm{align-items:flex-start}
.modal-overlay.confirm>*{margin-top:auto!important;margin-bottom:auto!important}
/* en el pedido vacío del ordenador, el dibujo más pequeño para que se lea el texto */
@media(min-width:901px){.cart .empty{padding:6px 0}.cart .empty .empty-art:not(.nofile){width:min(140px,55%)}}
/* «Fichar entrada» con sitio suficiente junto a DIRECCIÓN y ⚙ en el móvil */
@media(max-width:600px){.clock-actions>#bossBtn{flex:1 1 0;min-width:0;letter-spacing:.06em;padding-left:8px;padding-right:8px}.clock-actions>.clock-btn{flex:1 1 0;min-width:112px}}
.enc-card .ficha-retrato{float:left;width:84px;margin:0 14px 4px 0}

/* 20/10/2026 · Marcadores de color por categoría de Dirección (el mismo color que llevan sus tarjetas en Discord) */
#dirModal .mod-sec[style*="--cat"]{--tab:var(--cat)}
#dirModal .mod-sec[style*="--cat"] .mod-card{position:relative;overflow:hidden}
#dirModal .mod-sec[style*="--cat"] .mod-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,color-mix(in srgb,var(--cat) 70%,#fff) ,var(--cat) 30%,color-mix(in srgb,var(--cat) 70%,#000));box-shadow:1px 0 2px #0007;pointer-events:none}
#dirModal .dir-top[style*="--cat"]{position:relative;padding-left:16px}
#dirModal .dir-top[style*="--cat"]::before{content:"";position:absolute;left:0;top:-6px;width:10px;height:calc(100% + 4px);background:var(--cat);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);box-shadow:0 2px 4px #0008;pointer-events:none}
.wh-row.cat{position:relative;padding-left:14px}
.wh-row.cat::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:6px;border-radius:2px;background:var(--cat);box-shadow:0 1px 2px #0008}


/* Fuente: botones-imagen.css */
/* HARRINGTON · Botones con imagen (v3.0 · 20/10/2026)
   Cada botón es una pieza pintada que se estira sin deformarse (los extremos se quedan como son y solo se alarga el centro):
   · cuero marrón: botones normales      · placa de latón: botones principales
   · cuero rojo: borrar, salir, cancelar · billete: finalizar, cobrar y pagar
   · cuero verde: la botonera de gestión · etiqueta de whisky: VENTA / PRESUPUESTO / MATERIALES
   · tecla de caja registradora: los botones pequeños redondos (+, −, ⚙, micrófono)
   Si una imagen no carga, el botón sigue funcionando con su color de fondo. */

:root{--bi-ink:#2a1a06;--bi-gold:#f6dc8c}

/* ---------- base común de las piezas alargadas ---------- */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:not(.cat-btn):not(.enc-card):not(.mod-card):not(.plus):not(.minus):not(.pin),
.clock-link,.clock-btn,.enc-back,#finish,#finishEnc,#obGo,.ob-go,.mode-tab,.tut-btn,.most-go,.most-clear,.g-enter,.gp-ok,.gp-no{
 border-style:solid!important;border-radius:0!important;background:none!important;box-shadow:none!important;outline:0;
 -webkit-tap-highlight-color:transparent;filter:drop-shadow(0 3px 3px #000a);transition:filter .15s,transform .1s}
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:not(.cat-btn):not(.enc-card):not(.mod-card):not(.plus):not(.minus):not(.pin)::after,
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:not(.cat-btn):not(.enc-card):not(.mod-card):not(.plus):not(.minus):not(.pin)::before,
.clock-link:not(.enc-btn)::after,.clock-link:not(.enc-btn)::before,.management-nav>.clock-link:not(#bellBtn)::after,.clock-btn::after,.clock-btn::before,.enc-back::after,.enc-back::before,#finish::after,#finish::before,#obGo::after,#obGo::before,.ob-go::after,.mode-tab::after,.mode-tab::before{display:none!important}
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:focus-visible,.clock-link:focus-visible,.clock-btn:focus-visible,.enc-back:focus-visible,#finish:focus-visible,#obGo:focus-visible,.mode-tab:focus-visible{outline:2px solid #fff3c4!important;outline-offset:2px}
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:hover:not(:disabled),.clock-link:hover,.clock-btn:hover,.enc-back:hover,#finish:hover,#obGo:hover,.mode-tab:hover{filter:drop-shadow(0 4px 5px #000c) brightness(1.08)}
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:active:not(:disabled),.clock-link:active,.clock-btn:active,.enc-back:active,#finish:active,#obGo:active,.mode-tab:active{transform:translateY(2px)!important;filter:drop-shadow(0 1px 1px #000a) brightness(.9)}
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec,.set-row) button:disabled{filter:grayscale(.7) brightness(.75)}

/* ---------- cuero marrón: botones normales ---------- */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec) button:not(.primary):not(.gold):not(.warn):not(.danger):not(.ok):not(.cat-btn):not(.enc-card):not(.mod-card):not(.plus):not(.minus):not(.pin),
.clock-link:not(.enc-btn),.enc-back,.most-clear,.gp-no{
 border-width:9px 20px!important;border-image:url(boton-cuero.webp) 36 56 36 56 fill / 9px 20px round stretch!important;
 color:#f3d47c!important;text-shadow:0 1px 1px #000,0 0 6px #0008!important;padding:7px 4px!important;min-height:46px}

/* ---------- placa de latón: principales ---------- */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec) button:is(.primary,.gold,.ok),.clock-btn:not(.out),.g-enter,.gp-ok{
 border-width:9px 26px!important;border-image:url(boton-laton.webp) 30 86 30 86 fill / 9px 26px stretch!important;
 color:var(--bi-ink)!important;text-shadow:0 1px 0 #fff7,0 -1px 0 #6e4a1244!important;font-weight:700;padding:6px 2px!important;min-height:46px}

/* ---------- cuero rojo: peligro ---------- */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec) button:is(.warn,.danger),.enc-head button.danger,.clock-btn.out,.confirm-actions .danger{
 border-style:solid!important;border-radius:0!important;background:none!important;box-shadow:none!important;
 border-width:9px 20px!important;border-image:url(boton-cuero-rojo.webp?v=2) 36 56 36 56 fill / 9px 20px round stretch!important;
 color:#ffe6c8!important;text-shadow:0 1px 1px #000!important;padding:6px 4px!important;min-height:42px;filter:drop-shadow(0 3px 3px #000a)}
.enc-head button.danger::after,.enc-head button.danger::before{display:none!important}

/* ---------- billete: finalizar, cobrar y pagar ---------- */
#finish,#finishEnc,#obGo,.ob-go,.most-go,[data-dir^="su-pay"],[data-dir="ped-pay"],[data-pact="pay"]{
 border-style:solid!important;border-radius:0!important;background:none!important;box-shadow:none!important;
 border-width:10px 34px!important;border-image:url(boton-billete.webp) 34 124 34 124 fill / 10px 34px round stretch!important;
 color:#173823!important;text-shadow:0 1px 0 #fff8!important;font-weight:700!important;letter-spacing:.08em;padding:8px 2px!important;min-height:52px}
#finish.not-ready,#obGo.not-ready{filter:grayscale(.55) brightness(.85) drop-shadow(0 3px 3px #000a);color:#4a3a1c!important}

/* ---------- cuero verde: la botonera de gestión ---------- */
.management-nav .clock-link.enc-btn{
 border-width:12px 20px!important;border-image:url(boton-cuero-verde.webp?v=2) 36 56 36 56 fill / 12px 20px round stretch!important;
 color:#f6dc8c!important;text-shadow:0 1px 1px #000,0 0 6px #0009!important;padding:6px 2px!important}
.management-nav{background:none!important;box-shadow:none!important}
.management-nav .clock-link.enc-btn svg{filter:drop-shadow(0 1px 1px #000)}
.clock-link.bell-btn{min-width:56px}

/* ---------- etiqueta de whisky: pestañas VENTA / PRESUPUESTO / MATERIALES ---------- */
.mode-tab{border-width:8px 32px!important;border-image:url(boton-etiqueta.webp) 30 130 30 130 fill / 8px 32px stretch!important;
 color:#1e4a2a!important;text-shadow:0 1px 0 #fff8!important;font-weight:700;padding:6px 0!important;opacity:.62;filter:grayscale(.45) drop-shadow(0 2px 2px #0009)}
.mode-tab.on{opacity:1;filter:drop-shadow(0 3px 4px #000b)}
.mode-tabs{background:none!important;border:0!important;box-shadow:none!important;gap:6px!important}

/* ---------- tecla de caja registradora: botones redondos ---------- */
.qty button.plus,.qty button.minus,.qty>button,#setBtn,.ai-fab,.tut-btn>b,.to-top{
 border:0!important;border-radius:50%!important;box-shadow:none!important;outline:0;
 background:url(boton-tecla.webp) center/contain no-repeat!important;color:#3a2405!important;text-shadow:0 1px 0 #fff8!important;
 filter:drop-shadow(0 3px 3px #000a);transition:transform .08s}
.qty button.plus,.qty button.minus,.qty>button{width:40px!important;height:38px!important;padding:0 0 4px!important;font:700 21px/1 Georgia,serif!important;display:grid;place-items:center}
.qty button.plus:active,.qty button.minus:active,.qty>button:active,#setBtn:active,.ai-fab:active,.to-top:active{background-image:url(boton-tecla-pulsada.webp)!important;transform:translateY(2px) scale(.96)}
.qty button.plus::after,.qty button.minus::after,.qty button.plus::before,.qty button.minus::before,#setBtn::after,#setBtn::before{display:none!important}
#setBtn{width:50px!important;height:47px!important;padding:0 0 4px!important;font-size:21px!important;border-width:0!important;border-image:none!important;min-height:0}
.ai-fab{width:60px!important;height:57px!important;padding-bottom:5px!important}
.ai-fab svg{stroke:#3a2405!important;width:24px;height:24px}
.ai-fab .ai-badge,.ai-fab b{z-index:1}
.to-top{width:46px!important;height:44px!important}
.tut-btn{border-width:7px 22px!important;border-image:url(boton-cuero.webp) 36 56 36 56 fill / 7px 22px round stretch!important;color:#f3d47c!important;padding:2px 2px!important}
.tut-btn>b{display:inline-grid!important;place-items:center;width:24px;height:23px;margin-right:6px;font-size:14px}

/* ---------- textos dentro de las piezas ---------- */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns,.dir-form,.enc-sec) button,.clock-link,.clock-btn,#finish,#obGo{line-height:1.15;white-space:normal}
.set-row .boss-btn{min-height:38px;border-width:7px 16px!important;border-image:url(boton-cuero.webp) 36 56 36 56 fill / 7px 16px round stretch!important}
.set-row .boss-btn.on{border-image:url(boton-laton.webp) 30 86 30 86 fill / 7px 20px stretch!important;color:var(--bi-ink)!important;text-shadow:0 1px 0 #fff7!important}
html.hc :is(.enc-actions,.actions,.receipt-actions,.confirm-actions) button,html.hc .clock-link,html.hc .clock-btn{border-image:none!important;background:#000!important;border:2px solid #fff!important;color:#fff!important}
@media(max-width:600px){.mode-tab{border-width:7px 20px!important;border-image-width:7px 20px!important;font-size:12px!important;letter-spacing:.04em!important;min-width:0}.mode-tabs{gap:3px!important}}

/* ---------- teclas: el texto, el icono o el número, centrados sobre el marfil ----------
   El marfil de la tecla está un poco por encima del centro de la imagen (a un 36 % de alto), así que cada tecla
   lleva la imagen a su tamaño exacto y el contenido se coloca justo en el centro del marfil. */
.qty button.plus,.qty button.minus,.qty>button,#setBtn,.ai-fab,.to-top{
 display:flex!important;align-items:center!important;justify-content:center!important;
 background-size:100% 100%!important;background-position:center!important;aspect-ratio:168/160;
 padding:0 0 calc(var(--tk-h) * .278) 0!important;line-height:1!important;text-align:center!important;letter-spacing:0!important;text-indent:0!important}
.qty button.plus,.qty button.minus,.qty>button{--tk-h:40px;width:42px!important;height:40px!important;font:700 22px/1 Georgia,serif!important}
#setBtn{--tk-h:48px;width:50px!important;height:48px!important;font-size:22px!important}
.ai-fab{--tk-h:58px;width:61px!important;height:58px!important}
.to-top{--tk-h:44px;width:46px!important;height:44px!important}
.qty button.plus>*,.qty button.minus>*,#setBtn>*,.ai-fab>svg,.to-top>*{display:block;margin:0!important}
.ai-fab>svg{width:24px!important;height:24px!important}
/* la «AI» de la etiqueta se queda en su esquina, fuera del marfil */
.ai-fab>:not(svg){position:absolute!important}
/* la tecla pulsada tiene el marfil un poco más abajo: el contenido baja con ella */
.qty button.plus:active,.qty button.minus:active,.qty>button:active,#setBtn:active,.ai-fab:active,.to-top:active{padding-bottom:calc(var(--tk-h) * .252)!important}
/* el «?» del botón TUTORIAL, centrado en su tecla */
.tut-btn>b{--tk-h:24px;display:inline-flex!important;align-items:center;justify-content:center;width:25px!important;height:24px!important;padding:0 0 calc(var(--tk-h) * .278)!important;line-height:1!important;background-size:100% 100%!important;font-size:14px!important}
/* ajuste fino de los símbolos que dibujan su glifo algo desplazado */
#setBtn{padding-left:3px!important}
.to-top{padding-left:3px!important;padding-bottom:calc(var(--tk-h) * .278 + 3px)!important}


/* Fuente: vistoso3.css */
/* HARRINGTON · Vistoso, tercera tanda (v3.0 · 20/10/2026)
   Retrato del Señor Harrington, escenas de Dirección, iconos de latón en la barra del móvil, etiquetas de precio,
   la vela de «Mi semana», la pizarra del mostrador, el cartel de CERRADO POR INVENTARIO, campos de papel con línea
   de tinta, desplegables de madera, barra de desplazamiento de latón, cursor de pluma, termómetro del objetivo
   y las puertas del despacho al entrar en Dirección. Solo aspecto: no cambia ningún dato. */

/* ===================== 1) Retrato del Señor Harrington ===================== */
.ai-seal{width:30px;height:36px;border-radius:50%;background:url(retrato-harrington-mini.webp) 50% 30%/cover,#3a2a0c;color:transparent;font-size:0;
 border:2px solid #c9a24a;box-shadow:0 0 0 1px #3a2a0c,0 2px 5px #000a}
.ai-msg.a b.ai-who{display:flex;align-items:center;gap:7px}
.ai-msg.a b.ai-who:before{content:"";flex:none;width:22px;height:27px;border-radius:50%;background:url(retrato-harrington-mini.webp) 50% 30%/cover;border:1.5px solid #c9a24a;box-shadow:0 1px 3px #000a}
.hg-retrato-cab{flex:none;width:40px;height:48px;margin-right:10px;border-radius:50%;background:url(retrato-harrington-mini.webp) 50% 30%/cover;border:2px solid #d7ae54;box-shadow:0 0 0 2px #2a1c0d,0 3px 8px #000c}
#aiModal .enc-head>span:first-child{display:flex;align-items:center}

/* ===================== 2) Escenas de Dirección ===================== */
.escena-ventas{background-image:url(escena-ventas.webp);background-position:62% 42%}
.escena-gastos{background-image:url(escena-gastos.webp);background-position:50% 55%}
.escena-empleados{background-image:url(escena-empleados.webp);background-position:60% 40%}
.escena-sueldos{background-image:url(escena-sueldos.webp);background-position:45% 45%}
.escena-eventos{background-image:url(escena-eventos.webp);background-position:40% 50%}
.escena-convenios{background-image:url(escena-convenios.webp);background-position:50% 45%}
.escena-clientes{background-image:url(escena-clientes.webp);background-position:50% 45%}
.escena-ventas:after,.escena-sueldos:after,.escena-gastos:after{content:"";position:absolute;right:6%;top:18%;width:22%;height:50%;border-radius:50%;background:radial-gradient(circle,#ffb84a33,#0000 70%);mix-blend-mode:screen;animation:hgParpadeo 3.2s infinite;pointer-events:none}
html.lite .escena:after{animation:none}

/* ===================== 3) Iconos de latón en la barra del móvil ===================== */
.mnav button[data-mn]>.bi,.mnav button[data-mn]>.mn-i{display:none}
.mnav button[data-mn]:before{content:"";display:block;width:30px;height:30px;background:url(iconos-barra.webp) 0 0/700% 100% no-repeat;filter:drop-shadow(0 1px 1px #000c)}
.mnav button[data-mn="encBtn"]:before{background-position:16.6667% 0}
.mnav button[data-mn="pedBtn"]:before{background-position:33.3333% 0}
.mnav button[data-mn="ausBtn"]:before{background-position:50% 0}
.mnav button[data-mn="libroBtn"]:before{background-position:66.6667% 0}
.mnav button[data-mn="dirBtn"]:before{background-position:83.3333% 0}
.mnav button[data-mn="clock"]:before{background-position:100% 0}
.mnav .mn-clock.on:before{filter:drop-shadow(0 0 5px #9fd884) drop-shadow(0 1px 1px #000c)}
.mnav button:active:before{transform:translateY(1px) scale(.96)}
.mnav .mn-n{top:0}

/* ===================== 4) Etiquetas de precio con cordel ===================== */
.product .price{border:solid transparent;border-width:4px 6px 4px 30px;border-radius:0;padding:2px 5px 2px 2px;margin-right:2px;background:none;
 border-image:url(etiqueta-precio.webp) 22 22 22 175 fill / 4px 6px 4px 30px stretch;color:#2a1a0d;text-shadow:none;box-shadow:none;filter:drop-shadow(0 2px 2px #0009)}
.product .price:before,.product .price:after{display:none}
.product .price small.was{color:#7a6448}
.product.noprice .price{color:#8a2a1a}
@media(max-width:700px){.product .price{border-width:3px 5px 3px 25px;border-image-width:3px 5px 3px 25px;padding:1px 4px 1px 1px}}

/* ===================== 5) La vela de «Mi semana» ===================== */
.mi-week{position:relative}
.mi-week.con-vela{padding-right:64px}
.mw-vela{position:absolute;right:4px;top:0;width:54px;height:90px;pointer-events:none}
.mw-vela img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity 1.2s ease}
.mw-vela img.g{opacity:var(--p,0)}
.mw-vela img.e{opacity:calc(1 - var(--p,0))}
.mw-vela:after{content:"";position:absolute;left:50%;top:calc(4% + var(--p,0)*52%);width:30px;height:30px;margin-left:-15px;border-radius:50%;background:radial-gradient(circle,#ffcf6a66,#0000 70%);animation:hgParpadeo 1.8s infinite}
html.lite .mw-vela:after{animation:none}

/* ===================== 6) La pizarra del mostrador ===================== */
.most-list{border:solid transparent;border-width:14px 14px 20px;border-image:url(pizarra.webp) 40 40 62 40 fill / 14px 14px 20px stretch;background:none;border-radius:0;padding:4px 8px}
.most-list .most-line{border-color:#ffffff1f;color:#f1ece0}
.most-list .most-line b{color:#fbf7ec;font-family:'IM Fell English',Georgia,serif;font-weight:400;letter-spacing:.02em;text-shadow:0 0 1px #fff8}
.most-list .most-line small{color:#d9d3c4}
.most-list:empty:before,.most-list>.most-empty{color:#e9e3d3;font-family:'IM Fell English',Georgia,serif}

/* ===================== 7) Cartel de CERRADO POR INVENTARIO ===================== */
.cartel-inv{position:relative;width:min(420px,86%);aspect-ratio:900/586;margin:2px auto 8px;background:url(cartel-inventario.webp) 50% 0/100% 100% no-repeat;
 transform-origin:50% 3%;animation:hgCartel 5s ease-in-out infinite;filter:drop-shadow(0 6px 8px #000a)}
.cartel-inv span{position:absolute;left:10%;right:10%;top:60%;transform:translateY(-50%);text-align:center;font:400 clamp(17px,4.6vw,27px)/1.12 var(--f-cartel);color:#7a1d14;letter-spacing:.03em;text-shadow:0 1px 0 #fff6}
.cartel-inv span small{display:block;margin-top:4px;font:italic 400 clamp(11px,2.8vw,14px)/1.2 'IM Fell English',Georgia,serif;color:#4a3216;letter-spacing:.04em}
@keyframes hgCartel{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}
html.lite .cartel-inv{animation:none}

/* ===================== 8) Campos de papel con línea de tinta y desplegables de madera ===================== */
html body:not(.hc) :is(input[type=text],input[type=search],input[type=number],input[type=date],input[type=time],input[type=datetime-local],input[type=password],input[type=email],input[type=tel],input[type=url],input:not([type]),textarea):not(.qty input):not(.money input):not([type=checkbox]):not([type=radio]){
 background:linear-gradient(transparent calc(100% - 2px),#3a2610cc calc(100% - 2px)),linear-gradient(#f4e9cc,#ead9b2)!important;color:#2a1a0d!important;
 border:1px solid #a88a52!important;border-radius:3px!important;box-shadow:inset 0 1px 3px #6b4e1c40!important;caret-color:#7a1d14}
html body:not(.hc) :is(input,textarea):not(.qty input):not(.money input)::placeholder{color:#7d6646;opacity:1;font-style:italic}
html body:not(.hc) :is(input[type=text],input[type=search],input[type=number],input[type=date],input[type=time],input[type=password],input:not([type]),textarea):not(.qty input):not(.money input):focus{
 outline:0;background:linear-gradient(transparent calc(100% - 2px),#7a1d14 calc(100% - 2px)),linear-gradient(#fbf2d9,#efdfba)!important;box-shadow:0 0 0 2px #d7ae5499,inset 0 1px 3px #6b4e1c40!important}
html body:not(.hc) .money{background:linear-gradient(transparent calc(100% - 2px),#3a2610cc calc(100% - 2px)),linear-gradient(#f4e9cc,#ead9b2)!important;border-color:#a88a52!important;color:#2a1a0d}
html body:not(.hc) .money input{color:#2a1a0d!important}
html body:not(.hc) .money:focus-within{box-shadow:0 0 0 2px #d7ae5499}
html body:not(.hc) input[type=date]::-webkit-calendar-picker-indicator{filter:sepia(1) saturate(2) brightness(.5)}
html body:not(.hc) select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23f0d278' stroke-width='2'/%3E%3C/svg%3E") right 12px center/14px 9px no-repeat,linear-gradient(#2a1a0dcc,#120a05e6),url(textura-madera.webp) 0 0/260px!important;
 -webkit-appearance:none;appearance:none;padding-right:34px!important;color:#f3dfa6!important;border:1px solid #8b6a2e!important;border-radius:4px!important;box-shadow:inset 0 1px 0 #f0d27833,inset 0 -2px 4px #0008,0 1px 2px #0008!important;text-shadow:0 1px 0 #000}
html body:not(.hc) select option{background:#1a110a;color:#f3dfa6}

/* ===================== 9) Cursor de pluma en los campos de texto (ordenador) ===================== */
@media(pointer:fine){
 :is(input[type=text],input[type=search],input[type=number],input[type=password],input:not([type]),textarea){cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 29 L7 20 C12 11 20 4 30 2 C28 12 21 20 12 25 Z' fill='%23f3e7c8' stroke='%232a1a0d' stroke-width='1.3'/%3E%3Cpath d='M3 29 L19 12' stroke='%238b6a2e' stroke-width='1.2'/%3E%3Cpath d='M3 29 L5.5 23.5' stroke='%232a1a0d' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") 3 29,text}
}

/* ===================== 10) Barra de desplazamiento de latón (ordenador) ===================== */
@media(pointer:fine){
 html{scrollbar-color:#c9a24a #0a120d}
 ::-webkit-scrollbar{width:12px;height:12px}
 ::-webkit-scrollbar-track{background:linear-gradient(90deg,#050a07,#0d1a12 50%,#050a07);box-shadow:inset 0 0 3px #000}
 ::-webkit-scrollbar-thumb{border:2px solid #0a120d;border-radius:7px;background:linear-gradient(90deg,#6b4e1c,#f0d278 45%,#b88931 60%,#5a4016)}
 ::-webkit-scrollbar-thumb:horizontal{background:linear-gradient(#6b4e1c,#f0d278 45%,#b88931 60%,#5a4016)}
 ::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,#7d5c22,#ffe39a 45%,#d0a040 60%,#6b4e1c)}
 ::-webkit-scrollbar-corner{background:#0a120d}
}

/* ===================== 11) Termómetro de mercurio del objetivo ===================== */
.goal-bar .gl-track{height:16px;margin:6px 0 0 14px;border-radius:0 8px 8px 0;overflow:visible;background:linear-gradient(#ffffff2e,#ffffff08 40%,#0000 60%,#ffffff14),linear-gradient(#0c0f0d,#1a1f1c);
 border:1.5px solid #d9cfb4aa;border-left:0;box-shadow:inset 0 2px 3px #000,0 0 0 1px #0008}
.goal-bar .gl-track:before{content:"";position:absolute;left:-17px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff9a8a,#c0221a 45%,#6b0c08);border:1.5px solid #d9cfb4aa;box-shadow:0 0 8px #c0221a88,inset 0 -2px 3px #0006;z-index:1}
.goal-bar .gl-track:after{content:"";position:absolute;inset:2px 4px 2px 6px;background:repeating-linear-gradient(90deg,#d9cfb466 0 1px,#0000 1px 10%);pointer-events:none;mix-blend-mode:screen}
.goal-bar .gl-fill{top:4px;bottom:4px;left:0;border-radius:0 4px 4px 0;background:linear-gradient(#ff8070,#c0221a 55%,#7a100a);box-shadow:0 0 8px #e0302a88}
.goal-bar.done .gl-track:before{background:radial-gradient(circle at 35% 35%,#ffe7a0,#e8b923 45%,#7a5a10);box-shadow:0 0 10px #e8b923aa}
.goal-bar.done .gl-fill{background:linear-gradient(#fff1b0,#e8b923 55%,#8a6410)}

/* ===================== 12) Puertas del despacho al entrar en Dirección ===================== */
.hg-puertas{position:fixed;inset:0;z-index:2147483000;pointer-events:none;perspective:1400px;display:flex}
.hg-puertas i{flex:1;position:relative;background:linear-gradient(90deg,#00000066,#0000 20%,#0000 80%,#00000066),url(textura-madera.webp) 0 0/320px,#3a2410;
 box-shadow:inset 0 0 0 10px #2a170a,inset 0 0 0 12px #8b6a2e,inset 0 0 40px #000c;backface-visibility:hidden}
.hg-puertas i:before{content:"";position:absolute;inset:14% 16%;border:3px solid #8b6a2e;border-radius:4px;box-shadow:inset 0 0 0 6px #2a170a,inset 0 0 0 8px #6b4e1c,inset 0 0 30px #000a}
.hg-puertas i:after{content:"";position:absolute;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff1b0,#c9a24a 45%,#5a4016);box-shadow:0 2px 4px #000}
.hg-puertas i:first-child{transform-origin:0 50%;animation:hgPuertaI .95s .12s cubic-bezier(.55,.05,.35,1) forwards}
.hg-puertas i:last-child{transform-origin:100% 50%;animation:hgPuertaD .95s .12s cubic-bezier(.55,.05,.35,1) forwards}
.hg-puertas i:first-child:after{right:7%}.hg-puertas i:last-child:after{left:7%}
@keyframes hgPuertaI{to{transform:rotateY(-105deg);opacity:.2}}
@keyframes hgPuertaD{to{transform:rotateY(105deg);opacity:.2}}

/* ===================== Ajustes tras revisar las capturas ===================== */
#aiTitle{white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.1;letter-spacing:.08em;overflow:visible;text-overflow:clip}
@media(max-width:520px){#aiTitle{font-size:13.5px;letter-spacing:.04em}.hg-retrato-cab{width:32px;height:38px;margin-right:7px}}
.mi-week.con-vela{padding-right:inherit}
.mi-week.con-vela .mw-vela{top:40px}
.mi-week.con-vela>.mw-bar,.mi-week.con-vela>.mw-row{margin-right:62px}
html body:not(.hc) .money input::placeholder{color:#7d6646;opacity:1;font-style:italic}
html body:not(.hc) .money>i{color:#5a3f1a!important;background:none!important;border-color:#a88a52!important}
.cartel-inv span{top:71%;left:12%;right:12%;font-size:clamp(14px,3.9vw,22px)}
.cartel-inv span small{margin-top:2px;font-size:clamp(10px,2.5vw,13px)}
#dirModal .dir-top>.enc-back{flex:0 0 auto;width:auto;max-width:70%;margin-bottom:0}
/* Las palabras de los botones no se parten por la mitad («COPIAR TELEGRAM-A») y el total deja aire a los botones */
:is(.enc-actions,.actions,.receipt-actions,.confirm-actions,.emp-btns) button{overflow-wrap:break-word!important;word-break:normal!important;-webkit-hyphens:auto;hyphens:auto}
.enc-actions.emp3 button,.enc-actions.two button{font-size:clamp(11px,3.1vw,14px)}
@media(max-width:520px){.enc-actions.two button{font-size:12.5px;letter-spacing:.02em}}
.brow.due+.enc-actions{margin-top:14px}
/* Carrito vacío en ordenador: la caja crece lo justo para que se lean las dos líneas */
.cart:has(>.empty){max-height:none}
@media(min-width:901px){.cart .empty .empty-art:not(.nofile){width:min(110px,45%)}}

/* ===================== 13) Entrada en vídeo y fluidez de la puerta (20/10/2026) ===================== */
.g-video{position:absolute;top:0;left:50%;height:100%;aspect-ratio:var(--ar,2/3);transform:translateX(-50%);object-fit:cover;opacity:0;pointer-events:none;transition:opacity .35s ease;background:transparent}
.gate.g-envideo.g-vplay .g-video{opacity:1}
/* Ordenador (21/10/2026): el vídeo ocupa exactamente el mismo sitio que la fachada (ancho, alto y altura de la escena) */
.gate.lw .g-video{--gw:max(112vw,150vh);width:var(--gw);height:calc(var(--gw) / 1.5);aspect-ratio:auto;top:clamp(calc(100vh - var(--gw) / 1.5),calc(50vh - var(--gw) / 1.5 * .56),0px)}
.gate[data-ph="video"] .g-stage{opacity:1}
.gate[data-ph="video"] .g-ui{opacity:0;pointer-events:none}
.gate.g-envideo :is(.g-fog,.g-grain,.g-dust,.g-bolt){opacity:0!important;transition:opacity .4s;animation-play-state:paused!important}
.gate.g-envideo .g-lamp{animation-play-state:paused}
.gate[data-ph="cards"].g-envideo .g-video{transition:opacity .9s ease}
.gate[data-ph="cards"].g-envideo .g-video{opacity:1}
/* La animación de siempre (ordenador, o si el vídeo no está): solo se mueve, sin repintar filtros en cada fotograma */
.g-leaf{transition:transform 1.9s cubic-bezier(.5,.05,.25,1);will-change:transform}
.g-leaf:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000c,#0006);opacity:0;transition:opacity 1.9s ease;pointer-events:none}
.gate[data-ph="open"] .g-leaf,.gate[data-ph="zoom"] .g-leaf{filter:none}
.gate[data-ph="open"] .g-leaf:after,.gate[data-ph="zoom"] .g-leaf:after{opacity:.45}
.gate:is([data-ph="open"],[data-ph="zoom"]) :is(.g-fog,.g-grain,.g-lamp){animation-play-state:paused}
.gate:is([data-ph="open"],[data-ph="zoom"]) .g-grain{opacity:0;transition:opacity .4s}
.gate[data-ph="zoom"] .g-stage{transition:transform 2.3s cubic-bezier(.42,0,.4,1),opacity .3s;will-change:transform}

/* ===================== 14) Venta / Presupuesto: el contenido sale como un cajón de madera (20/10/2026) ===================== */
@keyframes hgCajon{0%{opacity:.2;transform:perspective(1100px) translateY(-26px) rotateX(9deg) scale(.985);transform-origin:50% 0}
 60%{opacity:1;transform:perspective(1100px) translateY(3px) rotateX(-1deg) scale(1)}100%{opacity:1;transform:none}}
.grid.flip{animation:hgCajon .55s cubic-bezier(.3,.7,.35,1) both;position:relative}
.grid.flip:before{content:"";position:absolute;left:0;right:0;top:0;height:16px;z-index:5;pointer-events:none;border-radius:4px 4px 0 0;
 background:linear-gradient(#0000,#0000),url(textura-madera.webp) 0 0/300px;box-shadow:0 6px 12px #000a,inset 0 -2px 0 #c9a24a66;animation:hgCajonFrente .55s ease both}
@keyframes hgCajonFrente{0%{opacity:1;transform:translateY(0)}70%{opacity:1}100%{opacity:0;transform:translateY(-10px)}}
html.lite .grid.flip,html.lite .grid.flip:before{animation:none}html.lite .grid.flip:before{display:none}
@media(prefers-reduced-motion:reduce){.grid.flip,.grid.flip:before{animation:none}.grid.flip:before{display:none}}

/* ===================== 15) Salida: las puertas se cierran al cerrar la sesión ===================== */
.gate.g-salida .g-ui,.gate.g-salida .g-felt{opacity:0!important;pointer-events:none}
.gate.g-salida .g-video{opacity:1;transition:none}
.gate.g-salida.g-sfin .g-video{opacity:0;transition:opacity .9s ease}
/* Escenas de Dirección, cuarta tanda (20/10/2026) */
.escena-cierre{background-image:url(escena-cierre.webp);background-position:42% 60%}
.escena-balance{background-image:url(escena-balance.webp);background-position:55% 45%}
.escena-estadisticas{background-image:url(escena-estadisticas.webp);background-position:50% 50%}
.escena-stock{background-image:url(escena-stock.webp);background-position:50% 40%}
.escena-agenda{background-image:url(escena-agenda.webp);background-position:45% 45%}
.escena-historial{background-image:url(escena-historial.webp);background-position:45% 45%}
.escena-cierre:after,.escena-balance:after,.escena-historial:after{content:"";position:absolute;right:8%;top:16%;width:24%;height:52%;border-radius:50%;background:radial-gradient(circle,#ffb84a2e,#0000 70%);mix-blend-mode:screen;animation:hgParpadeo 3s infinite;pointer-events:none}

/* ===================== 16) Cuarta tanda: libro, papel, ticket y quinqué (20/10/2026) ===================== */
/* el tutorial pasa página */
@keyframes hgPagina{0%{opacity:0;transform:perspective(1200px) rotateY(-24deg);transform-origin:0 50%;filter:brightness(.6)}
 55%{opacity:1;filter:brightness(1.05)}100%{opacity:1;transform:none;filter:none}}
.tut-c.hg-pagina{animation:hgPagina .7s cubic-bezier(.25,.8,.35,1) both;position:relative}
.tut-c.hg-pagina:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0008,#0000 18%);animation:hgPaginaSombra .7s ease both}
@keyframes hgPaginaSombra{from{opacity:1}to{opacity:0}}
/* «Cargando…» escrito en papel */
.enc-empty.hg-cargando{position:relative;max-width:420px;margin:14px auto;padding:16px 22px 18px;border-radius:3px;text-align:left;color:#3a2610;
 background:linear-gradient(#0000 0 31px,#a88a5244 31px 32px) 0 6px/100% 32px,linear-gradient(#f4e9cc,#e6d3a6);box-shadow:0 4px 12px #0009,inset 0 0 30px #8b6a2e33}
.hg-cargando .hg-cg-t{display:block;font:italic 16px/32px 'IM Fell English',Georgia,serif;margin-bottom:0}
.hg-cargando i{display:block;height:2px;margin:15px 0 15px;border-radius:2px;background:linear-gradient(90deg,#3a2610aa,#3a261055);transform-origin:0 50%;transform:scaleX(0);animation:hgEscribe 1.8s ease-in-out infinite}
.hg-cargando i:nth-of-type(2){animation-delay:.35s;width:86%}.hg-cargando i:nth-of-type(3){animation-delay:.7s;width:93%}.hg-cargando i:nth-of-type(4){animation-delay:1.05s;width:62%}
@keyframes hgEscribe{0%{transform:scaleX(0);opacity:1}55%{transform:scaleX(1);opacity:1}85%,100%{transform:scaleX(1);opacity:0}}
html.lite .hg-cargando i{animation:none;transform:scaleX(1);opacity:.5}
/* el ticket se arranca */
.hg-ticket-fuera{position:fixed;z-index:2147482000;pointer-events:none;transform-origin:20% 0;animation:hgArranca .9s cubic-bezier(.5,0,.7,.4) forwards;
 -webkit-mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 9px) no-repeat,conic-gradient(from -45deg at 50% 100%,#000 90deg,#0000 0) 0 100%/14px 9px repeat-x;
 mask:linear-gradient(#000,#000) 0 0/100% calc(100% - 9px) no-repeat,conic-gradient(from -45deg at 50% 100%,#000 90deg,#0000 0) 0 100%/14px 9px repeat-x}
@keyframes hgArranca{0%{transform:none;opacity:1}18%{transform:translateY(-6px) rotate(-1.5deg)}100%{transform:translate(55vw,-30vh) rotate(24deg) scale(.7);opacity:0}}
/* luz de quinqué en el catálogo */
#products .product::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s ease;z-index:0;
 background:radial-gradient(circle 160px at var(--lx,50%) var(--ly,50%),#ffcf7a2e,#ffb04a14 45%,#0000 75%);mix-blend-mode:screen}
#products .product.hg-luz::before{opacity:1}
#products .product{position:relative}
html.lite #products .product::before{display:none}
.hg-ticket-fuera *{animation:none!important;transition:none!important}
.hg-ticket-fuera [class*="rc-"],.hg-ticket-fuera .receipt-paper *{opacity:1}
.escena-revision{background-image:url(escena-revision.webp);background-position:55% 50%}
.escena-horarios{background-image:url(escena-horarios.webp);background-position:50% 40%}
.escena-particular{background-image:url(escena-particular.webp);background-position:45% 50%}
.escena-discord{background-image:url(escena-discord.webp);background-position:50% 50%}
.escena-copia{background-image:url(escena-copia.webp);background-position:50% 50%}
.escena-parches{background-image:url(escena-parches.webp);background-position:45% 55%}
.escena-productos{background-image:url(escena-productos.webp);background-position:45% 55%}
/* En segundo plano no se dibujan animaciones que el usuario no puede ver. */
html.hg-en-segundo-plano *,html.hg-en-segundo-plano *::before,html.hg-en-segundo-plano *::after{animation-play-state:paused!important}
body.gate-open .hero-banner *,body.gate-open .hero-banner::before,body.gate-open .hero-banner::after{animation-play-state:paused!important}
/* Botones de cuero estrechos (rejillas de 2-3 columnas y botones pequeños de las fichas): remates más finos para que
   quepa la palabra entera («CONTRATO», «RESETEAR CONTRASEÑA», «ELIMINAR») sin partirla */
#dirBody .enc-actions.emp3 button,#dirBody .enc-actions.two button,#dirBody .enc-card .enc-actions button{
 border-width:8px 13px!important;border-image-width:8px 13px!important;padding-left:1px!important;padding-right:1px!important;letter-spacing:.01em!important}
@media(max-width:520px){#dirBody .enc-actions.two button{font-size:11.5px!important}}

/* El descuento conserva contraste sobre su fondo oscuro al escribir y autocompletar. */
html body #manualDiscountFields .money{background:#040b08}
html body #manualDiscountAmt,html body #manualDiscountAmt:focus{background:#040b08!important;color:#fff0d2!important;-webkit-text-fill-color:#fff0d2!important;caret-color:#f3d47c}
html body #manualDiscountAmt::placeholder{color:#b4ad98!important;-webkit-text-fill-color:#b4ad98!important;opacity:1}
html body #manualDiscountAmt:-webkit-autofill{box-shadow:inset 0 0 0 1000px #040b08!important;-webkit-text-fill-color:#fff0d2!important;caret-color:#f3d47c}


/* Fuente: hacer-caja.css */
.caja-panel{width:min(900px,96vw);max-height:92dvh;overflow:auto}.caja-body{padding:clamp(14px,3vw,28px)}.caja-escena{display:block;width:100%;max-height:190px;object-fit:cover;border:1px solid #96743d;margin-bottom:16px}.caja-body label{display:block;margin:14px 0 6px}.caja-body input:not([type=checkbox]),.caja-body textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px}.caja-concepto{display:grid;grid-template-columns:minmax(0,1fr) 140px 42px;gap:10px;align-items:end}.caja-concepto button{margin-bottom:6px}.caja-body .caja-confirmar{display:flex;align-items:center;gap:10px}.caja-confirmar input{width:20px;height:20px;flex-shrink:0}.caja-libro{margin:24px 0;border-top:1px solid #997841;padding-top:16px}.caja-libro summary{cursor:pointer;font-weight:bold}.caja-libro .reg-line{gap:16px;overflow-wrap:anywhere}.caja-libro .reg-line b{white-space:nowrap}.caja-resultado{border:2px solid #96743d;padding:18px;margin-bottom:18px}.caja-cuadra{border-color:#64784d}.caja-enlace{color:inherit;text-decoration:underline}.caja-body .enc-card{margin:12px 0}.caja-body>button{margin:6px}.caja-body .brow{display:flex;justify-content:space-between;gap:14px}.caja-body .brow b{white-space:nowrap}@media(max-width:540px){.caja-concepto{grid-template-columns:minmax(0,1fr) 100px 35px;gap:5px}.caja-panel{width:96vw}.caja-body .enc-actions{grid-template-columns:1fr}.caja-body .brow{font-size:14px}}
.caja-body input:not([type=checkbox]),.caja-body textarea{min-height:44px;padding:10px 12px;font:inherit;border-radius:3px}.caja-body textarea{min-height:80px}.caja-body #cajaCount{font-size:22px;font-weight:bold}.caja-body .enc-note{font-size:15px;line-height:1.55}.caja-body .reg-line{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #88703e}

/* Comprobación conjunta: recuento compacto y accesible en móvil. */
.negocio-articulos{max-height:42dvh;overflow:auto;border-top:1px solid #88703e}.negocio-articulos .pr-row{gap:12px;padding:10px 0}.negocio-articulos .pr-row>div{min-width:0;overflow-wrap:anywhere}.negocio-articulos .min-in{width:110px!important;flex-shrink:0}.negocio-articulos small{display:block}#negocioBody .reg-line b{white-space:normal;min-width:90px}#negocioBody .enc-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:540px){.negocio-articulos .min-in{width:90px!important}#negocioBody .reg-line{gap:10px}#negocioBody .enc-actions button{width:100%}}


/* Fuente: admin-web.css */
/* Un mismo pasaje privado, con los materiales de cada despacho. */
.hg-admin-web{--aw-ink:#ead8ad;--aw-active:#f4e7c5;--aw-line:#b8975559;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;padding:10px 18px;margin:12px 0;border-block:1px solid var(--aw-line);background:linear-gradient(90deg,#13251be8,#09160fe8);color:var(--aw-ink);font:15px/1.4 Georgia,serif;box-shadow:inset 0 1px #fff06}
.hg-admin-web[hidden]{display:none!important}.hg-admin-web .hg-admin-web-label{font:11px/1.5 Georgia,serif;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--aw-ink)}.hg-admin-web .hg-admin-web-links{display:flex;flex-wrap:wrap;gap:5px 8px}.hg-admin-web .hg-admin-web-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 14px;border:1px solid transparent;border-radius:2px;color:var(--aw-ink);text-decoration:none;font:inherit;box-sizing:border-box;background:none;box-shadow:none;transition:background .15s,border-color .15s}.hg-admin-web .hg-admin-web-links a:hover{border-color:var(--aw-line);background:#ffffff09}.hg-admin-web .hg-admin-web-links a[aria-current=page]{border-color:var(--aw-line);background:#c5a15416;color:var(--aw-active)}.hg-admin-web .hg-admin-web-links a:focus-visible{outline:2px solid var(--aw-active);outline-offset:3px}
.hg-admin-web[data-theme=gobierno]{--aw-ink:#3e5260;--aw-active:#172c40;--aw-line:#b8996359;margin:0;padding:9px clamp(20px,3vw,54px);background:linear-gradient(90deg,#eee2ca,#f7efdf);box-shadow:none}.hg-admin-web[data-theme=pedidos]{--aw-ink:#5c4425;--aw-active:#3c2510;--aw-line:#9d7e4859;width:min(800px,100%);margin:0 0 38px;background:linear-gradient(100deg,#efe0be,#e0ca9b);box-shadow:0 4px 16px #0003}
@media(max-width:620px){.hg-admin-web{align-items:flex-start;flex-direction:column;gap:5px;padding:10px 12px}.hg-admin-web .hg-admin-web-links{width:100%;gap:4px}.hg-admin-web .hg-admin-web-links a{flex:1;padding:8px 9px;font-size:14px;min-height:44px}.hg-admin-web .hg-admin-web-label{font-size:10px;letter-spacing:.1em}.hg-admin-web[data-theme=gobierno]{padding:10px 20px}}
@media(prefers-reduced-motion:reduce){.hg-admin-web .hg-admin-web-links a{transition:none}}

body[data-admin-web=detalle].hg-admin-web-present{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}body[data-admin-web=detalle].hg-admin-web-present>.hg-admin-web{flex:none}body[data-admin-web=detalle].hg-admin-web-present>.hoja{flex:none}

.hg-albaran-imagen{display:block;width:100%;height:auto;margin:16px 0;border:1px solid #a58a56}


/* Fuente: editar-pedido.css */
.pe-row{display:grid;grid-template-columns:minmax(180px,2fr) minmax(90px,1fr) minmax(100px,1fr) minmax(110px,1fr) auto;gap:10px;align-items:end;border-bottom:1px solid #88703e;padding:8px 0 16px}.pe-row input[readonly]{opacity:.8}.pe-row>span{padding-bottom:12px;font-size:14px}.pe-row button{margin-bottom:6px}.pe-row label{min-width:0}#editarPedidoBody .enc-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:700px){.pe-row{grid-template-columns:1fr 1fr}.pe-row label:first-child{grid-column:1/-1}.pe-row button{min-height:44px}.pe-row>span{padding-top:10px}#editarPedidoBody .enc-actions button{width:100%}}

.pe-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:12px 0 24px}.pe-product{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #88703e;border-radius:6px;background:rgba(117,85,36,.08)}.pe-product[hidden]{display:none}.pe-product small{display:block;margin-top:4px}.pe-stepper{display:flex;align-items:center;gap:5px}.pe-stepper input{width:64px;text-align:center;margin:0}.pe-stepper button{min-width:38px;min-height:44px;padding:6px}.pe-product>div:first-child{min-width:0}@media(max-width:420px){.pe-catalog{grid-template-columns:1fr}.pe-product{flex-wrap:wrap}.pe-stepper{margin-left:auto}}

.pe-add-label{display:flex;flex-direction:column;gap:4px;flex:0 0 92px}.pe-add-label input{width:100%;text-align:center;font-size:20px}#peAlbaran{margin-top:16px}#peAlbaran img{max-width:100%;height:auto}

.pe-product-controls{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}.pe-product-controls>label{font-size:13px}.pe-product-controls .pe-remove{padding:4px 10px;font-size:12px;min-height:32px}.pe-stepper input{width:72px}.pe-stepper input:invalid{outline:2px solid #a85a40}#peSearch{width:100%;margin-top:6px}@media(min-width:701px){.pe-catalog{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}


/* Fuente: materiales-niveles.css */
.mat-target{display:block!important;margin-top:5px;line-height:1.5;font-weight:700!important;white-space:normal}.mat-target-r{color:#a02521!important}.mat-target-a{color:#885c12!important}.mat-target-g{color:#315c3b!important}.mat-level-r>div>b,.mat-level-r>span{color:#a02521!important}.mat-level-r{border-left:4px solid #a02521!important;padding-left:10px!important}.mat-level-a{border-left:4px solid #b88732!important;padding-left:10px!important}.mat-level-g{border-left:4px solid #52764b!important;padding-left:10px!important}.mat-level-r .lvl b{background:#a02521!important}.mat-level-a .lvl b{background:#b88732!important}.mat-level-g .lvl b{background:#52764b!important}
.hg-pedido-activo{background:#b95c19!important;color:#fff5e5!important;border-color:#e09749!important}


/* Fuente: halloween-event.css */
.hw-plate{width:100%;display:flex;align-items:center;gap:20px;padding:23px 28px;text-align:left;border:2px solid #be8243;border-radius:8px;background:radial-gradient(ellipse at 8% 50%,#8b3b1f88,transparent 55%),linear-gradient(110deg,#191d19,#261a17);color:#f5ddad;box-shadow:inset 0 0 0 4px #171813,inset 0 0 0 5px #79552c,0 6px 18px #0005;cursor:pointer;margin:10px 0 17px}.hw-plate[hidden]{display:none}.hw-emblem{font-size:45px;filter:sepia(.4)}.hw-plate>span:nth-child(2){display:grid;gap:5px;flex:1}.hw-plate small{font-size:11px;letter-spacing:2px;color:#d79c60}.hw-plate strong{font-family:Georgia,serif;font-size:30px}.hw-plate span span{font-size:14px}.hw-plate>b{font-size:13px;color:#e3ae72}.hw-plate:hover{border-color:#f6bd70;box-shadow:0 0 22px #b15b2538}.hw-modal{z-index:10020;padding:24px;background:#060b0be8;overflow:auto}.hw-box{max-width:900px;width:100%;margin:auto;max-height:calc(100dvh - 48px);display:flex;flex-direction:column;border:2px solid #ba8248;border-radius:12px;background:linear-gradient(#192322f5,#111918f7),url('textura-madera.webp');box-shadow:0 25px 100px #000b;color:#f5e4c2;font-family:Georgia,serif;overflow:hidden}.hw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 26px;border-bottom:1px solid #a579434d;font-size:10px;letter-spacing:2px;color:#d2ab78}.hw-head button{min-width:44px;min-height:44px;font-size:20px}.hw-body{padding:30px 42px;overflow:auto;flex:1}.hw-kicker{font-family:Georgia,serif;font-size:12px;letter-spacing:3px;color:#dba369;text-align:center;margin:0 0 14px}.hw-body h1{text-align:center;font:700 clamp(28px,4vw,46px)/1.12 Georgia,serif;color:#f4d9a6;margin:0 0 12px;outline:none;text-wrap:balance}.hw-subtitle{text-align:center;font-size:13px;letter-spacing:4px;color:#d3ab79}.hw-ornament{text-align:center;color:#d79c60;font-size:28px;margin:18px}.hw-intro{text-align:center;font-size:21px;line-height:1.6;margin:16px auto 28px;color:#e9d5b6}.hw-rules{display:flex;justify-content:center;gap:30px;padding:20px;border-top:1px solid #9c75444f;border-bottom:1px solid #9c75444f}.hw-rules span{font-size:13px;text-align:center;color:#d2c2a7}.hw-rules b{display:block;font-size:30px;color:#e8ab68;margin-bottom:4px}.hw-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:24px 0}.hw-box button{font-family:Georgia,serif;cursor:pointer;border:1px solid #92653a;border-radius:5px;background:#2c2920;color:#f5ddae;padding:12px 18px;min-height:46px;font-size:14px;box-shadow:none;background-image:none}.hw-box button:hover{background:#4b3626;border-color:#e6ad68}.hw-box button:focus-visible,.hw-plate:focus-visible,.hw-box input:focus-visible{outline:3px solid #ffce87;outline-offset:3px}.hw-box button:disabled{opacity:.45;cursor:wait}.hw-box .hw-primary{background:#9b4b29;border:1px solid #dc9960;font-weight:bold;letter-spacing:1px;padding:16px 30px}.hw-draw-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #765b3b;padding:20px 24px;margin-top:28px;background:#070e0e77;border-radius:7px}.hw-draw-card small{font-size:10px;letter-spacing:2px;color:#c69a67}.hw-draw-card h2{font-size:23px;margin:8px 0}.hw-draw-card p{font-size:14px;line-height:1.5;color:#d3c2a4;margin-bottom:0}.hw-nav{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:25px}.hw-nav button{font-size:11px;background:transparent;color:#cfb488}.hw-progress{display:flex;gap:8px;margin:25px 0}.hw-progress i{height:5px;background:#68604466;flex:1;border-radius:2px}.hw-progress .done{background:#8a9c77}.hw-progress .current{background:#e7a15c}.hw-read{letter-spacing:2px;font:11px Georgia,serif;color:#c79763;margin:24px 0 10px}.hw-body blockquote{margin:0;padding:25px 30px;background:#f0dfbc url('textura-papel.webp');border:1px solid #b48a51;border-left:4px solid #bb7c40;color:#30271c;font:clamp(20px,2.8vw,26px)/1.55 Georgia,serif;border-radius:4px}.hw-options{display:grid;gap:12px;margin:24px 0}.hw-options button{display:flex;gap:18px;align-items:center;text-align:left;padding:17px 22px;font-size:18px;line-height:1.4}.hw-options button b{display:grid;place-items:center;min-width:36px;height:36px;border:1px solid #aa7949;border-radius:50%;color:#e9b36b}.hw-note{font:14px/1.6 Georgia,serif;color:#cbb99a;text-align:center}.hw-answer{border:1px dashed #bc8f55;background:#050c0c66;padding:22px;margin:25px 0;text-align:center}.hw-answer small{display:block;font-size:10px;color:#d39b62;letter-spacing:2px;margin-bottom:12px}.hw-answer>b{font-size:20px}.hw-answer .hw-actions{margin-bottom:0}.hw-score{text-align:center;color:#edba72;font-size:90px;line-height:1.1;margin:30px}.hw-score small{display:block;font-size:13px;letter-spacing:3px;margin-top:12px}.hw-center{text-align:center;font-size:18px;line-height:1.5}.hw-box form{max-width:480px;margin:28px auto;display:grid;gap:12px}.hw-box label{font-size:16px;color:#edcea1}.hw-box input{font:20px Georgia,serif;width:100%;box-sizing:border-box;min-height:52px;padding:12px;background:#f2dfbb;color:#292219;border:2px solid #ae814a;border-radius:4px}.hw-ticket{text-align:center;border:1px dashed #cb9b5c;padding:18px;color:#e9b36b}.hw-ticket strong{display:block;font-size:25px;margin-top:10px;color:#f5e4c2}.hw-list{list-style:none;padding:0;margin:25px 0;display:grid;gap:8px}.hw-list li{display:flex;align-items:center;gap:18px;border-bottom:1px solid #9e75483f;padding:13px 4px;font-size:20px}.hw-list li b{font-size:16px;color:#daaa6e;min-width:35px}.hw-list li span{flex:1;overflow-wrap:anywhere}.hw-list li small{font-size:13px;color:#c0af91}.hw-empty{text-align:center;padding:35px 0;color:#d3b88c}.hw-status{font:15px/1.5 Georgia,serif;margin:0;padding:0 25px 18px;color:#ffd59b;text-align:center;white-space:pre-line}.hw-status:empty{padding:0}.hw-winner{text-align:center;padding:28px;margin:24px 0;border:2px solid #c98b46;background:radial-gradient(ellipse,#70452a66,#0d1514)}.hw-winner small{display:block;letter-spacing:3px;font-size:11px;color:#e8b877}.hw-winner>span{display:block;font-size:20px;margin:20px 0 10px;color:#ddb07c}.hw-winner strong{display:block;font-size:clamp(26px,5vw,44px);color:#ffe0a4;overflow-wrap:anywhere}.hw-winner p{font-size:14px;color:#cebd9d}.hw-reel{margin:35px 0;border-block:2px solid #b88149;background:linear-gradient(#000a,transparent 40%,transparent 60%,#000a);min-height:210px;display:grid;align-content:center;gap:28px;text-align:center;overflow:hidden}.hw-reel>span{color:#94744c;font-size:12px;letter-spacing:4px}.hw-reel strong{font-size:clamp(26px,5vw,44px);color:#ffd99c;animation:hw-reel .16s ease-out infinite}@keyframes hw-reel{from{transform:translateY(-10px);opacity:.45}to{transform:translateY(6px);opacity:1}}@media(max-width:600px){.hw-plate{padding:18px;gap:12px}.hw-plate strong{font-size:25px}.hw-plate small{font-size:9px;letter-spacing:1px}.hw-emblem{font-size:32px}.hw-plate>b{display:none}.hw-modal{padding:8px}.hw-box{max-height:calc(100dvh - 16px)}.hw-head{padding:10px 15px;font-size:9px;letter-spacing:1px}.hw-body{padding:23px 18px}.hw-rules{gap:15px;padding:16px 0}.hw-rules span{font-size:11px}.hw-body blockquote{padding:20px;font-size:21px}.hw-options button{padding:15px;font-size:17px}.hw-draw-card{display:block;padding:18px}.hw-draw-card button{width:100%;margin-top:18px}.hw-intro{font-size:19px}.hw-list li{font-size:18px}}@media(prefers-reduced-motion:reduce){.hw-reel strong{animation:none}}

body:has(#halloweenModal:not([hidden])) #confirmModal{z-index:10030}
/* Ruleta de nombres: cinco celdas recicladas, desplazamiento continuo y frenado suave. */
.hw-roulette{margin:30px 0;border:2px solid #c98b46;border-radius:8px;padding:10px;background:#080e0d;box-shadow:0 0 32px #b8752833,inset 0 0 24px #000}.hw-roulette-window{position:relative;height:252px;overflow:hidden;background:radial-gradient(ellipse,#6a422332,transparent 75%)}.hw-roulette-window:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(#080e0df5,transparent 36%,transparent 64%,#080e0df5)}.hw-roulette-window:after{content:"";position:absolute;left:0;right:0;top:84px;height:84px;border-block:1px solid #cc9659aa;background:#e5a34a0a;pointer-events:none}.hw-roulette-track{will-change:transform}.hw-roulette-name{height:84px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;color:#f5d69f;font:bold clamp(22px,3.7vw,36px)/1.18 Georgia,serif;overflow-wrap:anywhere}.hw-roulette-pointer{position:absolute;left:4px;top:109px;z-index:3;color:#e9b86e;font-size:24px;line-height:34px}.hw-roulette-stopped{box-shadow:inset 0 0 35px #c78a2938}.hw-roulette-stopped:after{border-color:#ffe0a4;background:#e9b86e16}@media(prefers-reduced-motion:reduce){.hw-roulette-track{will-change:auto}}

/* Durante el giro solo cambia una variable por fotograma; no hay lecturas de geometría. */
.hw-roulette-track{--hw-fraction:0;transform:translate3d(0,calc(var(--hw-fraction)*-84px),0)}
.hw-roulette-name{--hw-distance:calc(var(--hw-row) - 1 - var(--hw-fraction));transform:perspective(600px) rotateX(clamp(-55deg,calc(var(--hw-distance)*-30deg),55deg)) scale(calc(1 - min(.3,calc(max(var(--hw-distance),calc(-1*var(--hw-distance)))*.1))))}

.hw-presenter-script{margin:22px 0 28px;padding:22px 26px;background:#f0dfbc url('textura-papel.webp');border:1px solid #b48a51;border-left:4px solid #bb7c40;border-radius:5px;color:#30271c}.hw-presenter-script small{display:block;font:11px Georgia,serif;letter-spacing:2px;color:#76502e;margin-bottom:13px}.hw-presenter-script p{font:20px/1.65 Georgia,serif;margin:0}.hw-question-script p{margin:0 0 18px}.hw-question-script p:first-child{font-style:italic;color:#6e4a2c}.hw-question-script p:last-child{margin-bottom:0}.hw-copy-text{width:100%;box-sizing:border-box;min-height:200px;margin-top:20px;background:#f0dfbc;color:#30271c;padding:15px;font:17px/1.5 Georgia,serif}.hw-presenter-script{ text-align:left }@media(max-width:600px){.hw-presenter-script{padding:20px}.hw-presenter-script p{font-size:19px}}
