:root{
  --green:#10B981; --green-d:#0DA271; --green-dd:#047857; --green-soft:#D1FAE5; --green-bg:#ECFDF5;
  --ink:#0F1B16; --ink2:#374151; --muted:#6B7770; --muted2:#8A968F; --muted3:#9AA29B;
  --bg:#F4F6F3; --card:#fff; --field:#FBFCFA;
  --line:#EAEEE9; --line2:#E6EAE5; --line3:#E2E7DF; --line4:#F1F3EF;
  --red:#E11D48; --red-d:#B42318; --red-bg:#FFE4E1; --red-soft:#FFF4F3;
  --amber:#B45309; --amber-bg:#FEF3C7; --amber-soft:#FFFBEB;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 16px 30px -22px rgba(6,40,28,.18);
  --shadow-lg:0 1px 2px rgba(16,24,40,.04),0 22px 40px -26px rgba(6,40,28,.28);
  --r:20px;
  --disp:'Clash Display','Satoshi',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --body:'Satoshi',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.tnum{font-feature-settings:'tnum'}
.disp{font-family:var(--disp);letter-spacing:-.02em}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;outline:none;font-size:16px}
input::placeholder,textarea::placeholder{color:#AEB7B0}
.boot{padding:60px;color:var(--muted)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#D8DED8;border-radius:8px;border:3px solid var(--bg)}
@keyframes estUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes estPulse{0%,100%{box-shadow:var(--shadow-lg)}50%{box-shadow:0 0 0 6px rgba(225,29,72,.08),var(--shadow-lg)}}

/* ---------- layout ---------- */
.shell{min-height:100vh}
.shell.desktop{display:grid;grid-template-columns:256px minmax(0,1fr)}
main{padding:30px 34px 60px;min-width:0;max-width:1180px}
.desktop main{padding:34px 40px 60px}

/* ---------- sidebar (desktop) ---------- */
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 18px;background:var(--card);border-right:1px solid var(--line2)}
.brand-wrap{padding:0 6px}
.brand-logo{width:198px;max-width:100%;height:auto;border-radius:11px;display:block;box-shadow:0 6px 16px -6px rgba(124,58,160,.45)}
.brand-wrap .bs{font-size:11px;font-weight:700;color:var(--muted2);letter-spacing:.08em;margin-top:9px;padding-left:3px}
.brand-logo-sm{height:32px;width:auto;border-radius:7px;display:block}
.brand{display:flex;align-items:center;gap:11px;padding:0 8px}
.logo{width:38px;height:38px;border-radius:11px;background:var(--green);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -4px rgba(16,185,129,.55);flex:none}
.brand .bn{font-family:var(--disp);font-weight:700;font-size:23px;color:var(--ink);line-height:1}
.brand .bs{font-size:11px;font-weight:600;color:var(--muted2);letter-spacing:.04em;margin-top:2px}
nav.side{display:flex;flex-direction:column;gap:4px;margin-top:30px}
.nav-btn{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:12px;border:none;background:transparent;color:#5A655E;font-weight:600;font-size:15.5px;text-align:left;width:100%;transition:background .15s,color .15s}
.nav-btn:hover{background:#F4F6F3}
.nav-btn.active{background:var(--green-bg);color:var(--green-dd)}
.nav-btn.nav-sup{margin-top:8px;color:#0E9C63;background:var(--green-bg)}
.nav-btn.nav-sup:hover{background:#C9F4DE}
.nav-btn.nav-sup.active{background:#25D366;color:#fff}
.userbox{margin-top:auto;padding:14px;background:var(--bg);border-radius:16px;display:flex;align-items:center;gap:10px}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.userbox .un{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.userbox .up{font-size:11px;color:var(--muted2)}

/* ---------- mobile top + tabbar ---------- */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:rgba(244,246,243,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line2)}
.topbar .logo{width:30px;height:30px;border-radius:9px}
.topbar .bn{font-family:var(--disp);font-weight:700;font-size:20px;color:var(--ink)}
.chip{display:flex;align-items:center;gap:8px;padding:5px 11px 5px 6px;background:#fff;border:1px solid var(--line2);border-radius:999px}
.chip .avatar{width:24px;height:24px;font-size:11px}
.chip span{font-size:13px;font-weight:700;color:var(--ink);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;padding:8px 4px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-top:1px solid var(--line2)}
.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 1px;border:none;background:none;font-weight:700;font-size:10px;min-height:50px;color:var(--muted3);transition:color .15s}
.tab-btn.active{color:var(--green-dd)}
.tab-btn svg{width:21px;height:21px}
.tab-btn.nav-sup{color:#0E9C63}
.tab-btn.nav-sup svg{color:#25D366}

/* ---------- headers ---------- */
.screen-head{margin-bottom:24px}
.desktop .screen-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px}
h1.title{font-family:var(--disp);font-weight:600;font-size:34px;color:var(--ink)}
.screen-sub{font-size:15px;color:var(--muted);margin-top:5px}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn-ghost{background:#fff;border:1px solid var(--line2);color:var(--muted);padding:9px 14px;border-radius:11px;font-size:13.5px;font-weight:600}
.btn-ghost:hover{background:#fff;border-color:var(--green);color:var(--green-dd)}
.btn-ghost.on{background:var(--green-bg);border-color:#A7F3D0;color:var(--green-dd)}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(218px,1fr));gap:16px}
.kpi-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13.5px;font-weight:600}
.kpi-val{font-family:var(--disp);font-weight:600;font-size:34px;color:var(--ink);margin:12px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-sub{font-size:12.5px;color:var(--muted2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-red{position:relative;background:linear-gradient(180deg,var(--red-soft) 0%,#fff 62%);border-color:#FCC9C4;box-shadow:0 1px 2px rgba(225,29,72,.05),0 18px 34px -20px rgba(225,29,72,.35);animation:estPulse 3.4s ease-in-out infinite}
.kpi-red .kpi-label{color:var(--red);padding-right:96px}
.kpi-red .kpi-val{color:var(--red);font-weight:700;font-size:40px}
.kpi-red .kpi-sub{color:var(--red-d);font-weight:600}
.tagR{position:absolute;top:16px;right:16px;font-size:10.5px;font-weight:800;letter-spacing:.05em;color:var(--red);background:var(--red-bg);padding:4px 9px;border-radius:999px}

.periodo-card{margin-bottom:16px;padding:16px 18px}
.periodo-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.periodo-ctrl{display:flex;flex-direction:column;gap:5px;min-width:220px}
.periodo-lbl{font-size:12px;font-weight:600;color:var(--muted)}
.periodo-ctrl select{padding:11px 13px;font-size:15px;color:var(--ink);background:var(--field);border:1.5px solid var(--line3);border-radius:11px}
.periodo-ctrl select:focus{border-color:var(--green);background:#fff;box-shadow:0 0 0 4px rgba(16,185,129,.12)}
.periodo-custom{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.periodo-custom input{padding:10px 12px;font-size:14px;background:var(--field);border:1.5px solid var(--line3);border-radius:10px}
.periodo-custom span{color:var(--muted2);font-size:13px}
.periodo-range{font-size:13.5px;color:var(--muted2);font-weight:600;white-space:nowrap}
.two-col{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}
.desktop .two-col{grid-template-columns:1fr 1.15fr}
.card-title{font-size:16px;font-weight:700;color:var(--ink)}
.card-sub{font-size:13px;color:var(--muted2);margin-top:4px}

/* alerts */
.alert{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:14px;border:1px solid var(--line4);background:var(--field)}
.alert.warn{background:var(--amber-soft);border-color:#FCE6B0}
.alert.bad{background:var(--red-soft);border-color:#FCC9C4}
.alert .ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;color:var(--amber);background:var(--amber-bg)}
.alert.bad .ico{color:var(--red);background:var(--red-bg)}
.alert .atag{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted2)}
.alert .amsg{font-size:14.5px;color:var(--ink2);line-height:1.45;margin-top:3px;font-weight:500}

/* rendimento rows */
.rend-row{padding:15px 0;border-bottom:1px solid var(--line4)}
.rend-row:last-child{border-bottom:none}
.rend-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}
.rend-nome{font-size:15px;font-weight:600;color:var(--ink)}
.rend-meta{font-size:12.5px;color:var(--muted3)}
.rend-real{font-size:15px;font-weight:700}
.bar{position:relative;height:10px;background:#F0F2EE;border-radius:999px;overflow:hidden}
.bar>i{position:absolute;inset:0 auto 0 0;border-radius:999px;transition:width .5s ease}

/* ---------- pratos ---------- */
.pcat{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2);margin:26px 2px 12px;display:flex;align-items:center;gap:9px}
.pcat:first-child{margin-top:4px}
.pcat-n{font-size:11px;font-weight:700;color:var(--muted2);background:#fff;border:1px solid var(--line2);border-radius:999px;padding:1px 9px}
.green{color:var(--green-dd)}
.mg-chip{display:inline-block;font-size:13.5px;font-weight:800;color:var(--green-dd);background:var(--green-soft);padding:5px 11px;border-radius:999px;white-space:nowrap;font-feature-settings:'tnum'}
.fc{display:inline-block;font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;font-feature-settings:'tnum'}
.fc-ok{color:var(--green-dd);background:var(--green-soft)}
.fc-mid{color:var(--amber);background:var(--amber-bg)}
.fc-hi{color:var(--red);background:var(--red-bg)}
.pt-nome{font-size:15.5px;font-weight:700;color:var(--ink)}
.pt-ings{font-size:12.5px;color:var(--muted3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}
.pt-hide{font-size:11px;color:var(--red-d);margin-top:3px;font-weight:600}
/* tabela desktop */
.ptable-card{padding:0;overflow:hidden;box-shadow:var(--shadow-lg)}
.ptable{width:100%;border-collapse:collapse}
.ptable thead th{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted2);text-align:left;padding:13px 18px;background:#FBFCFB;border-bottom:1px solid var(--line)}
.ptable thead th.num{text-align:right}
.ptable td{padding:14px 18px;border-bottom:1px solid var(--line4);font-size:14.5px;color:var(--ink2);vertical-align:middle}
.ptable td.num{text-align:right;white-space:nowrap}
.ptable tbody tr:last-child td{border-bottom:none}
.ptable tbody tr{transition:background .12s}
.ptable tbody tr:hover{background:#FAFCFB}
/* cards mobile */
.pcards{display:flex;flex-direction:column;gap:12px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}
.pcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.pcard .pt-preco{font-size:15px;font-weight:700;color:var(--ink2);margin-top:3px;white-space:nowrap}
.pcard .pt-ings{max-width:none;white-space:normal;margin:10px 0 0;line-height:1.5}
.pstats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line4);border:1px solid var(--line4);border-radius:13px;overflow:hidden;margin-top:14px}
.pstats > div{background:#fff;padding:11px 8px;text-align:center}
.ps-l{font-size:11px;color:var(--muted2);font-weight:600}
.ps-v{font-size:16px;font-weight:700;color:var(--ink);margin-top:3px;white-space:nowrap}

/* ---------- estoque ---------- */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}
.sec-h{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.dot{width:9px;height:9px;border-radius:50%}
.item-row{display:flex;align-items:center;gap:12px;padding:13px;background:var(--field);border:1px solid var(--line4);border-radius:14px}
.item-row .iname{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item-row .imeta{font-size:12.5px;color:var(--muted3);margin-top:2px}
.item-row .iqty{font-size:16px;font-weight:700;color:var(--ink);text-align:right}
.pill{display:inline-block;margin-top:5px;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}
.pill.ok{color:var(--green-dd);background:var(--green-soft)}
.pill.low{color:var(--amber);background:var(--amber-bg)}
.pill.out{color:var(--red);background:var(--red-bg)}
.stacklist{display:flex;flex-direction:column;gap:8px}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.desktop .form-grid.two{grid-template-columns:1fr 1fr}
.field{display:block}
.field>span{font-size:12.5px;font-weight:600;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;margin-top:6px;padding:13px 14px;font-size:16px;color:var(--ink);background:var(--field);border:1px solid var(--line3);border-radius:12px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);background:#fff;box-shadow:0 0 0 4px rgba(16,185,129,.12)}
.field input.big{font-size:20px;font-weight:700}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fields-stack{display:flex;flex-direction:column;gap:14px}
.btn-primary{width:100%;padding:16px;font-size:16px;font-weight:700;color:#fff;background:var(--green);border:none;border-radius:14px;min-height:52px;box-shadow:0 10px 22px -8px rgba(16,185,129,.6);transition:background .15s}
.btn-primary:hover{background:var(--green-d)}
.btn-dark{width:100%;padding:16px;font-size:16px;font-weight:700;color:#fff;background:var(--ink);border:none;border-radius:14px;min-height:52px}
.btn-dark:hover{background:#1F2A24}
.btn-soft{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;font-size:14.5px;font-weight:700;color:var(--green-dd);background:var(--green-soft);border:none;border-radius:12px;min-height:46px}
.btn-soft:hover{background:#A7F3D0}
.help{font-size:14px;color:var(--muted)}
.help b{color:var(--green-dd)}
.chips3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:7px}
.tchip{padding:13px 6px;font-size:14px;font-weight:700;border-radius:11px;min-height:48px;border:1.5px solid var(--line3);background:#fff;color:var(--muted)}
.tchip.on-venda{border-color:var(--green-dd);background:var(--green-soft);color:var(--green-dd)}
.tchip.on-perda{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.tchip.on-ajuste{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}
.empty{padding:34px 16px;text-align:center;border:1.5px dashed var(--line3);border-radius:14px;color:#AEB7B0;font-size:14px;line-height:1.5}
.nota-sum{position:sticky;top:16px}
.nota-line{display:flex;align-items:center;gap:10px;padding:13px;background:var(--field);border:1px solid var(--line4);border-radius:14px}
.nota-line .nn{font-size:14.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nota-line .nd{font-size:12.5px;color:var(--muted3);margin-top:2px}
.nota-line .nt{font-size:15px;font-weight:700;color:var(--ink)}
.x-btn{flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #F1D6D3;border-radius:9px;color:var(--red)}
.x-btn:hover{background:#FFF1F0}
.total-line{display:flex;align-items:baseline;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px solid #EFF1EC}
.total-line .tl{font-size:14px;color:var(--muted);font-weight:600}
.total-line .tv{font-family:var(--disp);font-weight:700;font-size:30px;color:var(--ink)}

/* processar live panel */
.proc-panel{border-radius:var(--r);padding:24px;border:1px solid;transition:.25s}
.proc-panel.idle{background:var(--field);border-color:var(--line)}
.proc-panel.ok{background:linear-gradient(180deg,#ECFDF5,#fff 70%);border-color:#A7F3D0}
.proc-panel.bad{background:linear-gradient(180deg,var(--red-soft),#fff 70%);border-color:#FCC9C4}
.proc-panel.good{background:linear-gradient(180deg,#EEF2FF,#fff 70%);border-color:#C7D2FE}
.proc-cap{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.02em}
.proc-big{font-family:var(--disp);font-weight:700;font-size:72px;line-height:.9;margin:14px 0 2px}
.proc-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.proc-mini .m{background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.05);border-radius:14px;padding:14px}
.proc-mini .ml{font-size:12px;color:var(--muted);font-weight:600}
.proc-mini .mv{font-size:24px;font-weight:700;margin-top:4px}
.proc-hint{margin-top:14px;font-size:13.5px;line-height:1.5;color:#5A655E}

/* baixa list */
.baixa-row{display:flex;align-items:center;gap:12px;padding:13px;background:var(--field);border:1px solid var(--line4);border-radius:14px}
.baixa-row .br-ico{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}

/* obs box */
.obs{margin-top:14px;padding:13px 15px;background:var(--amber-soft);border:1px solid #FCE6B0;border-radius:14px}
.obs .ph{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--amber);text-transform:uppercase;margin-bottom:6px}
.obs p{font-size:13.5px;line-height:1.55;color:#7C5310}
.obs b{color:#92400E}
.logout-btn{background:#fff;border:1px solid var(--line2);color:var(--muted);padding:7px 12px;border-radius:10px;font-size:12.5px;font-weight:700;flex:none}
.logout-btn:hover{border-color:var(--red);color:var(--red)}

/* login */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,#E9FBF2,transparent),var(--bg)}
.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:30px 26px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px}
.login-logo{width:180px;max-width:70%;height:auto;border-radius:12px;align-self:center;box-shadow:0 8px 20px -8px rgba(124,58,160,.5)}
.login-sub{text-align:center;color:var(--muted2);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.login-err{color:var(--red);font-size:13.5px;font-weight:600;text-align:center;min-height:18px}
.login-credit{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;font-size:13px;color:var(--muted);text-decoration:none}
.login-credit b{color:var(--ink)}
.login-credit:hover{color:var(--green-dd)}

/* suporte */
.sup-ico{width:60px;height:60px;border-radius:18px;background:#25D366;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 10px 22px -8px rgba(37,211,102,.7)}
.btn-wa{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px;background:#25D366;color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;text-decoration:none;box-shadow:0 10px 22px -8px rgba(37,211,102,.6)}
.btn-wa:hover{background:#1FB855}
.sup-credit{margin-top:16px;font-size:13px;color:var(--muted2)}
.sup-credit b{color:var(--ink)}

/* tour */
#tour{position:fixed;inset:0;z-index:9000;font-family:var(--body)}
.tour-block{position:fixed;inset:0;z-index:9000}
.tour-spot{position:fixed;z-index:9001;border-radius:14px;box-shadow:0 0 0 4px var(--green),0 0 0 9999px rgba(8,20,14,.6);pointer-events:none;transition:all .25s ease}
.tour-balloon{position:fixed;z-index:9005;width:300px;max-width:88vw;background:#fff;border-radius:18px;padding:18px;box-shadow:0 24px 60px -12px rgba(0,0,0,.5)}
.tb-x{position:absolute;top:12px;right:13px;background:none;border:none;color:var(--muted3);font-size:15px;cursor:pointer;line-height:1}
.tb-step{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--green-dd);text-transform:uppercase}
.tb-title{font-weight:600;font-size:19px;color:var(--ink);margin:6px 0 7px;padding-right:18px}
.tb-text{font-size:14px;line-height:1.55;color:var(--ink2)}
.tb-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}
.tb-off{background:none;border:none;color:var(--muted2);font-size:12.5px;font-weight:600;text-decoration:underline;cursor:pointer;padding:0}
.tb-next{background:var(--green);color:#fff;border:none;padding:11px 20px;border-radius:11px;font-size:14.5px;font-weight:700;cursor:pointer}
.tb-next:hover{background:var(--green-d)}

/* loading overlay */
.loading-overlay{position:fixed;inset:0;z-index:80;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:rgba(244,246,243,.82);backdrop-filter:blur(4px)}
.loading-overlay.show{display:flex}
.loading-msg{font-size:15px;font-weight:700;color:var(--ink)}
.spinner{width:46px;height:46px;border-radius:50%;border:4px solid #D9E4DE;border-top-color:var(--green);animation:estSpin .8s linear infinite}
@keyframes estSpin{to{transform:rotate(360deg)}}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(16px);display:flex;align-items:center;gap:9px;background:var(--ink);color:#fff;padding:13px 20px;border-radius:14px;font-size:15px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:60;box-shadow:0 14px 30px -10px rgba(0,0,0,.4);max-width:92vw}
.desktop .toast{bottom:32px}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--red)}

/* ---------- responsive ---------- */
@media (max-width:859px){
  main{padding:18px 16px 100px;max-width:100%}
  h1.title{font-size:26px}
  .screen-sub{font-size:14px}
  .kpi-val{font-size:36px}
  .kpi-red .kpi-val{font-size:40px}
  .proc-big{font-size:64px}
  .grid-kpi{grid-template-columns:1fr}
  .grid-pratos{grid-template-columns:minmax(0,1fr)}
  .grid-2{grid-template-columns:minmax(0,1fr)}
  .kpi-red .kpi-label{padding-right:96px}
  .nota-sum{position:static}
}
