/* GersON V2.8 — Mobile First Stable
   Base visual única para produção, demo e Super Admin.
   Evita acúmulo de overrides das versões anteriores. */
*{box-sizing:border-box}
html{min-height:100%;background:var(--paper);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font-family:var(--font);overflow-x:hidden}
body,button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:.78rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.nowrap{white-space:nowrap}.text-right{text-align:right}
h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.025em}h1{font-size:clamp(1.8rem,6vw,2.35rem);line-height:1.05}h2{font-size:clamp(1.35rem,4.5vw,1.75rem);line-height:1.15}h3{font-size:1.05rem;line-height:1.25}
img{max-width:100%}

/* Controles */
.btn{min-height:44px;border:0;border-radius:12px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;line-height:1.15;text-decoration:none;background:var(--ink);color:#fff;transition:transform .12s ease,filter .12s ease,border-color .12s ease;touch-action:manipulation}
.btn:hover{filter:brightness(1.04)}.btn:active{transform:scale(.985)}.btn.brand{background:var(--brand);color:var(--ink)}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.success{background:var(--success)}.btn.danger{background:var(--danger)}.btn.warning{background:var(--warning);color:#1b1d1f}.btn.small{min-height:38px;padding:8px 11px;font-size:.78rem}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none}
.link-button{border:0;background:transparent;color:#4d7f16;padding:4px 0;text-align:left;cursor:pointer;font:inherit;font-weight:750}.link-button:hover{text-decoration:underline}
.badge,.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:850;background:#ece9e2;white-space:nowrap}.badge.received{background:#e8f0ff;color:#245a9e}.badge.preparing{background:#fff0cf;color:#8a5900}.badge.ready{background:#dff8e9;color:#137048}.badge.delivered{background:#e9ecef;color:#535860}.badge.cancelled{background:#ffe5e5;color:#a12626}.badge.open,.pill.active{background:#dff8e9;color:#137048}.badge.free{background:#ece9e2;color:#666}.pill.trial{background:#e8ffc9}.pill.past_due{background:#fff0dc}.pill.blocked,.pill.cancelled{background:#ffe1e1}

/* Layout primitives — mobile first */
.card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 7px 24px rgba(23,25,28,.045)}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0}.stack{display:flex;flex-direction:column;gap:12px;min-width:0}.row{display:flex;align-items:center;gap:10px;min-width:0}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.divider{height:1px;background:var(--line);margin:8px 0}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:.76rem;font-weight:850;color:#555d65}.input,input,select,textarea{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fff;color:var(--ink);outline:none}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--brand-strong);box-shadow:0 0 0 3px rgba(168,255,62,.2)}textarea{resize:vertical;line-height:1.45}.input-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.input-inline>*{flex:1 1 180px}.empty{padding:28px 16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:13px;background:rgba(255,255,255,.42)}

/* Login / cadastro / reset */
.login-shell{min-height:100dvh;display:grid;grid-template-columns:1fr;background:#fff}.login-hero{position:relative;overflow:hidden;min-height:260px;padding:28px 22px;background:linear-gradient(155deg,#0f1113,#1b1e22);color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:38px}.login-hero:before,.login-hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-hero:before{width:360px;height:360px;right:-150px;top:-120px;background:radial-gradient(circle,rgba(168,255,62,.22),transparent 66%)}.login-hero:after{width:300px;height:300px;left:-120px;bottom:-190px;background:radial-gradient(circle,rgba(255,138,36,.13),transparent 68%)}.login-brand-wrap,.hero-copy,.login-hero>.small{position:relative;z-index:1}.login-brand-logo{display:block;width:min(250px,72vw);max-height:80px;object-fit:contain;object-position:left center}.hero-copy{max-width:650px}.hero-copy h1{font-size:clamp(2.25rem,9vw,4.6rem);line-height:.98;margin-bottom:16px}.hero-copy p{margin:0;color:#bdc4ca;font-size:1rem;line-height:1.6}.login-panel{display:grid;place-items:center;padding:28px 18px}.login-box{width:min(460px,100%);padding:8px 0}.login-box h2{margin-bottom:8px}.login-box>a,.login-box a{font-weight:750}

/* Aplicação */
.app-shell{min-height:100dvh;display:block}.sidebar{position:fixed;z-index:1000;inset:0 auto 0 0;width:min(86vw,300px);height:100dvh;padding:16px;background:linear-gradient(180deg,#0e1012,#181b1f 72%,#101214);color:#fff;display:flex;flex-direction:column;gap:12px;overflow:hidden;transform:translateX(-104%);transition:transform .2s ease;box-shadow:24px 0 70px rgba(0,0,0,.32)}.sidebar.open{transform:translateX(0)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-system-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.brand-system-logo{display:block;width:138px;max-width:100%;max-height:52px;object-fit:contain;object-position:left center}.brand-system-tenant{max-width:190px;color:#aeb5bc;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-close{width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:11px;background:rgba(255,255,255,.07);color:#fff;font-size:1.55rem;line-height:1}.nav{min-height:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:2px 4px 12px 0;scrollbar-width:thin;scrollbar-color:#474d54 transparent}.nav-group{display:flex;flex-direction:column;gap:4px}.nav-group-title{padding:4px 11px;color:#727b84;font-size:.62rem;font-weight:950;letter-spacing:.15em;text-transform:uppercase}.nav button{min-height:44px;border:0;border-radius:11px;padding:10px 12px;background:transparent;color:#b9c1c8;text-align:left;display:flex;align-items:center;font-weight:760;font-size:.9rem}.nav button:hover,.nav button.active{background:#252a2f;color:#fff}.nav button.active{box-shadow:inset 3px 0 var(--brand)}.sidebar-footer{flex:0 0 auto;padding-top:11px;border-top:1px solid rgba(255,255,255,.08);color:#9ea6ad;font-size:.72rem}.sidebar-backdrop{display:none;position:fixed;z-index:990;inset:0;border:0;padding:0;background:rgba(7,9,11,.56);backdrop-filter:blur(2px)}.sidebar-backdrop.show{display:block}
.main{min-width:0;padding:14px 12px calc(88px + env(safe-area-inset-bottom))}.topbar{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;align-items:center;margin:0 -12px 18px;padding:12px 12px 14px;background:rgba(245,243,237,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}.mobile-menu-btn{width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font-weight:950}.topbar-brand-logo{display:none}.topbar-page-copy{min-width:0}.topbar-page-copy h1{font-size:1.45rem;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-page-copy p{margin:0}.topbar>.row{grid-column:1/-1;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.branch-picker{min-width:0;width:100%}.topbar #refreshBtn{display:none}.page{display:none;min-width:0}.page.active{display:block;animation:pageIn .14s ease}.page>.row.between{align-items:flex-start;gap:12px}.page>.row.between>div:first-child{min-width:0}.page>.row.between>.row{flex-wrap:wrap}@keyframes pageIn{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:none}}
.subscription-banner{margin:0 0 12px;padding:12px 13px;border:1px solid rgba(122,170,56,.2);border-radius:13px;background:var(--brand-soft);display:flex;flex-direction:column;align-items:flex-start;gap:10px}.subscription-banner.past_due{background:#fff1df}.subscription-banner.blocked{background:#ffe7e7}.subscription-banner .btn{width:100%}
.tenant-hero{position:relative;overflow:hidden;min-height:150px;padding:20px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#20252a,#111416 66%);box-shadow:0 12px 34px rgba(17,20,22,.12)}.tenant-hero:after{content:"";position:absolute;right:-60px;bottom:-110px;width:240px;height:240px;border-radius:50%;background:var(--tenant,var(--brand));opacity:.28;filter:blur(42px)}.tenant-hero .cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2}.tenant-hero>*:not(.cover){position:relative;z-index:1}.tenant-hero h2{margin-bottom:6px}.tenant-hero p{margin:0;color:#dce1e4}.kpi{padding:15px}.kpi .value{font-size:1.55rem;font-weight:950;letter-spacing:-.035em}.kpi .label{font-size:.75rem;color:var(--muted);margin-top:5px}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.onboarding-list{display:grid;gap:7px}.onboarding-action{width:100%;border:1px solid transparent;border-radius:11px;background:transparent;text-align:left;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;color:inherit}.onboarding-action:hover{background:rgba(168,255,62,.06);border-color:rgba(168,255,62,.2)}.onboarding-item.done{opacity:.66}.onboarding-go{font-weight:950;color:#5e931f}

/* Mesas */
.table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.table-card{position:relative;min-width:0;min-height:136px;padding:13px;background:#fff;border:1px solid var(--line);border-radius:15px;display:flex;flex-direction:column;gap:7px;text-align:left;box-shadow:0 5px 18px rgba(23,25,28,.035)}.table-card:active{transform:scale(.99)}.table-card.alert{border-color:#e1a636;box-shadow:0 0 0 2px #fff0cc}.table-number{font-size:1.05rem;font-weight:950}.table-total{font-size:1.12rem;font-weight:900;margin-top:auto}.signal{position:absolute;right:10px;top:10px;display:flex;gap:5px}.dot{width:9px;height:9px;border-radius:50%;background:var(--brand)}.dot.red{background:var(--danger)}.dot.green{background:var(--success)}.table-actions{gap:7px}.table-actions .btn{flex:1 1 130px}

/* Produção */
.board{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.board-col{min-width:0;background:#ebe8e1;border:1px solid #ded9cf;border-radius:16px;padding:10px;min-height:200px}.board-title{display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:900;padding:5px 4px 11px}.ticket,.production-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:9px;box-shadow:0 4px 14px rgba(0,0,0,.035)}.ticket h3{font-size:.95rem;margin-bottom:6px}.ticket .timer{font-size:.72rem;color:var(--muted)}.ticket .notes{background:#fff6dd;border-radius:8px;padding:8px;margin:8px 0;font-size:.75rem}.ticket .mods{font-size:.75rem;color:#555d65;margin:6px 0}

/* Listas / tabelas / gráficos */
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:13px;background:#fff;-webkit-overflow-scrolling:touch}.data-table{width:100%;min-width:640px;border-collapse:collapse;background:#fff}.data-table th,.data-table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}.data-table th{font-size:.65rem;text-transform:uppercase;letter-spacing:.075em;color:var(--muted);background:#faf9f6;position:sticky;top:0;z-index:1}.list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.call{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);background:#fff;border-radius:12px}.call-icon{width:36px;height:36px;flex:0 0 auto;border-radius:10px;background:var(--brand-soft);display:grid;place-items:center}.bar-row{display:grid;grid-template-columns:minmax(72px,110px) minmax(80px,1fr) 62px;gap:8px;align-items:center}.bar-track{height:9px;background:#ece9e2;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:var(--brand);border-radius:999px}

/* Formulários administrativos */
.permissions-grid{display:grid;grid-template-columns:1fr;gap:7px}.permissions-grid label{display:flex;gap:8px;align-items:center;font-size:.8rem}.recipe-row,.effect-row{display:grid;grid-template-columns:1fr;gap:8px;align-items:end}.color-swatch{width:34px;height:34px;border-radius:9px;border:1px solid var(--line)}.logo-preview{width:72px;height:72px;border:1px solid var(--line);border-radius:14px;object-fit:contain;background:white}.cover-preview{width:100%;max-width:420px;height:140px;border:1px solid var(--line);border-radius:14px;object-fit:cover;background:#eee}.blocked-overlay{padding:16px;border:1px dashed var(--danger);background:#fff5f5;border-radius:13px}.warning-card{border-color:#eccf8b;background:#fffaf0}

/* Suporte */
.support-ticket{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.support-ticket p{white-space:pre-wrap;line-height:1.5}.support-status{min-width:130px}.pilot-ready{border-color:rgba(168,255,62,.5);box-shadow:0 0 0 3px rgba(168,255,62,.08)}

/* Modais */
.modal-backdrop{position:fixed;z-index:2500;inset:0;background:rgba(10,12,14,.7);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(3px)}.modal{width:100%;max-height:92dvh;overflow:auto;background:var(--paper);border-radius:20px 20px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 70px rgba(0,0,0,.25)}.modal.wide{width:100%}.modal>.row.between:first-child{position:sticky;top:-18px;z-index:3;background:var(--paper);padding:18px 0 10px;border-bottom:1px solid var(--line);margin-bottom:10px}.manual-order-summary{position:static}.toast-area{position:fixed;z-index:4000;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:7px;pointer-events:none}.toast{align-self:center;width:min(100%,420px);background:#1b1f23;color:#fff;padding:11px 13px;border-radius:11px;box-shadow:0 15px 45px rgba(0,0,0,.2)}.toast.error{background:#8f2525}

/* Mobile role nav */
.mobile-role-nav{position:fixed;z-index:880;left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));min-height:62px;padding:5px;display:flex;justify-content:center;gap:4px;background:rgba(255,255,255,.95);border:1px solid #dfe2dc;border-radius:17px;box-shadow:0 14px 44px rgba(18,22,25,.17);backdrop-filter:blur(16px)}.mobile-role-nav button{flex:1 1 0;min-width:0;max-width:120px;min-height:50px;padding:5px 4px;border:0;border-radius:12px;background:transparent;color:#667078;font-size:.66rem;font-weight:850;line-height:1.1}.mobile-role-nav button span{display:block;font-size:1.02rem;margin-bottom:3px}.mobile-role-nav button.active{background:#f1f5ed;color:#17191c;box-shadow:inset 0 3px var(--brand)}

/* Super Admin */
.super-shell{min-height:100dvh;background:var(--paper)}.super-header{position:sticky;top:0;z-index:120;min-height:66px;padding:11px 12px;background:#121416;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(255,255,255,.08)}.super-brand-lockup .brand-system-logo{width:126px}.super-header>.row{gap:6px}.super-main{padding:18px 12px 50px;max-width:1440px;margin:auto}.company-card{border-left:4px solid var(--brand)}

/* PWA / offline */
.network-status-banner{position:fixed;z-index:5000;left:50%;top:max(10px,env(safe-area-inset-top));transform:translate(-50%,-150%);width:calc(100% - 24px);max-width:520px;display:flex;justify-content:center;gap:8px;align-items:center;padding:10px 13px;border-radius:13px;background:#b42318;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .2s ease;font-size:.78rem}.network-status-banner.show{transform:translate(-50%,0)}.pwa-install-btn{position:fixed;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:850;border:0;border-radius:999px;padding:11px 15px;background:var(--brand);color:#17191c;font-weight:850;box-shadow:0 12px 32px rgba(0,0,0,.2)}.pwa-push-btn{margin-top:9px;text-align:left}.pwa-push-btn.active{border-color:var(--brand-strong);color:#477a10}.offline-shell{min-height:100dvh;display:grid;place-items:center;padding:20px;background:#17191c}.offline-card{width:min(520px,100%);padding:24px;border-radius:22px;background:#f5f3ed;color:#17191c;box-shadow:0 25px 80px rgba(0,0,0,.35)}.offline-status{display:flex;align-items:center;gap:9px;margin:20px 0;padding:12px 13px;background:#fff;border-radius:12px}.offline-dot{width:10px;height:10px;border-radius:50%;background:#b42318;box-shadow:0 0 0 5px rgba(180,35,24,.12)}

/* 480+ */
@media(min-width:480px){
  .main{padding-left:16px;padding-right:16px}.topbar{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}.table-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mini-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.permissions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-row,.effect-row{grid-template-columns:minmax(0,1fr) 110px 42px}.subscription-banner{flex-direction:row;align-items:center;justify-content:space-between}.subscription-banner .btn{width:auto}.toast-area{left:auto;right:16px;bottom:16px;width:360px}.toast{width:100%}
}
/* 720+ */
@media(min-width:720px){
  .grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-5{grid-template-columns:repeat(3,minmax(0,1fr))}.card{padding:18px}.main{padding:20px 22px 70px}.topbar{margin:0 0 22px;padding:0 0 16px;background:transparent;backdrop-filter:none}.table-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:12px}.table-card{min-height:150px;padding:15px}.modal-backdrop{align-items:center;padding:18px}.modal{width:min(760px,100%);max-height:90dvh;border-radius:20px;padding:20px}.modal.wide{width:min(1080px,100%)}.modal>.row.between:first-child{top:-20px;padding-top:20px}.manual-order-summary{position:sticky;top:12px;align-self:start}.super-main{padding:26px 24px}.super-header{padding:13px 24px}.super-brand-lockup .brand-system-logo{width:150px}.pwa-install-btn{bottom:18px}
}
/* 960+ desktop */
@media(min-width:960px){
  .login-shell{grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr)}.login-hero{min-height:100dvh;padding:clamp(44px,6vw,92px)}.login-panel{padding:38px}.login-brand-logo{width:min(360px,70%)}.hero-copy p{font-size:1.1rem}
  .app-shell{display:grid;grid-template-columns:270px minmax(0,1fr)}.sidebar{position:sticky;z-index:10;top:0;width:auto;height:100vh;transform:none;box-shadow:none}.sidebar-close,.sidebar-backdrop,.mobile-menu-btn,.mobile-role-nav{display:none!important}.main{padding:28px 30px 60px}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px}.topbar-brand-logo{display:block;width:106px;max-height:42px;object-fit:contain;margin-top:2px}.topbar>.row{grid-column:auto;width:auto;display:flex;flex-wrap:wrap;justify-content:flex-end}.topbar #refreshBtn{display:inline-flex}.branch-picker{width:auto;min-width:180px}.topbar-page-copy h1{font-size:1.9rem}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.board{grid-template-columns:repeat(3,minmax(230px,1fr));gap:14px}.permissions-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page>.row.between{align-items:center}.pwa-install-btn{bottom:18px}.super-main{padding:30px 34px}.super-header{padding:14px 30px}
}
/* very wide */
@media(min-width:1380px){.main{padding-left:42px;padding-right:42px}.table-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
