/* ACATLÁN VIP DELIVERY — mobile-first premium PWA Demo.
 * Visual only: the private role, ledger, commission and permissions remain unchanged.
 */
:root{
 --ink:#14251f;--ink-soft:#476154;--vip-dark:#11271e;--vip-dark-2:#214d38;
 --vip-gold:#d4b577;--vip-gold-light:#f1e2ba;--vip-green:#1b5e43;
 --vip-canvas:#f3f6f2;--vip-border:#e2eae3;--vip-white:#fff;
 --vip-shadow:0 14px 40px rgba(12,36,25,.07);
 font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 color:var(--ink);background:var(--vip-canvas);color-scheme:light;
}
body{background:radial-gradient(ellipse at 12% -12%,#e3ebdf 0%,transparent 45%),var(--vip-canvas);letter-spacing:-.012em}
button,input,select{touch-action:manipulation}button{transition:transform .14s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
button:active:not(:disabled){transform:scale(.975)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d6ab54;outline-offset:3px}
::selection{background:#dddfb7;color:#183b2c}
.brand{
 position:sticky;top:0;z-index:40;min-height:76px;
 background:linear-gradient(135deg,#0b1f18 0%,#1a3425 100%);
 border-bottom:1px solid rgba(221,197,145,.19);
 padding:10px max(20px,calc((100% - 1080px)/2));
 box-shadow:0 6px 28px rgba(0,0,0,.09)
}
.brand-link{gap:12px}.brand-link img{width:47px;height:47px;background:#fff;border-radius:15px;padding:2px;box-shadow:0 2px 11px #0004}
.brand-link strong{font-size:16px;letter-spacing:.095em;font-weight:900}
.brand-link small{font-size:10px;letter-spacing:.14em;color:#dec58e;font-weight:700}
.test-badge{display:inline-flex;align-items:center;gap:7px;border-radius:100px;padding:7px 10px;font-size:10px;font-weight:800;letter-spacing:.11em;border:1px solid #806c3f;background:rgba(208,178,106,.07)}
.sim-pulse{width:7px;height:7px;border-radius:50%;background:#e5cc92;box-shadow:0 0 0 4px rgba(229,204,146,.13)}
main{max-width:1080px;padding:24px 20px 96px}.warning{max-width:920px;margin:0 auto 18px;background:#fff9eb;border:1px solid #e6d7b6;border-radius:16px;color:#644e28;box-shadow:0 3px 14px #00000004}
body.portal-ready .warning{display:none}
.auth-box{border:1px solid var(--vip-border);border-radius:24px;box-shadow:0 24px 70px #13281e20;max-width:465px;margin:34px auto;padding:30px}
.auth-box h1{font-size:27px;letter-spacing:-.04em}
.auth-box>p{font-size:14px}
.segmented{padding:6px;border-radius:15px;background:#eff4ee}.segmented button{border-radius:11px}.segmented button.selected{background:var(--vip-dark);box-shadow:0 4px 12px rgba(16,54,30,.15)}
input,select{accent-color:var(--vip-green)}
.form input,.form select,.compact-form input,.page>fieldset>label input{min-height:49px;padding:12px 13px;border-color:#cfdbd1;border-radius:12px}
.form label,.compact-form label,.page>fieldset>label{font-size:13px;color:#283c31}
.primary,.page form .primary,.page .primary{background:linear-gradient(135deg,#1d563c,#143d2e);border:0;color:#fff;border-radius:13px;min-height:49px;font-weight:780;box-shadow:0 6px 16px #153c2d21}
.primary:hover:not(:disabled),.page .primary:hover:not(:disabled){background:linear-gradient(135deg,#256a49,#1b503b)}
.hello{
 border:0;min-height:186px;padding:27px 29px;border-radius:25px;
 background:radial-gradient(circle at 88% 8%,rgba(237,215,164,.18) 0%,transparent 38%),linear-gradient(115deg,#11281e 0%,#224c34 100%);
 color:#fff;box-shadow:0 24px 46px rgba(13,54,33,.19);overflow:hidden;position:relative;
 display:flex;gap:18px;align-items:flex-start;justify-content:space-between
}
.hello:after{content:"";position:absolute;right:-50px;bottom:-145px;width:300px;height:300px;border:1px solid rgba(220,200,154,.16);border-radius:50%;box-shadow:0 0 0 44px rgba(220,200,154,.035),0 0 0 90px rgba(220,200,154,.025);pointer-events:none}
.hero-main,.hero-controls{position:relative;z-index:1}
.hero-eyebrow{display:flex;align-items:center;gap:8px;color:#e1c994;font-weight:800;letter-spacing:.13em;font-size:10px}
.hero-spark{font-size:17px}.hero-label{color:#e5ce99;border:1px solid #897752;padding:3px 7px;border-radius:999px;font-size:9px}
.hello h1{font-size:clamp(25px,4vw,34px);letter-spacing:-.045em;font-weight:830;margin:15px 0 6px;line-height:1.13}
.hello p{font-size:13px;color:#deeadf;margin:8px 0 0;max-width:590px;line-height:1.55}
.hero-tags{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.hero-status{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#cff1dc;padding:8px 11px;border-radius:100px;background:#305b40;border:1px solid #567764}
.hero-state-dot{height:8px;width:8px;background:#77e1a1;border-radius:100%;box-shadow:0 0 0 4px #77e1a122}
.hero-status[data-state="LOCKED"],.hero-status[data-state="ADMIN_LOCK"]{background:#77402e;color:#fff1df;border-color:#a26845}
.hero-status[data-state="LOCKED"] .hero-state-dot,.hero-status[data-state="ADMIN_LOCK"] .hero-state-dot{background:#ffc2a6;box-shadow:0 0 0 4px #ffc2a629}
.hero-status[data-state="GRACE"]{background:#776334;color:#fff2cd;border-color:#aa935f}
.hero-status[data-state="GRACE"] .hero-state-dot{background:#f5d586}
.sync-indicator{font-size:11px;color:#bdd7c5;letter-spacing:0}
.hero-controls{display:flex;align-items:center;gap:8px}
.icon-action,.hello .subtle{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;min-height:39px;border-radius:11px;padding:9px 12px;font-size:12px;font-weight:750;white-space:nowrap}
.icon-action{width:39px;padding:8px;display:grid;place-items:center}
.icon-action:hover,.hello .subtle:hover{background:#ffffff29}
.ui-icon{flex-shrink:0;display:block}
.stat-grid{gap:13px;margin:18px 0 19px;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat-grid article{padding:19px 20px;border-radius:19px;min-height:114px;background:#fff;border:1px solid var(--vip-border);box-shadow:0 5px 20px rgba(6,34,20,.035);display:flex;flex-direction:column;justify-content:space-between}
.stat-grid small{font-size:10px;letter-spacing:.07em;font-weight:850;color:#708075;line-height:1.5}
.stat-grid strong{font-size:23px;letter-spacing:-.04em;font-weight:850;line-height:1.1;color:#183f2b;white-space:normal}
.stat-grid .metric-money{background:#f7f1e5;border-color:#eadebe}
.stat-grid .metric-money strong{color:#725526}
.stat-grid .metric-fine strong{font-size:18px}
.metric-fine strong em{font-size:11px;font-style:normal;font-weight:600;letter-spacing:0;display:block;color:#6f7c72;margin-top:5px}
.locked{border-radius:15px;padding:15px 18px;font-weight:650;border:1px solid #e9b29f;background:#fff2e7}
.tabs{display:flex;gap:7px;overflow:visible;flex-wrap:wrap;padding:6px 0 15px}
.tabs button{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 17px;border:1px solid transparent;background:transparent;color:#597063;border-radius:12px;min-height:45px;font-size:13px;font-weight:800}
.tabs button .ui-icon{width:17px;height:17px}
.tabs button.on{background:#fff;border-color:#d9e5dc;color:#174a32;box-shadow:0 3px 14px #0d382110}
.tabs button:not(.on):hover{background:#edf3ed}
.tabs .mobile-more{display:none}
.page{border:1px solid #e3eae3;box-shadow:var(--vip-shadow);border-radius:23px;padding:26px 28px;min-height:270px}
.page h2{font-size:24px;letter-spacing:-.037em;font-weight:830;color:#132d20;line-height:1.14}
.page h3{margin-top:24px;font-size:17px;letter-spacing:-.015em}
.page>p{color:#617267;font-size:13px}
.overline{display:block;font-size:10px;font-weight:850;letter-spacing:.14em;color:#8a713d;margin-bottom:8px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.page-heading h2{margin:0 0 4px}.page-heading p{margin:4px 0 0;color:#6c7b70;font-size:13px}
.heading-mark{font-size:38px;color:#dac491}
.hero-cta{
 margin:22px 0 20px;padding:19px 23px;border-radius:18px;
 background:linear-gradient(120deg,#eaf2e9 0%,#f9f7eb 100%);border:1px solid #d9e6d9;
 display:flex;align-items:center;justify-content:space-between;gap:16px
}
.hero-cta>div{display:flex;flex-direction:column;gap:6px}
.hero-cta span{font-size:10px;font-weight:850;letter-spacing:.12em;color:#779078}
.hero-cta strong{font-size:17px;letter-spacing:-.028em;color:#193c2b}
.hero-cta small{font-size:12px;color:#667c6b}
.hero-cta button{display:flex;align-items:center;gap:7px;justify-content:center;background:#173f2d;color:#fff;border:0;border-radius:13px;padding:12px 14px;font-weight:790;white-space:nowrap;font-size:12px}
.hero-cta button .ui-icon{height:16px;width:16px}
.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.feature-grid .quick-card{border:1px solid #e1e9e1;border-radius:18px;padding:19px;display:grid;gap:9px;background:#fff;min-height:185px;transition:box-shadow .15s,transform .15s}
.feature-grid .quick-card:hover{box-shadow:0 10px 26px #1c483214}
.quick-card-head{display:flex;align-items:center;justify-content:space-between}
.quick-icon{height:46px;width:46px;display:grid;place-items:center;border-radius:15px;background:#eaf3ec;color:#1d6040}
.quick-arrow{color:#9ca89c}.quick-arrow .ui-icon{width:17px;height:17px}
.quick-card>b{font-size:17px;letter-spacing:-.03em;color:#172e20}
.feature-grid .quick-card small{font-size:12px;line-height:1.4;color:#6b7b6e}
.feature-grid .quick-card button{border:0;background:none;text-align:left;padding:4px 0 0;color:#1f6c46;font-size:12px;min-height:26px}
.feature-grid .quick-card button:after{content:"  →";font-size:14px}
.testing{margin-top:23px;border:1px solid #e6dec7;background:#fffdf6;border-radius:17px}
.testing summary{font-size:13px;color:#705e39}
.page .totals{background:#f1f6f1;border-color:#dbe8dd;border-radius:16px;padding:18px;gap:12px}
.page .totals>div{align-items:baseline;line-height:1.5;font-size:13px}
.page .totals strong{font-size:14px;font-weight:850;color:#194a31}
.page .receipt-list button,.page .action-row button,.page form button:not(.primary){background:#f8fbf8;border:1px solid #d7e3d8;border-radius:12px;color:#24533a;font-size:13px;min-height:43px}
.order-card{border-color:#e2e9e3;border-radius:18px;padding:20px;box-shadow:0 6px 20px rgba(23,58,34,.04)}
.order-card-head span{background:#eaf4eb;color:#225c36;padding:6px 11px}
.order-card .action-row button{border-radius:11px;min-height:43px}
.receipt-preview{border-radius:16px;padding:20px}
.linked-order{border-radius:15px}
.page .placeholder{background:#f5f8f4;border:1px solid #e6ece5;border-radius:14px}
.page .message{font-size:13px}
.more-grid{display:grid;gap:11px;margin:20px 0}
.more-grid>button{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:1px solid #e2eae3;border-radius:16px;background:white;padding:13px;font:inherit}
.more-grid>button>span:nth-child(2){flex:1;display:grid;gap:5px}
.more-grid b{color:#223d2b;font-size:15px}
.more-grid small{color:#697c6f;font-size:12px}
.more-grid>button>.ui-icon{height:18px;width:18px;color:#758677}
.install-panel{background:linear-gradient(140deg,#eaf1e5,#f5f5e8);padding:18px;border-radius:18px;border:1px solid #dbe5d9;margin-top:20px;display:grid;gap:12px}
.install-panel-text b{font-size:15px}.install-panel-text p{font-size:12px;margin:5px 0 0;color:#627568}
.install-panel button{border:0;border-radius:12px;background:#173f2d;color:#fff;min-height:45px;font-weight:750;display:flex;align-items:center;justify-content:center;gap:8px}
.install-panel small{font-size:12px;color:#627568}
.page .action-row{gap:9px}
footer{color:#7c897f}
@media(min-width:741px){.tabs .mobile-more{display:none!important}}
@media(max-width:740px){
 html{scroll-padding-top:80px}
 .brand{height:69px;min-height:69px;padding:10px 18px}
 .brand-link img{height:43px;width:43px;border-radius:13px}
 .brand-link strong{font-size:14px}.brand-link small{font-size:9px}
 main{padding:16px 13px calc(106px + env(safe-area-inset-bottom, 0px))}
 .hello{min-height:190px;border-radius:23px;padding:21px 19px}
 .hello h1{font-size:29px;margin-top:13px}
 .hello p{font-size:12px}
 .hero-eyebrow{font-size:9px;letter-spacing:.08em}
 .hero-tags{gap:8px;margin-top:14px}
 .hero-controls{gap:5px}.hello .subtle{font-size:11px;padding:8px}
 .icon-action{width:34px;height:35px;min-height:35px;padding:7px}
 .icon-action .ui-icon{height:17px;width:17px}
 .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:13px 0}
 .stat-grid article{min-height:99px;padding:14px;border-radius:15px}
 .stat-grid strong{font-size:22px}.stat-grid small{font-size:9px}
 .stat-grid .metric-fine strong{font-size:16px}
 .tabs{
  position:fixed;z-index:50;left:0;right:0;bottom:0;width:100%;height:calc(70px + env(safe-area-inset-bottom, 0px));
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;flex-wrap:nowrap;
  overflow:hidden;padding:6px 7px calc(7px + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.98);border-top:1px solid #dce7dd;
  box-shadow:0 -10px 32px rgba(23,43,29,.09)
 }
 .tabs button{border:0!important;box-shadow:none!important;background:transparent!important;min-height:53px;padding:5px 2px;
  display:flex;flex-direction:column;justify-content:center;gap:4px;border-radius:13px;color:#829488;font-size:10px;font-weight:750}
 .tabs button.on{color:#144b31!important;background:#eaf2eb!important}
 .tabs button .ui-icon{width:21px;height:21px;stroke-width:1.7}
 .tabs button[data-view="recibos"],.tabs button[data-view="horarios"]{display:none}
 .tabs button.mobile-more{display:flex}
 .page{border:1px solid #e5ece5;border-radius:21px;padding:21px 16px;min-height:310px}
 .page h2{font-size:23px}
 .page p{font-size:13px}
 .hero-cta{margin-top:19px;padding:18px;display:grid;gap:14px}
 .hero-cta strong{font-size:17px}
 .hero-cta button{justify-content:space-between;min-height:43px}
 .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .feature-grid .quick-card{min-height:180px;padding:13px;border-radius:16px;gap:8px}
 .quick-icon{width:41px;height:41px;border-radius:13px}.quick-icon .ui-icon{width:20px;height:20px}
 .quick-card>b{font-size:14px}
 .feature-grid .quick-card small{font-size:11px}
 .feature-grid .quick-card button{font-size:11px}
 .compact-form,.three{grid-template-columns:1fr}
 .order-card{padding:15px}
 .page .totals>div{gap:11px}
 .page .totals strong{white-space:normal;text-align:right}
 body.portal-ready footer{display:none}
 /* Short-lived action feedback stays visible above mobile dock. */
 body.portal-ready #portal-status:not(:empty){position:fixed;left:14px;right:14px;bottom:calc(82px + env(safe-area-inset-bottom, 0px));z-index:48;
  margin:0;padding:13px 16px;border-radius:14px;background:#163d2b;color:#fff;box-shadow:0 12px 30px #142e2770;line-height:1.4}
 body.portal-ready #portal-status.error:not(:empty){background:#7d302b}
}
@media(max-width:350px){.hello h1{font-size:25px}.hero-eyebrow{font-size:8px}.feature-grid .quick-card{padding:11px}.tabs button{font-size:9px}.stat-grid strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{
 .brand,.hello,.stat-grid,.tabs,.page-heading,.hero-cta,.locked,.warning,.feature-grid,.testing,.more-grid,.install-panel{display:none!important}
 main{padding:0!important;max-width:none!important}.page{border:0;box-shadow:none;padding:0!important}
 body.portal-ready #portal-status:not(:empty){display:none}
 #receipt-preview{border:0!important;box-shadow:none!important}
}

/* Delivery: explorar conserva sesión; cambio a cliente requiere logout confirmado. */
.hero-controls{flex-wrap:wrap;justify-content:flex-end;max-width:460px}
.hello .vip-courier-browse{display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;white-space:normal;text-align:center}
.hello .vip-courier-browse:focus-visible,.hello #customer-switch:focus-visible{
  outline:3px solid #e4c88f;outline-offset:2px
}
@media(max-width:760px){
  .hero-controls{width:100%;max-width:none;justify-content:flex-start}
  .hero-controls .subtle{flex:1 1 auto;white-space:normal}
}

/* Android y navegadores integrados: textos legibles e instalación a la vista. */
#install-panel{margin:14px 0 16px;padding:16px 17px;grid-template-columns:minmax(0,1fr);
 background:#eff7ec;border:1px solid #bfd9c5;box-shadow:0 6px 20px #153b2810}
#install-panel .install-panel-text b{font-size:16px;letter-spacing:-.02em}
#install-panel .install-panel-text p{font-size:13px;line-height:1.5}
#install-panel #install-app{font-size:14px;line-height:1.35;min-height:49px;padding:10px 12px}
#install-panel #install-hint{font-size:12px;line-height:1.5;color:#456651}
#install-panel[hidden]{display:none!important}
@media(max-width:740px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .hello{gap:10px}
 .hello h1{font-size:clamp(25px,7vw,31px)}
 .hello p{font-size:13px;line-height:1.5}
 .hero-eyebrow{font-size:10px}
 .hello .subtle{font-size:12px;min-height:42px}
 .stat-grid small{font-size:11px;letter-spacing:.025em}
 .stat-grid .metric-fine strong{font-size:18px}
 .page p{font-size:14px}
 .feature-grid .quick-card small{font-size:12px}
 .tabs button{font-size:11px}
 #install-panel{padding:14px;margin:12px 0}
}
@media(max-width:350px){.stat-grid small{font-size:10px}.tabs button{font-size:10px}}
