/* ═══════════ Blezza POS — v4 ═══════════ */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f4f2f5;
  --card:#ffffff;
  --borde:#e6e2e9;
  --borde-2:#d5cfda;
  --tinta:#2b2430;
  --tinta-2:#6b6273;
  --tinta-3:#968da0;
  --primario:#1f1926;
  --rosa:#d63384;
  --rosa-2:#f8e1ec;
  --morado:#6f42c1;
  --morado-2:#efe8fb;
  --verde:#0d8a5f;
  --verde-suave:#dff3ea;
  --rojo:#d7301f;
  --rojo-suave:#fdeceb;
  --ambar:#b07a00;
  --ambar-suave:#fdf3dc;
  --azul:#2563eb;
  --azul-suave:#e7effd;
  --radius:14px;
  --sombra:0 1px 2px rgba(40,20,60,.06),0 2px 8px rgba(40,20,60,.05);
  --font:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;
}
html{font-size:15px}
body,input,select,textarea,button,option{font-family:var(--font)}
body{background:var(--bg);color:var(--tinta);min-height:100vh;-webkit-font-smoothing:antialiased}
.screen{display:none;min-height:100vh}
.screen.active{display:block}
::placeholder{color:var(--tinta-3)}

/* ── Login ── */
#login.active{display:flex;align-items:center;justify-content:center;padding:1rem;
  background:linear-gradient(135deg,#fdf0f6 0%,#f3edfb 55%,#eef3fd 100%)}
.login-card{background:var(--card);border:1px solid var(--borde);padding:2.6rem 2.4rem;border-radius:22px;
  box-shadow:0 24px 70px rgba(120,50,110,.14);display:flex;flex-direction:column;gap:.4rem;width:min(400px,92vw)}
.login-card h1{text-align:center;font-size:1.8rem;font-weight:800;letter-spacing:-.5px}
.login-card h1 span{background:linear-gradient(120deg,var(--rosa),var(--morado));-webkit-background-clip:text;background-clip:text;color:transparent}
.login-card .tagline{text-align:center;color:var(--tinta-2);font-size:.85rem;margin-bottom:1.2rem}
label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--tinta-2);margin-top:.7rem}

/* ── Shell ── */
#main.active{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
aside{background:linear-gradient(180deg,#241b2e,#1c1524);color:#cfc6d8;display:flex;flex-direction:column;padding:1rem .7rem;position:sticky;top:0;height:100vh}
.logo{font-weight:800;font-size:1.2rem;padding:.3rem .8rem 1.1rem;letter-spacing:-.3px;color:#fff}
.logo span{background:linear-gradient(120deg,#ff7ab8,#b78aff);-webkit-background-clip:text;background-clip:text;color:transparent}
aside nav{display:flex;flex-direction:column;gap:3px;flex:1}
.nav-item{display:flex;align-items:center;gap:.6rem;padding:.58rem .8rem;border-radius:10px;border:none;background:none;color:#b3a8bf;font-size:.92rem;font-weight:600;cursor:pointer;text-align:left;width:100%;transition:.13s}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:linear-gradient(120deg,var(--rosa),#a4459c);color:#fff;box-shadow:0 6px 18px rgba(214,51,132,.35)}
.nav-item .dot{margin-left:auto;background:#ff5c7a;color:#fff;font-size:.68rem;font-weight:700;border-radius:999px;padding:.05rem .45rem}
.aside-foot{display:flex;flex-direction:column;gap:.45rem;padding:.7rem .3rem 0;border-top:1px solid rgba(255,255,255,.12)}
.who{font-size:.8rem;color:#b3a8bf;line-height:1.5;padding:0 .4rem}
.who b{color:#fff}
.badge-admin{background:#ffd66b;color:#5a4400;font-size:.68rem;font-weight:800;padding:.14rem .5rem;border-radius:6px;display:inline-block}
.aside-foot .btn.sec{background:rgba(255,255,255,.08);color:#d8cfe2;border-color:transparent}
.aside-foot .btn.sec:hover{background:rgba(255,255,255,.16)}

main{padding:1.2rem 1.6rem;max-width:1560px;width:100%}
.topbar{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;flex-wrap:wrap}
.topbar h2{font-size:1.35rem;font-weight:800;letter-spacing:-.3px;flex:1}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1}}

.split{display:grid;grid-template-columns:1.35fr 1fr;gap:1rem;align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}#main.active{grid-template-columns:64px 1fr}aside .logo,aside .nav-item span.txt,aside .who{display:none}}
.card{background:var(--card);border:1px solid var(--borde);border-radius:var(--radius);box-shadow:var(--sombra)}
.card .pad{padding:1rem}
.card h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--tinta-2);font-weight:700;margin-bottom:.6rem}

input,select,textarea{padding:.6rem .75rem;border:1.5px solid var(--borde-2);background:#fff;color:var(--tinta);border-radius:10px;font-size:.93rem;width:100%;transition:border .12s,box-shadow .12s;appearance:auto}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rosa);box-shadow:0 0 0 3px rgba(214,51,132,.13)}

.lista{overflow-y:auto;max-height:60vh;display:flex;flex-direction:column;gap:.45rem;padding:.2rem}
.lista.compacta{max-height:190px}
.lista.grid-mode{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-content:start}
.item{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .75rem;background:#fff;border:1px solid var(--borde);border-radius:11px;font-size:.9rem;transition:.12s;cursor:pointer}
.item:hover{border-color:var(--rosa);box-shadow:var(--sombra)}
.item small{color:var(--tinta-2);display:block;font-size:.78rem;margin-top:.12rem}
.item .precio{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--morado)}
/* card mode producto */
.grid-mode .item{flex-direction:column;align-items:stretch;text-align:left;gap:.35rem;padding:.7rem}
.grid-mode .item .precio{font-size:1.05rem}
.grid-mode .item .btn{width:100%}

/* ── Botones ── */
.btn{border:1px solid transparent;border-radius:10px;padding:.6rem 1rem;font-size:.9rem;cursor:pointer;font-weight:700;transition:.12s;color:#fff;background:var(--primario)}
.btn:hover{filter:brightness(1.25)}
.btn.verde{background:var(--verde)}
.btn.rojo{background:var(--rojo)}
.btn.rosa{background:linear-gradient(120deg,var(--rosa),#b04a9e)}
.btn.sec{background:#fff;color:var(--tinta);border-color:var(--borde-2)}
.btn.sec:hover{background:#f7f4f9;filter:none}
.btn.mini{padding:.32rem .6rem;font-size:.78rem;border-radius:8px}
.btn.grande{padding:.85rem;font-size:1rem;flex:1;border-radius:12px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.acciones{display:flex;gap:.6rem}

/* ── Badges / stats ── */
.badge{font-size:.7rem;font-weight:700;padding:.16rem .5rem;border-radius:999px;white-space:nowrap}
.badge.ok{background:var(--verde-suave);color:var(--verde)}
.badge.warn{background:var(--ambar-suave);color:var(--ambar)}
.badge.bad{background:var(--rojo-suave);color:var(--rojo)}
.badge.info{background:var(--azul-suave);color:var(--azul)}
.badge.rosa{background:var(--rosa-2);color:var(--rosa)}

.total-row{display:flex;justify-content:space-between;align-items:baseline;font-size:1.15rem;font-weight:700;padding:.55rem 0;border-top:1px solid var(--borde)}
.total-row strong{font-size:1.6rem;font-variant-numeric:tabular-nums;color:var(--rosa)}
.cobro-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.cobro-row input,.cobro-row select{width:auto;flex:1;min-width:110px}
#cambio{font-weight:800;min-width:100px;text-align:right;color:var(--verde)}
.saldo-box{background:var(--verde-suave);border:1px solid #b0dcc9;color:var(--verde);border-radius:10px;padding:.5rem .7rem;font-size:.85rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:.5rem}

.pill{background:var(--rosa-2);border:1px solid #efc2d9;color:#8f2b60;padding:.45rem .8rem;border-radius:999px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:.88rem}
.pill button{background:none;border:none;cursor:pointer;font-size:.95rem;color:inherit}
.oculto{display:none!important}

/* carritos tabs */
.carrito-tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.5rem}
.carrito-tab{padding:.35rem .7rem;border-radius:999px;border:1.5px solid var(--borde-2);background:#fff;font-size:.8rem;font-weight:700;cursor:pointer;color:var(--tinta-2)}
.carrito-tab.active{background:var(--morado-2);border-color:var(--morado);color:var(--morado)}
.carrito-tab .n{background:var(--morado);color:#fff;border-radius:999px;padding:0 .4rem;font-size:.7rem;margin-left:.3rem}

.stat{display:flex;justify-content:space-between;align-items:center;padding:.75rem .9rem;background:#faf8fb;border:1px solid var(--borde);border-radius:11px;font-size:.9rem}
.stat b{font-size:1.15rem;font-variant-numeric:tabular-nums}
.stat.destacado{background:var(--verde-suave);border-color:#b0dcc9}
.stat.alerta{background:var(--rojo-suave);border-color:#f2c0ba}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem}
.stat-card{background:#fff;border:1px solid var(--borde);border-radius:14px;padding:.9rem 1rem;box-shadow:var(--sombra)}
.stat-card .lbl{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tinta-2)}
.stat-card .val{font-size:1.5rem;font-weight:800;margin-top:.2rem;font-variant-numeric:tabular-nums}
.stat-card.c-rosa{border-top:3px solid var(--rosa)}
.stat-card.c-verde{border-top:3px solid var(--verde)}
.stat-card.c-azul{border-top:3px solid var(--azul)}
.stat-card.c-ambar{border-top:3px solid var(--ambar)}
.stat-card.c-rojo{border-top:3px solid var(--rojo)}
.stat-card.c-morado{border-top:3px solid var(--morado)}

/* barra de progreso pagos */
.prog{height:8px;border-radius:999px;background:#efe9f2;overflow:hidden;margin-top:.35rem;min-width:120px}
.prog i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--verde),#3fcf95)}
.prog.p-warn i{background:linear-gradient(90deg,var(--ambar),#e8b53a)}
.prog.p-bad i{background:linear-gradient(90deg,var(--rojo),#f2705e)}

/* filtros */
.filtros{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.55rem}
.filtros select,.filtros input{width:auto;flex:0 1 auto;min-width:110px;padding:.42rem .6rem;font-size:.83rem;border-radius:9px}
.toggle-vista{margin-left:auto;display:flex;gap:.2rem;border:1.5px solid var(--borde-2);border-radius:9px;overflow:hidden}
.toggle-vista button{border:none;background:#fff;padding:.35rem .6rem;cursor:pointer;font-size:.85rem;color:var(--tinta-2)}
.toggle-vista button.active{background:var(--morado-2);color:var(--morado)}

/* modal */
.modal-back{position:fixed;inset:0;background:rgba(30,15,40,.5);display:none;align-items:center;justify-content:center;z-index:50;padding:1rem}
.modal-back.open{display:flex}
.modal{background:#fff;border-radius:18px;padding:1.3rem 1.4rem;width:min(580px,95vw);max-height:88vh;overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,.35);position:relative}
.modal h3{font-size:1.08rem;text-transform:none;letter-spacing:0;color:var(--tinta);margin-bottom:.8rem;padding-right:2rem}
.modal .campo{margin-bottom:.7rem}
.modal-x{position:absolute;top:.85rem;right:.9rem;border:none;background:#f2edf5;color:var(--tinta-2);width:30px;height:30px;border-radius:999px;font-size:1rem;font-weight:700;cursor:pointer}
.modal-x:hover{background:var(--rosa-2);color:var(--rosa)}
.check-line{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border:1px solid var(--borde);border-radius:10px;margin-bottom:.35rem;font-size:.88rem;background:#fff}
.check-line input{width:auto}
.kv{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px dashed var(--borde);font-size:.88rem}
.kv b{font-variant-numeric:tabular-nums}

#toast{position:fixed;bottom:1.3rem;left:50%;transform:translateX(-50%) translateY(20px);background:#231a2c;color:#fff;padding:.75rem 1.3rem;border-radius:12px;opacity:0;transition:.25s;pointer-events:none;z-index:99;box-shadow:0 12px 40px rgba(0,0,0,.3);font-weight:600;max-width:88vw;font-size:.9rem}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.error{background:var(--rojo)}

.skeleton{height:50px;border-radius:11px;background:linear-gradient(90deg,#efe9f2 25%,#e4dbe9 50%,#efe9f2 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}
@keyframes shimmer{to{background-position:-200% 0}}

.aviso{border-left:4px solid var(--rosa);background:#fff;border-radius:11px;padding:.8rem 1rem;border-top:1px solid var(--borde);border-right:1px solid var(--borde);border-bottom:1px solid var(--borde);margin-bottom:.5rem;box-shadow:var(--sombra)}
.aviso b{display:block;margin-bottom:.15rem}
.aviso small{color:var(--tinta-2)}
.wa{background:#25d366;color:#fff;border:none;border-radius:8px;padding:.32rem .6rem;font-size:.78rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}

/* Pagos mixtos */
.pagos-box{margin-top:.2rem}
.pago-line{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .55rem;margin-top:.35rem;border:1px solid var(--borde,#e5e7eb);border-radius:10px;font-size:.88rem}
.pago-line small{display:block;color:var(--tinta-3,#6b7280);font-size:.74rem}
.pago-line .precio{margin-left:auto;font-weight:700}
.pagos-resumen{margin-top:.5rem;font-size:.9rem}
.pagos-resumen>div{display:flex;justify-content:space-between;padding:.12rem 0}
.pagos-resumen .falta{color:#b45309;font-weight:700}
.pagos-resumen .ok{color:#15803d;font-weight:700}
.pagos-resumen .cambio{color:#1d4ed8;font-weight:700}
button:disabled{opacity:.45;cursor:not-allowed}

/* ═══════════ v6 — Rediseño (layout tipo POS moderno) ═══════════ */
:root{--bg:#f4f5f8;--radius:18px;--sombra:0 1px 2px rgba(30,20,50,.04),0 6px 22px rgba(30,20,50,.06);--rosa-soft:#fdeaf3}
body{background:var(--bg)}
#main.active{grid-template-columns:232px 1fr;background:var(--bg)}
/* barra lateral clara */
aside{background:#fff;color:var(--tinta-2);border-right:1px solid var(--borde);padding:1.1rem .8rem}
.logo{color:var(--tinta);font-size:1.25rem;padding:.2rem .7rem 1.2rem}
.logo span{background:linear-gradient(120deg,var(--rosa),var(--morado));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-item{color:var(--tinta-2);padding:.7rem .85rem;border-radius:14px;font-weight:600}
.nav-item:hover{background:#f3f1f6;color:var(--tinta)}
.nav-item.active{background:var(--rosa);color:#fff;box-shadow:0 8px 20px rgba(214,51,132,.28)}
.aside-foot{border-top:1px solid var(--borde)}
.who{color:var(--tinta-2)}.who b{color:var(--tinta)}
.aside-foot .btn.sec{background:#f6f4f8;color:var(--tinta-2);border-color:transparent}
.aside-foot .btn.sec:hover{background:#ece8f1}
main{padding:1.1rem 1.3rem;max-width:none}
.card{border:none;box-shadow:var(--sombra)}

/* layout de venta: productos + carrito fijo a la derecha */
.vender-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:1.1rem;align-items:start}
.vender-main{min-width:0}
.cart-panel{background:#fff;border-radius:22px;box-shadow:var(--sombra);padding:1.1rem;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto;display:flex;flex-direction:column;gap:.6rem}
.cart-head h2{font-size:1.3rem;font-weight:800;letter-spacing:-.3px}
.cart-head small{color:var(--tinta-3);font-size:.8rem}
.vbar{display:flex;gap:.6rem;align-items:center;margin-bottom:.9rem}
.search-wrap{flex:1;display:flex;align-items:center;gap:.6rem;background:#fff;border-radius:16px;padding:0 1rem;box-shadow:var(--sombra)}
.search-wrap input{border:none;box-shadow:none!important;padding:.9rem 0;font-size:.95rem;background:transparent}
.icon-btn{width:48px;height:48px;border:none;border-radius:16px;background:#fff;box-shadow:var(--sombra);cursor:pointer;font-size:1.1rem}
.icon-btn:hover{background:var(--rosa-soft)}

/* categorías en tarjetas */
.cat-row{display:flex;gap:.7rem;overflow-x:auto;padding:.15rem .1rem .6rem;scrollbar-width:thin}
.cat{flex:0 0 112px;border:2px solid transparent;background:#fff;border-radius:18px;padding:.8rem .75rem;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;box-shadow:var(--sombra);transition:.14s;color:var(--tinta)}
.cat:hover{transform:translateY(-2px)}
.cat .cat-ico{font-size:1.5rem;width:42px;height:42px;border-radius:13px;background:#f3f1f6;display:grid;place-items:center;margin-bottom:.35rem}
.cat b{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat small{color:var(--tinta-3);font-size:.72rem}
.cat.active{background:var(--rosa-soft);border-color:var(--rosa)}
.cat.active .cat-ico{background:#fff}
.filtros{display:none;margin:.1rem 0 .7rem}
.filtros.abierto{display:flex}

/* productos en tarjetas */
.prod-area{max-height:calc(100vh - 235px);padding:.2rem .15rem .6rem}
.lista.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:.9rem;align-content:start}
.prod{background:#fff;border-radius:20px;padding:.6rem;box-shadow:var(--sombra);display:flex;flex-direction:column;gap:.3rem;cursor:pointer;border:2px solid transparent;transition:.14s}
.prod:hover{border-color:var(--rosa);transform:translateY(-2px)}
.prod.no-disp{opacity:.62}
.prod-img{height:118px;border-radius:15px;background:linear-gradient(145deg,#efe9f4,#e3dcee);position:relative;display:grid;place-items:center}
.prod-emoji{font-size:2.6rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}
.prod-talla{position:absolute;top:.5rem;left:.5rem;background:rgba(255,255,255,.92);border-radius:999px;padding:.08rem .55rem;font-size:.72rem;font-weight:800;color:var(--tinta)}
.prod-name{font-size:.86rem;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.15em}
.prod-sub{color:var(--tinta-3);font-size:.72rem}
.prod-foot{display:flex;justify-content:space-between;align-items:center;gap:.3rem}
.prod-foot b{font-size:1.02rem;color:var(--rosa);font-variant-numeric:tabular-nums}
.btn-add{border:none;border-radius:12px;padding:.55rem;background:var(--rosa-soft);color:var(--rosa);font-weight:800;font-size:.85rem;cursor:pointer;margin-top:.15rem}
.btn-add:hover{background:var(--rosa);color:#fff}
.btn-add:disabled{background:#f0eef3;color:var(--tinta-3)}

/* carrito */
.cart-items{max-height:210px;min-height:48px}
#carrito .item{padding:.5rem .65rem;border-radius:14px;cursor:default;border:1px solid var(--borde)}
.summary{background:#f7f6fa;border-radius:16px;padding:.35rem .9rem}
.summary .total-row{border:none;padding:.4rem 0}
.metodo-titulo{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--tinta-3);margin-top:.2rem}
.metodos{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.metodo{border:2px solid var(--borde);background:#fff;border-radius:16px;padding:.7rem .3rem;font-weight:700;font-size:.8rem;color:var(--tinta-2);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:.12s}
.metodo .metodo-ico{font-size:1.35rem}
.metodo:hover{border-color:var(--borde-2)}
.metodo.active{background:var(--rosa-soft);border-color:var(--rosa);color:var(--rosa)}
.monto-row input{flex:1}
.apartado-extra{background:#faf9fc;border-radius:12px;padding:.5rem .75rem;font-size:.85rem;color:var(--tinta-2)}
.apartado-extra summary{cursor:pointer;font-weight:700}
.cart-actions{margin-top:.2rem;position:sticky;bottom:-1.1rem;background:linear-gradient(180deg,transparent,#fff 28%);padding:.8rem 0 .2rem}
.btn.grande{border-radius:16px;padding:1rem}
.btn.verde{background:linear-gradient(135deg,#12a374,#0d8a5f)}
@media(max-width:1150px){.vender-layout{grid-template-columns:1fr}.cart-panel{position:static;max-height:none}.prod-area{max-height:none}}

/* ── Apartados: tablero, calendario, tarjetas con línea de tiempo ── */
.seg{display:flex;background:#fff;border-radius:14px;padding:.25rem;box-shadow:var(--sombra);gap:.15rem}
.seg button{border:none;background:none;padding:.5rem .85rem;border-radius:11px;font-weight:700;font-size:.85rem;color:var(--tinta-2);cursor:pointer}
.seg button.active{background:var(--rosa);color:#fff}
.ap-cont{min-height:120px}
.ap-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:.7rem}
.apc{background:#fff;border:1px solid var(--borde);border-left:5px solid var(--borde-2);border-radius:16px;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;transition:.13s;box-shadow:var(--sombra)}
.apc:hover{transform:translateY(-2px)}
.apc.u-bad{border-left-color:var(--rojo)}.apc.u-hot{border-left-color:#f2705e}.apc.u-warn{border-left-color:#e8b53a}.apc.u-ok{border-left-color:#3fcf95}
.apc-top{display:flex;gap:.6rem;align-items:center}
.apc-info{flex:1;min-width:0;font-size:.88rem}
.apc-info small{display:block;color:var(--tinta-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.76rem}
.apc-money{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.8rem;color:var(--tinta-2);align-items:center}
.apc-money b{color:var(--tinta)}
.apc-actions{display:flex;gap:.35rem;align-items:center}
.ring{width:46px;height:46px;flex:none}
.ring-bg{fill:none;stroke:#eee9f2;stroke-width:5}
.ring-fg{fill:none;stroke:var(--verde);stroke-width:5;stroke-linecap:round}
.ring text{font-size:10px;font-weight:800;fill:var(--tinta)}
.chip{font-size:.7rem;font-weight:800;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}
.chip.c-bad{background:var(--rojo-suave);color:var(--rojo)}.chip.c-hot{background:#ffe6e1;color:#d4402b}.chip.c-warn{background:var(--ambar-suave);color:var(--ambar)}.chip.c-ok{background:var(--verde-suave);color:var(--verde)}
.tl{position:relative;height:6px;border-radius:999px;background:#eee9f2}
.tl-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#b9e6d2,#f2c66a 70%,#f2705e)}
.tl-hoy{position:absolute;top:-4px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;border:3px solid var(--rosa)}
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,1fr);gap:.8rem;overflow-x:auto;padding-bottom:.6rem;align-items:start}
.kol{background:#f4f2f7;border-radius:18px;padding:.6rem;display:flex;flex-direction:column;gap:.55rem;max-height:calc(100vh - 290px)}
.kol-h{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:.15rem .3rem}
.kol-h span{font-size:.75rem;color:var(--tinta-2);font-weight:700}
.kol-b{display:flex;flex-direction:column;gap:.55rem;overflow-y:auto}
.k-bad{background:#fdeeed}.k-hot{background:#fff1ee}.k-warn{background:#fdf6e3}.k-ok{background:#e9f7f0}
.apc.compacta{padding:.6rem .7rem}
/* calendario */
.cal-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;font-size:1.05rem}
.cal-sem,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}
.cal-sem span{text-align:center;font-size:.72rem;font-weight:800;color:var(--tinta-3);text-transform:uppercase;padding:.2rem}
.cal-d{min-height:78px;border:1.5px solid var(--borde);background:#fff;border-radius:14px;padding:.4rem .5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;font-size:.75rem;color:var(--tinta-2);text-align:left}
.cal-d.vacio{border:none;background:none}
.cal-d:disabled{opacity:.75;cursor:default}
.cal-d .cal-n{font-weight:800;font-size:.85rem;color:var(--tinta)}
.cal-d .cal-c{background:var(--tinta);color:#fff;border-radius:999px;padding:0 .45rem;font-weight:800;font-size:.72rem}
.cal-d:not(:disabled){cursor:pointer}.cal-d:not(:disabled):hover{transform:translateY(-2px)}
.cal-d.hoy{border-color:var(--rosa);box-shadow:0 0 0 3px var(--rosa-soft)}
.cal-d.n-bad{background:var(--rojo-suave);border-color:#f2c0ba}.cal-d.n-bad .cal-c{background:var(--rojo)}
.cal-d.n-hot{background:#fff1ee;border-color:#f6c2b8}.cal-d.n-hot .cal-c{background:#e0533d}
.cal-d.n-warn{background:var(--ambar-suave);border-color:#efd9a2}.cal-d.n-warn .cal-c{background:#c9961a}
.cal-d.n-ok{background:#e9f7f0;border-color:#bfe6d4}.cal-d.n-ok .cal-c{background:var(--verde)}
.cal-d.sel{outline:3px solid var(--morado)}
/* resumen */
.res-tl{display:flex;gap:.45rem;overflow-x:auto;padding:.2rem .1rem .5rem}
.tlb{flex:0 0 86px;border:1.5px solid var(--borde);background:#fff;border-radius:16px;padding:.55rem .3rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;cursor:pointer;font-size:.72rem;color:var(--tinta-2)}
.tlb b{font-size:1.35rem;color:var(--tinta)}.tlb em{font-style:normal;font-size:.7rem;font-weight:700}
.tlb:disabled{opacity:.5;cursor:default}
.tlb.n-bad{background:var(--rojo-suave);border-color:#f2c0ba}.tlb.n-hot{background:#fff1ee;border-color:#f6c2b8}.tlb.n-warn{background:var(--ambar-suave);border-color:#efd9a2}.tlb.n-ok{background:#e9f7f0;border-color:#bfe6d4}
.res-fila{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:1100px){.res-fila{grid-template-columns:1fr}}
.anillo-wrap{display:flex;align-items:center;gap:1rem}
.anillo{width:130px;height:130px;flex:none}
.anillo .ring-bg,.anillo .ring-fg{stroke-width:11}
.a-pct{font-size:24px;font-weight:800;fill:var(--tinta)}.a-sub{font-size:10px;fill:var(--tinta-3)}
.anillo-lg{display:flex;flex-direction:column;gap:.45rem;font-size:.85rem}
.anillo-lg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem}
.horas{height:150px;display:flex;align-items:flex-end;gap:5px;position:relative}
.hr{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.2rem}
.hr i{display:block;width:100%;min-height:3px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,var(--rosa),#f6a5cc)}
.hr small{font-size:.65rem;color:var(--tinta-3)}
.horas-vacio{position:absolute;inset:0;display:grid;place-items:center;color:var(--tinta-3);font-size:.85rem}
main{min-width:0}
.card,.card .pad{min-width:0}
