/* Design System Sambujaus
   Capa visual acumulativa para una presentación consistente sobre el backend principal. */
:root{
  --bg:#f5f6f8;--panel:#ffffff;--panel-soft:#fafafa;--text:#171717;--muted:#6f7177;
  --line:rgba(20,20,20,.085);--brand:#781f1c;--brand-2:#a13a31;--accent:#d7a96c;
  --success:#16865a;--warning:#b46b16;--danger:#b93333;--info:#266fc7;
  --shadow:0 14px 40px rgba(25,20,18,.08);--shadow-strong:0 22px 60px rgba(25,20,18,.14);
  --radius:22px;--radius-sm:15px;--sidebar:264px;
  --font:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
html[data-theme="dark"]{
  --bg:#0f1012;--panel:#17181b;--panel-soft:#1d1f23;--text:#f5f2ee;--muted:#a9a8a6;
  --line:rgba(255,255,255,.09);--shadow:0 14px 40px rgba(0,0,0,.28);--shadow-strong:0 22px 65px rgba(0,0,0,.42);
}
*{box-sizing:border-box}
body{font-family:var(--font);background:var(--bg);color:var(--text);letter-spacing:-.005em}
button,input,select,textarea{font:inherit}
::selection{background:rgba(122,31,27,.16)}

/* Loading / boot */
.app-loader{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:20px;background:
 radial-gradient(circle at 10% 10%,rgba(215,169,108,.20),transparent 32%),
 radial-gradient(circle at 86% 14%,rgba(122,31,27,.16),transparent 32%),var(--bg)}
.app-loader .loader-logo{width:min(240px,55vw);filter:drop-shadow(0 18px 36px rgba(42,20,17,.16))}
.loader-line{width:190px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--accent),var(--brand));background-size:220% 100%;animation:ui-loader 1.4s linear infinite}
@keyframes ui-loader{to{background-position:-220% 0}}

/* Login premium */
.login-page.login-modern{min-height:100vh;background:var(--bg);display:grid;grid-template-columns:minmax(360px,1.12fr) minmax(420px,.88fr);overflow:hidden}
.login-modern .login-visual{position:relative;padding:clamp(42px,7vw,96px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;color:#fff;background:
 linear-gradient(145deg,rgba(54,10,12,.97),rgba(118,27,25,.95) 55%,rgba(143,62,46,.92));isolation:isolate}
.login-modern .login-visual:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 90%);z-index:-1}
.login-modern .login-aurora{filter:blur(6px);opacity:.35}
.login-modern .login-panel{display:grid;place-items:center;padding:42px;min-height:100vh;background:
 radial-gradient(circle at 86% 12%,rgba(215,169,108,.16),transparent 26%),var(--bg)}
.login-modern .login-card{width:min(500px,100%);background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:clamp(28px,4vw,46px);box-shadow:var(--shadow-strong)}
.login-modern .login-card h1{font-size:clamp(30px,4vw,46px);line-height:1.02;margin:.25em 0}
.login-modern .login-card p{color:var(--muted)}
.login-modern .login-card input{height:54px;border-radius:15px;border:1px solid var(--line);background:var(--panel-soft);padding:0 15px;transition:.2s ease}
.login-modern .login-card input:focus{outline:0;border-color:rgba(122,31,27,.5);box-shadow:0 0 0 4px rgba(122,31,27,.10);background:var(--panel)}

/* Application shell */
.app-shell,.admin-shell{background:var(--bg)}
.sidebar,.app-sidebar{background:linear-gradient(180deg,#211816 0%,#171313 62%,#111112 100%);border-right:1px solid rgba(255,255,255,.07);box-shadow:12px 0 38px rgba(0,0,0,.13)}
.sidebar .brand,.app-sidebar .brand{padding:22px 20px}
.sidebar nav a,.app-sidebar nav a,.sidebar nav button,.app-sidebar nav button{border-radius:14px;margin:3px 10px;color:rgba(255,255,255,.72);transition:background .18s ease,color .18s ease,transform .18s ease}
.sidebar nav a:hover,.app-sidebar nav a:hover,.sidebar nav button:hover,.app-sidebar nav button:hover{background:rgba(255,255,255,.075);color:#fff;transform:translateX(2px)}
.sidebar nav .active,.app-sidebar nav .active{background:linear-gradient(135deg,rgba(215,169,108,.22),rgba(122,31,27,.42));color:#fff;border:1px solid rgba(215,169,108,.15)}
.topbar,.app-topbar{backdrop-filter:blur(18px);background:color-mix(in srgb,var(--panel) 84%,transparent);border-bottom:1px solid var(--line)}

/* Global cards + actions */
.page-header{gap:24px;margin-bottom:24px}
.page-header .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:800}
.page-header h1{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em}
.page-header p{color:var(--muted);max-width:760px}
.btn{min-height:43px;border-radius:13px;font-weight:750;letter-spacing:-.01em;border:1px solid var(--line);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;border-color:transparent;box-shadow:0 9px 22px rgba(122,31,27,.18)}
.icon-btn{border-radius:12px;border:1px solid var(--line);background:var(--panel)}
.metric-card,.panel,.card,.operation-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.metric-card{padding:20px;min-height:128px;position:relative;overflow:hidden}
.metric-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-34px;top:-34px;background:currentColor;opacity:.055}
.metric-card strong{font-size:clamp(24px,2.8vw,34px);letter-spacing:-.04em}
.badge{border-radius:999px;font-weight:750;padding:6px 10px}

/* Tables / floor */
.tables-pro{max-width:1600px;margin:auto}
.table-pro-kpis{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.table-pro-kpis button{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:16px;text-align:left;box-shadow:0 6px 18px rgba(20,20,20,.035);transition:.18s ease}
.table-pro-kpis button:hover,.table-pro-kpis button.active{transform:translateY(-2px);box-shadow:var(--shadow)}
.table-pro-toolbar{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:12px 14px;box-shadow:0 8px 26px rgba(20,20,20,.04)}
.table-pro-section{background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:18px;margin-top:16px;box-shadow:var(--shadow)}
.table-pro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
.table-pro-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:22px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.table-pro-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(122,31,27,.2)}
.table-pro-card.state-available{background:linear-gradient(160deg,var(--panel),rgba(22,134,90,.045))}
.table-pro-card.state-occupied{background:linear-gradient(160deg,var(--panel),rgba(180,107,22,.055))}
.table-pro-card.state-ready{background:linear-gradient(160deg,var(--panel),rgba(38,111,199,.06))}
.table-pro-main{padding:18px;text-align:left}
.table-pro-center{min-height:96px;display:grid;place-content:center;text-align:center}
.table-pro-icon{width:48px;height:48px;border-radius:16px;display:grid;place-content:center;margin:auto;background:rgba(122,31,27,.09);color:var(--brand)}
.table-pro-total{font-size:24px;letter-spacing:-.035em}

/* POS / sales */
.sale-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.sale-product-card{border:1px solid var(--line);border-radius:20px;background:var(--panel);overflow:hidden;box-shadow:0 6px 18px rgba(20,20,20,.04);transition:.17s ease}
.sale-product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(122,31,27,.22)}
.sale-product-photo{aspect-ratio:1.18/1;background:linear-gradient(145deg,#f0ece7,#faf8f6)}
.sale-product-photo img{width:100%;height:100%;object-fit:cover}
.sale-product-copy{padding:12px 13px 14px;display:grid;gap:4px;text-align:left}
.sale-product-copy strong{font-size:14px}.sale-product-copy small{color:var(--muted)}.sale-product-copy b{color:var(--brand);font-size:16px}
.sale-category-chips{display:flex;gap:8px;overflow:auto;padding:2px 0 8px;scrollbar-width:none}
.sale-category-chip{white-space:nowrap;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:9px 14px;font-weight:700;color:var(--muted)}
.sale-category-chip.active{background:#221816;color:#fff;border-color:#221816}
.sale-picker-search{height:48px;border:1px solid var(--line);border-radius:15px;background:var(--panel-soft);display:flex;align-items:center;padding:0 14px;gap:8px}
.sale-picker-search input{border:0;background:transparent;outline:0;flex:1}
.sale-quantity-stepper{background:var(--panel-soft);border:1px solid var(--line);border-radius:15px;padding:5px}
.qty-btn{width:42px;height:42px;border-radius:12px;border:0;background:var(--panel);font-size:22px;box-shadow:0 3px 10px rgba(0,0,0,.05)}
.checkout-override-warning{background:rgba(180,107,22,.09);border:1px solid rgba(180,107,22,.22);border-radius:18px;padding:15px}

/* Kitchen */
.kitchen-board,.kitchen-grid{gap:14px}
.kitchen-card,.kitchen-order-card{border-radius:22px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.kitchen-card header,.kitchen-order-card header{padding:15px 16px;border-bottom:1px solid var(--line)}
.kitchen-card .quantity,.kitchen-order-card .quantity{font-weight:900;color:var(--brand);font-size:20px}

/* Delivery / Mapbox */
.delivery-map-shell{border-radius:24px;overflow:hidden;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);min-height:420px}
.delivery-map-canvas{min-height:460px}
.delivery-map-fallback{background:linear-gradient(145deg,var(--panel),var(--panel-soft));color:var(--muted)}
.delivery-map-marker{box-shadow:0 7px 20px rgba(0,0,0,.20);border:3px solid #fff}
.delivery-map-marker.business{background:var(--brand)}
.delivery-map-marker.driver{background:var(--info)}
.delivery-map-marker.destination{background:var(--success)}
.delivery-capture-map{border-radius:19px;border:1px solid var(--line);overflow:hidden;min-height:330px}
.delivery-location-box{border:1px solid var(--line);background:var(--panel-soft);border-radius:22px;padding:16px}

/* External platforms */
.external-workspace{display:grid;grid-template-columns:minmax(300px,.42fr) minmax(0,1fr);gap:14px}
.external-queue,.external-main,.external-toolbar{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.external-queue{overflow:hidden}.external-main{padding:18px}.external-toolbar{padding:12px;margin-bottom:14px}
.external-tabs{background:var(--panel-soft);padding:5px;border:1px solid var(--line);border-radius:16px}
.external-tabs button{border-radius:12px}

/* Installer */
.installer-shell,.installer-page{min-height:100vh;background:
 radial-gradient(circle at 10% 10%,rgba(215,169,108,.18),transparent 28%),
 radial-gradient(circle at 88% 14%,rgba(122,31,27,.14),transparent 32%),var(--bg)}
.installer-card,.installer-panel{background:var(--panel);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow-strong)}
.installer-update-card{border-radius:20px;background:linear-gradient(135deg,#211816,#4b1a19);color:#fff;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 45px rgba(50,16,16,.18)}
.installer-status-pill{background:rgba(122,31,27,.10);color:var(--brand);border:1px solid rgba(122,31,27,.16);border-radius:999px;padding:8px 12px;font-weight:800}

/* SweetAlert */
.swal-sambujaus{border-radius:26px!important;border:1px solid var(--line)!important;background:var(--panel)!important;color:var(--text)!important;box-shadow:var(--shadow-strong)!important}
.swal-sambujaus-confirm,.swal-sambujaus-cancel,.swal-sambujaus-deny{min-height:44px;border-radius:13px;padding:0 18px;font-weight:800;border:1px solid var(--line)}
.swal-sambujaus-confirm{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;border:0}.swal-sambujaus-cancel{background:var(--panel-soft);color:var(--text)}

/* Responsive */
@media(max-width:980px){
  .login-page.login-modern{grid-template-columns:1fr}.login-modern .login-visual{display:none}.login-modern .login-panel{min-height:100vh;padding:22px}
  .table-pro-kpis{grid-template-columns:repeat(2,1fr)}.external-workspace{grid-template-columns:1fr}.delivery-map-canvas{min-height:390px}
}
@media(max-width:640px){
  :root{--radius:18px}.page-header{align-items:flex-start}.page-header h1{font-size:28px}
  .table-pro-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.table-pro-section{padding:12px;border-radius:20px}
  .table-pro-main{padding:13px}.table-pro-total{font-size:19px}.table-pro-kpis{gap:8px}.table-pro-kpis button{padding:12px;border-radius:16px}
  .sale-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sale-product-card{border-radius:17px}.sale-product-copy{padding:10px}
  .delivery-map-shell{border-radius:19px}.delivery-map-canvas{min-height:340px}.login-modern .login-card{padding:26px 22px;border-radius:24px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.installer-preflight{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--panel-soft)}
.installer-preflight-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.installer-preflight-title span{font-size:12px;font-weight:800;color:var(--muted)}
.installer-preflight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.installer-preflight-item{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.installer-preflight-item>b{width:26px;height:26px;border-radius:9px;display:grid;place-items:center}.installer-preflight-item.ok>b{background:rgba(22,134,90,.12);color:var(--success)}.installer-preflight-item.fail>b{background:rgba(185,51,51,.12);color:var(--danger)}
.installer-preflight-item span{display:grid}.installer-preflight-item small{color:var(--muted);font-size:11px}@media(max-width:640px){.installer-preflight-grid{grid-template-columns:1fr}}
