/* ============================================================
   CONFRARIA DA CARNE — Painel Administrativo
   Mesmo sistema visual do site (tokens + tipografia)
   ============================================================ */
:root{
  --char:#15100c; --char-2:#1c140e; --char-3:#120d09;
  --surface:#231910; --surface-2:#2c2015; --surface-3:#37281a;
  --line:rgba(244,235,221,.12); --line-strong:rgba(244,235,221,.22);
  --cream:#f4ebdd; --cream-dim:#c8b6a1; --cream-mute:#9a8973;
  --ember:#e8862e; --ember-2:#f4a73c; --ember-deep:#b9531a;
  --red:#d8474a; --red-soft:#c63c40; --red-deep:#8b1e22;
  --green:#3a9d5d; --green-soft:#2f8650;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--char);color:var(--cream);
  font-family:"Archivo",system-ui,sans-serif;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.cond{font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.04em}
::selection{background:rgba(232,134,46,.3)}

/* form controls (shared) */
.lbl{display:block;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--cream-dim);margin-bottom:7px}
.inp{
  width:100%;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:6px;
  color:var(--cream);font-family:"Archivo";font-size:.96rem;padding:.72em .85em;transition:border-color .2s,box-shadow .2s;
}
.inp::placeholder{color:var(--cream-mute)}
.inp:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(232,134,46,.15)}
select.inp{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%23c8b6a1' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right .8em center;padding-right:2em}

/* buttons */
.btn{
  --bg:var(--ember);--fg:#1a1006;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:"Oswald",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;
  padding:.8em 1.4em;border-radius:5px;background:var(--bg);color:var(--fg);border:1px solid transparent;
  transition:transform .2s var(--ease),box-shadow .2s,background .2s,border-color .2s,opacity .2s;
}
.btn:hover{transform:translateY(-1px)}
.btn svg{width:1.1em;height:1.1em}
.btn.ghost{--bg:transparent;--fg:var(--cream);border-color:var(--line-strong)}
.btn.ghost:hover{border-color:var(--ember);color:var(--ember-2)}
.btn.danger{--bg:transparent;--fg:var(--red);border-color:rgba(216,71,74,.4)}
.btn.danger:hover{--bg:var(--red-deep);--fg:var(--cream);border-color:var(--red-deep)}
.btn.green{--bg:var(--green);--fg:#06210d}
.btn.sm{padding:.55em 1em;font-size:.74rem}
.btn:disabled{opacity:.45;pointer-events:none}

.icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--line);background:rgba(0,0,0,.2);color:var(--cream-dim);transition:.2s}
.icon-btn:hover{color:var(--cream);border-color:var(--line-strong)}
.icon-btn.del:hover{color:var(--red);border-color:rgba(216,71,74,.4)}
.icon-btn svg{width:17px;height:17px}

/* ============================================================ LOGIN */
.login-wrap{min-height:100svh;display:grid;place-items:center;position:relative;overflow:hidden;padding:24px}
.login-bg{position:absolute;inset:0;z-index:0}
.login-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) brightness(.62)}
.login-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 30%,rgba(18,12,8,.55),var(--char) 95%)}
.login-embers{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.login-card{
  position:relative;z-index:2;width:100%;max-width:410px;
  background:linear-gradient(168deg,rgba(44,32,21,.96),rgba(18,13,9,.97));
  border:1px solid var(--line-strong);border-radius:14px;padding:40px 34px 34px;
  box-shadow:0 50px 100px -40px rgba(0,0,0,.85);backdrop-filter:blur(8px);
}
.login-card .logo{height:84px;margin:0 auto 18px;width:auto}
.login-head{text-align:center;margin-bottom:26px}
.login-head .eyebrow{font-family:"Oswald";text-transform:uppercase;letter-spacing:.3em;font-size:.66rem;color:var(--ember-2);font-weight:600}
.login-head h1{font-family:"Oswald";text-transform:uppercase;letter-spacing:.02em;font-weight:600;font-size:1.7rem;margin-top:4px}
.login-head p{color:var(--cream-mute);font-size:.86rem;margin-top:2px}
.login-card .field{margin-bottom:16px;position:relative}
.login-card .field .pw-toggle{position:absolute;right:10px;top:32px;color:var(--cream-mute);background:none;border:0;padding:4px;display:flex}
.login-card .field .pw-toggle:hover{color:var(--cream-dim)}
.login-card .field .pw-toggle svg{width:18px;height:18px}
.login-card .btn{width:100%;margin-top:6px}
.login-err{display:none;background:rgba(139,30,34,.25);border:1px solid rgba(216,71,74,.4);color:#f0b5b6;font-size:.84rem;padding:.7em .9em;border-radius:6px;margin-bottom:16px;text-align:center}
.login-err.show{display:block}
.login-hint{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);text-align:center;color:var(--cream-mute);font-size:.78rem;line-height:1.7}
.login-hint b{color:var(--cream-dim);font-family:"Oswald";letter-spacing:.05em}
.login-back{position:absolute;left:24px;top:22px;z-index:3;display:inline-flex;align-items:center;gap:7px;font-family:"Oswald";text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--cream-dim);transition:.2s}
.login-back:hover{color:var(--cream)}
.login-back svg{width:14px;height:14px}

/* ============================================================ APP SHELL */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100svh}

/* sidebar */
.side{
  background:linear-gradient(180deg,var(--char-2),var(--char-3));border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100svh;
}
.side-logo{padding:22px 22px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}
.side-logo img{height:46px;width:auto}
.side-logo .nm{font-family:"Oswald";text-transform:uppercase;letter-spacing:.05em;font-weight:600;font-size:.92rem;line-height:1.1}
.side-logo .nm small{display:block;color:var(--ember-2);font-size:.62rem;letter-spacing:.18em;font-weight:500}
.side-nav{padding:16px 14px;flex:1;display:flex;flex-direction:column;gap:4px}
.side-nav .sec-lbl{font-family:"Oswald";text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:var(--cream-mute);padding:14px 12px 6px}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:.7em .85em;border-radius:8px;
  font-family:"Oswald";text-transform:uppercase;letter-spacing:.06em;font-size:.84rem;font-weight:500;
  color:var(--cream-dim);border:1px solid transparent;transition:.2s;width:100%;background:none;text-align:left;
}
.nav-item svg{width:19px;height:19px;flex:none}
.nav-item:hover{color:var(--cream);background:rgba(244,235,221,.04)}
.nav-item.active{background:linear-gradient(100deg,rgba(232,134,46,.16),rgba(232,134,46,.04));color:var(--ember-2);border-color:rgba(232,134,46,.25)}
.nav-item .badge{margin-left:auto;background:var(--red-soft);color:#fff;font-size:.66rem;font-weight:600;border-radius:20px;padding:.05em .55em;min-width:20px;text-align:center}
.side-foot{padding:14px;border-top:1px solid var(--line)}
.side-user{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:8px}
.side-user .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--ember),var(--ember-deep));display:flex;align-items:center;justify-content:center;font-family:"Oswald";font-weight:600;color:#1a1006;font-size:.9rem}
.side-user .who{font-size:.82rem;line-height:1.2}
.side-user .who small{color:var(--cream-mute);font-size:.72rem}

/* main */
.main{display:flex;flex-direction:column;min-width:0}
.topbar{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px 28px;background:rgba(18,13,9,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
}
.topbar h1{font-family:"Oswald";text-transform:uppercase;letter-spacing:.02em;font-weight:600;font-size:1.32rem;line-height:1}
.topbar .sub{color:var(--cream-mute);font-size:.8rem;margin-top:2px}
.topbar-actions{display:flex;align-items:center;gap:10px}
.burger{display:none}
.content{padding:28px;max-width:1080px;width:100%}
.view{display:none}
.view.active{display:block;animation:fadeView .4s var(--ease)}
@keyframes fadeView{from{transform:translateY(10px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.view.active{animation:none}}

/* cards / panels */
.panel{background:linear-gradient(168deg,var(--surface),var(--char-3));border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:20px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px;flex-wrap:wrap}
.panel-head h2{font-family:"Oswald";text-transform:uppercase;letter-spacing:.02em;font-weight:600;font-size:1.18rem}
.panel-head .gf{font-family:"Oswald";font-size:.58rem;letter-spacing:.12em;background:var(--red-deep);color:var(--cream);padding:.3em .65em;border-radius:30px;font-weight:600;margin-left:8px}
.panel-desc{color:var(--cream-mute);font-size:.86rem;margin-bottom:16px;text-wrap:pretty}

/* stat row */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stat{background:linear-gradient(165deg,var(--surface),var(--char-3));border:1px solid var(--line);border-radius:11px;padding:16px 18px}
.stat .v{font-family:"Anton";font-size:2rem;line-height:1;color:var(--cream)}
.stat .v.ember{color:var(--ember-2)} .stat .v.red{color:var(--red)} .stat .v.green{color:var(--green)}
.stat .l{font-family:"Oswald";text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--cream-mute);margin-top:5px}
@media(max-width:780px){.stats{grid-template-columns:repeat(2,1fr)}}

/* MENU EDITOR */
.cat-block{border:1px solid var(--line);border-radius:11px;margin-bottom:16px;overflow:hidden;background:rgba(0,0,0,.14)}
.cat-bar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:rgba(0,0,0,.22);border-bottom:1px solid var(--line)}
.cat-bar .ci{width:34px;height:34px;border:1px solid var(--ember);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ember-2);flex:none}
.cat-bar .ci svg{width:18px;height:18px}
.cat-bar h3{font-family:"Oswald";text-transform:uppercase;letter-spacing:.03em;font-weight:600;font-size:1.05rem;flex:1}
.cat-bar .count{color:var(--cream-mute);font-size:.78rem}
.item-row{display:grid;grid-template-columns:1fr 168px 110px 40px;gap:12px;padding:12px 16px;align-items:start;border-bottom:1px solid rgba(244,235,221,.06)}
.item-row:last-child{border-bottom:0}
.item-row . in-name{font-weight:500}
.item-row .descline{margin-top:7px}
.item-row .inp.mini{padding:.5em .7em;font-size:.86rem}
.item-row .pricewrap{position:relative}
.item-row .pricewrap::before{content:"R$";position:absolute;left:.7em;top:50%;transform:translateY(-50%);color:var(--cream-mute);font-size:.82rem;pointer-events:none}
.item-row .pricewrap .inp{padding-left:2.3em}
.item-head{display:grid;grid-template-columns:1fr 168px 110px 40px;gap:12px;padding:0 16px 8px;font-family:"Oswald";text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;color:var(--cream-mute)}
.cat-foot{padding:12px 16px}
@media(max-width:720px){
  .item-head{display:none}
  .item-row{grid-template-columns:1fr 40px;gap:10px}
  .item-row .pricewrap{grid-column:1/2}
  .item-row .del-cell{grid-row:1;grid-column:2}
}

/* tables (reservas) */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:11px}
table.tbl{width:100%;border-collapse:collapse;min-width:680px}
table.tbl th{font-family:"Oswald";text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;color:var(--cream-mute);text-align:left;padding:13px 16px;background:rgba(0,0,0,.22);border-bottom:1px solid var(--line);white-space:nowrap}
table.tbl td{padding:13px 16px;border-bottom:1px solid rgba(244,235,221,.06);font-size:.9rem;vertical-align:middle}
table.tbl tr:last-child td{border-bottom:0}
table.tbl tr:hover td{background:rgba(244,235,221,.02)}
.cust{font-weight:500}
.cust small{display:block;color:var(--cream-mute);font-size:.78rem;font-weight:400}
.pill{display:inline-flex;align-items:center;gap:6px;font-family:"Oswald";text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;font-weight:600;padding:.3em .7em;border-radius:30px;border:1px solid transparent;white-space:nowrap}
.pill .d{width:7px;height:7px;border-radius:50%}
.pill.pend{color:var(--ember-2);background:rgba(232,134,46,.1);border-color:rgba(232,134,46,.35)}.pill.pend .d{background:var(--ember)}
.pill.conf{color:#7fd79b;background:rgba(58,157,93,.12);border-color:rgba(58,157,93,.4)}.pill.conf .d{background:var(--green)}
.pill.canc{color:var(--cream-mute);background:rgba(244,235,221,.05);border-color:var(--line)}.pill.canc .d{background:var(--cream-mute)}
.pill.wait{color:var(--ember-2);background:rgba(232,134,46,.1);border-color:rgba(232,134,46,.35)}.pill.wait .d{background:var(--ember)}

/* capacity grid */
.cap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.cap-card{border:1px solid var(--line);border-radius:11px;padding:16px;background:rgba(0,0,0,.14)}
.cap-card.closed{opacity:.5}
.cap-card .cd{font-family:"Oswald";text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:.92rem;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.cap-card .cd .tagclosed{font-size:.6rem;letter-spacing:.1em;color:var(--cream-mute);border:1px solid var(--line);border-radius:20px;padding:.2em .6em}
.cap-field{margin-bottom:10px}
.cap-field:last-child{margin-bottom:0}
.cap-field label{display:flex;align-items:center;gap:6px;font-family:"Oswald";text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;color:var(--cream-mute);margin-bottom:5px}
.cap-field label .dotc{width:7px;height:7px;border-radius:50%}
.cap-field label .dotc.seat{background:var(--ember)}
.cap-field label .dotc.wait{background:var(--red-soft)}
.cap-field input{width:100%;background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:7px;color:var(--cream);font-family:"Oswald";font-weight:600;font-size:1.05rem;padding:.5em .7em;text-align:center;transition:border-color .2s}
.cap-field input:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(232,134,46,.14)}
.row-actions{display:flex;gap:6px;justify-content:flex-end}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.fchip{font-family:"Oswald";text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:500;padding:.5em 1em;border:1px solid var(--line);border-radius:30px;color:var(--cream-dim);background:transparent;transition:.2s}
.fchip:hover{color:var(--cream);border-color:var(--line-strong)}
.fchip.active{background:var(--ember);color:#1a1006;border-color:var(--ember);font-weight:600}
.empty{text-align:center;color:var(--cream-mute);padding:40px 20px;font-style:italic}

/* config: weekly schedule */
.week{display:flex;flex-direction:column;gap:10px}
.day{display:grid;grid-template-columns:150px 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.14)}
.day.closed{opacity:.62}
.day .dname{font-family:"Oswald";text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:.92rem}
.day .dname small{display:block;color:var(--cream-mute);font-size:.7rem;font-weight:400;letter-spacing:.02em}
.periods{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.period{display:inline-flex;align-items:center;gap:6px;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:7px;padding:5px 7px}
.period input[type=time]{background:none;border:0;color:var(--cream);font-family:"Oswald";font-size:.84rem;width:64px;padding:2px}
.period input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.7) sepia(1) saturate(2) hue-rotate(350deg);cursor:pointer}
.period .to{color:var(--cream-mute);font-size:.78rem}
.period .rm{color:var(--cream-mute);background:none;border:0;display:flex;padding:2px}
.period .rm:hover{color:var(--red)}
.period .rm svg{width:14px;height:14px}
.add-period{font-family:"Oswald";text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;color:var(--ember-2);background:none;border:1px dashed rgba(232,134,46,.4);border-radius:7px;padding:.45em .8em;transition:.2s}
.add-period:hover{background:rgba(232,134,46,.08);border-style:solid}
.day .closed-tag{font-family:"Oswald";text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--cream-mute)}

/* toggle switch */
.switch{position:relative;display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.switch input{position:absolute;opacity:0;pointer-events:none}
.switch .track{width:42px;height:24px;border-radius:30px;background:rgba(0,0,0,.4);border:1px solid var(--line-strong);transition:.25s;position:relative;flex:none}
.switch .track::after{content:"";position:absolute;left:2px;top:1.5px;width:18px;height:18px;border-radius:50%;background:var(--cream-mute);transition:.25s var(--ease)}
.switch input:checked + .track{background:rgba(232,134,46,.3);border-color:var(--ember)}
.switch input:checked + .track::after{transform:translateX(18px);background:var(--ember-2)}
.switch .stxt{font-family:"Oswald";text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;color:var(--cream-dim)}

/* months / periods config */
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.cfg-card{border:1px solid var(--line);border-radius:11px;padding:18px;background:rgba(0,0,0,.14)}
.cfg-card h4{font-family:"Oswald";text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:1rem;margin-bottom:3px}
.cfg-card .hint{color:var(--cream-mute);font-size:.8rem;margin-bottom:14px}
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;width:fit-content}
.stepper button{width:42px;height:42px;background:rgba(0,0,0,.25);border:0;color:var(--ember-2);font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:.2s}
.stepper button:hover{background:rgba(232,134,46,.12)}
.stepper .val{min-width:54px;text-align:center;font-family:"Anton";font-size:1.5rem;color:var(--cream)}
.stepper .val small{font-family:"Oswald";font-size:.6rem;display:block;color:var(--cream-mute);letter-spacing:.1em}

/* holidays */
.holiday-add{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.holiday-add .field{flex:1;min-width:140px}
.holiday-list{display:flex;flex-direction:column;gap:8px}
.holiday{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:9px;background:rgba(0,0,0,.16)}
.holiday .hd{width:46px;height:46px;border-radius:8px;background:linear-gradient(160deg,var(--red-deep),var(--char-3));border:1px solid rgba(216,71,74,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}
.holiday .hd .dd{font-family:"Anton";font-size:1.15rem;line-height:1;color:var(--red)}
.holiday .hd .mm{font-family:"Oswald";font-size:.56rem;letter-spacing:.1em;color:var(--cream-dim);text-transform:uppercase}
.holiday .hn{flex:1}
.holiday .hn .t{font-weight:500}
.holiday .hn .s{color:var(--cream-mute);font-size:.78rem}

/* save bar */
.savebar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:rgba(28,20,14,.94);backdrop-filter:blur(10px);border:1px solid var(--line-strong);border-radius:11px;
  padding:13px 18px;margin-top:8px;box-shadow:0 20px 50px -20px rgba(0,0,0,.7)}
.savebar .msg{font-size:.84rem;color:var(--cream-dim)}
.savebar .msg b{color:var(--ember-2)}
.savebar .grp{display:flex;gap:10px}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,160%);z-index:120;background:var(--surface-2);border:1px solid var(--ember);color:var(--cream);padding:13px 20px;border-radius:9px;font-size:.9rem;box-shadow:0 20px 50px rgba(0,0,0,.5);transition:transform .4s var(--ease);max-width:90vw;display:flex;align-items:center;gap:10px}
.toast.show{transform:translate(-50%,0)}
.toast.ok{border-color:var(--green)} .toast.ok svg{color:var(--green)}
.toast svg{width:18px;height:18px;color:var(--ember-2);flex:none}

/* modal */
.modal{position:fixed;inset:0;z-index:100;background:rgba(8,5,3,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s}
.modal.open{opacity:1;pointer-events:auto}
.modal-card{background:linear-gradient(168deg,var(--surface-2),var(--char-3));border:1px solid var(--line-strong);border-radius:13px;padding:26px;max-width:440px;width:100%;transform:scale(.95);transition:transform .3s var(--ease)}
.modal.open .modal-card{transform:none}
.modal-card h3{font-family:"Oswald";text-transform:uppercase;letter-spacing:.02em;font-weight:600;font-size:1.3rem}
.modal-card p{color:var(--cream-dim);font-size:.92rem;margin-top:8px;text-wrap:pretty}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}

/* ============================================================
   RESPONSIVO + COMPATIBILIDADE CROSS-BROWSER
   ============================================================ */
/* alturas com fallback (Safari/Firefox antigos não têm svh) */
.login-wrap{min-height:100vh;min-height:100svh}
.side{height:100vh;height:100svh}

/* inputs de data/hora consistentes entre navegadores */
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-height:44px}
input[type=date]::-webkit-date-and-time-value{text-align:left}
input[type=date]::-webkit-calendar-picker-indicator,
input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.72) sepia(1) saturate(2.2) hue-rotate(350deg);cursor:pointer;opacity:.9}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
/* tap highlight + toque */
a,button,.nav-item,.fchip,.icon-btn,.switch,.stepper button{-webkit-tap-highlight-color:transparent}
.tablewrap{-webkit-overflow-scrolling:touch}

@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;z-index:60;width:min(280px,84vw);transform:translateX(-104%);transition:transform .35s var(--ease);box-shadow:30px 0 60px rgba(0,0,0,.5);padding-bottom:env(safe-area-inset-bottom)}
  .side.open{transform:none}
  .burger{display:inline-flex}
  .scrim{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .3s}
  .scrim.show{opacity:1;pointer-events:auto}
  .content{padding:18px}
  .topbar{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}
  .topbar h1{font-size:1.15rem}
  .topbar .sub{display:none}
  .day{grid-template-columns:1fr;gap:12px}
  .day .sw-cell{justify-self:start}
}

@media(max-width:680px){
  .content{padding:14px}
  /* alvos de toque ≥44px em campos e botões */
  .inp,.btn{min-height:46px}
  .login-card .btn{min-height:50px}
  .icon-btn{width:42px;height:42px}
  /* stats em 2 colunas compactas */
  .stats{grid-template-columns:repeat(2,1fr);gap:10px}
  .stat{padding:13px 14px}
  .stat .v{font-size:1.6rem}
  .panel{padding:18px 16px}

  /* ---- TABELA DE RESERVAS → CARTÕES ---- */
  table.tbl{min-width:0;display:block}
  table.tbl thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  table.tbl tbody{display:block}
  table.tbl tr{display:block;background:linear-gradient(168deg,var(--surface),var(--char-3));border:1px solid var(--line);border-radius:11px;padding:14px 14px 10px;margin-bottom:12px}
  table.tbl tr:hover td{background:none}
  table.tbl td{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;border-bottom:1px solid rgba(244,235,221,.06);text-align:right}
  table.tbl td:last-child{border-bottom:0;padding-top:12px}
  table.tbl td::before{content:attr(data-label);font-family:"Oswald";text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;color:var(--cream-mute);text-align:left;flex:none}
  table.tbl td[data-label="Cliente"]{padding-top:0}
  table.tbl td[data-label="Cliente"]::before{align-self:flex-start;margin-top:3px}
  .cust{text-align:right}
  .row-actions{justify-content:flex-end;flex-wrap:wrap}
  /* empty state spanning */
  table.tbl td .empty{width:100%}
  table.tbl tr:has(.empty){background:none;border:0;padding:0}
  table.tbl td:has(.empty){display:block;text-align:center}
  table.tbl td:has(.empty)::before{display:none}

  /* filtros roláveis horizontalmente */
  .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -14px 16px;padding:0 14px 2px}
  .filters::-webkit-scrollbar{display:none}
  .fchip{flex:none}

  /* menu editor já colapsa via regra 720px existente */

  /* config: capacidade e antecedência empilham */
  .cfg-grid{grid-template-columns:1fr}
  .cap-grid{grid-template-columns:repeat(2,1fr)}

  /* feriados: form empilhado */
  .holiday-add{flex-direction:column;align-items:stretch;gap:12px}
  .holiday-add .field{min-width:0}
  .holiday-add .btn{width:100%}

  /* barra de salvar empilha e cola no fundo com área segura */
  .savebar{flex-direction:column;align-items:stretch;gap:10px;padding:14px;bottom:env(safe-area-inset-bottom)}
  .savebar .grp{flex-direction:column-reverse}
  .savebar .grp .btn{width:100%}
  .savebar .msg{text-align:center;order:-1}

  /* modal sobe um pouco e respeita base */
  .modal{align-items:flex-end;padding:0}
  .modal-card{border-radius:16px 16px 0 0;max-width:none;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
  .modal-actions{flex-direction:column-reverse}
  .modal-actions .btn{width:100%}

  /* toast acima da savebar */
  .toast{bottom:calc(20px + env(safe-area-inset-bottom));width:calc(100vw - 28px);justify-content:center}
}

@media(max-width:400px){
  .stats{grid-template-columns:1fr 1fr}
  .cap-grid{grid-template-columns:1fr}
  .login-card{padding:32px 22px 26px}
  .login-card .logo{height:72px}
}

/* telas baixas em paisagem (login não corta) */
@media(max-height:560px){
  .login-wrap{padding:16px;align-items:flex-start}
  .login-card .logo{height:60px;margin-bottom:12px}
}

/* respeita quem prefere menos movimento */
@media (prefers-reduced-motion:reduce){
  .view.active{animation:none}
  .side,.scrim,.modal,.modal-card,.toast{transition:none}
}
