/* ============================================================
   Dunvez · Estilos globales
   ============================================================ */
:root{
  --accent:#f97316; --accent-2:#fb923c; --accent-dark:#ea580c; --accent-soft:#fff1e6;
  --ink:#0f172a; --ink-2:#1e293b; --muted:#64748b; --line:#e8ebf1;
  --bg:#f4f6fb; --card:#ffffff;
  --side:#111827; --side-2:#1b2434; --side-text:#9aa6b8;
  --ok:#10b981; --warn:#f59e0b; --danger:#ef4444; --info:#3b82f6; --violet:#8b5cf6;
  --radius:16px; --shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px -8px rgba(15,23,42,.08);
  --side-w:272px;
}
*{box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:.925rem}
a{text-decoration:none}
.link-accent{color:var(--accent-dark);font-weight:600}
.btn-accent{background:linear-gradient(135deg,var(--accent),var(--accent-dark));border:0;color:#fff;font-weight:600;border-radius:12px;box-shadow:0 8px 20px -8px rgba(234,88,12,.7);transition:.2s}
.btn-accent:hover{color:#fff;transform:translateY(-1px);box-shadow:0 12px 24px -8px rgba(234,88,12,.8)}
.btn-accent:disabled{opacity:.7}

/* ---------- LOGIN ---------- */
.login-body{background:#fff;min-height:100vh}
.login-wrap{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
.login-hero{position:relative;color:#fff;padding:3rem 3.5rem;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#0b1220}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(600px 400px at 85% 10%,rgba(249,115,22,.45),transparent 60%),
  radial-gradient(500px 500px at 0% 100%,rgba(236,72,153,.28),transparent 60%),
  radial-gradient(400px 300px at 60% 70%,rgba(59,130,246,.22),transparent 60%),
  linear-gradient(160deg,#0b1220,#17203a)}
.hero-bg::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(to bottom,#000,transparent 85%)}
.hero-content,.hero-foot{position:relative;z-index:1}
.brand-lg{display:flex;align-items:center;gap:.7rem;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
.brand-lg.dark{color:var(--ink)}
.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-2),var(--accent-dark));color:#fff;font-size:1.3rem;box-shadow:0 10px 24px -8px rgba(249,115,22,.8)}
.hero-content h1{font-family:'Playfair Display',serif;font-size:3rem;line-height:1.12;margin:4rem 0 1rem;font-weight:700}
.hero-content h1 em{color:var(--accent-2);font-style:italic}
.hero-content>p{color:#b6c0d4;max-width:460px;font-size:1.05rem}
.hero-cards{display:grid;gap:.8rem;margin-top:2.5rem;max-width:480px}
.hero-card{display:flex;gap:1rem;align-items:center;padding:.9rem 1.1rem;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.hero-card i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(249,115,22,.18);color:var(--accent-2);font-size:1.2rem}
.hero-card b{display:block;font-size:.95rem}.hero-card span{font-size:.82rem;color:#a7b3c9}
.hero-foot{font-size:.8rem;color:#7f8ba3}
.login-panel{display:flex;align-items:center;justify-content:center;padding:2rem;background:#fff}
.login-card{width:100%;max-width:420px}
.login-card h2{font-weight:800;letter-spacing:-.02em;font-size:1.9rem}
.input-icon{position:relative}
.input-icon>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:1.1rem}
.input-icon .form-control{padding-left:2.7rem;border-radius:12px;border:1.5px solid var(--line);background:#f8fafc;font-size:.97rem}
.input-icon .form-control:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 4px rgba(249,115,22,.15)}
.toggle-pass{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;color:#94a3b8;padding:.4rem .6rem}
.form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}
.demo-box{display:flex;align-items:center;gap:.6rem;background:var(--accent-soft);color:#9a3412;border-radius:12px;padding:.7rem 1rem;font-size:.85rem}
@media(max-width:991px){.login-wrap{grid-template-columns:1fr}.login-hero{display:none}}

/* ---------- LAYOUT APP ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--side-w);background:var(--side);color:var(--side-text);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:1040;transition:transform .25s ease}
.side-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.4rem;color:#fff;font-weight:800;font-size:1.25rem;letter-spacing:-.02em;border-bottom:1px solid rgba(255,255,255,.06)}
.side-brand .brand-mark{width:38px;height:38px;font-size:1.1rem;border-radius:12px}
.side-brand small{display:block;font-size:.68rem;font-weight:500;color:var(--side-text);letter-spacing:.02em}
.side-scroll{flex:1;overflow-y:auto;padding:.5rem .9rem 1rem;scrollbar-width:thin;scrollbar-color:#2a3548 transparent}
.side-group{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#5d6b82;font-weight:700;padding:1.1rem .7rem .45rem}
.side-link{display:flex;align-items:center;gap:.8rem;padding:.62rem .8rem;border-radius:11px;color:var(--side-text);font-weight:500;font-size:.9rem;margin-bottom:2px;transition:.15s;position:relative}
.side-link i{font-size:1.1rem;width:22px;text-align:center}
.side-link:hover{background:var(--side-2);color:#fff}
.side-link.active{background:linear-gradient(90deg,rgba(249,115,22,.22),rgba(249,115,22,.05));color:#fff}
.side-link.active i{color:var(--accent-2)}
.side-link.active::before{content:"";position:absolute;left:-.9rem;top:20%;bottom:20%;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.side-link .badge-soft{margin-left:auto;font-size:.68rem;padding:.2rem .5rem;border-radius:20px;background:var(--accent);color:#fff;font-weight:700}
.side-user{margin:.8rem;padding:.8rem;border-radius:14px;background:var(--side-2);display:flex;align-items:center;gap:.7rem}
.avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-2),var(--accent-dark));color:#fff;font-weight:700;flex:none}
.side-user .nm{color:#fff;font-weight:600;font-size:.88rem;line-height:1.1}.side-user .rl{font-size:.74rem}
.side-user a{margin-left:auto;color:var(--side-text);font-size:1.2rem}.side-user a:hover{color:#fff}

.main{flex:1;margin-left:var(--side-w);min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:1030;display:flex;align-items:center;gap:1rem;padding:.85rem 1.75rem;background:rgba(244,246,251,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topbar .menu-btn{display:none;border:0;background:#fff;border-radius:10px;width:40px;height:40px;box-shadow:var(--shadow)}
.search{position:relative;flex:1;max-width:420px}
.search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8}
.search input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:.6rem 1rem .6rem 2.5rem;outline:none}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(249,115,22,.12)}
.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#f1f5f9;color:#64748b;border-radius:6px;font-size:.7rem;padding:.1rem .4rem}
.icon-btn{position:relative;width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);font-size:1.1rem}
.icon-btn:hover{border-color:var(--accent);color:var(--accent-dark)}
.icon-btn .dot{position:absolute;top:9px;right:10px;width:9px;height:9px;border-radius:50%;background:var(--danger);border:2px solid #fff}
.caja-pill{display:flex;align-items:center;gap:.5rem;background:#ecfdf5;color:#047857;border-radius:30px;padding:.4rem .9rem;font-weight:600;font-size:.82rem}
.caja-pill .pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(16,185,129,.6);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.content{padding:1.75rem;flex:1}
.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}
.page-head h1{font-size:1.65rem;font-weight:800;letter-spacing:-.025em;margin:0}
.page-head p{margin:0;color:var(--muted)}
.btn-soft{background:#fff;border:1px solid var(--line);border-radius:12px;font-weight:600;color:var(--ink-2)}
.btn-soft:hover{border-color:var(--accent);color:var(--accent-dark)}
.overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);z-index:1035}

/* ---------- Cards / KPIs ---------- */
.card-x{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);height:100%}
.card-x .head{display:flex;justify-content:space-between;align-items:center;padding:1.15rem 1.35rem .4rem}
.card-x .head h3{font-size:1rem;font-weight:700;margin:0}
.card-x .head small{color:var(--muted)}
.card-x .body{padding:.6rem 1.35rem 1.3rem}
.kpi{padding:1.3rem;position:relative;overflow:hidden}
.kpi .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:1.35rem}
.kpi .lbl{color:var(--muted);font-weight:500;font-size:.85rem;margin-top:1rem}
.kpi .val{font-size:1.85rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.kpi .delta{font-size:.78rem;font-weight:700;padding:.2rem .55rem;border-radius:20px}
.delta.up{background:#dcfce7;color:#15803d}.delta.down{background:#fee2e2;color:#b91c1c}
.kpi canvas{position:absolute;right:0;bottom:0;opacity:.9}
.ico.o{background:#fff1e6;color:var(--accent-dark)}.ico.b{background:#e0edff;color:#2563eb}
.ico.g{background:#dcfce7;color:#15803d}.ico.v{background:#ede9fe;color:#7c3aed}
.seg{display:inline-flex;background:#f1f5f9;border-radius:10px;padding:3px}
.seg button{border:0;background:none;padding:.3rem .8rem;border-radius:8px;font-size:.78rem;font-weight:600;color:var(--muted)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.chart-box{position:relative;height:300px}.chart-box.sm{height:250px}

/* ---------- Mesas ---------- */
.mesa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.75rem}
.mesa{border-radius:14px;padding:.8rem .5rem;text-align:center;border:2px solid transparent;transition:.15s;cursor:pointer;position:relative}
.mesa:hover{transform:translateY(-2px)}
.mesa b{font-size:1.25rem;display:block;line-height:1}.mesa small{font-size:.7rem;opacity:.8}
.mesa i{display:block;font-size:1.1rem;margin-bottom:.25rem}
.mesa.libre{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.mesa.ocupada{background:#fff1e6;color:#c2410c;border-color:#fdba74}
.mesa.reservada{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.mesa.limpieza{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}
.legend-dot{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted);margin-right:.8rem}
.legend-dot::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c)}

/* ---------- Tablas / listas ---------- */
.tbl{width:100%;border-collapse:separate;border-spacing:0}
.tbl th{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;padding:.7rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:.8rem .6rem;border-bottom:1px solid #f1f4f9;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.pill{white-space:nowrap;display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:20px;font-size:.74rem;font-weight:700}
.pill.abierto{background:#e0f2fe;color:#0369a1}.pill.en_cocina{background:#fff1e6;color:#c2410c}
.pill.listo{background:#dcfce7;color:#15803d}.pill.servido{background:#ede9fe;color:#6d28d9}
.pill.pagado{background:#f1f5f9;color:#475569}.pill.anulado{background:#fee2e2;color:#b91c1c}
.rank{display:flex;align-items:center;gap:.8rem;padding:.65rem 0;border-bottom:1px dashed var(--line)}
.rank:last-child{border:0}
.rank .n{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:.8rem;background:#f1f5f9;color:var(--muted);flex:none}
.rank:nth-child(1) .n{background:#fef3c7;color:#b45309}
.bar-thin{height:6px;border-radius:6px;background:#f1f5f9;overflow:hidden}.bar-thin>span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent-2),var(--accent-dark))}
.alert-item{display:flex;gap:.8rem;align-items:center;padding:.65rem .8rem;border-radius:12px;background:#fff7ed;margin-bottom:.5rem}
.alert-item i{color:var(--accent-dark);font-size:1.2rem}
.empty-state{text-align:center;padding:4rem 1rem}
.empty-state .big{width:96px;height:96px;margin:0 auto 1.2rem;border-radius:28px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark);font-size:2.6rem}

/* ---------- Responsive ---------- */
@media(max-width:991px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:none}
  .overlay.show{display:block}
  .main{margin-left:0}
  .topbar .menu-btn{display:grid;place-items:center}
  .content{padding:1.1rem}.topbar{padding:.75rem 1rem}
}
@media(max-width:575px){.caja-pill{display:none}.search{display:none}}

/* ---------- POS ---------- */
.pos{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:1rem;height:calc(100vh - 118px);min-height:560px}
.pos-menu{display:flex;flex-direction:column;min-height:0}
.pos-tools{display:flex;gap:.6rem;margin-bottom:.8rem}
.pos-tools .search input{padding-top:.75rem;padding-bottom:.75rem}
.cat-bar{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.6rem;scrollbar-width:thin}
.cat-chip{flex:none;border:1px solid var(--line);background:#fff;border-radius:30px;padding:.5rem 1rem;font-weight:600;font-size:.85rem;color:var(--ink-2);display:flex;align-items:center;gap:.45rem;transition:.15s}
.cat-chip:hover{border-color:var(--accent)}
.cat-chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cat-chip .dot{width:9px;height:9px;border-radius:50%}
.prod-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:.8rem;align-content:start;padding:.2rem .2rem 1rem 0}
.prod{background:#fff;border:1px solid var(--line);border-radius:16px;padding:.9rem;text-align:left;display:flex;flex-direction:column;gap:.5rem;transition:.15s;position:relative;overflow:hidden;min-height:132px}
.prod:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 10px 24px -12px rgba(249,115,22,.5)}
.prod:active{transform:scale(.98)}
.prod .pi{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.15rem;color:#fff}
.prod .pn{font-weight:700;line-height:1.2;font-size:.9rem}
.prod .pp{margin-top:auto;font-weight:800;color:var(--accent-dark);font-size:1.02rem}
.prod .pt{position:absolute;top:.8rem;right:.8rem;font-size:.7rem;color:var(--muted)}
.prod .qty-badge{position:absolute;top:.6rem;right:.6rem;min-width:24px;height:24px;border-radius:12px;background:var(--accent);color:#fff;font-weight:800;font-size:.75rem;display:grid;place-items:center;padding:0 6px}
.pos-cart{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0}
.cart-head{padding:1.1rem 1.2rem .9rem;border-bottom:1px solid var(--line)}
.cart-items{flex:1;overflow-y:auto;padding:.4rem 1.2rem}
.cart-empty{text-align:center;color:var(--muted);padding:3rem 1rem}
.cart-empty i{font-size:2.6rem;color:#cbd5e1;display:block;margin-bottom:.5rem}
.c-item{padding:.75rem 0;border-bottom:1px dashed var(--line)}
.c-item:last-child{border:0}
.c-top{display:flex;justify-content:space-between;gap:.6rem}
.c-name{font-weight:600;line-height:1.25}
.c-price{font-weight:700;white-space:nowrap}
.c-ctrl{display:flex;align-items:center;gap:.4rem;margin-top:.45rem}
.qty{display:inline-flex;align-items:center;background:#f1f5f9;border-radius:10px}
.qty button{width:30px;height:30px;border:0;background:none;font-weight:800;color:var(--ink-2);border-radius:10px}
.qty button:hover{background:#e2e8f0}
.qty span{min-width:26px;text-align:center;font-weight:700}
.mini-btn{border:0;background:#f1f5f9;border-radius:9px;width:30px;height:30px;color:var(--muted)}
.mini-btn:hover{color:var(--accent-dark);background:var(--accent-soft)}
.mini-btn.del:hover{color:#dc2626;background:#fee2e2}
.c-note{font-size:.78rem;color:#b45309;background:#fffbeb;border-radius:8px;padding:.15rem .5rem;margin-top:.35rem;display:inline-block}
.c-sent{font-size:.7rem;font-weight:700;border-radius:20px;padding:.1rem .5rem;margin-left:.3rem}
.cart-foot{padding:1rem 1.2rem 1.1rem;border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 var(--radius) var(--radius)}
.tot-row{display:flex;justify-content:space-between;padding:.15rem 0}
.tot-row.total{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;border-top:2px dashed var(--line);margin-top:.4rem;padding-top:.6rem}
.pay-total{background:linear-gradient(135deg,#111827,#1f2937);color:#fff;border-radius:16px;padding:1rem 1.2rem;text-align:center}
.pay-total small{color:#9ca3af}.pay-total div{font-size:2.1rem;font-weight:800;letter-spacing:-.02em}
.pay-methods{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}
.pay-methods button{border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:.6rem .2rem;font-size:.72rem;font-weight:700;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:.2rem}
.pay-methods button i{font-size:1.25rem}
.pay-methods button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}
.toast-wrap{position:fixed;right:1.2rem;bottom:1.2rem;z-index:2000;display:grid;gap:.5rem}
.toast-x{background:var(--ink);color:#fff;border-radius:12px;padding:.75rem 1.1rem;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);display:flex;gap:.6rem;align-items:center;animation:tin .25s ease}
.toast-x.ok i{color:#34d399}.toast-x.err{background:#7f1d1d}.toast-x.err i{color:#fecaca}
@keyframes tin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1199px){.pos{grid-template-columns:1fr;height:auto}.pos-cart{position:sticky;bottom:0;max-height:70vh}.prod-grid{max-height:60vh}}

/* ---------- Mesas (módulo) ---------- */
.stat-chips{display:flex;flex-wrap:wrap;gap:.6rem}
.stat-chip{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:.6rem 1rem;display:flex;align-items:center;gap:.7rem;font-weight:600;transition:.15s}
.stat-chip b{font-size:1.3rem;font-weight:800;line-height:1}
.stat-chip .sw{width:12px;height:12px;border-radius:4px}
.stat-chip.on{border-color:var(--ink);box-shadow:0 0 0 3px rgba(15,23,42,.08)}
.zone-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.zone-tabs button{border:0;background:#fff;border:1px solid var(--line);border-radius:30px;padding:.4rem 1rem;font-weight:600;font-size:.84rem;color:var(--muted)}
.zone-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.salon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
.mesa-card{background:#fff;border:2px solid var(--line);border-radius:18px;padding:1.1rem;cursor:pointer;transition:.18s;position:relative;display:flex;flex-direction:column;gap:.35rem;min-height:168px}
.mesa-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px -14px rgba(15,23,42,.3)}
.mesa-card .mn{font-size:2.1rem;font-weight:800;line-height:1;letter-spacing:-.03em}
.mesa-card .mz{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-weight:700}
.mesa-card .st{position:absolute;top:1rem;right:1rem;font-size:.7rem;font-weight:800;border-radius:20px;padding:.2rem .6rem;background:rgba(255,255,255,.7)}
.mesa-card .cap{font-size:.82rem;opacity:.85}
.mesa-card .info{margin-top:auto;font-size:.82rem}
.mesa-card .amt{font-size:1.25rem;font-weight:800}
.mesa-card.libre{background:#f0fdf8;border-color:#a7f3d0;color:#047857}
.mesa-card.ocupada{background:#fff7ed;border-color:#fdba74;color:#c2410c}
.mesa-card.ocupada.largo{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}
.mesa-card.reservada{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.mesa-card.limpieza{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}
.act-btn{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:.8rem 1rem;font-weight:600;margin-bottom:.5rem;color:var(--ink);transition:.15s}
.act-btn i{font-size:1.3rem;color:var(--accent-dark)}
.act-btn:hover{border-color:var(--accent);background:var(--accent-soft)}
.act-btn small{display:block;font-weight:400;color:var(--muted)}

/* ---------- Cocina (KDS) ---------- */
.kds{background:#0b1220;color:#e5e9f2;border-radius:20px;padding:1.1rem;min-height:calc(100vh - 118px);display:flex;flex-direction:column;gap:1rem}
.kds:fullscreen{border-radius:0;padding:1.4rem;overflow:auto}
.kds-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}
.kds-title{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}.kds-title i{color:var(--accent-2)}
.kds-clock{font-size:.85rem;color:#8b97ad;font-variant-numeric:tabular-nums}
.kds-tabs{display:flex;gap:.4rem;background:#141c2e;padding:4px;border-radius:14px}
.kds-tabs button{border:0;background:none;color:#9aa6b8;padding:.5rem .9rem;border-radius:11px;font-weight:600;font-size:.88rem;display:flex;gap:.4rem;align-items:center}
.kds-tabs button.on{background:var(--accent);color:#fff}
.kds-tabs .n{background:rgba(255,255,255,.14);border-radius:20px;padding:0 .5rem;font-size:.75rem;font-weight:800}
.kds-stat{background:#141c2e;border-radius:14px;padding:.45rem .9rem;text-align:center;min-width:92px}
.kds-stat b{display:block;font-size:1.3rem;line-height:1.1;font-variant-numeric:tabular-nums}.kds-stat span{font-size:.68rem;color:#8b97ad;text-transform:uppercase;letter-spacing:.06em}
.kds-stat.late b{color:#f87171}
.kds-btn{border:0;background:#141c2e;color:#cbd5e1;width:44px;height:44px;border-radius:14px;font-size:1.1rem}.kds-btn:hover{background:#1d2840}
.kds-board{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:1rem;flex:1;min-height:0}
.kds-col{background:#0f1729;border:1px solid #1b2640;border-radius:18px;padding:1rem;display:flex;flex-direction:column;min-height:0}
.kds-col h2{font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#a8b3c7;display:flex;align-items:center;gap:.55rem;margin:0 0 .9rem}
.kds-col h2 .dot{width:10px;height:10px;border-radius:50%}
.kds-col h2 small{background:#1b2640;border-radius:20px;padding:.05rem .6rem;color:#fff;font-size:.8rem}
.kds-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.9rem;align-content:start;overflow-y:auto;padding-right:.2rem}
.kds-col.ready .kds-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.kds-card{background:#162038;border:1px solid #243155;border-top:5px solid #22c55e;border-radius:16px;display:flex;flex-direction:column;overflow:hidden}
.kds-card.warn{border-top-color:#f59e0b}.kds-card.late{border-top-color:#ef4444;box-shadow:0 0 0 1px rgba(239,68,68,.35),0 10px 30px -12px rgba(239,68,68,.5)}
.kds-card.listo{border-top-color:#10b981;opacity:.95}
.kds-card.nuevo{animation:kflash 1.6s ease 2}
@keyframes kflash{50%{box-shadow:0 0 0 3px rgba(249,115,22,.9)}}
.kds-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.8rem .9rem .55rem}
.kds-card .ttl{font-weight:800;font-size:1.15rem}.kds-card .ttl i{color:var(--accent-2);margin-right:.2rem}
.kds-card .sub{font-size:.76rem;color:#8b97ad}
.kds-card .timer{font-weight:800;font-size:1.35rem;font-variant-numeric:tabular-nums;color:#4ade80}
.kds-card.warn .timer{color:#fbbf24}.kds-card.late .timer{color:#f87171}.kds-card.listo .timer{color:#6ee7b7}
.kds-card .items{padding:.2rem .5rem .5rem;display:grid;gap:.3rem}
.kds-item{display:flex;align-items:flex-start;gap:.6rem;width:100%;text-align:left;border:0;background:#1d2a47;color:#e5e9f2;border-radius:12px;padding:.6rem .7rem;transition:.12s}
.kds-item:hover{background:#26365c}
.kds-item .chk{width:22px;height:22px;border-radius:7px;border:2px solid #4b5b82;display:grid;place-items:center;flex:none;margin-top:1px;font-size:.9rem}
.kds-item .q{font-weight:800;color:var(--accent-2);min-width:26px}
.kds-item .nm{flex:1;font-weight:600;line-height:1.25}
.kds-item .nm em{display:block;font-style:normal;font-weight:500;font-size:.8rem;color:#fbbf24;margin-top:.15rem}
.kds-item .st{color:#64748b;font-size:.95rem}
.kds-item.listo{opacity:.6}.kds-item.listo .nm{text-decoration:line-through}
.kds-item.listo .chk{background:#10b981;border-color:#10b981;color:#fff}
.kds-card footer{padding:.2rem .5rem .6rem}
.kds-go{width:100%;border:0;border-radius:12px;padding:.65rem;font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff}
.kds-go.serve{background:linear-gradient(135deg,#10b981,#059669)}
.kds-go:disabled{opacity:.5}
.kds-empty{grid-column:1/-1;text-align:center;color:#64748b;padding:3rem 1rem}.kds-empty i{font-size:2.4rem;display:block;margin-bottom:.4rem}
.kds-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.78rem;color:#7b88a1}
@media(max-width:1199px){.kds-board{grid-template-columns:1fr}}

/* ---------- Pedidos: seguimiento ---------- */
.timeline{position:relative;padding-left:.4rem}
.tl{display:flex;gap:.8rem;align-items:flex-start;padding-bottom:1rem;position:relative}
.tl::before{content:"";position:absolute;left:6px;top:16px;bottom:-2px;width:2px;background:var(--line)}
.tl:last-child::before{display:none}
.tl .d{width:14px;height:14px;border-radius:50%;background:#e2e8f0;border:3px solid #fff;box-shadow:0 0 0 1px var(--line);flex:none;margin-top:3px}
.tl.on .d{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.tl b{display:block;font-size:.88rem}.tl small{color:var(--muted)}

/* ---------- Caja ---------- */
.caja-strip{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;border-radius:14px;padding:.7rem 1rem}
.caja-strip .pulse{width:9px;height:9px;border-radius:50%;background:var(--ok);animation:pulse 1.8s infinite}
.caja-strip a{color:#b45309;font-weight:600}
.denoms .den-row{display:grid;grid-template-columns:70px 1fr 100px;gap:.6rem;align-items:center;padding:.2rem 0}
.denoms .den-row input{border:1.5px solid var(--line);border-radius:10px;padding:.35rem .6rem;text-align:center;width:100%}
.denoms .den-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(249,115,22,.15)}
.denoms .den-row b{text-align:right;font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}
.dif-box{display:flex;justify-content:space-between;align-items:center;border-radius:14px;padding:.8rem 1rem;background:#f1f5f9;color:var(--muted);font-weight:600}
.dif-box b{font-size:1.3rem}
.dif-box.ok{background:#dcfce7;color:#15803d}.dif-box.sob{background:#e0edff;color:#1d4ed8}.dif-box.fal{background:#fee2e2;color:#b91c1c}

/* ---------- Categorías ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1rem}
.cat-card{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:var(--shadow);transition:.15s}
.cat-card:hover{transform:translateY(-2px)}.cat-card.off{opacity:.55}
.cat-ico,.cat-prev{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;font-size:1.45rem;flex:none}
.min-w-0{min-width:0}
.swatches{display:flex;flex-wrap:wrap;gap:.45rem}
.swatches .sw{width:30px;height:30px;border-radius:10px;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.swatches .sw.on{box-shadow:0 0 0 2px var(--ink)}
.icon-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:.4rem}
.icon-grid .ic{aspect-ratio:1;border:1.5px solid var(--line);background:#fff;border-radius:10px;font-size:1.1rem;color:var(--ink-2)}
.icon-grid .ic:hover{border-color:var(--accent)}.icon-grid .ic.on{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(max-width:575px){.icon-grid{grid-template-columns:repeat(5,1fr)}}

/* ---------- Productos ---------- */
.thumb{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:1.2rem;flex:none;overflow:hidden}
.thumb img,.img-drop img,.prod .pi img{width:100%;height:100%;object-fit:cover;display:block}
.row-off{opacity:.5}
.mbar.good{background:#10b981!important}.mbar.mid{background:#f59e0b!important}.mbar.bad{background:#ef4444!important}
.img-drop{width:100%;aspect-ratio:1;max-width:190px;margin:0 auto;border:2px dashed var(--line);border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);overflow:hidden;background:#f8fafc}
.img-drop i{font-size:2.4rem}

/* ---------- Recetas y costos ---------- */
.rec-item{display:flex;align-items:center;gap:.65rem;width:100%;border:0;background:none;border-radius:12px;padding:.6rem .7rem;transition:.12s}
.rec-item:hover{background:#f1f5f9}.rec-item.on{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.rec-item .dot{width:10px;height:10px;border-radius:50%;flex:none}
.fc{font-size:.74rem;font-weight:800;border-radius:20px;padding:.15rem .55rem;white-space:nowrap}
.fc.good{background:#dcfce7;color:#15803d}.fc.mid{background:#fef3c7;color:#b45309}.fc.bad{background:#fee2e2;color:#b91c1c}.fc.na{background:#f1f5f9;color:#64748b}
b.fc{display:inline-block;width:fit-content}
.cost-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.cost-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.cost-grid small{display:block;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}.cost-grid b{font-size:1.2rem;font-weight:800}
.sug-box{background:var(--accent-soft);border:1px solid #fed7aa;border-radius:14px;padding:.9rem 1rem;height:100%}

/* ===== Inventario (insumos, compras, proveedores) ===== */
.ico.r{background:#fee2e2;color:#dc2626}
.pill.good{background:#dcfce7;color:#15803d}.pill.bad{background:#fee2e2;color:#b91c1c}
.pill.mid{background:#fef3c7;color:#b45309}.pill.na{background:#f1f5f9;color:#475569}
.pill.recibida{background:#dcfce7;color:#15803d}.pill.pendiente{background:#fef3c7;color:#b45309}
#mTipo{display:flex}#mTipo button{flex:1}
.prov-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:var(--shadow);height:100%}
.prov-card.off{opacity:.55}
.prov-av{width:44px;height:44px;border-radius:12px;background:#fff1e6;color:var(--accent-dark);display:grid;place-items:center;font-weight:800;flex:none}
.lin-row{display:grid;grid-template-columns:1fr 100px 110px 100px 32px;gap:.5rem;align-items:center;margin-bottom:.5rem}
@media(max-width:767px){.lin-row{grid-template-columns:1fr 1fr 1fr 32px}.lin-row .ins{grid-column:1/-1}}
.pill.confirmada{background:#e0f2fe;color:#0369a1}

/* ===== Delivery / Para llevar ===== */
.dl-col{background:#eef1f6;border-radius:18px;padding:.7rem;height:100%;min-height:260px}
.dl-head{display:flex;justify-content:space-between;align-items:center;padding:.2rem .4rem .6rem;font-weight:700;font-size:.85rem;color:var(--ink-2)}
.dl-head b{background:#fff;border-radius:20px;padding:.05rem .6rem;font-size:.78rem}
.dl-list{display:flex;flex-direction:column;gap:.6rem;max-height:70vh;overflow-y:auto}
.dl-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem;box-shadow:var(--shadow)}
.dl-card.late{border-color:#fca5a5;box-shadow:0 0 0 2px #fee2e2}
.dl-card .meta{font-size:.78rem;color:var(--muted)}
.dl-empty{text-align:center;color:var(--muted);font-size:.82rem;padding:1.2rem .5rem}
.dl-sug{position:absolute;left:12px;right:12px;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}
.dl-sug button{display:block;width:100%;text-align:left;border:0;background:none;padding:.5rem .8rem;font-size:.85rem}
.dl-sug button:hover{background:#fff7ed}
.pill.por_asignar{background:#f1f5f9;color:#475569}.pill.en_camino{background:#e0f2fe;color:#0369a1}
.pill.entregado{background:#dcfce7;color:#15803d}.pill.fallido{background:#fee2e2;color:#b91c1c}
.card-x.h-auto{height:auto}

/* ===== Configuración / Usuarios ===== */
.tk-prev{font-family:'Courier New',monospace;font-size:.82rem;background:#fffdf7;border:1px dashed #d6d3c9;border-radius:10px;padding:1rem;max-width:300px;margin:0 auto}
.tk-prev .c{text-align:center}.tk-prev hr{margin:.5rem 0;border-top:1px dashed #bbb;opacity:1}
.perm-grp{margin-bottom:1rem}.perm-grp h6{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
.perm-opt{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border:1px solid var(--line);border-radius:10px;font-size:.85rem;cursor:pointer;margin:0 .4rem .4rem 0}
.perm-opt:has(input:checked){background:#fff7ed;border-color:#fdba74}
.role-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:var(--shadow);height:100%}
.chip-mod{display:inline-block;background:#f1f5f9;border-radius:8px;padding:.1rem .5rem;font-size:.72rem;margin:0 .2rem .2rem 0;color:var(--ink-2)}

/* ===== Reportes ===== */
.rep-card{width:100%;height:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem .9rem;display:flex;flex-direction:column;gap:.1rem;transition:.15s;box-shadow:var(--shadow)}
.rep-card i{font-size:1.25rem;color:var(--accent-dark)}.rep-card b{font-size:.85rem;color:var(--ink)}.rep-card small{color:var(--muted);font-size:.74rem}
.rep-card:hover{border-color:#fdba74}.rep-card.on{border-color:var(--accent);background:#fff7ed;box-shadow:0 0 0 2px rgba(249,115,22,.15)}
.rep-total td{font-weight:800;background:#f8fafc}.rep-sub td{font-weight:700;background:#fcfcfd}
@media print{
  .sidebar,.topbar,.no-print,.toast-wrap{display:none!important}
  .main,.content,main{margin:0!important;padding:0!important}
  .print-head{display:block!important;margin-bottom:1rem}
  .card-x{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid}
  body{background:#fff!important}
}

/* ===== Asistente IA y Chat IA ===== */
.ia-hero{background:linear-gradient(120deg,#0f172a,#1e293b 60%,#7c2d12);border-radius:18px;color:#fff;padding:22px 26px;margin-bottom:16px;position:relative;overflow:hidden}
.ia-hero:after{content:"";position:absolute;right:-50px;top:-70px;width:240px;height:240px;border-radius:50%;background:rgba(249,115,22,.22)}
.ia-hero h2{font-size:1.25rem;font-weight:800;margin:0 0 4px}.ia-hero p{margin:0 0 14px;opacity:.85;font-size:.88rem}
.ia-ask{display:flex;gap:8px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 10px 30px -12px rgba(0,0,0,.5);position:relative;z-index:1}
.ia-ask textarea{flex:1;border:0;outline:0;resize:none;padding:.65rem .8rem;font-size:.97rem;border-radius:10px;background:transparent;color:var(--ink);min-height:48px;max-height:120px}
.ia-ask button{border:0;border-radius:11px;padding:0 20px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark));display:flex;align-items:center;gap:8px;white-space:nowrap}
.ia-ask button:disabled{opacity:.6}
.ia-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;position:relative;z-index:1}
.ia-chip{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:5px 12px;font-size:.78rem;cursor:pointer;transition:.15s}
.ia-chip:hover{background:rgba(255,255,255,.25)}
.ia-res h5{font-weight:800;margin:0;font-size:1.05rem}.ia-meta{color:var(--muted);font-size:.78rem}
.ia-sum{background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fed7aa;border-radius:12px;padding:10px 14px;font-size:.88rem;color:#7c2d12;display:flex;gap:10px;align-items:flex-start;margin:12px 0}
.ia-chart{position:relative;height:300px;margin:8px 0 14px}
.ia-sql{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:12px 14px;font-size:.78rem;white-space:pre-wrap;word-break:break-word;margin:10px 0 0}
.ia-tbl{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.ia-tbl .tbl th{position:sticky;top:0;background:var(--card);z-index:1}
.ia-side .it{display:flex;gap:6px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:8px}
.ia-side .it:hover{background:var(--bg)}.ia-side .it:last-child{border:0}
.ia-side .it .tx{flex:1;min-width:0;font-size:.82rem;line-height:1.25}.ia-side .it .tx small{color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-side .it button{border:0;background:none;color:var(--muted);padding:2px 4px}.ia-side .it button:hover{color:var(--danger)}
.ia-load{display:flex;align-items:center;gap:12px;color:var(--muted)}
.ia-dots span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:4px;animation:iad 1s infinite ease-in-out}.ia-dots span:nth-child(2){animation-delay:.15s}.ia-dots span:nth-child(3){animation-delay:.3s}
@keyframes iad{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}
.ia-setup .st{display:flex;gap:12px;margin-bottom:10px}.ia-setup .st b{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-dark);display:grid;place-items:center;flex:none;font-size:.8rem}
@media(max-width:575.98px){.ia-ask{flex-direction:column}.ia-ask button{padding:12px;justify-content:center}.ia-hero{padding:16px}}

.chat-fab{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;border:0;color:#fff;font-size:1.5rem;background:linear-gradient(135deg,var(--accent),var(--accent-dark));box-shadow:0 14px 30px -8px rgba(234,88,12,.7);z-index:1045;display:grid;place-items:center;transition:transform .15s}
.chat-fab:hover{transform:scale(1.07)}
.chat-panel{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);overflow:hidden}
.chat-root:not(.chat-page) .chat-panel{position:fixed;right:20px;bottom:90px;width:390px;height:min(620px,calc(100dvh - 120px));border-radius:20px;box-shadow:0 30px 70px -20px rgba(15,23,42,.45);z-index:1046}
.chat-root:not(.chat-page) .chat-panel[hidden]{display:none}
.chat-page .chat-panel{height:calc(100dvh - 230px);min-height:460px;max-width:860px;border-radius:18px;box-shadow:var(--shadow)}
.chat-head{display:flex;align-items:center;gap:10px;padding:12px 14px;color:#fff;background:linear-gradient(120deg,#111827,#1f2937 55%,#c2410c)}
.chat-head b{display:block;line-height:1.1}.chat-head small{opacity:.8;font-size:.72rem}
.chat-head button{border:0;background:rgba(255,255,255,.15);color:#fff;border-radius:9px;width:32px;height:32px}
.chat-av{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.2);display:grid;place-items:center}
.chat-msgs{flex:1;overflow-y:auto;padding:14px;background:var(--bg);display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
.chat-m{display:flex}.chat-m.me{justify-content:flex-end}
.chat-b{max-width:88%;padding:9px 13px;border-radius:16px;font-size:.88rem;line-height:1.45;word-break:break-word}
.chat-m.bot .chat-b{background:var(--card);border:1px solid var(--line);border-bottom-left-radius:5px}
.chat-m.me .chat-b{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border-bottom-right-radius:5px}
.chat-sugs{display:flex;flex-wrap:wrap;gap:6px}.chat-sug{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 11px;font-size:.78rem;color:var(--ink)}.chat-sug:hover{border-color:var(--accent);color:var(--accent-dark)}
.chat-tg{display:block;margin-top:8px;border:0;background:none;color:var(--accent-dark);font-size:.78rem;font-weight:600;padding:0}.chat-tg.on{color:var(--muted)}
.chat-tbl{margin-top:6px;border:1px solid var(--line);border-radius:10px;overflow:hidden;max-width:100%}.chat-tbl .tbl{font-size:.74rem;margin:0}.chat-tbl .tbl td,.chat-tbl .tbl th{padding:.35rem .5rem}
.chat-in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);background:var(--card);align-items:flex-end}
.chat-in textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:12px;padding:.55rem .75rem;font-size:16px;background:var(--bg);color:var(--ink);outline:0;max-height:110px}
.chat-in textarea:focus{border-color:var(--accent)}
.chat-in button{width:42px;height:42px;border:0;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark))}.chat-in button:disabled{opacity:.5}
@media(max-width:767.98px){
  .chat-fab{bottom:16px;right:14px;width:54px;height:54px}
  .chat-root.on-pos .chat-fab{bottom:86px}
  .chat-root:not(.chat-page) .chat-panel{inset:0;width:auto;height:auto;border-radius:0}
  body.chat-open .chat-fab{display:none}
  .chat-page .chat-panel{height:calc(100dvh - 210px)}
}
@media print{.chat-root{display:none!important}}
.mini-btn{display:inline-grid;place-items:center;text-decoration:none}

/* ===== KPIs del dashboard (tarjetas con degradado y pie de acción) ===== */
.kpi-g{--c1:#f97316;--c2:#ea580c;--foot:#c2410c;border-radius:var(--radius);overflow:hidden;color:#fff;position:relative;height:100%;display:flex;flex-direction:column;
  background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 26px -12px var(--c2);transition:transform .18s,box-shadow .18s}
.kpi-g:hover{transform:translateY(-3px);box-shadow:0 18px 32px -12px var(--c2)}
.kpi-g.k-orange{--c1:#fb923c;--c2:#ea580c;--foot:#9a3412}
.kpi-g.k-blue{--c1:#38bdf8;--c2:#2563eb;--foot:#1e40af}
.kpi-g.k-green{--c1:#34d399;--c2:#059669;--foot:#065f46}
.kpi-g.k-violet{--c1:#a78bfa;--c2:#7c3aed;--foot:#5b21b6}
.kpi-body{position:relative;padding:1.2rem 1.3rem 1rem;flex:1;overflow:hidden}
.kpi-body:before{content:"";position:absolute;right:-26px;top:-26px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.14)}
.kpi-deco{position:absolute;right:16px;top:14px;font-size:3rem;line-height:1;color:rgba(255,255,255,.38)}
.kpi-g .val{position:relative;font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.kpi-g .lbl{position:relative;font-weight:600;font-size:.9rem;opacity:.95;margin-top:.15rem}
.kpi-g small{position:relative;display:block;margin-top:.35rem;font-size:.76rem;opacity:.85}
.kpi-of{font-size:1.05rem;font-weight:600;opacity:.8}
.kpi-bar{position:relative;height:6px;border-radius:6px;background:rgba(255,255,255,.28);margin-top:.7rem;overflow:hidden}
.kpi-bar span{display:block;height:100%;background:#fff;border-radius:6px}
.kpi-foot{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.3rem;background:var(--foot);background:color-mix(in srgb,var(--c2) 62%,#000)}
.kpi-more{color:#fff;font-weight:700;font-size:.85rem;display:inline-flex;align-items:center;gap:.4rem}
.kpi-more:hover{color:#fff;opacity:.85}.kpi-more i{font-size:1rem}
.kpi-g .delta{font-size:.74rem;font-weight:700;padding:.18rem .55rem;border-radius:20px;background:rgba(255,255,255,.2);color:#fff}
.kpi-g .delta.up,.kpi-g .delta.down{background:rgba(255,255,255,.2);color:#fff}
@media(max-width:575px){.kpi-g .val{font-size:1.7rem}}

/* ===== Marca de la empresa (logo) ===== */
.brand-mark.has-logo{background:#fff;box-shadow:0 6px 18px -8px rgba(0,0,0,.45);overflow:hidden;padding:3px}
.brand-mark.has-logo img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.side-brand .brand-txt{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.side-brand .brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.side-brand .brand-name{font-size:1.05rem}

/* ===== Empresa y Configuración ===== */
.cfg-card{padding:0;overflow:hidden}
.cfg-tabs{display:flex;gap:.25rem;padding:.6rem .7rem 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;background:#fafbfd}
.cfg-tabs button{border:0;background:none;padding:.7rem 1rem;border-bottom:3px solid transparent;color:var(--muted);font-weight:600;font-size:.88rem;display:flex;align-items:center;gap:.5rem;white-space:nowrap;margin-bottom:-1px}
.cfg-tabs button:hover{color:var(--ink)}.cfg-tabs button.on{color:var(--accent-dark);border-bottom-color:var(--accent)}
.cfg-pane{padding:1.4rem}.cfg-pane[hidden]{display:none}
.logo-box{display:flex;gap:1.2rem;align-items:center;padding:1rem;border:1px dashed var(--line);border-radius:14px;background:#fafbfd;margin-bottom:1.3rem}
.logo-drop{width:112px;height:112px;flex:none;border-radius:18px;border:2px dashed #d5dbe6;background:#fff;display:grid;place-items:center;cursor:pointer;overflow:hidden;transition:.15s}
.logo-drop:hover,.logo-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.logo-drop img{width:100%;height:100%;object-fit:contain;padding:8px}
.logo-ph{text-align:center;color:#94a3b8;font-size:.78rem}.logo-ph i{display:block;font-size:2rem;line-height:1.1}
@media(max-width:575px){.logo-box{flex-direction:column;text-align:center}}
.seg-pick{display:flex;flex-wrap:wrap;gap:.4rem}
.seg-pick button{flex:1;border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:.5rem .7rem;font-size:.85rem;font-weight:600;color:var(--ink-2);white-space:nowrap}
.seg-pick button:hover{border-color:#cbd5e1}.seg-pick button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-dark)}
.note-box{display:flex;gap:.6rem;background:#f1f5f9;border-radius:12px;padding:.7rem .9rem;font-size:.82rem;color:#475569}.note-box i{color:var(--accent-dark);margin-top:.1rem}
.cfg-side{position:sticky;top:84px}
.tk-prev{font-family:'Courier New',monospace;font-size:.76rem;background:#fff;border:1px dashed #cbd5e1;border-radius:6px;padding:.9rem .8rem;margin:0 auto;box-shadow:0 8px 20px -14px rgba(15,23,42,.5)}
.tk-prev .c{text-align:center}.tk-prev hr{border:0;border-top:1px dashed #94a3b8;margin:.45rem 0}
.pv-logo{display:block;margin:0 auto .4rem;max-width:56%;max-height:64px;object-fit:contain}
.fmt-sample{display:flex;justify-content:space-between;align-items:center;padding:.55rem .8rem;background:#f8fafc;border-radius:10px;margin-bottom:.45rem;font-size:.85rem}
.fmt-sample b{font-size:1rem;color:var(--ink)}

/* ===== Respaldo y Restauración ===== */
.rb-hero{background:linear-gradient(120deg,#0f172a,#1e293b 60%,#7c2d12);border-radius:20px;color:#fff;padding:1.6rem 1.8rem;margin-bottom:1rem;position:relative;overflow:hidden}
.rb-hero:after{content:"";position:absolute;right:-60px;top:-80px;width:280px;height:280px;border-radius:50%;background:rgba(249,115,22,.2)}
.rb-hero-in{display:flex;gap:1.3rem;align-items:center;position:relative;z-index:1;flex-wrap:wrap}
.rb-shield{width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,var(--accent-2),var(--accent-dark));display:grid;place-items:center;font-size:2rem;box-shadow:0 14px 30px -10px rgba(249,115,22,.8);flex:none}
.rb-hero h2{font-size:1.45rem;font-weight:800;margin:0 0 .25rem}.rb-hero p{margin:0 0 .8rem;opacity:.82;font-size:.9rem;max-width:620px}
.rb-status{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .8rem;border-radius:999px;font-size:.8rem;font-weight:700;background:rgba(255,255,255,.14)}
.rb-status.ok{background:rgba(16,185,129,.22);color:#6ee7b7}.rb-status.mid{background:rgba(245,158,11,.22);color:#fcd34d}.rb-status.bad{background:rgba(239,68,68,.25);color:#fca5a5}
.rb-hero-act{display:flex;flex-direction:column;gap:.5rem}
.rb-btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25)}.rb-btn-ghost:hover{background:rgba(255,255,255,.22);color:#fff}
.rb-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;display:flex;align-items:center;gap:.9rem;box-shadow:var(--shadow);height:100%}
.rb-stat>i{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.3rem;background:var(--accent-soft);color:var(--accent-dark);flex:none}
.rb-stat.v>i{background:#ede9fe;color:#7c3aed}.rb-stat.g>i{background:#dcfce7;color:#15803d}.rb-stat.b>i{background:#e0edff;color:#2563eb}
.rb-stat small{display:block;color:var(--muted);font-size:.74rem;font-weight:600}.rb-stat b{display:block;font-size:1.25rem;font-weight:800;line-height:1.15}.rb-stat span{font-size:.74rem;color:var(--muted)}
.rb-item{display:flex;align-items:center;gap:.85rem;padding:.75rem .5rem;border-bottom:1px solid #f1f4f9}.rb-item:last-child{border:0}
.rb-item .ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.15rem;flex:none}
.rb-item .mini-btn{width:34px;height:34px}.min-w-0{min-width:0}
.rb-drop{border:2px dashed #d5dbe6;border-radius:16px;padding:1.6rem 1rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;color:var(--muted);transition:.15s;background:#fafbfd}
.rb-drop i{font-size:2.2rem;color:var(--accent)}.rb-drop b{color:var(--ink)}.rb-drop:hover,.rb-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.rb-anal{border:1px solid #bbf7d0;background:#f0fdf4;border-radius:14px;padding:1rem}
.rb-kv{display:flex;justify-content:space-between;font-size:.85rem;padding:.2rem 0;border-bottom:1px dashed #d1fae5}.rb-kv span{color:var(--muted)}
.rb-tip{display:flex;gap:.7rem;font-size:.82rem;color:#475569}.rb-tip>i{color:var(--accent);font-size:1.3rem}.rb-tip ul{margin:.3rem 0 0;padding-left:1.1rem}
.rb-danger{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;border:1.5px solid #fecaca;background:linear-gradient(135deg,#fff5f5,#fff);border-radius:18px;padding:1.3rem 1.5rem}
.rb-danger-ic{width:54px;height:54px;border-radius:16px;background:#fee2e2;color:#dc2626;display:grid;place-items:center;font-size:1.6rem;flex:none}
.rb-danger h5{font-weight:800;color:#b91c1c;margin:0 0 .2rem;font-size:1.05rem}.rb-danger p{margin:0;color:#7f1d1d;font-size:.86rem;max-width:760px}
.rb-warn{display:flex;gap:.7rem;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:.8rem 1rem;font-size:.86rem}.rb-warn i{font-size:1.2rem;margin-top:.1rem}
.rb-grupos{display:grid;gap:.5rem}
.rb-grupo{display:flex;align-items:center;gap:.8rem;border:1.5px solid var(--line);border-radius:12px;padding:.7rem .9rem;cursor:pointer;margin:0}
.rb-grupo:hover{border-color:#fca5a5}.rb-grupo:has(input:checked){border-color:#ef4444;background:#fff5f5}
.rb-grupo small{display:block;color:var(--muted);font-size:.76rem}.rb-grupo input{width:1.2rem;height:1.2rem;flex:none;margin:0}
.rb-ok{width:64px;height:64px;border-radius:50%;background:#dcfce7;color:#15803d;display:grid;place-items:center;font-size:2rem;margin:0 auto}
@media(max-width:575px){.rb-hero{padding:1.2rem}.rb-hero-act{width:100%}.rb-shield{width:54px;height:54px;font-size:1.6rem}}
.pill.blue{background:#e0edff;color:#1d4ed8}.pill.gray{background:#f1f5f9;color:#64748b}.pill.red{background:#fee2e2;color:#b91c1c}

/* ===== Rendimiento de ventas (dashboard) ===== */
.evo-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:.4rem 0 1rem}
.evo-stats .es{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:.7rem .9rem;display:flex;flex-direction:column;line-height:1.2}
.evo-stats .es small{color:var(--muted);font-size:.72rem;font-weight:600}.evo-stats .es b{font-size:1.2rem;font-weight:800;letter-spacing:-.02em;margin:.1rem 0}
.evo-stats .es .mu{font-size:.72rem;color:var(--muted)}
.evo-stats .dl{font-size:.74rem;font-weight:700;width:fit-content;padding:.05rem .5rem;border-radius:20px}.dl.up{background:#dcfce7;color:#15803d}.dl.down{background:#fee2e2;color:#b91c1c}
.evo-stats .es.best{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#fed7aa}.evo-stats .es.best small{color:#9a3412}.evo-stats .es.best b{color:#c2410c}
.evo-leg{display:flex;gap:.9rem;font-size:.74rem;color:var(--muted);flex-wrap:wrap}.evo-leg span{display:inline-flex;align-items:center;gap:.35rem}
.evo-leg i{width:12px;height:12px;border-radius:4px;display:inline-block}.evo-leg i.ln{height:0;width:16px;border-top:2px dashed #64748b;border-radius:0}.evo-leg i.best{background:#c2410c}
@media(max-width:575px){.evo-stats{grid-template-columns:1fr 1fr}.evo-stats .es:first-child{grid-column:1/-1}.evo-leg{display:none}}

/* ================= CRM ================= */
.seg-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:20px;font-size:.72rem;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff);white-space:nowrap}
.tag-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:8px;font-size:.7rem;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#fff);border:1px solid color-mix(in srgb,var(--c) 30%,#fff)}
.tag-chip.off{opacity:.45;filter:grayscale(.6)}.tag-chip.btn-t{cursor:pointer}
.crm-av{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;font-weight:800;font-size:.78rem;color:#fff;background:var(--c,#f97316)}
.crm-av.lg{width:58px;height:58px;border-radius:18px;font-size:1.1rem}
.score-ring{--p:0;--c:#10b981;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:conic-gradient(var(--c) calc(var(--p)*1%),#eef1f6 0)}
.score-ring b{width:32px;height:32px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:800}
.score-ring.lg{width:66px;height:66px}.score-ring.lg b{width:52px;height:52px;font-size:1rem}
.crm-link{color:inherit;text-decoration:none;cursor:pointer;font-weight:700}.crm-link:hover{color:var(--accent-dark)}
.crm-stat{display:flex;align-items:center;gap:.9rem;padding:1.05rem 1.15rem}
.crm-stat .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem;flex:none}
.crm-stat .l{font-size:.78rem;color:var(--muted);font-weight:600}.crm-stat .v{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}.crm-stat .s{font-size:.72rem;color:var(--muted)}
.ic-orange{background:#fff1e6;color:#ea580c}.ic-green{background:#dcfce7;color:#15803d}.ic-sky{background:#e0f2fe;color:#0369a1}.ic-teal{background:#ccfbf1;color:#0f766e}
.ic-amber{background:#fef3c7;color:#b45309}.ic-rose{background:#ffe4e6;color:#be123c}.ic-violet{background:#ede9fe;color:#6d28d9}
.cx-chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.cx-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:1rem 1.25rem .4rem}
.cx-toolbar .sch{position:relative;flex:1;min-width:230px}.cx-toolbar .sch i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--muted)}.cx-toolbar .sch .form-control{padding-left:2.4rem}
.cx-chip{border:1px solid var(--line);background:#fff;border-radius:20px;padding:.3rem .8rem;font-size:.78rem;font-weight:600;color:var(--ink-2);display:inline-flex;align-items:center;gap:.4rem}
.cx-chip:hover{border-color:var(--accent);color:var(--accent-dark)}.cx-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cx-chip em{font-style:normal;font-size:.68rem;opacity:.7}.cx-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--c)}
.ico-btn{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:#fff;display:inline-grid;place-items:center;color:var(--ink-2);font-size:.9rem;cursor:pointer;text-decoration:none;padding:0}
.ico-btn:hover{border-color:var(--accent);color:var(--accent-dark)}.ico-btn.wa{color:#16a34a}.ico-btn.danger:hover{border-color:#ef4444;color:#ef4444}
.btn-soft.danger:hover{border-color:#ef4444;color:#ef4444}
.btn-soft.sm,.btn-soft{padding:.4rem .8rem;font-size:.82rem}
.mini-list .it{display:flex;align-items:center;gap:.75rem;padding:.55rem 0;border-bottom:1px solid #f1f4f9}.mini-list .it:last-child{border:0}
.mini-list .it .grow{flex:1;min-width:0}.mini-list .it .t{font-weight:700;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-list .it .s{font-size:.74rem;color:var(--muted)}
.crm-empty{padding:1.6rem 1rem;text-align:center;color:var(--muted);font-size:.86rem}.crm-empty i{display:block;font-size:1.8rem;margin-bottom:.35rem;opacity:.5}
.cx-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.25rem;height:100%}
.cx-card .ch{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.8rem}.cx-card .ch h6{font-weight:800;margin:0;font-size:.95rem}.cx-card .ch small{color:var(--muted);font-size:.76rem}
.crm-oc{--bs-offcanvas-width:700px;max-width:100vw;background:var(--bg)}
.crm-oc .offcanvas-header{background:#fff;border-bottom:1px solid var(--line)}.crm-oc .offcanvas-body{padding:1.1rem 1.25rem 2rem}
.fx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:.9rem}
.fx-k{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem .75rem}.fx-k small{display:block;color:var(--muted);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.fx-k b{font-size:.95rem}
.rfm-bar{display:flex;align-items:center;gap:.6rem;font-size:.78rem;margin-bottom:.3rem}.rfm-bar span{width:70px;color:var(--muted)}.rfm-bar i{flex:1;height:7px;background:#eef1f6;border-radius:6px;overflow:hidden}.rfm-bar u{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent-dark));border-radius:6px}
.nba{background:linear-gradient(135deg,rgba(249,115,22,.1),rgba(251,146,60,.04));border:1px solid #fed7aa;border-radius:var(--radius);padding:.9rem 1rem}
.nba div{display:flex;gap:.55rem;align-items:flex-start;font-size:.84rem;margin-top:.35rem}.nba i{color:var(--accent-dark);margin-top:.1rem}
.fx-tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin:1.1rem 0 .9rem;overflow-x:auto}
.fx-tabs button{border:0;background:none;padding:.55rem .85rem;font-weight:700;font-size:.82rem;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}.fx-tabs button.on{color:var(--accent-dark);border-color:var(--accent)}
.cx-tl{position:relative;padding-left:2.2rem}.cx-tl:before{content:"";position:absolute;left:.85rem;top:.3rem;bottom:.3rem;width:2px;background:var(--line)}
.cx-tl .ev{position:relative;padding:0 0 1rem}.cx-tl .ev .dt{position:absolute;left:-2.2rem;top:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--c);font-size:.8rem;border:2px solid var(--bg)}
.cx-tl .ev .h{display:flex;justify-content:space-between;gap:.5rem;font-weight:700;font-size:.84rem}.cx-tl .ev .h span{font-weight:500;font-size:.72rem;color:var(--muted);white-space:nowrap}.cx-tl .ev .h .m{margin-left:.4rem;color:var(--accent-dark)}
.cx-tl .ev .b{font-size:.8rem;color:var(--muted);word-break:break-word}
.compose{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem;margin-bottom:1rem}
.bars6{display:flex;align-items:flex-end;gap:.5rem;height:110px}.bars6>div{flex:1;text-align:center;font-size:.68rem;color:var(--muted)}.bars6 i{display:block;background:linear-gradient(180deg,var(--accent-2),var(--accent-dark));border-radius:6px 6px 2px 2px;margin-bottom:.25rem}
.hbar{display:flex;align-items:center;gap:.6rem;font-size:.78rem;margin-bottom:.4rem;--c:var(--accent)}.hbar .n{width:38%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.hbar .bar{flex:1;height:8px;background:#eef1f6;border-radius:6px;overflow:hidden}.hbar .bar i{display:block;height:100%;background:var(--c);border-radius:6px}.hbar .v{min-width:70px;text-align:right;font-weight:700}
.seg-card{border-top:4px solid var(--c);display:flex;flex-direction:column;gap:.8rem}.seg-card .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);font-size:1.2rem;flex:none}
.seg-card .big{font-size:1.9rem;font-weight:800;letter-spacing:-.03em;color:var(--c)}.seg-card dl{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;margin:0;font-size:.78rem}.seg-card dt{color:var(--muted);font-weight:500}.seg-card dd{margin:0;font-weight:700;text-align:right}
.rfm-m{display:grid;grid-template-columns:44px repeat(5,1fr);gap:4px}.rfm-m .c{aspect-ratio:1.5/1;display:grid;place-items:center;border-radius:8px;font-size:.78rem;font-weight:800;background:rgba(249,115,22,calc(var(--a)*.9 + .05));color:var(--ink)}
.rfm-m .c.hi{color:#fff}.rfm-m .hd{display:grid;place-items:center;font-size:.68rem;font-weight:700;color:var(--muted)}
.kb-wrap{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:1rem;align-items:start}
.kb{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:.8rem;overflow-x:auto;padding-bottom:.4rem}.kb-end{display:flex;flex-direction:column;gap:.9rem}
.kb-col{background:#eef1f6;border-radius:16px;min-height:140px;display:flex;flex-direction:column}
.kb-col .hd{padding:.8rem .9rem .6rem;border-bottom:3px solid var(--c)}.kb-col .hd b{font-size:.86rem}.kb-col .hd small{display:block;color:var(--muted);font-size:.72rem}
.kb-list{padding:.6rem;display:flex;flex-direction:column;gap:.55rem;min-height:70px;flex:1}.kb-col.over{outline:2px dashed var(--accent);outline-offset:-4px}
.kb-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.65rem .75rem;cursor:grab;box-shadow:0 1px 2px rgba(15,23,42,.04)}.kb-card:hover{border-color:var(--accent)}.kb-card.drag{opacity:.4}
.kb-card .ti{font-weight:700;font-size:.84rem}.kb-card .cl{font-size:.74rem;color:var(--muted);margin:.1rem 0 .4rem}.kb-card .ft{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}.kb-card .val{font-weight:800;color:var(--ink)}
.kb-card.won{border-left:4px solid #10b981}.kb-card.lost{border-left:4px solid #f43f5e;opacity:.8}
.task-row{display:flex;align-items:center;gap:.8rem;padding:.7rem .2rem;border-bottom:1px solid #f1f4f9}.task-row .ck{width:22px;height:22px;border-radius:7px;border:2px solid #cbd5e1;cursor:pointer;display:grid;place-items:center;flex:none;font-size:.8rem;color:#fff}
.task-row .ck:hover{border-color:var(--accent)}.task-row.done .ck{background:var(--ok);border-color:var(--ok)}.task-row.done .tt{text-decoration:line-through;color:var(--muted)}
.task-row .tt{font-weight:600;font-size:.88rem}.task-row .ts{font-size:.74rem;color:var(--muted)}
.task-grp{font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:.9rem .2rem .3rem}
.pri{width:8px;height:8px;border-radius:50%;display:inline-block;background:#94a3b8}.pri.ALTA{background:#ef4444}.pri.MEDIA{background:#f59e0b}.pri.BAJA{background:#10b981}
.msg-prev{background:#dcf8c6;color:#0b1f12;border-radius:12px 12px 12px 3px;padding:.6rem .8rem;font-size:.84rem;max-width:520px}
.var-chip{border:1px dashed var(--line);background:#fff;border-radius:8px;padding:.1rem .5rem;font-size:.72rem;font-family:monospace;color:var(--accent-dark)}.var-chip:hover{border-color:var(--accent)}
.bar-s{height:6px;background:#eef1f6;border-radius:6px;overflow:hidden;margin-bottom:.2rem}.bar-s i{display:block;height:100%;border-radius:6px}
.pill.ok{background:#dcfce7;color:#15803d}.pill.warn{background:#fef3c7;color:#b45309}.pill.neutral{background:#f1f5f9;color:#475569}
.cx-picker{position:relative}.cx-picker .drop{position:absolute;z-index:20;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:260px;overflow:auto}
.cx-picker .drop button{display:flex;gap:.6rem;align-items:center;width:100%;border:0;background:none;text-align:left;padding:.5rem .7rem}.cx-picker .drop button:hover{background:var(--accent-soft)}
.icon-btn .cnt{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:800;display:grid;place-items:center;padding:0 4px;border:2px solid var(--bg)}
@media(max-width:991px){.kb-wrap{grid-template-columns:1fr}.kb-end{flex-direction:row;flex-wrap:wrap}.kb-end .kb-col{flex:1;min-width:220px}}
@media(max-width:767px){.fx-grid{grid-template-columns:repeat(2,1fr)}}
