:root{--primary:#6366f1;--primary-dark:#4f46e5;--primary-light:#a5b4fc;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--sidebar-w:260px;--radius:10px;--shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1)}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:var(--gray-100);color:var(--gray-800);font-size:.9rem;line-height:1.5}
a{color:var(--primary);text-decoration:none}

/* LAYOUT */
.app-container{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);background:var(--gray-900);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.1)}
.logo{display:flex;align-items:center;gap:.6rem;font-size:1.2rem;font-weight:700}
.logo i{color:var(--primary-light);font-size:1.4rem}
.sidebar-toggle{background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:1.1rem;display:none}
.sidebar-user{padding:1rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:.8rem}
.user-avatar i{font-size:2.2rem;color:var(--primary-light)}
.user-info{display:flex;flex-direction:column}
.user-name{font-weight:600;font-size:.85rem}
.user-role{font-size:.72rem;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px}
.user-store{font-size:.72rem;color:var(--primary-light);margin-top:2px}
.sidebar-nav{flex:1;overflow-y:auto;padding:.5rem 0}
.nav-section{padding:.8rem 1.2rem .3rem;font-size:.65rem;text-transform:uppercase;letter-spacing:1px;color:var(--gray-500);font-weight:600}
.nav-item{display:flex;align-items:center;gap:.8rem;padding:.65rem 1.2rem;color:var(--gray-300);transition:all .15s;font-size:.85rem}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.active{background:var(--primary);color:#fff;border-radius:0 8px 8px 0;margin-right:8px}
.nav-item i{width:20px;text-align:center;font-size:.9rem}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding:.5rem 0}
.nav-item.logout:hover{background:rgba(239,68,68,.2);color:var(--danger)}
.main-content{flex:1;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column}
.top-bar{display:flex;align-items:center;gap:1rem;padding:.8rem 1.5rem;background:#fff;border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:50}
.page-title{font-size:1.1rem;font-weight:600;flex:1}
.mobile-toggle{display:none;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--gray-600)}
.top-bar-actions{display:flex;align-items:center;gap:.45rem}
.topbar-icon-btn{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--gray-500);font-size:1.05rem;cursor:pointer;position:relative}
.topbar-icon-btn:hover{background:var(--gray-100);color:var(--primary)}
.pwa-install-login{margin-top:.75rem}
.pwa-update-notice{position:fixed;right:18px;bottom:18px;z-index:500;display:flex;align-items:center;gap:1rem;max-width:calc(100vw - 36px);padding:.75rem .8rem .75rem 1rem;background:#fff;border:1px solid var(--gray-200);border-left:4px solid var(--primary);border-radius:8px;box-shadow:var(--shadow-lg);animation:fadeIn .2s ease}.pwa-update-notice span{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;color:var(--gray-700)}.pwa-update-notice span i{color:var(--primary)}.pwa-update-notice .btn{white-space:nowrap}
.tutorial-launch.has-unseen-tutorial::after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--warning);box-shadow:0 0 0 2px #fff}
.notif-btn{position:relative;color:var(--gray-500);font-size:1.1rem}
.notif-badge{position:absolute;top:-5px;right:-7px;background:var(--danger);color:#fff;font-size:.6rem;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.content-area{padding:1.5rem;flex:1;min-width:0}

/* CARDS */
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1rem}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.card-header h2{font-size:1rem;font-weight:600}

/* STATS GRID */
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.stat-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.2rem;display:flex;align-items:center;gap:1rem}
.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem}
.stat-icon.blue{background:#dbeafe;color:#2563eb}
.stat-icon.green{background:#dcfce7;color:#16a34a}
.stat-icon.purple{background:#f3e8ff;color:#9333ea}
.stat-icon.orange{background:#ffedd5;color:#ea580c}
.stat-icon.red{background:#fee2e2;color:#dc2626}
.stat-icon.yellow{background:#fef9c3;color:#ca8a04}
.stat-info h3{font-size:1.4rem;font-weight:700;line-height:1}
.stat-info p{font-size:.75rem;color:var(--gray-500);margin-top:.2rem}

/* TABLES */
.table-responsive{width:100%;overflow-x:visible;overflow-y:hidden}
.table-responsive table{min-width:100%}
table{width:100%;border-collapse:collapse}
thead{background:var(--gray-50)}
th{padding:.7rem .8rem;text-align:left;font-weight:600;font-size:.78rem;text-transform:uppercase;color:var(--gray-500);letter-spacing:.3px;border-bottom:2px solid var(--gray-200)}
td{padding:.65rem .8rem;border-bottom:1px solid var(--gray-100);font-size:.85rem}
tr:hover{background:var(--gray-50)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:8px;font-size:.82rem;font-weight:500;cursor:pointer;border:none;transition:all .15s;text-decoration:none;line-height:1.4}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-success{background:var(--success);color:#fff}.btn-success:hover{opacity:.9}
.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{opacity:.9}
.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}
.btn-outline{background:transparent;border:1px solid var(--gray-300);color:var(--gray-700)}.btn-outline:hover{background:var(--gray-100)}
.btn-sm{padding:.3rem .6rem;font-size:.75rem}
.btn-lg{padding:.7rem 1.5rem;font-size:.95rem}
.btn-block{width:100%;justify-content:center}

/* FORMS */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-weight:500;margin-bottom:.3rem;font-size:.82rem;color:var(--gray-700)}
.form-control{width:100%;padding:.55rem .75rem;border:1px solid var(--gray-300);border-radius:8px;font-size:.85rem;font-family:inherit;transition:border .15s;background:#fff}
.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}
select.form-control{appearance:auto}
textarea.form-control{resize:vertical;min-height:60px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.form-text{font-size:.75rem;color:var(--gray-500);margin-top:.2rem}
.ticket-format-section{border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);padding:1rem 0;margin-bottom:1rem}
.ticket-format-title{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;color:var(--gray-800);margin-bottom:.8rem}
.ticket-format-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:1rem;align-items:start}
.ticket-format-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}
.ticket-preview-stage{display:flex;flex-direction:column;align-items:center;min-width:0;padding:.65rem;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:8px}
.ticket-preview-label{align-self:flex-start;color:var(--gray-600);font-size:.72rem;font-weight:600;margin-bottom:.5rem}
.ticket-format-preview{--ticket-preview-font:15px;--ticket-preview-margin:6px;--ticket-preview-frame:1px;width:188px;max-width:100%;display:flex;flex-direction:column;gap:4px;background:#fff;color:#111;padding:var(--ticket-preview-margin);font:var(--ticket-preview-font)/1.25 'Courier New',monospace;text-align:center;overflow:hidden;overflow-wrap:anywhere;box-shadow:0 1px 3px rgba(15,23,42,.16)}
.ticket-format-preview strong{font-size:calc(var(--ticket-preview-font) + 3px)}
.ticket-format-preview span{display:block}
.ticket-format-preview i{display:block;border-top:1px dashed #111;margin:2px 0}
.ticket-format-preview b{display:block;border:var(--ticket-preview-frame) solid #111;padding:5px 2px;font-size:calc(var(--ticket-preview-font) + 1px)}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:20px;font-size:.72rem;font-weight:600}
.badge-success{background:#dcfce7;color:#166534}
.badge-warning{background:#fef9c3;color:#854d0e}
.badge-danger{background:#fee2e2;color:#991b1b}
.badge-info{background:#dbeafe;color:#1e40af}
.badge-gray{background:var(--gray-200);color:var(--gray-600)}

/* ALERTS */
.alert{padding:.8rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;gap:.6rem;font-size:.85rem;animation:fadeIn .3s}
.alert-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.alert-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.alert-warning{background:#fef9c3;color:#854d0e;border:1px solid #fde68a}
.alert-info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;align-items:center;justify-content:center}
.modal-overlay.active{display:flex}
.modal{background:#fff;border-radius:var(--radius);width:95%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--gray-200)}
.modal-header h3{font-size:1rem;font-weight:600}
.modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--gray-400)}
.modal-body{padding:1.5rem}
.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:.5rem}
.cash-opening-modal{max-width:500px}
.cash-opening-state{display:grid;grid-template-columns:48px minmax(0,1fr);gap:.85rem;align-items:center}
.cash-opening-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#fff7ed;color:#d97706;font-size:1.2rem}
.cash-opening-state strong{display:block;font-size:.95rem;margin-bottom:.15rem}
.cash-opening-state p{color:var(--gray-600);font-size:.82rem}
.cash-opening-amount{margin:1rem 0 0}

/* TIMER CARDS */
.panel-refresh-status{display:flex;align-items:center;justify-content:center;gap:.65rem;color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;padding:.8rem 1rem;margin:0 auto 1.2rem;font-size:1.15rem;font-weight:600;max-width:560px;text-align:center}
.panel-refresh-status strong{font-family:'Courier New',monospace;font-size:1.45rem;color:#166534}
.timer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
.single-access-wrap{min-width:0}
.timer-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:1rem;border-left:4px solid var(--success);transition:all .3s}
.timer-card.warning{border-left-color:var(--warning)}
.timer-card.danger{border-left-color:var(--danger)}
.timer-card .child-name{font-weight:600;font-size:1rem}
.timer-card .child-meta{font-size:.78rem;color:var(--gray-500);margin:.3rem 0}
.timer-card .timer-display{font-size:1.8rem;font-weight:700;font-family:'Courier New',monospace;text-align:center;padding:.5rem;margin:.5rem 0;background:var(--gray-50);border-radius:8px}
.timer-card.warning .timer-display{color:var(--warning);background:#fef9c3}
.timer-card.danger .timer-display{color:var(--danger);background:#fee2e2}
.timer-card .charge-preview{font-weight:700;text-align:center;font-size:.9rem;margin:.25rem 0 .5rem}
.timer-status-row{text-align:center;margin-top:.45rem}
.timer-label{text-align:center;color:var(--gray-500);font-size:.8rem;font-weight:600;margin-top:-.3rem;margin-bottom:.35rem}
.panel-card-actions{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:.5rem;margin-top:.6rem}
.panel-card-actions>.btn-success{grid-column:1}
.panel-card-actions .exit-form{grid-column:1;display:grid;gap:.45rem}
.panel-card-actions .panel-phone{grid-column:2;grid-row:1/3;display:flex;align-items:center;justify-content:center;min-width:48px}
.exit-fields{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:.4rem}
.exit-fields .form-control{min-width:0}

/* GROUP CARDS */
.group-card{padding:1rem 0;border-top:2px solid var(--info);border-bottom:1px solid var(--gray-300);grid-column:1/-1}
.group-card .group-header{padding-bottom:.5rem}
.group-card .group-children{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.8rem;padding:.8rem 0}
.group-card .group-exit{padding-top:.25rem}
.group-exit-form{display:grid;grid-template-columns:minmax(200px,1fr) 150px auto;gap:.5rem;align-items:center}
.group-card .individual-exit{margin-top:.4rem}
.group-card .individual-exit summary{cursor:pointer;list-style:none;width:100%}
.group-card .individual-exit summary::-webkit-details-marker{display:none}
.package-deliveries{background:#eff6ff;border:1px solid #bfdbfe;border-left:4px solid var(--info);padding:.75rem;margin-bottom:.75rem;border-radius:8px}
.package-deliveries-title{font-weight:700;color:#1e40af;margin-bottom:.45rem}
.package-delivery-list{display:grid;gap:.4rem}
.package-delivery-item{display:grid;grid-template-columns:1fr;gap:.55rem;background:#fff;border:1px solid #dbeafe;padding:.65rem;border-radius:6px}
.package-delivery-item span{display:flex;flex-direction:column;min-width:0}
.package-delivery-item small{color:var(--gray-500)}
.package-delivery-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}
.package-delivery-controls .form-control{min-width:0}
.package-items-section{border-top:1px solid var(--gray-200);padding-top:1rem}
.package-product-row{display:grid;gap:.65rem;padding:.75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;margin-bottom:.65rem}
.package-item-config{display:grid;grid-template-columns:minmax(180px,1fr) 90px minmax(170px,auto) 42px;gap:.6rem;align-items:end}
.package-item-config .form-group{margin:0}
.package-stock-check{display:flex;align-items:center;gap:.4rem;min-height:38px}
.package-options-title{font-size:.75rem;font-weight:700;color:var(--gray-600)}
.package-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;max-height:190px;overflow-y:auto;padding-right:.25rem}
.package-option-choice{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:.45rem .55rem;cursor:pointer;min-width:0}
.package-option-choice:has(input:checked){border-color:var(--primary);background:#eef2ff}
.package-option-choice span{display:flex;flex-direction:column;min-width:0}
.package-option-choice strong{font-size:.78rem;overflow-wrap:anywhere}
.package-option-choice small{font-size:.68rem;color:var(--gray-500)}
.package-recharge-options{font-size:.68rem;color:var(--gray-500);line-height:1.35;margin-top:-.15rem}
.exit-preview-modal{display:flex;flex-direction:column;max-width:700px;overflow:hidden}.exit-preview-modal .modal-header,.exit-preview-modal .modal-footer{flex:0 0 auto}.exit-preview-modal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}
.exit-preview-child{padding:.8rem 0;border-bottom:1px solid var(--gray-200)}
.exit-preview-child>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.55rem}
.exit-preview-child>div:first-child span{font-size:.78rem;font-weight:700;text-align:right}
.preview-ok{color:#15803d}.preview-warning{color:#b45309}.preview-danger{color:var(--danger)}
.exit-preview-child dl{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:0}
.exit-preview-child dl div{display:flex;flex-direction:column;background:var(--gray-50);padding:.45rem .55rem}
.exit-preview-child dt{font-size:.7rem;color:var(--gray-500)}
.exit-preview-child dd{font-weight:700;margin:0}
.exit-preview-child small{display:block;color:var(--gray-500);margin-top:.45rem}
.exit-preview-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;padding:1rem 0}
.exit-preview-balance div{display:flex;flex-direction:column;text-align:center}
.exit-preview-balance span{font-size:.72rem;color:var(--gray-500)}
.exit-preview-balance strong{font-size:1rem}
.exit-preview-total{display:flex;align-items:center;justify-content:space-between;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:.85rem 1rem;font-weight:700}
.exit-preview-total strong{font-size:1.35rem}
.exit-preview-cash{margin-top:.75rem}

/* POS */
.pos-layout{display:grid;grid-template-columns:1fr 400px;gap:1.2rem;min-height:calc(100vh - 120px)}
.pos-products{overflow-y:auto;padding-right:.5rem}
.pos-search{margin-bottom:1rem}
.pos-search input{width:100%;padding:.6rem 1rem;border:1px solid var(--gray-300);border-radius:8px;font-size:.85rem;margin-bottom:.6rem}
.pos-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.1)}
.pos-categories{display:flex;flex-wrap:wrap;gap:.4rem}
.cat-btn{padding:.35rem .8rem;border:1px solid var(--gray-300);background:#fff;border-radius:20px;font-size:.78rem;cursor:pointer;transition:all .15s;font-family:inherit}
.cat-btn:hover{border-color:var(--primary);color:var(--primary)}
.cat-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pos-cart{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100vh - 120px)}
.cart-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid var(--gray-200)}
.cart-header h2{font-size:1rem;font-weight:600;margin:0}
.cart-items{flex:1;overflow-y:auto;padding:.8rem}
.cart-items .empty-cart{text-align:center;color:var(--gray-400);padding:2rem 0;font-size:.9rem}
.cart-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--gray-100)}
.cart-item-info{display:flex;flex-direction:column;flex:1;min-width:0}
.cart-item-name{font-weight:500;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-item-price{font-size:.72rem;color:var(--gray-500)}
.cart-item-controls{display:flex;align-items:center;gap:.4rem}
.qty-btn{width:26px;height:26px;border:1px solid var(--gray-300);background:#fff;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:600;transition:all .15s}
.qty-btn:hover{background:var(--gray-100);border-color:var(--gray-400)}
.qty-btn.remove{color:var(--danger);border-color:var(--danger)}
.qty-btn.remove:hover{background:#fee2e2}
.qty-display{min-width:20px;text-align:center;font-weight:600;font-size:.9rem}
.cart-item-total{font-weight:600;min-width:65px;text-align:right;font-size:.85rem}
.cart-summary{padding:.8rem 1.2rem;border-top:2px solid var(--gray-200);background:var(--gray-50)}
.cart-line{display:flex;justify-content:space-between;font-size:.85rem;padding:.2rem 0}
.cart-total{font-size:1.15rem;font-weight:700;color:var(--primary);border-top:1px solid var(--gray-300);padding-top:.5rem;margin-top:.4rem}
.cart-discount{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.82rem}
.cart-discount select{padding:.3rem .5rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.78rem;background:#fff}
.cart-discount input{padding:.3rem .5rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.78rem}
.cart-payment{padding:1rem 1.2rem;border-top:1px solid var(--gray-200)}
.payment-methods{display:flex;gap:.4rem;margin-bottom:.8rem}
.pay-method{display:flex;align-items:center;gap:.3rem;padding:.45rem .7rem;border:1px solid var(--gray-300);border-radius:8px;cursor:pointer;font-size:.78rem;transition:all .15s;flex:1;justify-content:center}
.pay-method:hover{border-color:var(--primary)}
.pay-method.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pay-method input{display:none}
.cash-section{margin-bottom:.8rem}
.cash-section input{margin-bottom:.4rem}
.change-display{font-size:.85rem;color:var(--gray-600)}
.change-display strong{color:var(--success);font-size:1rem}
.product-card.out-of-stock{opacity:.4;pointer-events:none}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.product-card{background:#fff;border-radius:8px;box-shadow:var(--shadow);padding:.8rem;cursor:pointer;transition:all .15s;text-align:center;border:2px solid transparent}
.product-card:hover{border-color:var(--primary);transform:translateY(-2px)}
.product-card .product-name{font-weight:600;font-size:.82rem;margin-bottom:.3rem}
.product-card .product-price{color:var(--primary);font-weight:700;font-size:1rem}
.product-card .product-stock{font-size:.7rem;color:var(--gray-500)}
.package-recharge-card{display:flex;flex-direction:column;gap:.55rem;cursor:default}
.package-recharge-card:hover{transform:none}
.package-recharge-card .btn{margin-top:auto}
.package-roulette-benefit{color:#9a3412!important;font-weight:700}
.card[data-tour="recharge-packages"] .product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.recharge-payment-method{min-height:38px}
.recharge-cash-box{display:grid;gap:.4rem;padding:.65rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;text-align:left}
.recharge-cash-box[hidden]{display:none}
.recharge-cash-box label{font-size:.75rem;font-weight:600;color:var(--gray-700)}
.recharge-cash-box small{min-height:2.1em;font-size:.68rem;line-height:1.35;color:var(--gray-500)}
.recharge-change-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.78rem;color:var(--gray-600)}
.recharge-change-row strong{font-size:1rem;color:var(--gray-700)}
.recharge-cash-box.is-ready{border-color:#86efac;background:#f0fdf4}
.recharge-cash-box.is-ready .recharge-change-row strong,.recharge-cash-box.is-ready small{color:#15803d}
.recharge-cash-box.is-short{border-color:#fca5a5;background:#fef2f2}
.recharge-cash-box.is-short .recharge-change-row strong,.recharge-cash-box.is-short small{color:#b91c1c}
.package-recharge-card .btn:disabled,.recharge-manual-form .btn:disabled{opacity:.5;cursor:not-allowed}
.recharge-manual-form{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(120px,.8fr) minmax(160px,1fr) minmax(210px,1.4fr) minmax(130px,.8fr);gap:.8rem;align-items:end}
.recharge-manual-form .form-group{margin-bottom:0}
.recharge-manual-form .recharge-cash-box{align-self:stretch}
.recharge-manual-action{align-self:end}

/* ENTRADA RAPIDA */
.quick-entry-modal{max-width:820px}.quick-confirm-modal{max-width:660px}
.quick-entry-modal,.quick-confirm-modal{display:flex;flex-direction:column;overflow:hidden}.quick-entry-modal>form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.quick-entry-modal .modal-body,.quick-confirm-modal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto}.quick-entry-modal .modal-header,.quick-entry-modal .modal-footer,.quick-confirm-modal .modal-header,.quick-confirm-modal .modal-footer{flex:0 0 auto}
.quick-entry-note{display:flex;align-items:center;gap:.6rem;background:#ecfeff;border:1px solid #a5f3fc;border-left:4px solid #0891b2;color:#155e75;padding:.7rem .85rem;margin-bottom:1rem;border-radius:8px;font-size:.82rem}
.quick-entry-note i{font-size:1.05rem}
.quick-cash-alert{flex-wrap:wrap}.quick-cash-alert>span{flex:1 1 260px}.quick-cash-alert>.btn{margin-left:auto}
.quick-children-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:.25rem 0 .65rem}.quick-children-header>div{display:grid;gap:.1rem}.quick-children-header small{color:var(--gray-500);font-size:.75rem}
.quick-children-list{display:grid;gap:.65rem}.quick-child-row{border:1px solid var(--gray-200);border-left:4px solid #0891b2;border-radius:8px;padding:.7rem .8rem;background:#fff}
.quick-child-row-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}.quick-child-number{font-size:.84rem;color:#155e75}.quick-child-remove{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #fecaca;border-radius:6px;background:#fff;color:#dc2626;cursor:pointer}.quick-child-remove:hover:not(:disabled){background:#fef2f2}.quick-child-remove:disabled{opacity:.35;cursor:not-allowed}
.quick-child-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:.65rem}.quick-child-fields .form-group{margin-bottom:.35rem}
.quick-child-package-detail{min-height:1.1rem;color:var(--gray-500);font-size:.72rem;line-height:1.4}
.quick-payment-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.65fr);gap:.75rem;align-items:stretch;margin-top:.9rem}.quick-payment-grid .form-group{margin:0}.quick-payment-current{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--gray-200);background:var(--gray-50);padding:.65rem .8rem;border-radius:6px}.quick-payment-current span{font-size:.78rem;color:var(--gray-600)}.quick-payment-current strong{font-size:1.15rem;color:#166534;white-space:nowrap}.quick-entry-cash-box{margin-top:.65rem}.quick-confirm-change strong{color:#15803d}
.quick-expiry-warning,.quick-expiry-note{display:flex;align-items:flex-start;gap:.5rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.6rem .7rem;font-size:.76rem;line-height:1.4}
.quick-expiry-warning{margin:.7rem 0}.quick-expiry-note{margin:.55rem 0 0}
.quick-package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.quick-package-option{display:grid;gap:.3rem;padding:.75rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;min-width:0}
.quick-package-option:hover{border-color:#f59e0b;background:#fffbeb}.quick-package-option.is-selected{border-color:#d97706;background:#fff7ed;box-shadow:0 0 0 2px #fed7aa}
.quick-package-option>input{position:absolute;opacity:0;pointer-events:none}
.quick-package-main{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.quick-package-main strong{font-size:.88rem;overflow-wrap:anywhere}.quick-package-main b{color:#9a3412;white-space:nowrap}
.quick-package-time{font-size:.8rem;font-weight:600;color:#166534}.quick-package-option small{display:block;color:var(--gray-500);font-size:.72rem;line-height:1.35}
.quick-confirm-summary{display:grid;gap:.1rem;border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);padding:.5rem 0}
.quick-confirm-summary>div{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:.7rem;padding:.45rem .25rem}.quick-confirm-summary span{color:var(--gray-500);font-size:.78rem}.quick-confirm-summary strong{text-align:right;font-size:.82rem;overflow-wrap:anywhere}
.quick-confirm-child{border-bottom:1px dotted var(--gray-200)}.quick-confirm-child strong{display:grid;gap:.15rem}.quick-confirm-child small{font-weight:500;color:var(--gray-500);line-height:1.35}
.quick-confirm-total{display:flex;align-items:center;justify-content:space-between;background:#f0fdf4;border:1px solid #86efac;padding:.8rem 1rem;margin-top:1rem;border-radius:8px;color:#166534}.quick-confirm-total span{font-weight:600}.quick-confirm-total strong{font-size:1.35rem}
.quick-confirm-note{display:flex;align-items:flex-start;gap:.55rem;color:var(--gray-500);font-size:.78rem;margin-top:.75rem}

/* RULETA Y PREMIOS */
.roulette-pending{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid #f59e0b;padding:.75rem;margin-bottom:.75rem;border-radius:8px}
.roulette-pending-title{font-weight:700;color:#9a3412;margin-bottom:.5rem}
.roulette-pending-list{display:flex;gap:.5rem;flex-wrap:wrap}
.roulette-open{display:flex;align-items:center;gap:.55rem;background:#f59e0b;color:#fff;border-color:#d97706;text-align:left;min-height:52px}
.roulette-open:hover{background:#d97706}.roulette-open>i{font-size:1.25rem}.roulette-open span{display:grid;gap:.1rem}.roulette-open small{font-size:.7rem;font-weight:500}
.roulette-modal{max-width:680px}.roulette-source{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.1rem .65rem;background:#fff7ed;border-left:4px solid #f59e0b;padding:.7rem .85rem;margin-bottom:1rem}
.roulette-source span{grid-row:1/3;color:#9a3412;font-size:.72rem;text-transform:uppercase;font-weight:700}.roulette-source strong{font-size:.95rem}.roulette-source small{color:var(--gray-500)}
.roulette-prize-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}
.roulette-prize-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:76px;padding:.55rem;border:2px solid var(--gray-200);border-radius:8px;background:#fff;color:var(--gray-700);cursor:pointer;font:inherit;font-size:.78rem;font-weight:600}
.roulette-prize-option i{font-size:1.15rem;color:#d97706}.roulette-prize-option:hover{border-color:#f59e0b;background:#fffbeb}.roulette-prize-option.is-selected{border-color:#d97706;background:#fff7ed;color:#9a3412;box-shadow:0 0 0 2px #fed7aa}
.roulette-preview{display:flex;gap:.6rem;align-items:flex-start;background:var(--gray-50);border:1px solid var(--gray-200);padding:.75rem;border-radius:8px;color:var(--gray-600);font-size:.82rem}
.roulette-preview.is-ready{background:#f0fdf4;border-color:#86efac;color:#166534}.roulette-preview i{margin-top:.1rem}
.roulette-branch-form{display:flex;align-items:center;gap:.5rem}.roulette-branch-form label{font-size:.78rem;font-weight:600}.roulette-branch-form select{min-width:220px}
.roulette-admin-grid{display:grid;gap:.75rem}.roulette-admin-prize{border:1px solid var(--gray-200);border-left:4px solid #f59e0b;border-radius:8px;padding:.8rem;background:#fff}.roulette-admin-prize.is-disabled{opacity:.6;border-left-color:var(--gray-300)}
.roulette-prize-toggle{display:flex;align-items:center;gap:.65rem;cursor:pointer}.roulette-prize-toggle>input{width:18px;height:18px;accent-color:#d97706}.roulette-prize-toggle>span:last-child{display:grid;gap:.1rem}.roulette-prize-toggle small{color:var(--gray-500);font-size:.72rem}.roulette-prize-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#fff7ed;color:#d97706}
.roulette-product-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.75rem 0 0 2.4rem;padding-top:.65rem;border-top:1px solid var(--gray-200)}

/* GUIA Y TUTORIAL */
.guide-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 0 1.4rem;border-bottom:1px solid var(--gray-300);margin-bottom:1rem}
.guide-header h1{font-size:1.45rem;margin:.45rem 0 .2rem}.guide-header p{color:var(--gray-600);max-width:720px}
.guide-header-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.guide-role-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:1.25rem}
.guide-role-option{min-height:58px;padding:.65rem .8rem;border:1px solid var(--gray-300);border-radius:8px;background:#fff;color:var(--gray-700);display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:.55rem;text-align:left;font:inherit;cursor:pointer}
.guide-role-option i{font-size:1rem;color:var(--gray-500);text-align:center}.guide-role-option span{font-weight:700}.guide-role-option small{font-size:.68rem;color:var(--gray-500)}
.guide-role-option:hover{border-color:var(--primary-light)}.guide-role-option.active{border-color:var(--primary);background:#eef2ff;color:#3730a3}.guide-role-option.active i{color:var(--primary)}
.guide-role-cycle{padding:1rem 0 1.35rem;border-bottom:1px solid var(--gray-300);margin-bottom:1.25rem}
.guide-section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:.75rem}.guide-section-heading span{font-size:.68rem;text-transform:uppercase;color:var(--gray-500);font-weight:700}.guide-section-heading h2{font-size:1.15rem}.guide-section-heading>strong{font-size:.75rem;color:var(--gray-500)}
.guide-cycle-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;list-style:none}
.guide-cycle-list li{position:relative;display:grid;grid-template-columns:28px 34px minmax(0,1fr) 32px;align-items:start;gap:.55rem;padding:.8rem;border:1px solid var(--gray-200);border-radius:8px;background:#fff;min-width:0}
.guide-cycle-number{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gray-900);color:#fff;font-size:.72rem;font-weight:800}
.guide-cycle-list li>i{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;background:#ecfeff;color:#0e7490}.guide-cycle-list strong{display:block;font-size:.82rem}.guide-cycle-list p{font-size:.72rem;color:var(--gray-500);margin-top:.15rem;line-height:1.4}
.guide-cycle-list li>a{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--gray-200);border-radius:6px;color:var(--primary)}.guide-cycle-list li>a:hover{background:#eef2ff}
.guide-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1rem;align-items:start}
.guide-index{position:sticky;top:70px;background:#fff;border:1px solid var(--gray-200);border-radius:8px;padding:1rem;max-height:calc(100vh - 90px);overflow-y:auto}
.guide-search>span{display:block;font-size:.75rem;font-weight:700;margin-bottom:.35rem}.guide-search>div{position:relative}.guide-search i{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}.guide-search input{width:100%;height:38px;padding:0 .7rem 0 2rem;border:1px solid var(--gray-300);border-radius:6px;font:inherit;font-size:.78rem}
.guide-progress{margin:.9rem 0}.guide-progress strong{font-size:.75rem}.guide-progress-track{height:7px;margin-top:.4rem;border-radius:99px;background:var(--gray-200);overflow:hidden}.guide-progress-track span{display:block;width:0;height:100%;background:var(--success);transition:width .2s}
.guide-index nav{display:grid;gap:.2rem}.guide-index nav a{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:.45rem;padding:.45rem;border-radius:6px;color:var(--gray-600);font-size:.72rem}.guide-index nav a:hover{background:var(--gray-100);color:var(--primary)}.guide-index nav i{text-align:center}
.guide-topic-list{display:grid;gap:.65rem}.guide-topic{background:#fff;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden;scroll-margin-top:75px}.guide-topic[open]{border-color:var(--primary-light);box-shadow:var(--shadow)}
.guide-topic summary{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:.7rem;min-height:62px;padding:.75rem .9rem;cursor:pointer;list-style:none}.guide-topic summary::-webkit-details-marker{display:none}
.guide-topic-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:#eef2ff;color:var(--primary)}.guide-topic summary strong,.guide-topic summary small{display:block}.guide-topic summary strong{font-size:.85rem}.guide-topic summary small{font-size:.72rem;color:var(--gray-500);margin-top:.1rem}.guide-topic-chevron{font-size:.72rem;color:var(--gray-400);transition:transform .2s}.guide-topic[open] .guide-topic-chevron{transform:rotate(180deg)}
.guide-topic-body{padding:.9rem 1rem 1rem 3.95rem;border-top:1px solid var(--gray-200)}.guide-topic-body>ol{display:grid;gap:.6rem;list-style:none;counter-reset:guide-step}.guide-topic-body>ol li{position:relative;min-height:25px;padding-left:34px;font-size:.8rem;counter-increment:guide-step}.guide-topic-body>ol li::before{content:counter(guide-step);position:absolute;left:0;top:-2px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--gray-100);font-size:.7rem;font-weight:800}
.guide-note{display:flex;align-items:flex-start;gap:.5rem;margin:.8rem 0;padding:.65rem .7rem;border-left:3px solid #0891b2;background:#ecfeff;color:#155e75;font-size:.75rem}.guide-note i{margin-top:.15rem}
.guide-topic-body footer{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding-top:.75rem;border-top:1px solid var(--gray-200)}.guide-topic-body footer label{display:flex;align-items:center;gap:.45rem;font-size:.76rem;font-weight:600}.guide-topic-body footer input{width:18px;height:18px;accent-color:var(--success)}
.guide-empty{display:grid;place-items:center;gap:.35rem;padding:2.5rem;color:var(--gray-500);background:#fff;border:1px dashed var(--gray-300);border-radius:8px}.guide-empty i{font-size:1.4rem}

/* RECORRIDO CONTEXTUAL */
.screen-tutorial-layer{position:fixed;inset:0;z-index:350;pointer-events:none}.screen-tutorial-highlight{position:fixed;z-index:351;border:3px solid #67e8f9;border-radius:8px;box-shadow:0 0 0 9999px rgba(15,23,42,.72),0 0 0 5px rgba(103,232,249,.2);transition:left .18s,top .18s,width .18s,height .18s}
.screen-tutorial-card{position:fixed;z-index:352;width:min(390px,calc(100vw - 24px));padding:1rem;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:var(--gray-900);color:#fff;box-shadow:var(--shadow-lg);pointer-events:auto}
.screen-tutorial-head,.screen-tutorial-actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.screen-tutorial-counter{color:var(--gray-400);font-size:.7rem;font-weight:800;text-transform:uppercase}.screen-tutorial-close{min-height:34px;padding:.25rem .4rem;border:0;background:transparent;color:var(--gray-300);font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}
.screen-tutorial-card h2{font-size:1.05rem;color:#fff;margin:.55rem 0 .3rem}.screen-tutorial-card p{color:var(--gray-300);font-size:.82rem;line-height:1.5}.screen-tutorial-progress{display:flex;gap:.3rem;margin:.8rem 0}.screen-tutorial-progress span{width:18px;height:4px;border-radius:99px;background:var(--gray-600)}.screen-tutorial-progress span.active{background:#67e8f9}.screen-tutorial-actions{justify-content:flex-end}.screen-tutorial-actions .btn-outline{border-color:var(--gray-600);color:#fff}.screen-tutorial-actions .btn:disabled{opacity:.45;cursor:not-allowed}

/* SEARCH */
.search-box{position:relative;margin-bottom:1rem}
.search-box input{width:100%;padding:.6rem 1rem .6rem 2.5rem;border:1px solid var(--gray-300);border-radius:8px;font-size:.85rem}
.search-box input:focus{outline:none;border-color:var(--primary)}
.search-box i{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--gray-400)}

/* TABS */
.tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:1rem}
.tab{padding:.6rem 1.2rem;cursor:pointer;font-size:.85rem;font-weight:500;color:var(--gray-500);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;text-decoration:none}
.tab:hover{color:var(--primary)}
.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}

/* PAGE HEADER */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.5rem}
.page-header h1{font-size:1.1rem;font-weight:600}

/* PAGINATION */
.pagination{display:flex;gap:.3rem;justify-content:center;margin-top:1.5rem}
.pagination a{padding:.4rem .7rem;border:1px solid var(--gray-300);border-radius:6px;font-size:.8rem;color:var(--gray-600)}
.pagination a:hover{background:var(--gray-100)}
.pagination a.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* LOGIN */
.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}
.login-box{background:#fff;padding:2.5rem;border-radius:16px;box-shadow:var(--shadow-lg);width:95%;max-width:400px;text-align:center}
.login-box .logo{justify-content:center;font-size:1.5rem;margin-bottom:.5rem;color:var(--gray-800)}
.login-box .logo i{color:var(--primary);font-size:2rem}
.login-box h2{font-size:1.1rem;color:var(--gray-600);margin-bottom:1.5rem;font-weight:400}

/* STORE SELECT */
.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}
.store-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;text-align:center;cursor:pointer;transition:all .2s;border:2px solid transparent;text-decoration:none;color:var(--gray-800)}
.store-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.store-card i{font-size:2.5rem;color:var(--primary);margin-bottom:.8rem;display:block}
.store-card h3{font-size:1rem;font-weight:600;margin-bottom:.3rem}
.store-card p{font-size:.78rem;color:var(--gray-500)}

/* QR TICKET */
.ticket-page{background:#fff;max-width:400px;margin:0 auto;padding:1rem;font-family:'Courier New',monospace}
.ticket-page .ticket-header{text-align:center;border-bottom:1px dashed #000;padding-bottom:.8rem;margin-bottom:.8rem}
.ticket-page .ticket-qr{text-align:center;margin:1rem 0}
.ticket-page .ticket-info{font-size:.85rem;line-height:1.6}
.ticket-page .ticket-info .row{display:flex;justify-content:space-between}
.ticket-page .ticket-footer{text-align:center;border-top:1px dashed #000;padding-top:.8rem;margin-top:.8rem;font-size:.75rem}
@media print{body{margin:0;padding:0}.ticket-page{max-width:none;box-shadow:none}@page{margin:0;size:80mm auto}}

/* ANIMATIONS */
@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}

/* ANALYTICS */
.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
.analytics-card{text-align:center;padding:1.2rem}
.analytics-card-header{font-size:.82rem;font-weight:600;color:var(--gray-500);margin-bottom:.6rem;display:flex;align-items:center;justify-content:center;gap:.4rem}
.analytics-highlight{font-size:1.4rem;font-weight:700;color:var(--gray-800);line-height:1.2;margin-bottom:.4rem}
.analytics-detail{display:flex;align-items:center;justify-content:center;gap:.8rem;font-size:.78rem;color:var(--gray-500);flex-wrap:wrap}
.analytics-panels{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}
.bar-chart{padding:.5rem 1rem 1rem}
.bar-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
.bar-label{font-size:.75rem;color:var(--gray-500);min-width:55px;text-align:right}
.bar-track{flex:1;height:22px;background:var(--gray-100);border-radius:4px;overflow:hidden}
.bar-fill{height:100%;background:var(--primary);border-radius:4px;min-width:2px;transition:width .3s}
.bar-fill-peak{background:var(--danger)}
.bar-fill-success{background:var(--success)}
.bar-value{font-size:.75rem;font-weight:600;color:var(--gray-700);min-width:35px}

/* ACTIVIDAD COMPLETA DEL TURNO */
.shift-activity{padding:0;overflow:hidden}.shift-activity .card-header{padding:1.15rem 1.25rem;margin:0;border-bottom:1px solid var(--gray-200)}
.shift-activity-header{gap:1rem;align-items:flex-start}.shift-activity-header h2{display:flex;align-items:center;gap:.5rem}.shift-activity-header h2 i{color:var(--primary)}.shift-activity-header p{margin-top:.2rem;color:var(--gray-500);font-size:.78rem}
.shift-activity-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}.shift-activity-actions .badge{gap:.35rem;min-height:28px}
.shift-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.shift-overview>div{min-width:0;padding:.75rem 1rem;border-right:1px solid var(--gray-200)}.shift-overview>div:last-child{border-right:0}.shift-overview span,.shift-overview strong{display:block}.shift-overview span{font-size:.67rem;font-weight:700;text-transform:uppercase;color:var(--gray-500)}.shift-overview strong{margin-top:.18rem;font-size:.8rem;overflow-wrap:anywhere}
.shift-log{--shift-line:var(--gray-200);position:relative}.shift-log-row{display:grid;grid-template-columns:38px 76px minmax(240px,1fr) minmax(105px,150px) 105px;align-items:center;column-gap:.7rem;min-height:82px;padding:.65rem 1.25rem .65rem .85rem;border-bottom:1px solid var(--gray-100);position:relative}.shift-log-row:last-child{border-bottom:0}.shift-log-row:hover{background:var(--gray-50)}
.shift-log-marker{align-self:stretch;display:flex;align-items:center;justify-content:center;position:relative}.shift-log-marker::before,.shift-log-marker::after{content:"";position:absolute;left:50%;width:2px;background:var(--shift-line);transform:translateX(-50%)}.shift-log-marker::before{top:-.65rem;height:calc(50% - 14px)}.shift-log-marker::after{bottom:-.65rem;height:calc(50% - 14px)}.shift-log-row:first-child .shift-log-marker::before,.shift-log-row:last-child .shift-log-marker::after{display:none}.shift-log-marker i{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--gray-200);color:var(--gray-600);font-size:.72rem;position:relative;z-index:1}
.shift-log-row.tone-success .shift-log-marker i{background:#dcfce7;color:#15803d}.shift-log-row.tone-info .shift-log-marker i{background:#dbeafe;color:#1d4ed8}.shift-log-row.tone-warning .shift-log-marker i{background:#fef3c7;color:#b45309}.shift-log-row.tone-danger .shift-log-marker i{background:#fee2e2;color:#dc2626}.shift-log-row.tone-cyan .shift-log-marker i{background:#cffafe;color:#0e7490}
.shift-log-row time{display:flex;flex-direction:column;line-height:1.25}.shift-log-row time strong{font-size:.88rem;color:var(--gray-800)}.shift-log-row time span{font-size:.67rem;color:var(--gray-500)}
.shift-log-main{min-width:0}.shift-log-title{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.shift-log-title>strong{font-size:.84rem}.shift-log-person{margin-top:.1rem;font-size:.78rem;font-weight:600;color:var(--gray-700);overflow-wrap:anywhere}.shift-log-main p{margin-top:.12rem;color:var(--gray-500);font-size:.73rem;line-height:1.35;overflow-wrap:anywhere}
.shift-log-user{display:flex;align-items:center;gap:.35rem;min-width:0;color:var(--gray-500);font-size:.72rem}.shift-log-user i{flex:0 0 auto;font-size:.68rem}.shift-log-user span{overflow-wrap:anywhere}
.shift-log-amount{text-align:right;min-width:0}.shift-log-amount strong,.shift-log-amount span{display:block}.shift-log-amount strong{font-size:.84rem}.shift-log-amount span{font-size:.67rem;color:var(--gray-500)}.shift-log-amount.amount-entrada strong{color:#15803d}.shift-log-amount.amount-salida strong{color:#dc2626}.shift-log-amount.amount-cancelado strong{text-decoration:line-through;color:var(--gray-400)}.shift-log-amount .amount-empty{font-size:.7rem;font-weight:600;color:var(--gray-400)}
.shift-empty{display:grid;place-items:center;text-align:center;gap:.35rem;padding:2.5rem 1rem;color:var(--gray-500)}.shift-empty>i{font-size:1.6rem;color:var(--gray-400)}.shift-empty strong{color:var(--gray-700)}.shift-empty span{font-size:.78rem}.shift-empty .btn{margin-top:.6rem}

/* RESPONSIVE */
@media(max-width:1024px){
.pos-layout{grid-template-columns:1fr}
.pos-cart{max-height:50vh}
.stats-grid{grid-template-columns:repeat(2,1fr)}
.analytics-grid{grid-template-columns:repeat(2,1fr)}
.analytics-panels{grid-template-columns:1fr}
.shift-overview{grid-template-columns:repeat(3,1fr)}.shift-overview>div:nth-child(3){border-right:0}.shift-overview>div:nth-child(-n+3){border-bottom:1px solid var(--gray-200)}
.shift-log-row{grid-template-columns:36px 70px minmax(220px,1fr) 100px}.shift-log-user{grid-column:3;margin-top:.3rem}.shift-log-amount{grid-column:4;grid-row:1/3}
}
@media(max-width:768px){
.sidebar{transform:translateX(-100%);z-index:200}
.sidebar.open{transform:translateX(0)}
.main-content{margin-left:0}
.mobile-toggle{display:block}
.sidebar-toggle{display:block}
.stats-grid{grid-template-columns:1fr 1fr}
.analytics-grid{grid-template-columns:1fr 1fr}
.form-row{grid-template-columns:1fr}
.ticket-format-layout{grid-template-columns:1fr}.ticket-format-controls{grid-template-columns:1fr 1fr}
.timer-grid{grid-template-columns:1fr}
.group-card .group-children{grid-template-columns:1fr}
.group-exit-form{grid-template-columns:1fr}
.package-item-config,.minute-rate-row{grid-template-columns:1fr!important}
.package-option-grid{grid-template-columns:1fr}
.recharge-manual-form{grid-template-columns:1fr 1fr}
.recharge-manual-form .recharge-cash-box,.recharge-manual-action{grid-column:1/-1}
.quick-package-grid{grid-template-columns:1fr}
.quick-child-fields{grid-template-columns:1fr}
.roulette-prize-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roulette-product-options{grid-template-columns:1fr;margin-left:0}.roulette-branch-form{width:100%}.roulette-branch-form select{min-width:0;flex:1}
.guide-header{align-items:flex-start;flex-direction:column}.guide-header-actions{justify-content:flex-start;width:100%}.guide-role-switch{grid-template-columns:1fr}.guide-cycle-list{grid-template-columns:1fr 1fr}.guide-layout{grid-template-columns:1fr}.guide-index{position:static;max-height:none}.guide-index nav{grid-template-columns:1fr 1fr}
.exit-preview-child dl{grid-template-columns:1fr 1fr}
.product-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.card .table-responsive{margin:.2rem -1rem 0;padding:0 1rem .2rem}
.shift-activity-header{flex-direction:column}.shift-activity-actions{width:100%;justify-content:space-between}.shift-log-row{grid-template-columns:34px 62px minmax(0,1fr);align-items:start;column-gap:.55rem;padding:.75rem 1rem .75rem .6rem}.shift-log-marker{grid-row:1/4}.shift-log-row time{padding-top:.1rem}.shift-log-main{grid-column:3}.shift-log-user{grid-column:3;margin-top:.4rem}.shift-log-amount{grid-column:3;grid-row:auto;text-align:left;margin-top:.35rem}.shift-log-amount strong,.shift-log-amount span{display:inline}.shift-log-amount span{margin-left:.35rem}
}
@media(max-width:480px){
.pwa-update-notice{left:.75rem;right:.75rem;bottom:.75rem;max-width:none;justify-content:space-between;gap:.6rem}.pwa-update-notice .btn{padding:.6rem .75rem;font-size:.75rem}
.stats-grid{grid-template-columns:1fr}
.ticket-format-controls{grid-template-columns:1fr}
.analytics-grid{grid-template-columns:1fr}
.content-area{padding:1rem}
.panel-refresh-status{font-size:.95rem}.panel-refresh-status strong{font-size:1.15rem}
.exit-fields{grid-template-columns:1fr}
.exit-preview-balance{grid-template-columns:1fr}
.exit-preview-child>div:first-child{align-items:flex-start;flex-direction:column;gap:.25rem}
.exit-preview-modal{width:calc(100% - 1rem);max-height:calc(100vh - 1rem)}.exit-preview-modal .modal-body{padding:1rem}.exit-preview-modal .modal-footer{padding:.75rem 1rem;flex-wrap:wrap}.exit-preview-modal .modal-footer .btn{flex:1}
.package-delivery-controls{grid-template-columns:1fr}
.quick-entry-modal,.quick-confirm-modal{width:calc(100% - 1rem);max-height:calc(100vh - 1rem)}.quick-confirm-modal .modal-body{padding:1rem}.quick-confirm-modal .modal-footer{padding:.75rem 1rem}.quick-entry-modal .modal-footer,.quick-confirm-modal .modal-footer{flex-wrap:wrap}.quick-entry-modal .modal-footer .btn,.quick-confirm-modal .modal-footer .btn{flex:1}.quick-confirm-summary>div{grid-template-columns:1fr;gap:.2rem}.quick-confirm-summary strong{text-align:left}.quick-cash-alert>.btn{width:100%;justify-content:center}
.guide-header-actions .btn{width:100%;justify-content:center}.guide-cycle-list{grid-template-columns:1fr}.guide-index nav{grid-template-columns:1fr}.guide-topic-body{padding:.8rem}.guide-topic-body footer{align-items:stretch;flex-direction:column}.guide-topic-body footer .btn{justify-content:center}.screen-tutorial-actions .btn{flex:1}
.quick-children-header{align-items:flex-start}.quick-children-header .btn{flex:0 0 auto}
.roulette-pending-list,.roulette-open{width:100%}.roulette-modal .modal-footer{flex-wrap:wrap}.roulette-modal .modal-footer .btn{flex:1}
.payment-methods{flex-direction:column}
.card[data-tour="recharge-packages"] .product-grid{grid-template-columns:1fr}
.recharge-manual-form{grid-template-columns:1fr}
.recharge-manual-form .recharge-cash-box,.recharge-manual-action{grid-column:auto}
.shift-overview{grid-template-columns:1fr 1fr}.shift-overview>div{border-bottom:1px solid var(--gray-200)}.shift-overview>div:nth-child(2n){border-right:0}.shift-overview>div:nth-last-child(-n+2){border-bottom:0}.shift-log-row{grid-template-columns:30px 50px minmax(0,1fr);padding-left:.45rem;padding-right:.7rem}.shift-log-title{align-items:flex-start;flex-direction:column;gap:.2rem}.shift-log-row time strong{font-size:.8rem}.shift-log-row time span{font-size:.6rem}
}

/* MISC */
.text-center{text-align:center}
.text-muted{color:var(--gray-500)}
.text-success{color:var(--success)}
.text-danger{color:var(--danger)}
.text-warning{color:var(--warning)}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}
.d-flex{display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}
.justify-between{justify-content:space-between}.items-center{align-items:center}
.w-100{width:100%}
.hidden{display:none!important}

/* FLEX UTILITIES */
.flex-wrap{flex-wrap:wrap}

/* BADGE COLORS */
.badge-error{background:#fee2e2;color:#991b1b}

/* STAT VALUE */
.stat-value{font-size:1.4rem;font-weight:700;line-height:1}
.stat-label{font-size:.75rem;color:var(--gray-500);margin-top:.2rem}

/* BETTER CARDS */
.card .table-responsive{margin:.2rem -.75rem 0;padding:0 .75rem .2rem}
.card .table-responsive table{margin:0;width:100%}
.card>table{margin-top:.2rem}

/* FORM INLINE */
.form-inline{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap}
.form-inline .form-group{margin-bottom:0}

/* TABLE BADGES */
td .badge{white-space:nowrap}

/* BETTER SELECT IN MODALS */
.modal select.form-control{min-height:38px}

/* PRODUCT GRID IN RECARGAS */
.product-grid .product-card{transition:all .2s;border:2px solid var(--gray-200)}
.product-grid .product-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg)}

/* BETTER TIMER DISPLAY NEGATIVE */
.timer-card.danger .timer-display{font-weight:800;animation:pulse 1s infinite}

/* BUTTON GROUP */
.btn-group{display:flex;gap:.3rem}

/* TEXT ELLIPSIS */
.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Guarderia por estancia */
.branch-daycare-config{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:1rem;align-items:center;border:1px solid var(--gray-200);background:var(--gray-50);padding:1rem;margin-bottom:1rem;border-radius:8px}.branch-daycare-toggle{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.branch-daycare-toggle input{margin-top:.35rem;width:18px;height:18px}.branch-daycare-toggle span{display:grid;grid-template-columns:auto 1fr;column-gap:.45rem;align-items:center}.branch-daycare-toggle i{color:var(--info);grid-row:1/3}.branch-daycare-toggle small{grid-column:2;color:var(--gray-500);margin-top:.2rem}.branch-daycare-config .form-group{margin:0}.branch-daycare-config .form-group.is-disabled{opacity:.55}
.entry-child-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:.45rem;overflow:hidden;background:#fff}.entry-child-option.is-disabled{opacity:.55}.entry-child-main,.entry-daycare-option{display:flex;align-items:center;gap:.55rem;padding:.7rem;cursor:pointer}.entry-child-main>span{min-width:0}.entry-daycare-option{border-left:1px solid var(--gray-200);background:#f0f9ff;color:#075985;white-space:nowrap}.entry-daycare-option input{width:17px;height:17px}.entry-daycare-option i{margin-right:.25rem}.entry-daycare-option:has(input:checked){background:#dbeafe;color:#1d4ed8}.entry-daycare-option:has(input:disabled){cursor:not-allowed;opacity:.55}
.entry-daycare-payment{border:1px solid #bae6fd;border-left:4px solid #0284c7;background:#f0f9ff;padding:1rem;margin:1rem 0;border-radius:8px}.entry-daycare-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;color:#075985}.entry-daycare-heading span{font-weight:700}.entry-daycare-heading strong{font-size:1.2rem}.entry-daycare-payment>p{color:#475569;margin:.35rem 0 .85rem}.entry-daycare-payment .form-group{margin-bottom:0}.quick-daycare-note,.quick-child-daycare-option{display:flex;align-items:center;gap:.6rem;border:1px solid #bae6fd;background:#f0f9ff;color:#075985;border-radius:8px;padding:.7rem}.quick-daycare-note{margin:.8rem 0}.quick-child-daycare-option{margin-top:.65rem;cursor:pointer}.quick-child-daycare-option input{width:18px;height:18px}.quick-confirm-daycare{color:#0369a1;font-weight:700}
.daycare-summary{display:flex;flex-direction:column;gap:.2rem;background:#f0f9ff;border:1px solid #bae6fd;padding:.9rem;border-radius:8px}.daycare-summary span,.daycare-summary small{color:#64748b}.daycare-summary strong{font-size:1.05rem;color:#0c4a6e}.daycare-total{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;color:#334155}.daycare-total strong{font-size:1.45rem;color:#0369a1}

/* Forma de ingreso y paquetes extra de Entrada rapida */
.entry-mode-banner{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:.65rem;border:2px solid;padding:.7rem .8rem;margin:.65rem 0 .3rem;border-radius:8px}.entry-mode-banner>i{font-size:1.2rem;text-align:center}.entry-mode-banner>span{display:flex;min-width:0;flex-direction:column;line-height:1.2}.entry-mode-banner small{font-size:.65rem;font-weight:800;color:inherit}.entry-mode-banner strong{font-size:1.05rem;letter-spacing:0}.entry-mode-banner em{font-size:.7rem;font-style:normal;margin-top:.2rem}.entry-mode-banner.mode-quick{color:#92400e;background:#fffbeb;border-color:#f59e0b}.entry-mode-banner.mode-balance{color:#166534;background:#ecfdf5;border-color:#22c55e}.entry-mode-banner.mode-exit{color:#b91c1c;background:#fff1f2;border-color:#ef4444}
.quick-recharge-header{border-left:5px solid #f59e0b}.quick-recharge-kicker{display:inline-flex;align-items:center;gap:.35rem;color:#92400e;font-size:.72rem;font-weight:800;margin-bottom:.25rem}.quick-recharge-header h2{margin:0 0 .15rem}.quick-recharge-header small{color:var(--gray-500)}.quick-recharge-warning{display:grid;grid-template-columns:38px minmax(0,1fr);gap:.75rem;align-items:center;background:#fffbeb;border:2px solid #f59e0b;color:#78350f;padding:.85rem 1rem;border-radius:8px;margin-bottom:1rem}.quick-recharge-warning>i{font-size:1.35rem;text-align:center}.quick-recharge-warning div{display:flex;min-width:0;flex-direction:column;gap:.2rem}.quick-recharge-warning strong{font-size:.9rem}.quick-recharge-warning span{font-size:.78rem;line-height:1.4}

/* Cupones de ruleta y cobro */
.coupon-control{display:grid;gap:.4rem;padding:.7rem;border:1px solid #fed7aa;border-left:4px solid #f59e0b;background:#fff7ed;border-radius:7px;min-width:0}.coupon-control>label{font-size:.78rem;font-weight:750;color:#9a3412}.coupon-control>small{min-height:1.2em;color:#7c2d12;font-size:.7rem;line-height:1.35}.coupon-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto 38px;gap:.4rem;align-items:center}.coupon-entry-row .form-control{text-transform:uppercase;letter-spacing:0;font-weight:750;min-width:0}.coupon-entry-row .form-control[readonly]{border-color:#86efac;background:#f0fdf4;color:#166534}.coupon-entry-row .btn{min-height:38px;margin:0!important;white-space:nowrap}.coupon-entry-row .icon-btn{width:38px;height:38px;border:1px solid #fdba74;background:#fff;color:#c2410c}.coupon-saving{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:.4rem;border-top:1px dashed #fdba74;color:#9a3412}.coupon-saving[hidden]{display:none}.coupon-saving strong{color:#15803d}.cart-coupon{display:grid;gap:.45rem;margin:.6rem 0}.coupon-discount-line strong{color:#15803d}.quick-coupon-control{margin-top:.7rem}.exit-coupon-control{margin-top:.8rem}.entry-daycare-payment .coupon-control{margin-bottom:.8rem;background:#fff}.coupon-code-inline{font-family:'Courier New',monospace;letter-spacing:0;color:#9a3412;white-space:nowrap}
.roulette-discount-form{display:grid;grid-template-columns:minmax(180px,280px) auto;gap:.8rem;align-items:end;padding:1rem}.roulette-discount-form .form-group{margin:0}.input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) 38px}.input-with-suffix .form-control{border-radius:6px 0 0 6px}.input-with-suffix>span{display:grid;place-items:center;border:1px solid var(--gray-300);border-left:0;border-radius:0 6px 6px 0;background:var(--gray-100);font-weight:750}.roulette-discount-value{display:grid;grid-template-columns:minmax(0,1fr) 110px;align-items:center;gap:.65rem;padding:.55rem .7rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px}.roulette-discount-value label{font-size:.75rem;color:#9a3412}.roulette-discount-value .form-control{height:34px;padding:.35rem .5rem}

/* Recarga de varios paquetes */
.package-cart-form{padding-bottom:1rem}.package-choice-grid{padding:1rem}.package-recharge-card{display:flex;flex-direction:column;min-height:260px;transition:border-color .18s,box-shadow .18s,background .18s}.package-recharge-card.is-selected{border-color:#22c55e!important;background:#f0fdf4;box-shadow:0 0 0 2px rgba(34,197,94,.14)}.package-quantity-control{display:grid;grid-template-columns:40px 52px 40px;justify-content:center;align-items:center;gap:.35rem;margin-top:auto;padding-top:.9rem}.package-quantity-control .icon-btn{width:40px;height:40px;border:1px solid var(--gray-300);background:#fff;color:var(--gray-700)}.package-quantity-control input{width:52px;height:40px;border:1px solid var(--gray-300);border-radius:6px;text-align:center;font-weight:800;font-size:1rem;background:#fff}.package-quantity-control input::-webkit-inner-spin-button{display:none}.package-checkout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr);gap:1.25rem;border-top:1px solid var(--gray-200);padding:1rem}.package-order-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.package-order-summary>div{display:flex;flex-direction:column;gap:.2rem;padding:.75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px}.package-order-summary span{font-size:.78rem;color:var(--gray-500)}.package-order-total{grid-column:1/3}.package-order-total strong{font-size:1.35rem;color:#15803d}.package-order-lines{grid-column:1/3!important;font-size:.85rem;color:var(--gray-600);line-height:1.45}.package-payment-panel{display:flex;flex-direction:column;gap:.65rem}.package-payment-panel .form-group,.package-payment-panel .recharge-cash-box{margin:0}.package-payment-panel .btn{margin-top:auto}

@media(max-width:760px){.branch-daycare-config,.package-checkout{grid-template-columns:1fr}.entry-child-option{grid-template-columns:1fr}.entry-daycare-option{border-left:0;border-top:1px solid var(--gray-200);white-space:normal}.package-choice-grid{grid-template-columns:1fr 1fr}.package-recharge-card{min-height:245px}.daycare-modal{width:calc(100% - 1rem)}}
@media(max-width:520px){.package-choice-grid{grid-template-columns:1fr}.package-recharge-card{min-height:0}.package-order-summary{grid-template-columns:1fr}.package-order-total,.package-order-lines{grid-column:1!important}.entry-daycare-heading{align-items:flex-start}.entry-daycare-heading strong{white-space:nowrap}.entry-mode-banner strong{font-size:.95rem}.quick-recharge-header .card-header{align-items:flex-start}.quick-recharge-warning{grid-template-columns:30px minmax(0,1fr);padding:.75rem}.quick-recharge-warning strong{font-size:.82rem}.quick-payment-grid{grid-template-columns:1fr}.quick-payment-current{min-height:48px}}
@media(max-width:520px){.coupon-entry-row{grid-template-columns:minmax(0,1fr) 38px}.coupon-entry-row .btn{grid-column:1/3;grid-row:2}.coupon-entry-row .icon-btn{grid-column:2;grid-row:1}.roulette-discount-form{grid-template-columns:1fr}.roulette-discount-form .btn{width:100%}.roulette-discount-value{grid-template-columns:1fr}.coupon-code-inline{white-space:normal;overflow-wrap:anywhere}}
