:root{
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --bg:#f3f4f6;
  --card:#ffffff;
  --border:#e5e7eb;
  --text:#111827;
  --muted:#6b7280;
  --danger:#dc2626;
  --success:#16a34a;
  --warning:#f59e0b;
}
*{box-sizing:border-box;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
body{margin:0;background:var(--bg);color:var(--text);} 

.login-wrapper{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#1d4ed8,#0f172a);color:#fff;}
.login-card{background:#0b1120;padding:2rem 2.5rem;border-radius:1rem;box-shadow:0 20px 40px rgba(0,0,0,.4);width:380px;}
.login-card h1{margin:0 0 .5rem;font-size:1.5rem;}
.login-card p{margin:0 0 1.5rem;color:#9ca3af;}

.form-group{margin-bottom:1rem;}
.form-group label{display:flex;align-items:center;justify-content:space-between;font-size:.9rem;margin-bottom:.25rem;}
.form-group input,.form-group select{width:100%;padding:.55rem .65rem;border-radius:.5rem;border:1px solid #374151;background:#020617;color:#e5e7eb;font-size:.9rem;}

.btn{border:none;border-radius:.5rem;padding:.6rem 1rem;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;}
.btn-block{width:100%;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-secondary{background:#e5e7eb;color:#111827;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-success{background:var(--success);color:#fff;}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text);}
.btn-sm{padding:.25rem .6rem;font-size:.8rem;}
.btn-icon{width:32px;height:32px;padding:0;border-radius:999px;}

.help-icon{width:18px;height:18px;border-radius:999px;background:#0f172a;border:1px solid #4b5563;color:#e5e7eb;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;position:relative;}
.help-icon.dark{background:#111827;}
.tooltip{position:absolute;top:110%;left:50%;transform:translateX(-50%);background:#111827;color:#e5e7eb;padding:.4rem .6rem;border-radius:.4rem;font-size:.75rem;white-space:normal;width:220px;max-width:260px;box-shadow:0 10px 20px rgba(0,0,0,.4);z-index:1000;display:none;}
.tooltip::before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);border-width:0 6px 6px 6px;border-style:solid;border-color:transparent transparent #111827 transparent;}

.app{display:flex;height:100vh;overflow:hidden;}
.sidebar{width:260px;background:#020617;color:#e5e7eb;display:flex;flex-direction:column;border-right:1px solid #111827;}
.sidebar-header{padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #111827;}
.sidebar-header h2{font-size:1.1rem;margin:0;}
.sidebar-user{padding:.75rem 1.25rem;border-bottom:1px solid #111827;}
.sidebar-user .user-name{font-weight:600;}
.sidebar-user .user-role{font-size:.8rem;color:#9ca3af;}
.nav{flex:1;overflow-y:auto;padding:.5rem 0 1rem;}
.nav-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;padding:.3rem 1.25rem;margin-top:.5rem;}
.nav button{width:100%;text-align:left;padding:.45rem 1.25rem;background:transparent;border:none;color:#e5e7eb;font-size:.85rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
.nav button.active{background:#111827;border-left:3px solid var(--primary);}
.nav button:hover{background:#020617;}
.nav button span.label{display:flex;align-items:center;gap:.45rem;}
.sidebar-footer{padding:.5rem 1.25rem 1rem;border-top:1px solid #111827;font-size:.75rem;color:#9ca3af;}

.content{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.topbar{height:56px;background:#ffffff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;}
.breadcrumb{font-size:.8rem;color:var(--muted);}
.topbar-right{display:flex;align-items:center;gap:.75rem;font-size:.8rem;}
.badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;}
.badge-success{background:#dcfce7;color:#166534;}
.badge-warning{background:#fef3c7;color:#92400e;}

.page{flex:1;overflow:auto;padding:1rem;}
.page-inner{max-width:1300px;margin:0 auto;}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;}
.page-header h1{font-size:1.2rem;margin:0;}
.page-header p{margin:.15rem 0 0;font-size:.8rem;color:var(--muted);}
.page-actions{display:flex;align-items:center;gap:.5rem;}

.card{background:var(--card);border-radius:.75rem;padding:.75rem .9rem;border:1px solid var(--border);box-shadow:0 4px 12px rgba(15,23,42,.04);}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;}
.card-header h2{margin:0;font-size:.95rem;}
.card-header small{color:var(--muted);}
.card-body{font-size:.85rem;}

.grid{display:grid;gap:1rem;}
.grid-2{grid-template-columns:2fr 1.2fr;}
.grid-3{grid-template-columns:repeat(3,1fr);} 

.form-inline{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.8rem;}
.form-inline .form-group{margin-bottom:.3rem;}
.form-inline input,.form-inline select{font-size:.8rem;}

.pos-layout{display:grid;grid-template-columns:2.4fr 2.2fr 1.4fr;gap:.75rem;}
.tables-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.5rem;}
.table-card{background:#f9fafb;border-radius:.65rem;padding:.45rem .5rem;border:1px solid #e5e7eb;cursor:pointer;display:flex;flex-direction:column;gap:.1rem;font-size:.8rem;}
.table-card .name{font-weight:600;}
.table-card .meta{display:flex;justify-content:space-between;color:#6b7280;font-size:.75rem;}
.table-card.status-free{border-style:dashed;background:#f9fafb;}
.table-card.status-occupied{border-color:#f97316;background:#fff7ed;}
.table-card.status-busy{border-color:#16a34a;background:#ecfdf5;}

.order-header{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;margin-bottom:.35rem;}
.order-items{max-height:260px;overflow:auto;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);padding:.35rem 0;margin:.35rem 0;}
.order-item{display:grid;grid-template-columns:1fr .5fr .7fr .3fr;gap:.25rem;align-items:center;font-size:.8rem;padding:.25rem 0;border-bottom:1px solid #f3f4f6;}
.order-item:last-child{border-bottom:none;}
.order-totals{font-size:.85rem;display:grid;gap:.15rem;}
.order-totals div{display:flex;justify-content:space-between;}
.order-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;}
.order-actions-left{display:flex;gap:.4rem;}

.menu-filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem;}
.chip-group{display:flex;flex-wrap:wrap;gap:.3rem;}
.chip{border-radius:999px;border:1px solid var(--border);padding:.2rem .6rem;font-size:.75rem;background:#f9fafb;cursor:pointer;}
.chip.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.45rem;max-height:320px;overflow:auto;}
.product-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.6rem;padding:.35rem .45rem;font-size:.78rem;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;}
.product-card .name{font-weight:600;}
.product-card .meta{display:flex;justify-content:space-between;color:#6b7280;}

.table{width:100%;border-collapse:collapse;font-size:.8rem;}
.table thead{background:#f9fafb;}
.table th,.table td{padding:.35rem .4rem;border-bottom:1px solid var(--border);text-align:left;}
.badge-stock-ok{background:#dcfce7;color:#15803d;border-radius:999px;padding:.05rem .35rem;font-size:.7rem;}
.badge-stock-low{background:#fee2e2;color:#b91c1c;border-radius:999px;padding:.05rem .35rem;font-size:.7rem;}

.caja-grid{display:grid;grid-template-columns:1.5fr 1.7fr;gap:.75rem;}
.summary-list{list-style:none;padding:0;margin:0;font-size:.8rem;}
.summary-list li{display:flex;justify-content:space-between;padding:.1rem 0;}
.caja-actions{margin-top:.5rem;display:flex;gap:.4rem;}

.dte-layout{display:grid;grid-template-columns:2.2fr 1.4fr;gap:.75rem;}
.json-preview{background:#020617;color:#e5e7eb;font-family:"JetBrains Mono",monospace;font-size:.75rem;padding:.5rem .6rem;border-radius:.5rem;max-height:260px;overflow:auto;}

.card-text{font-size:.8rem;color:var(--muted);}

/* MODALES */
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:900;}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:901;}
.modal-sm .modal-content{max-width:420px;}
.modal-content{background:#ffffff;border-radius:.75rem;box-shadow:0 20px 40px rgba(15,23,42,.35);width:90%;max-width:520px;padding:0;overflow:hidden;}
.modal-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.modal-header h2{margin:0;font-size:1rem;}
.modal-body{padding:.75rem 1rem;font-size:.85rem;}
.modal-footer{padding:.6rem 1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem;}
.modal-close{border:none;background:transparent;font-size:1.2rem;cursor:pointer;color:var(--muted);}
.modal-text{font-size:.85rem;color:var(--muted);margin-bottom:.6rem;}

@media (max-width:1024px){
  .app{flex-direction:column;}
  .sidebar{width:100%;height:auto;flex-direction:row;overflow:auto;}
  .content{height:calc(100vh - 56px);}
  .pos-layout{grid-template-columns:1fr;}
  .grid-2,.grid-3{grid-template-columns:1fr;}
}
