/* ==========================================================================
   Shooting Club Fortes — tema escuro premium
   Grafite frio em camadas e o azul elétrico do logo como único destaque;
   vermelho só para alerta. Geist na interface, Geist Mono nos números.
   ========================================================================== */
:root{
  color-scheme:dark;
  --page:#0A0C10;          /* fundo da página */
  --side:#0D1015;          /* barra lateral */
  --paper:#12151B;         /* blocos (nome mantido: usado pelo gráfico) */
  --panel:#12151B;
  --panel-2:#181C23;
  --panel-3:#20252E;
  --ink:#E9EDF3;
  --muted:#8B94A3;
  --dim:#5D6675;
  --rule:#1F242C;
  --rule-2:#2C333D;
  --accent:#4C8DFF;
  --accent-rgb:76,141,255;
  --accent-ink:#030B1A;
  --accent-soft:rgba(76,141,255,.14);
  --out:#56606E;           /* barras de saída */
  --danger:#E5735F;
  --danger-soft:rgba(229,115,95,.14);
  --stone:#8B94A3;         /* intervalo */
  --faint:rgba(255,255,255,.035);
  --radius:14px;
  --sans:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'Geist Mono',ui-monospace,Menlo,Consolas,monospace;
  --gutter:32px;
  /* cores que mudam com o tema (o tema claro está no fim do arquivo) */
  --topbar:rgba(10,12,16,.84);
  --avatar-bg:linear-gradient(145deg,#2B3341,#171B22);
  --ponto-bg:linear-gradient(160deg,#1F2734,#141922);
  --ponto-ic:#8C97A8;
  --ponto-off:#4A5260;
  --brilho:rgba(255,255,255,.08);
  --erro-txt:#FFD9D1;
  --aviso-txt:#F3D6AE;
  --pdf-txt:#F08B78;
  --sombra:rgba(0,0,0,.5);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--page);-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{background:var(--page);color:var(--ink);font-family:var(--sans);font-size:13.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
body.travado{overflow:hidden}
::selection{background:var(--accent);color:var(--accent-ink)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--page)}
::-webkit-scrollbar-thumb{background:var(--rule-2);border-radius:8px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none !important}
.sheet{max-width:1440px;margin:0 auto;padding:0 var(--gutter)}
.label{font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.num,.big,.ledger .v,.ledger .d,.mini td,.bar-row .vl,.bar-row .pc,.cat-row .vl,.cat-row .pc,.cat-total .vl,.cat-total .pc,
.pp-clock,.pp-stats .v,.pp-list .t,.pp-list .nsr,.pp-hist td+td,.tl-ax,.espelho .punches,.ponto-clock,.ponto-state b,
#teamTable td.r,.espelho td.r,.lede em,.readout b,.lst-v{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ==========================================================================
   Estrutura: barra lateral + conteúdo
   ========================================================================== */
.app{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--side);border-right:1px solid var(--rule);padding:16px 14px 14px;overflow-y:auto;scrollbar-width:thin}
.side-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 16px;margin-bottom:16px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}
.side-brand img{width:68px;height:auto;flex:none;filter:drop-shadow(0 0 12px rgba(var(--accent-rgb),.25))}
.side-brand b{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}
.side-brand small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.5em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.side-nav{flex:1}
.side-sec{margin-bottom:18px}
.side-sec-title{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:0 10px 6px}
.side-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:13.5px;font-weight:500;transition:color .15s,background-color .15s}
.side-link svg{width:18px;height:18px;flex:none}
.side-link span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-link:hover{color:var(--ink);background:var(--faint)}
.side-link.active{color:var(--ink);background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--rule-2)}
.side-link.active svg{color:var(--accent)}
.selo{font-style:normal;font-family:var(--mono);font-size:11px;font-weight:600;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-grid;place-items:center;background:var(--panel-3);color:var(--ink)}
.selo.alerta{background:var(--danger-soft);color:var(--danger)}
.selo.ok{background:var(--accent-soft);color:var(--accent)}
.side-user{display:flex;align-items:center;gap:10px;padding:12px 6px 0;border-top:1px solid var(--rule)}
.side-user-txt{flex:1;min-width:0}
.side-user-txt b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-user-txt small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who-out{background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:500;color:var(--muted);flex:none}
.who-out:hover{color:var(--ink);border-color:var(--dim)}
.avatar{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;flex:none;background:var(--avatar-bg);border:1px solid var(--rule-2);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.avatar.lg{width:52px;height:52px;font-size:16px}
.scrim-menu{display:none}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;min-height:74px;padding:12px var(--gutter);background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--rule)}
.crumbs{flex:1;min-width:0}
.crumbs h1{font-size:22px;font-weight:600;letter-spacing:-.025em;line-height:1.2;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-right{display:flex;align-items:center;gap:18px}
.menu-btn{display:none;place-items:center;width:38px;height:38px;flex:none;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:9px;color:var(--ink)}
.menu-btn svg{width:20px;height:20px}
.content{flex:1;padding:24px var(--gutter) 0;max-width:1480px;width:100%}
.colophon{margin-top:56px;padding:18px 0 28px;border-top:1px solid var(--rule);font-size:12px;color:var(--dim)}

/* ---------- registro de ponto no topo ---------- */
.ponto-btn{display:flex;align-items:center;gap:12px;flex:none;padding:6px 14px 6px 6px;border-radius:14px;border:1px solid var(--rule-2);
  background:var(--panel);color:var(--ink);text-align:left;transition:border-color .2s,background .2s,transform .2s}
.ponto-btn:hover{border-color:rgba(var(--accent-rgb),.55)}
.ponto-btn:active{transform:scale(.98)}
.ponto-btn[aria-expanded="true"]{border-color:var(--accent);background:var(--accent-soft)}
.ponto-ic{position:relative;flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;overflow:visible;color:var(--ponto-ic);
  background:var(--ponto-bg);box-shadow:inset 0 0 0 1px var(--brilho);transition:color .5s,box-shadow .5s}
.ponto-ic svg{width:24px;height:24px}
.ponto-ic::after{content:"";position:absolute;left:7px;right:7px;top:9px;height:2px;border-radius:2px;opacity:0;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 8px var(--accent)}
.ponto-dot{position:absolute;right:-4px;top:-4px;width:12px;height:12px;border-radius:50%;background:var(--ponto-off);border:2px solid var(--panel)}
.ponto-text{display:grid;line-height:1.25}
.ponto-label{font-size:13px;font-weight:600;white-space:nowrap}
.ponto-state{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap}
.ponto-state b{font-weight:500;color:var(--accent);margin-left:6px}
.ponto-clock{font-size:12.5px;font-weight:500;color:var(--muted);padding-left:12px;border-left:1px solid var(--rule)}
/* fora do expediente: a "leitura" passa pela digital, convidando a registrar a entrada */
.ponto-btn[data-state="off"] .ponto-ic::after{animation:leitura 3.2s ease-in-out infinite}
.ponto-btn[data-state="on"] .ponto-ic{color:var(--accent);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5),0 0 18px rgba(var(--accent-rgb),.35)}
.ponto-btn[data-state="on"] .ponto-dot{background:#3DBE8B;animation:pulsoVerde 2.2s ease-out infinite}
.ponto-btn[data-state="pause"] .ponto-ic{color:#E5AA5F;box-shadow:inset 0 0 0 1px rgba(229,170,95,.45)}
.ponto-btn[data-state="pause"] .ponto-dot{background:#E5AA5F}
@keyframes leitura{0%,15%{top:9px;opacity:0}25%{opacity:.9}65%{top:29px;opacity:.9}75%,100%{top:29px;opacity:0}}
@keyframes pulsoVerde{0%{box-shadow:0 0 0 0 rgba(61,190,139,.6)}100%{box-shadow:0 0 0 7px rgba(61,190,139,0)}}
@media (prefers-reduced-motion:reduce){.ponto-ic::after,.ponto-dot{animation:none!important}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.6);opacity:0}}

/* ---------- controle segmentado e chips ---------- */
.seg{display:inline-flex;gap:2px;padding:3px;background:var(--panel);border:1px solid var(--rule);border-radius:10px}
.seg button{background:none;border:0;border-radius:7px;padding:6px 12px;font-size:12.5px;font-weight:500;color:var(--muted);white-space:nowrap;transition:color .15s,background-color .15s}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--panel-3);color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule-2)}
.seg button:disabled{opacity:.4;cursor:not-allowed}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--panel-2);border:1px solid var(--rule-2);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:500;color:var(--muted);transition:all .15s}
.chip:hover{color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:rgba(var(--accent-rgb),.5);color:var(--accent)}
.chip:disabled{opacity:.55;cursor:default}

/* ==========================================================================
   Seções e blocos
   ========================================================================== */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.sec-dek{color:var(--muted);font-size:13.5px;max-width:72ch}
.sec-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sub-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:30px 0 12px}
.sub-head h3{font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.sub-head .tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}

.cols{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}
.cols.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.cols:has(> [hidden]){grid-template-columns:minmax(0,1fr)}
.cols>*{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:20px 22px;min-width:0}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.panel-head h3{font-size:15px;font-weight:600;letter-spacing:-.01em}

.rules>.grid{display:grid;gap:14px}
.rules>.grid>*{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}

.lede{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:15px 20px;margin-bottom:14px}
.lede p{font-size:14.5px;line-height:1.55;color:var(--muted)}
.lede em{font-style:normal;font-weight:500;color:var(--ink)}
.lede-tag{flex:none;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:6px;margin-top:1px}

.lista{list-style:none}
.lista li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.lista li:last-child{border-bottom:0}
.lst-main{flex:1;min-width:0}
.lst-main b{display:block;font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lst-main small{display:block;font-size:11.5px;color:var(--muted)}
.lst-v{font-weight:500;white-space:nowrap}

/* ---------- indicadores ---------- */
.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{padding:18px 20px;min-height:170px;display:flex;flex-direction:column}
.kpi:first-child{background:linear-gradient(180deg,rgba(var(--accent-rgb),.13),rgba(var(--accent-rgb),0) 75%),var(--panel);border-color:rgba(var(--accent-rgb),.3)}
.big{font-weight:500;font-size:clamp(24px,2.1vw,32px);line-height:1.05;letter-spacing:-.035em;margin:14px 0 12px;white-space:nowrap}
.big .cur{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted);margin-right:6px;vertical-align:.5em}
.big .unit{font-size:.55em;color:var(--muted);margin-left:4px}
.big-txt{font-family:var(--sans);font-size:.74em;letter-spacing:-.02em}
.kpi .foot{margin-top:auto;font-size:12px;color:var(--muted)}
.delta{color:var(--danger);font-weight:600}
.delta.good{color:var(--accent)}
.txt-btn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.txt-btn:hover{color:var(--accent)}
.spark{display:block;width:100%;height:38px;margin-bottom:8px}
.spark polyline{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke}
.spark .area{fill:var(--accent-soft);stroke:none}

/* ---------- gráfico ---------- */
.readout{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;padding-bottom:14px;min-height:38px;font-size:13px;color:var(--muted)}
.readout .m{font-size:15px;font-weight:600;color:var(--ink);text-transform:capitalize;margin-right:2px}
.readout .m small{font-size:11px;font-weight:500;color:var(--muted);text-transform:none;margin-left:4px}
.readout b{color:var(--ink);font-weight:500}
.sw{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:0}
.sw.in{background:var(--accent)}
.sw.out{background:var(--out)}
.sw.net{width:14px;height:0;border-radius:0;border-top:1.5px solid var(--ink);vertical-align:3px}
#cashChart{width:100%;position:relative}
#cashChart svg{display:block}
.gl{stroke:var(--rule);stroke-width:1}
.zero{stroke:var(--rule-2);stroke-width:1}
.ax{font-family:var(--mono);font-size:10.5px;fill:var(--dim)}
.ax.on{fill:var(--ink)}
.b-in{fill:var(--accent)}
.b-out{fill:var(--out)}
.b-in.partial{fill:url(#hA);stroke:var(--accent);stroke-width:.75}
.b-out.partial{fill:url(#hI);stroke:var(--out);stroke-width:.75}
.net{fill:none;stroke:var(--ink);stroke-width:1.5}
.net-pt{fill:var(--panel);stroke:var(--ink);stroke-width:1.5}
.band{fill:var(--faint)}
.hit{fill:transparent;cursor:crosshair}
.table-scroll{overflow-x:auto;margin-top:10px}
table.mini{width:100%;border-collapse:collapse;font-size:11.5px;min-width:640px}
.mini th,.mini td{padding:7px 0 7px 8px;text-align:right;border-top:1px solid var(--rule);font-weight:400;white-space:nowrap;color:var(--muted)}
.mini th:first-child,.mini td:first-child{text-align:left;padding-left:0;font-family:var(--sans)}
.mini thead th{color:var(--dim);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;border-top:0}
.mini .hl{background:var(--faint);color:var(--ink)}
.mini tr.net td{color:var(--ink);font-weight:500}

/* ---------- linhas com barras ---------- */
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 50px;gap:7px 12px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--rule)}
.bar-row:last-child{border-bottom:0}
.bar-row .nm{font-size:13.5px}
.bar-row .vl{text-align:right}
.bar-row .pc{text-align:right;color:var(--muted)}
.bar-row .bar{grid-column:1/-1;height:4px;background:var(--panel-3);border-radius:4px;position:relative;overflow:hidden}
.bar-row .bar i{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:4px}

.cat-head,.cat-row,.cat-total{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(0,2.2fr) 112px 70px;gap:18px;align-items:center}
.cat-head{padding-bottom:10px;border-bottom:1px solid var(--rule)}
.cat-head span:nth-child(n+3){text-align:right}
.cat-row{padding:12px 0;border-bottom:1px solid var(--rule)}
.cat-row .nm{font-size:13.5px;font-weight:500;line-height:1.3}
.cat-row .nm small{display:block;font-size:11.5px;font-weight:400;color:var(--muted);margin-top:2px}
.cat-row .vl,.cat-row .pc{text-align:right}
.cat-row .pc{color:var(--muted)}
.cat-row .pc.over{color:var(--danger);font-weight:600}
.track{position:relative;height:22px}
.track::before{content:"";position:absolute;left:0;right:0;top:7px;height:8px;border-radius:4px;background:var(--panel-3)}
.track .fill{position:absolute;left:0;top:7px;height:8px;border-radius:4px;background:var(--accent)}
.track .over{position:absolute;top:7px;height:8px;border-radius:0 4px 4px 0;background:var(--danger)}
.track .tick{position:absolute;top:3px;bottom:3px;width:2px;border-radius:1px;background:var(--ink)}
.track .tick::after{content:"orç.";position:absolute;top:-12px;left:4px;font-size:9.5px;color:var(--muted)}
.cat-row:not(:first-of-type) .track .tick::after{display:none}
.cat-total{padding-top:14px}
.cat-total .nm{font-weight:600}
.cat-total .vl,.cat-total .pc{text-align:right;font-weight:600}

/* ==========================================================================
   Tabelas
   ========================================================================== */
.ledger{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}
.ledger th{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);text-align:left;padding:11px 14px;background:var(--panel-2);border-bottom:1px solid var(--rule);white-space:nowrap}
.ledger td{padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:middle}
.ledger tbody tr:last-child td{border-bottom:0}
.ledger th:first-child,.ledger td:first-child{padding-left:20px}
.ledger th:last-child,.ledger td:last-child{padding-right:20px}
.ledger tbody tr{transition:background-color .12s}
.ledger tbody tr:hover{background:var(--faint)}
.ledger.clicavel tbody tr{cursor:pointer}
.ledger .r{text-align:right}
.ledger .d{white-space:nowrap;color:var(--muted);font-size:12.5px}
.ledger .desc{font-size:13.5px;font-weight:500;line-height:1.35}
.ledger .desc small{display:block;font-size:11.5px;font-weight:400;color:var(--muted);margin-top:2px}
.ledger .v{white-space:nowrap;text-align:right;font-weight:500}
.ledger .v.in{color:var(--accent)}
.ledger .tag{font-size:12px;color:var(--muted);white-space:nowrap}
.ledger tr.inativo .desc{color:var(--muted)}
.cell-sub{display:block;font-size:11.5px;margin-top:2px}
.wa{font-size:11px;font-weight:500;color:var(--accent);text-decoration:none;border:1px solid rgba(var(--accent-rgb),.35);border-radius:6px;padding:1px 6px;margin-left:6px;white-space:nowrap}
.wa:hover{background:var(--accent-soft)}
.ledger-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 4px;font-size:12.5px;color:var(--muted)}
.x-btn{background:none;border:0;width:26px;height:26px;border-radius:7px;font-size:16px;line-height:1;color:var(--dim)}
.x-btn:hover{color:var(--danger);background:var(--danger-soft)}
.link-btn{font-family:var(--sans);background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;padding:5px 11px;font-size:12px;font-weight:500;color:var(--ink);white-space:nowrap;text-decoration:none;transition:border-color .15s,color .15s}
.link-btn:hover{border-color:var(--accent);color:var(--accent)}
.link-btn.quiet{background:transparent;border-color:transparent;color:var(--muted)}
.link-btn.quiet:hover{color:var(--ink);border-color:var(--rule-2)}
.link-btn.danger{background:transparent;color:var(--danger);border-color:rgba(229,115,95,.35)}
.link-btn.danger:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}
.status{font-size:12px;white-space:nowrap;color:var(--muted)}
.status.overdue{color:var(--danger);background:var(--danger-soft);padding:3px 8px;border-radius:6px;font-weight:500}
.status.today{color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:6px;font-weight:500}
.status.paid{color:var(--muted)}
tr.is-paid .desc,tr.is-paid .v{color:var(--dim);text-decoration:line-through;text-decoration-color:var(--dim)}
.m-only{display:none;font-size:12px;font-weight:400;line-height:1.4}
.team-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.empty-note{color:var(--muted);font-size:14px;text-align:center;padding:30px 20px !important;justify-content:center}

.sum-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.sum-grid>div{padding:18px 20px}
.sum-grid .big{font-size:clamp(22px,1.9vw,28px);margin:12px 0 6px}
.sum-grid .foot{font-size:12px;color:var(--muted)}
.rules+.ledger,.toolbar+.ledger{margin-top:14px}
.toolbar+.ledger{margin-top:0}

/* ==========================================================================
   Formulários
   ========================================================================== */
.form{display:grid;gap:16px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-sec{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding-top:14px;border-top:1px solid var(--rule)}
.form-sec:first-child{padding-top:0;border-top:0}
.field label{display:block;margin-bottom:6px}
.field input,.field select,.field textarea,.search,.budget-input{width:100%;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:9px;padding:10px 12px;font-size:14px;color:var(--ink);outline:0;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.field textarea{resize:vertical;min-height:76px;line-height:1.45}
.field input::placeholder,.field textarea::placeholder,.search::placeholder{color:var(--dim)}
.field input:focus,.field select:focus,.field textarea:focus,.search:focus,.budget-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.7;cursor:default}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%238B94A3' stroke-width='1.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
.field input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(.65)}
.field.big-input input{font-family:var(--mono);font-size:24px;font-weight:500;letter-spacing:-.02em}
.hint{display:block;min-height:1.2em;font-size:11.5px;color:var(--muted);margin-top:5px}
.hint.bad{color:var(--danger)}
.hint.good{color:var(--accent)}
.check{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--accent);flex:none}
.input-btn{display:flex;gap:8px;align-items:center}
.input-btn input{flex:1;font-family:var(--mono)}
.search{width:240px;padding:8px 12px;font-size:13px}
.search.grow{flex:1;min-width:220px;width:auto}
.budget-input{width:110px;padding:4px 8px;font-size:12px;font-family:var(--mono);margin-top:4px}
.btn{display:flex;justify-content:space-between;align-items:center;gap:18px;width:100%;background:var(--accent);color:var(--accent-ink);border:0;border-radius:10px;padding:13px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:filter .15s,transform .1s}
.btn:hover{filter:brightness(1.1)}
.btn:active{transform:scale(.99)}
.btn:disabled{opacity:.55;cursor:default;filter:none}
.btn.sm{width:auto;padding:9px 14px;font-size:13px;gap:16px}
.btn.ghost{background:var(--panel-2);color:var(--ink);border:1px solid var(--rule-2)}
.btn.ghost:hover{border-color:var(--dim);filter:none}
.form-note{font-size:12px;color:var(--muted)}
.form-err{font-size:12.5px;font-weight:500;color:var(--danger);min-height:1em}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.form-actions .btn{flex:1;width:auto;min-width:200px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:22px}
.form-grid .span2{grid-column:span 2}
.form-grid .actions{display:flex;flex-direction:column;justify-content:flex-end;gap:8px}

/* ==========================================================================
   Gaveta lateral (cadastros)
   ========================================================================== */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(3,5,8,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s}
.scrim.show{opacity:1;visibility:visible;transition:opacity .25s}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(560px,100vw);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--rule-2);box-shadow:-30px 0 70px rgba(0,0,0,.5);transform:translateX(102%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.drawer.open{transform:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--rule)}
.drawer-head h2{font-size:18px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drawer-body{flex:1;overflow-y:auto;padding:22px 24px 36px}

/* ==========================================================================
   Usuários e permissões
   ========================================================================== */
.users-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}
.user-list{position:sticky;top:96px;display:grid;gap:2px;padding:8px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.user-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;text-align:left;background:none;border:0;border-radius:10px;color:var(--ink)}
.user-item:hover{background:var(--faint)}
.user-item.sel{background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--rule-2)}
.user-item.inativo{opacity:.55}
.user-item-txt{min-width:0}
.user-item-txt b{display:block;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-item-txt small{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-editor{padding:22px 24px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.ue-head{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--rule)}
.ue-head h3{font-size:18px;font-weight:600;letter-spacing:-.02em}
.perm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.perm-group{display:grid;gap:8px;padding:10px 14px 12px;background:var(--panel-2);border:1px solid var(--rule);border-radius:10px}
.perm-group legend{padding:0 4px;font-size:11.5px;font-weight:600;color:var(--ink)}

/* ==========================================================================
   Overlay do ponto
   ========================================================================== */
.pp{position:fixed;z-index:50;top:12px;right:12px;width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 96px);overflow:auto;background:var(--panel);border:1px solid var(--rule-2);border-radius:18px;box-shadow:0 28px 70px rgba(0,0,0,.6);
  visibility:hidden;clip-path:circle(0 at var(--ox,100%) var(--oy,0));
  transition:clip-path .6s cubic-bezier(.77,0,.18,1),visibility 0s linear .6s}
.pp.open{visibility:visible;clip-path:circle(240% at var(--ox,100%) var(--oy,0));transition:clip-path .6s cubic-bezier(.77,0,.18,1),visibility 0s}
.pp-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--rule)}
.pp-x{background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:500;color:var(--muted)}
.pp-x:hover{color:var(--ink)}
.pp-block{padding:18px 20px;border-bottom:1px solid var(--rule)}
.pp-hello{font-size:14px;color:var(--muted)}
.pp-clock{font-weight:500;font-size:56px;line-height:1;letter-spacing:-.05em;margin:10px 0 8px}
.pp-clock .s{font-size:16px;letter-spacing:0;margin-left:4px;color:var(--muted)}
.pp-status{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:13px}
.pp-status .dot{width:9px;height:9px;border-radius:50%;background:var(--dim);flex:none}
.pp-status[data-state="on"] .dot{background:var(--accent);box-shadow:0 0 10px rgba(var(--accent-rgb),.7)}
.pp-status[data-state="pause"] .dot{background:var(--stone)}
.pp-actions{display:grid;gap:8px;padding:16px 20px;border-bottom:1px solid var(--rule)}
.pp-last{font-size:12px;color:var(--muted);padding-top:4px}
.tl{position:relative;height:28px;margin-top:16px;background:var(--panel-2);border-radius:7px}
.tl .seg-on{position:absolute;top:8px;height:12px;border-radius:3px;background:var(--accent)}
.tl .seg-pause{position:absolute;top:8px;height:12px;border-radius:3px;background:repeating-linear-gradient(45deg,var(--stone) 0 1px,transparent 1px 4px)}
.tl .now{position:absolute;top:-3px;bottom:-3px;width:2px;border-radius:1px;background:var(--ink)}
.tl .now::after{content:"agora";position:absolute;top:-15px;left:-10px;font-size:10px;color:var(--ink)}
.tl-ax{display:flex;justify-content:space-between;font-size:10px;color:var(--dim);margin-top:6px}
.pp .rules{padding:14px 20px;border-bottom:1px solid var(--rule)}
.pp .rules>.grid{gap:8px}
.pp-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.pp-stats>div{padding:12px 14px;background:var(--panel-2) !important}
.pp-stats .v{font-size:19px;font-weight:500;line-height:1;margin-top:8px;letter-spacing:-.03em}
.pp-stats .v small{font-family:var(--sans);font-size:11px;color:var(--muted);margin-left:3px;letter-spacing:0}
.pp-list{list-style:none;margin-top:8px}
.pp-list li{display:grid;grid-template-columns:62px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.pp-list li:last-child{border-bottom:0}
.pp-list .t{font-size:16px;font-weight:500}
.pp-list .k{font-size:13px}
.pp-list .nsr{font-size:11px;color:var(--dim)}
.pp-empty{font-size:13.5px;color:var(--muted);padding:6px 0}
.pp-hist{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}
.pp-hist td{padding:7px 0;border-bottom:1px solid var(--rule);color:var(--muted)}
.pp-hist td+td{text-align:right;color:var(--ink)}
.pp-hist tr:last-child td{border-bottom:0}
.team{list-style:none;margin-top:6px}
.team li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:9px 0;border-bottom:1px solid var(--rule)}
.team li:last-child{border-bottom:0}
.team .nm{font-size:13.5px;font-weight:500}
.team .rl{font-size:11.5px;color:var(--muted);grid-column:1}
.team .st{grid-row:1/span 2;grid-column:2;align-self:center;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}
.team .st i{width:7px;height:7px;border-radius:50%;background:var(--dim)}
.team .st.on{color:var(--ink)}
.team .st.on i{background:var(--accent);box-shadow:0 0 8px rgba(var(--accent-rgb),.7)}
.team .st.pause i{background:var(--stone)}
.pp-foot{padding:12px 20px 16px;font-size:11px;color:var(--dim)}

/* Aviso flutuante */
.toast{position:fixed;left:50%;bottom:24px;z-index:90;background:var(--panel-3);color:var(--ink);border:1px solid var(--rule-2);border-radius:12px;padding:12px 16px;font-size:13px;box-shadow:0 18px 44px rgba(0,0,0,.55);max-width:min(480px,calc(100vw - 32px));transform:translate(-50%,calc(100% + 40px));visibility:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s linear .4s}
.toast.show{transform:translate(-50%,0);visibility:visible;transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s}
.toast.erro{border-color:rgba(229,115,95,.5);color:var(--erro-txt)}

/* ==========================================================================
   Carregamento e acesso
   ========================================================================== */
.boot{min-height:100vh;display:grid;place-items:center;font-size:14px;color:var(--muted);padding:24px}
.boot.erro{color:var(--ink)}
.boot.erro>div{max-width:540px;background:var(--panel);border:1px solid var(--rule);border-radius:18px;padding:28px}
.boot.erro h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:12px}
.boot.erro p{color:var(--muted)}
.boot.erro p+p{margin-top:10px}
.boot.erro code{font-family:var(--mono);font-size:12px;background:var(--panel-2);padding:1px 5px;border-radius:4px;color:var(--ink)}
.boot.erro a{color:var(--accent)}

.login{min-height:100vh;display:flex;align-items:center;background:radial-gradient(900px 560px at 18% 22%,rgba(var(--accent-rgb),.1),transparent 62%)}
.login .sheet{width:100%}
.login-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:center;padding:48px 0}
.login-logo{display:block;width:min(400px,85%);height:auto;filter:drop-shadow(0 12px 40px rgba(var(--accent-rgb),.2))}
.login-title{font-size:clamp(28px,3.4vw,44px);font-weight:600;letter-spacing:-.035em;line-height:1.08;margin:28px 0 14px;max-width:18ch}
.login-sub{color:var(--muted);font-size:15px;max-width:46ch;margin-bottom:24px}
.login-card{background:var(--panel);border:1px solid var(--rule);border-radius:18px;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.demo-note{background:var(--accent-soft);border:1px solid rgba(var(--accent-rgb),.25);border-radius:10px;padding:12px 14px;font-size:12.5px;line-height:1.5}
.demo-motivo{display:block;margin-bottom:6px;color:var(--muted)}
.demo-motivo:empty{display:none}

/* ==========================================================================
   Equipe e espelho de ponto
   ========================================================================== */
.badge{display:inline-block;font-size:10.5px;font-weight:500;border-radius:5px;padding:1px 6px;margin-left:8px;vertical-align:1px;background:var(--accent-soft);color:var(--accent)}
.badge.off{background:var(--panel-3);color:var(--muted)}
.st-cell{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:12.5px;color:var(--muted)}
.st-cell i{width:8px;height:8px;border-radius:50%;background:var(--dim);flex:none}
.st-cell.on{color:var(--ink)}
.st-cell.on i{background:var(--accent);box-shadow:0 0 8px rgba(var(--accent-rgb),.7)}
.st-cell.pause i{background:var(--stone)}
#teamTable tr.sel{background:rgba(var(--accent-rgb),.06)}
#teamTable th.r,#teamTable td.r,.espelho th.r,.espelho td.r{padding-left:18px}
.espelho .day{white-space:nowrap}
.espelho .day small{display:block;font-size:11.5px;color:var(--muted)}
.espelho .punches{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px}
.espelho .punches b{font-family:var(--sans);font-weight:500;color:var(--dim);margin-right:4px;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}
.espelho tr.folga td{color:var(--dim)}
.espelho tfoot td{border-top:1px solid var(--rule-2);background:var(--panel-2);font-weight:600;padding-top:13px;padding-bottom:13px}
.pos{color:var(--accent)}

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width:1280px){
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1060px){
  :root{--gutter:24px}
  .app{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:80;width:276px;transform:translateX(-105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);box-shadow:none}
  body.menu-aberto .sidebar{transform:none;box-shadow:30px 0 70px var(--sombra)}
  .scrim-menu{display:block;position:fixed;inset:0;z-index:79;background:rgba(3,5,8,.6);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s}
  .scrim-menu.show{opacity:1;visibility:visible;transition:opacity .25s}
  .menu-btn{display:grid}
  .cols,.cols.even{grid-template-columns:minmax(0,1fr)}
  .users-layout{grid-template-columns:minmax(0,1fr)}
  .user-list{position:static}
  .sum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-head{display:none}
  .cat-row{grid-template-columns:1fr auto auto;gap:4px 16px}
  .cat-row .track{grid-column:1/-1;grid-row:2}
  .cat-total{grid-template-columns:1fr auto auto}
  .cat-total>span:nth-child(2){display:none}
  .form-grid{grid-template-columns:1fr 1fr}
  .login-grid{grid-template-columns:1fr;gap:28px}
}
@media (max-width:720px){
  :root{--gutter:16px}
  .topbar{flex-wrap:wrap;gap:10px 12px;min-height:0}
  .topbar-right{display:contents}
  .crumbs h1{font-size:18px}
  .crumbs .label{font-size:10px}
  .ponto-btn{padding:4px 10px 4px 4px;gap:8px}
  .ponto-ic{width:36px;height:36px}
  .ponto-state,.ponto-clock{display:none}
  .ponto-label{font-size:0}
  .ponto-label::after{content:"Ponto";font-size:12.5px}
  #periodSeg{order:5;flex-basis:100%;justify-content:center}
  #periodSeg button{flex:1}
  #escopoSeg{order:4;flex-basis:100%}
  #escopoSeg button{flex:1}
  .content{padding-top:18px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{min-height:0}
  .ledger .h-sm,.ledger .h-xs{display:none}
  .ledger .m-only{display:block;margin-top:6px}
  .ledger td,.ledger th{padding:11px 10px}
  .ledger th:first-child,.ledger td:first-child{padding-left:14px}
  .ledger th:last-child,.ledger td:last-child{padding-right:14px}
  .ledger .team-actions{flex-direction:column;align-items:flex-end;gap:4px}
  .ledger .link-btn{padding:4px 8px;font-size:11.5px;white-space:normal;text-align:right;max-width:96px}
  .ledger .v{font-size:12.5px}
  #teamTable th.r,#teamTable td.r,.espelho th.r,.espelho td.r{padding-left:8px}
  .search,.search.grow{width:100%;min-width:0}
  .sub-head .tools,.toolbar{width:100%;flex-direction:column;align-items:stretch}
  .lede{flex-direction:column;gap:8px}
  .form-grid{grid-template-columns:1fr;padding:18px}
  .form-grid .span2{grid-column:auto}
  .sec-tools{width:100%}
  .drawer-head{padding:14px 16px}
  .drawer-body{padding:18px 16px 32px}
  .user-editor{padding:18px 16px}
}
@media (max-width:440px){
  .kpi-grid,.sum-grid{grid-template-columns:1fr}
  .form .row2{grid-template-columns:1fr}
  .seg button{padding:6px 9px}
  .ledger td,.ledger th{padding:10px 7px}
  .ledger td{overflow-wrap:anywhere}
}
/* filtros com muitos botões rolam de lado em vez de empurrar a tela */
.seg{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.seg::-webkit-scrollbar{display:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
}

/* ==========================================================================
   Fase 2 — perfil, caixa, venda, parcelas, estoque, histórico
   ========================================================================== */
.avatar.emoji{font-size:18px;letter-spacing:0;background:var(--panel-3)}
.avatar.xs{width:20px;height:20px;font-size:9px}
.avatar.xs.emoji{font-size:11px}
.avatar.sm{width:24px;height:24px;font-size:10px;vertical-align:-7px;margin-right:4px}
.avatar.sm.emoji{font-size:13px}
.avatar.xl{width:72px;height:72px;font-size:24px;border-width:2px}
.avatar.xl.emoji{font-size:38px}
.side-user-btn{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:4px;margin:-4px;background:none;border:0;border-radius:10px;text-align:left;color:var(--ink)}
.side-user-btn:hover{background:var(--faint)}
.quem{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.neg{color:var(--danger)}
.ledger .v.neg{color:var(--danger)}
.ledger.plana{border:0;background:transparent}
.ledger.plana th{background:transparent}
.ledger.plana th:first-child,.ledger.plana td:first-child{padding-left:0}
.ledger.plana th:last-child,.ledger.plana td:last-child{padding-right:0}
.reserva-mini{display:block;font-family:var(--sans);font-size:11px;font-weight:500;color:var(--accent);margin-top:2px}
.badge.alerta{background:var(--danger-soft);color:var(--danger)}
.aviso{background:var(--danger-soft);border:1px solid rgba(229,115,95,.35);color:var(--erro-txt);border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:13.5px}
.aviso a{color:var(--ink);font-weight:600}

/* boas-vindas */
.boas-vindas{display:flex;align-items:center;gap:18px;margin-bottom:14px;padding:18px 22px;background:radial-gradient(500px 180px at 0% 0%,rgba(var(--accent-rgb),.16),transparent 70%),var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.boas-vindas:empty{display:none}
.bv-txt h2{font-size:22px;font-weight:600;letter-spacing:-.025em;line-height:1.2}
.bv-txt p{color:var(--muted);margin:2px 0 6px}
.bv-txt .txt-btn{font-size:12.5px;color:var(--accent);text-decoration:none}
.boas-vindas.compacta{padding:12px 18px}
.boas-vindas.compacta .avatar.xl{width:48px;height:48px;font-size:18px}
.boas-vindas.compacta .avatar.xl.emoji{font-size:26px}
.boas-vindas.compacta h2{font-size:17px}
.boas-vindas.compacta p{margin:0}
.boas-vindas.compacta .txt-btn{display:none}

/* caixa */
.caixa-status{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px;padding:20px 22px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.caixa-status.aberto{background:linear-gradient(110deg,rgba(var(--accent-rgb),.14),rgba(var(--accent-rgb),0) 60%),var(--panel);border-color:rgba(var(--accent-rgb),.35)}
.caixa-status h2{font-size:24px;font-weight:600;letter-spacing:-.03em;margin:6px 0 4px}
.caixa-status p{color:var(--muted);font-size:13.5px}
.caixa-status p b{color:var(--ink);font-weight:500}
.cs-acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ao-vivo{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.ao-vivo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulso 1.8s ease-out infinite}
.ao-vivo.off{color:var(--dim)}
.ao-vivo.off::before{background:var(--dim);animation:none}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.55)}100%{box-shadow:0 0 0 9px rgba(var(--accent-rgb),0)}}
.caixa-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.caixa-grid>div{padding:16px 18px}
.caixa-grid .big{font-size:clamp(20px,1.7vw,26px);margin:10px 0 6px}
.caixa-grid .foot{font-size:12px;color:var(--muted)}
.caixa-grid .reserva,.sum-grid .reserva{border-color:rgba(var(--accent-rgb),.35);background:linear-gradient(180deg,rgba(var(--accent-rgb),.1),transparent 80%),var(--panel)}
.caixa-grid a,.sum-grid a{color:var(--accent)}

/* nova venda */
.venda-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:14px;align-items:start}
.prod-lista{display:grid;gap:8px}
.prod{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 14px;background:var(--panel);border:1px solid var(--rule);border-radius:12px;transition:border-color .15s}
.prod.no-carrinho{border-color:rgba(var(--accent-rgb),.5);background:linear-gradient(90deg,rgba(var(--accent-rgb),.08),transparent 60%),var(--panel)}
.prod-info{min-width:0}
.prod-info b{display:block;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod-info small{display:block;font-size:11.5px;color:var(--muted)}
.est{color:var(--muted)}
.est.zero{color:var(--danger)}
.prod-preco{font-size:13.5px;font-weight:500;white-space:nowrap}
.qtd{display:flex;align-items:center;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:10px;overflow:hidden}
.qtd button{width:34px;height:34px;background:none;border:0;font-size:18px;color:var(--ink)}
.qtd button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}
.qtd button:disabled{color:var(--dim);cursor:default}
.qtd input{width:52px;height:34px;text-align:center;background:transparent;border:0;border-left:1px solid var(--rule-2);border-right:1px solid var(--rule-2);color:var(--ink);font-size:14px;outline:0}
.carrinho{position:sticky;top:90px;padding:18px 20px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.car-itens li{padding:8px 0}
.car-itens .empty-note{display:block;padding:18px 0 !important;font-size:13px}
.car-linha{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13.5px;color:var(--muted)}
.car-linha.total{color:var(--ink);font-size:18px;font-weight:600;border-top:1px solid var(--rule);margin-top:4px;padding-top:10px}
.car-linha.reserva{color:var(--accent);font-size:12.5px;font-weight:500}
.car-input{width:120px;text-align:right;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;padding:6px 10px;color:var(--ink);outline:0}
.car-cli{position:relative}
.car-cli input{padding-right:110px}
#carClienteTag{position:absolute;right:10px;top:9px;font-size:12px}
.sugestoes{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;display:grid;background:var(--panel-3);border:1px solid var(--rule-2);border-radius:10px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.sugestoes button{display:block;width:100%;padding:9px 12px;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink)}
.sugestoes button:last-child{border-bottom:0}
.sugestoes button:hover{background:var(--accent-soft)}
.sugestoes b{display:block;font-size:13px;font-weight:500}
.sugestoes small{font-size:11.5px;color:var(--muted)}
.pag{display:grid;grid-template-columns:1fr 120px 28px;gap:8px;align-items:center;margin-bottom:8px}
.pag select,.pag input,.pag-parc select,.pag-parc input{width:100%;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;padding:8px 10px;color:var(--ink);font-size:13px;outline:0}
.pag input{text-align:right;font-family:var(--mono)}
.pag-parc{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:8px 10px;background:var(--panel-2);border-radius:8px;font-size:11.5px;color:var(--muted)}
.pag-parc label{display:grid;gap:4px}
.pag-parc select{width:80px}
.pag-parc input{width:150px}
.pag-parc small{color:var(--accent);font-weight:500}

/* detalhe de venda e relatório */
.det h3{font-size:18px;font-weight:600;margin:4px 0 12px}
.det-tab{width:100%;border-collapse:collapse;margin:6px 0 14px;font-size:13.5px}
.det-tab td{padding:8px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.det-tab td small{display:block;font-size:11.5px;color:var(--muted)}
.det-tab td+td{text-align:right;white-space:nowrap;padding-left:12px}
.det-tab tr.tot td{font-weight:600;color:var(--ink);border-bottom-color:var(--rule-2)}
.reserva-box{padding:12px 14px;background:var(--accent-soft);border:1px solid rgba(var(--accent-rgb),.35);border-radius:10px;margin:8px 0 16px}
.reserva-box b{color:var(--accent);font-family:var(--mono)}
.rel-cab{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rel-cab b{display:block;font-size:15px}
.rel-cab small{color:var(--muted)}

/* estoque */
.est-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.est-card{padding:16px 18px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.est-card .big{margin:10px 0 6px;font-size:30px}
.est-card .foot{font-size:12px;color:var(--muted)}
.est-card.baixo{border-color:rgba(229,170,95,.4)}
.est-card.zerado{border-color:rgba(229,115,95,.45)}
.est-card.zerado .big{color:var(--danger)}

/* histórico */
.hist{padding:16px 20px;margin-bottom:10px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.hist.aberto{border-color:rgba(var(--accent-rgb),.4)}
.hist-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hist-top b{font-size:15px}
.hist-top small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.hist-nums{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.hist-nums small{display:block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.hist-nums b{font-size:13.5px;font-weight:500}

/* meu perfil */
.mp-preview{display:flex;align-items:center;gap:14px;padding:14px;background:var(--panel-2);border-radius:12px}
.mp-preview b{display:block;font-size:15px}
.mp-preview small{color:var(--muted)}
.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px}
.emoji-opt{height:44px;border-radius:50%;background:var(--panel-2);border:1px solid var(--rule-2);font-size:20px;color:var(--ink);font-weight:600}
.emoji-opt[aria-pressed="true"]{border:2px solid var(--accent);background:var(--accent-soft)}
.cor-grid{display:flex;gap:10px;flex-wrap:wrap}
.cor-opt{width:38px;height:38px;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px var(--brilho)}
.cor-opt[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 3px var(--panel),0 0 0 4px var(--accent)}

@media (max-width:1280px){
  .caixa-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hist-nums{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1060px){
  .venda-layout{grid-template-columns:minmax(0,1fr)}
  .carrinho{position:static}
}
@media (max-width:720px){
  .caixa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prod{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
  .prod .qtd{grid-column:1/-1;justify-self:end}
  .hist-nums{grid-template-columns:repeat(3,minmax(0,1fr))}
  .boas-vindas{padding:14px 16px}
  .boas-vindas .avatar.xl{width:52px;height:52px;font-size:18px}
  .boas-vindas .avatar.xl.emoji{font-size:28px}
  .bv-txt h2{font-size:18px}
}

/* impressão do relatório de caixa (Salvar como PDF no navegador) */
@media print{
  body.imprimindo{background:#fff}
  body.imprimindo *{visibility:hidden}
  body.imprimindo #drawer,body.imprimindo #drawer *{visibility:visible}
  body.imprimindo #drawer{position:absolute;inset:0;width:100%;transform:none;box-shadow:none;border:0;background:#fff;color:#000}
  body.imprimindo .drawer-head,body.imprimindo .no-print,body.imprimindo .scrim{display:none}
  body.imprimindo .drawer-body{overflow:visible;padding:0}
  body.imprimindo .det-tab td,body.imprimindo .muted,body.imprimindo .det-tab td small,body.imprimindo .form-note{color:#222;border-color:#ccc}
  body.imprimindo .form-sec,body.imprimindo .pos{color:#000}
}

/* ==========================================================================
   Fase 3 — processos, taxas e calendário
   ========================================================================== */
:root{--amber:#E5AA5F;--teal:#3DBE8B;--violet:#A78BFA}
.sum-grid .alerta{border-color:rgba(229,115,95,.4)}
.sum-grid .alerta .big{color:var(--danger)}

/* quadro por etapa: rola de lado, com encaixe por coluna no toque */
.quadro{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:12px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.pcol{display:flex;flex-direction:column;min-height:240px;background:var(--side);border:1px solid var(--rule);border-radius:var(--radius);scroll-snap-align:start}
.pcol-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--rule)}
.pcol-head b{font-size:13px;font-weight:600}
.pcol-body{display:grid;gap:8px;align-content:start;padding:10px;max-height:62vh;overflow-y:auto}
.pcol-vazio{color:var(--dim);font-size:12.5px;text-align:center;padding:18px 0}
.pcard{display:grid;gap:6px;width:100%;padding:12px;text-align:left;background:var(--panel);border:1px solid var(--rule-2);border-radius:12px;color:var(--ink);transition:border-color .15s,transform .1s}
.pcard:hover{border-color:rgba(var(--accent-rgb),.55)}
.pcard:active{transform:scale(.99)}
.pcard.pendencia{border-color:rgba(229,115,95,.5);background:linear-gradient(180deg,var(--danger-soft),transparent 70%),var(--panel)}
.pcard-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pcard-top b{font-size:13.5px;font-weight:600;line-height:1.25}
.pcard-top .num{font-size:11px;color:var(--dim);white-space:nowrap}
.pcard-sub{font-size:12px;color:var(--muted)}
.pcard-selos{display:flex;flex-wrap:wrap;gap:4px}
.pcard-selos:empty{display:none}
.chip-s{font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:6px;background:var(--panel-3);color:var(--muted)}
.chip-s.alerta{background:var(--danger-soft);color:var(--danger)}
.chip-s.aviso{background:rgba(229,170,95,.14);color:var(--amber)}
.chip-s.off{background:var(--panel-3);color:var(--dim)}
.pcard-pe{display:flex;align-items:center;gap:8px;font-size:11px}
.pcard-pe .muted{flex:1}
.pcard-docs{width:40px;height:4px;border-radius:3px;background:var(--panel-3);overflow:hidden;flex:none}
.pcard-docs i{display:block;height:100%;background:var(--accent)}
.avatar.vazio{background:transparent;border-style:dashed;color:var(--dim)}
#procLista .pcard-selos{margin-top:6px}

/* detalhe do processo */
.proc-cli{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.proc-cli h3{margin:0 0 2px}
.proc-acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:4px 0 6px}
.stepper{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin:6px 0 10px}
.stepper li{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;color:var(--dim)}
.stepper li span{width:12px;height:12px;border-radius:50%;border:2px solid var(--rule-2);flex:none}
.stepper li.feito{color:var(--muted)}
.stepper li.feito span{background:var(--accent);border-color:var(--accent)}
.stepper li.atual{color:var(--ink);font-weight:600}
.stepper li.atual span{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.docs{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:6px 0 10px}
.docs li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:var(--panel-2);border-radius:10px;border:1px solid var(--rule)}
.docs li.recebido{border-color:rgba(var(--accent-rgb),.35)}
.docs .doc-nome{font-size:13px;flex:1;min-width:160px}
.docs .doc-nome small{display:block;font-size:11px;color:var(--muted)}
.seg.mini button{padding:4px 8px;font-size:11.5px}
.docs li.recebido [data-doc-status="recebido"][aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.nota-form{display:flex;gap:8px;margin:6px 0 10px}
.nota-form input{flex:1;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:9px;padding:9px 12px;color:var(--ink);outline:0}
.nota-form input:focus{border-color:var(--accent)}
.timeline{list-style:none;position:relative;margin:6px 0 0;padding-left:14px;border-left:1px solid var(--rule-2)}
.timeline li{position:relative;display:grid;gap:2px;padding:0 0 12px 10px}
.timeline li::before{content:"";position:absolute;left:-19px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--rule-2);border:2px solid var(--panel)}
.timeline li.etapa::before,.timeline li.criado::before{background:var(--accent)}
.timeline li.status::before{background:var(--danger)}
.timeline li.nota::before{background:var(--amber)}
.timeline li.documento::before,.timeline li.taxa::before{background:var(--teal)}
.tl-quando{font-size:11px;color:var(--dim);font-family:var(--mono)}
.tl-txt{font-size:13px}
.tl-txt small{display:block;font-size:11px;color:var(--muted)}

/* calendário */
.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.cal-box{padding:16px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cal-nav{display:flex;align-items:center;gap:8px}
.cal-nav h3{font-size:17px;font-weight:600;min-width:170px;text-align:center}
.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-dow{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);text-align:center;padding:4px 0}
.cal-dia{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:92px;padding:6px;text-align:left;background:var(--panel-2);border:1px solid var(--rule);border-radius:9px;color:var(--ink);overflow:hidden}
.cal-dia:hover{border-color:var(--rule-2)}
.cal-dia.fora{opacity:.4}
.cal-dia.hoje .cal-num{background:var(--accent);color:var(--accent-ink)}
.cal-dia.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.cal-num{align-self:flex-start;min-width:22px;height:22px;padding:0 5px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:600}
.cal-evs{display:grid;gap:2px;min-width:0}
.cal-ev{font-size:10.5px;line-height:1.35;padding:1px 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--panel-3);color:var(--muted);border-left:2px solid var(--dim)}
.cal-ev.taxa{border-left-color:var(--danger)}
.cal-ev.autorizacao{border-left-color:var(--amber)}
.cal-ev.prazo{border-left-color:var(--accent)}
.cal-ev.parcela{border-left-color:var(--teal)}
.cal-ev.pagar,.cal-ev.receber{border-left-color:var(--violet)}
.cal-ev.lembrete{border-left-color:var(--ink);color:var(--ink)}
.cal-ev.feito{text-decoration:line-through}
.cal-mais{font-size:10.5px;color:var(--dim);padding-left:5px}
.cal-pontos{display:none;gap:3px;flex-wrap:wrap}
.cal-pontos i,.cal-legenda i{width:7px;height:7px;border-radius:50%;background:var(--dim)}
.cal-pontos i.taxa,.cal-legenda i.taxa{background:var(--danger)}
.cal-pontos i.autorizacao,.cal-legenda i.autorizacao{background:var(--amber)}
.cal-pontos i.prazo,.cal-legenda i.prazo{background:var(--accent)}
.cal-pontos i.parcela,.cal-legenda i.parcela{background:var(--teal)}
.cal-pontos i.pagar,.cal-pontos i.receber,.cal-legenda i.pagar{background:var(--violet)}
.cal-pontos i.lembrete,.cal-legenda i.lembrete{background:var(--ink)}
.cal-legenda{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:11.5px;color:var(--muted)}
.cal-legenda span{display:inline-flex;align-items:center;gap:6px}
.cal-lado{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;position:sticky;top:90px;min-width:0}
.cal-box{min-width:0}
.cal-dia-box{min-width:0;padding:16px 18px;background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius)}
.cal-item{cursor:pointer;align-items:flex-start !important}
.cal-item:hover .lst-main b{color:var(--accent)}
.cal-tag{flex:none;min-width:74px;font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:6px;text-align:center;background:var(--panel-3);color:var(--muted)}
.cal-tag.taxa{background:var(--danger-soft);color:var(--danger)}
.cal-tag.autorizacao{background:rgba(229,170,95,.14);color:var(--amber)}
.cal-tag.prazo{background:var(--accent-soft);color:var(--accent)}
.cal-tag.parcela{background:rgba(61,190,139,.14);color:var(--teal)}
.cal-tag.pagar,.cal-tag.receber{background:rgba(167,139,250,.14);color:var(--violet)}
.cal-tag.lembrete{background:var(--brilho);color:var(--ink)}

/* ---------- iPad e telas médias ---------- */
@media (max-width:1280px){
  .cal-layout{grid-template-columns:minmax(0,1fr) 300px}
}
@media (max-width:1060px){
  .cal-layout{grid-template-columns:minmax(0,1fr)}
  .cal-lado{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .caixa-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){
  .cal-lado{grid-template-columns:minmax(0,1fr)}
  .kpi-grid,.caixa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hist-nums{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:720px){
  .quadro{grid-auto-columns:82%}
  .cal-dia{min-height:54px;padding:5px}
  .cal-evs{display:none}
  .cal-pontos{display:flex}
  .cal-nav h3{min-width:0;font-size:15px}
}

/* ---------- toque (iPad, celular): alvos maiores, sem depender de passar o mouse ---------- */
@media (pointer:coarse){
  .side-link{padding:11px 10px}
  .seg button{padding:9px 14px;min-height:40px}
  .seg.mini button{padding:7px 10px;min-height:34px}
  .link-btn{padding:8px 13px;min-height:38px}
  .who-out,.pp-x{min-height:38px}
  .x-btn{width:38px;height:38px}
  .btn.sm{padding:11px 16px}
  .field input,.field select,.field textarea,.search{padding:12px 13px;font-size:16px}
  .qtd button{width:44px;height:44px}
  .qtd input{height:44px;font-size:16px}
  .pag select,.pag input,.car-input,.nota-form input{min-height:42px;font-size:16px}
  .ledger td{padding-top:14px;padding-bottom:14px}
  .chip{padding:9px 16px}
  .emoji-opt{height:50px}
  .ledger tbody tr:hover{background:transparent}
}

/* ==========================================================================
   Fase 4 — financeiro completo: bancos, contas, DRE e distratos
   ========================================================================== */
.lst{list-style:none}
.lst li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.lst li:last-child{border-bottom:0}
.chip-s.info{background:var(--accent-soft);color:var(--accent)}
.chip-s.ok{background:rgba(61,190,139,.14);color:var(--teal)}
.ledger .v.tr{color:var(--muted)}
.ledger tr.is-transf .desc{color:var(--muted)}
.ledger .desc .pcard-selos{margin-top:5px}
.ledger td.v small{display:block;font-family:var(--sans);font-size:11px;font-weight:400}
#escopoSeg button{min-width:72px}

/* bancos e caixas */
.bancos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.banco-card{display:flex;flex-direction:column;gap:10px;padding:16px 18px;min-height:150px;text-align:left;color:var(--ink);
  background:radial-gradient(420px 140px at 100% 0%,rgba(var(--accent-rgb),.08),transparent 70%),var(--panel);
  border:1px solid var(--rule);border-radius:var(--radius);transition:border-color .15s,transform .1s}
.banco-card:hover{border-color:rgba(var(--accent-rgb),.5)}
.banco-card:active{transform:scale(.99)}
.banco-card.neg .big{color:var(--danger)}
.banco-card.inativa{opacity:.6}
.banco-top{display:flex;align-items:center;gap:10px;min-width:0}
.banco-top b{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.banco-top small{display:block;font-size:11.5px;color:var(--muted)}
.banco-top>span:last-child{min-width:0}
.banco-ic{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.banco-ic svg{width:18px;height:18px}
.banco-card .big{font-size:26px;margin-top:auto}
.banco-mov{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px}
.banco-mov .neg{color:var(--muted)}
.banco-papel{font-size:11px;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:3px 8px;align-self:flex-start}
.extrato li{align-items:flex-start}
.ext-v{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.ext-v .num{font-family:var(--mono);font-size:13px}
.ext-v small{font-size:11px}
.neg{color:var(--danger)}

/* detalhes (gavetas) */
.dados{display:grid;gap:0;margin:12px 0}
.dados>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:13.5px}
.dados dt{color:var(--muted)}
.dados dd{text-align:right}
.copia{display:grid;gap:8px;margin:10px 0;padding:12px;background:var(--panel-2);border:1px solid var(--rule);border-radius:12px}
.copia>div{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}
.copia .label{grid-column:1/-1}
.copia code{font-family:var(--mono);font-size:12px;word-break:break-all;color:var(--ink)}
.parcelas-lst li{padding:8px 0}
.parcelas-lst li.atual{background:var(--accent-soft);margin:0 -10px;padding:8px 10px;border-radius:8px}
.parcelas-lst .lst-main{display:flex;gap:10px;align-items:baseline}
.parcelas-lst .lst-main b,.parcelas-lst .lst-main small{display:inline}
.rubricas li{padding:6px 0}
.rubricas select{max-width:52%;background:var(--panel-2);border:1px solid var(--rule-2);border-radius:8px;color:var(--ink);padding:6px 8px;font-size:12.5px}

/* conta do distrato */
.conta-dist{display:grid;margin:8px 0 12px;padding:4px 14px;background:var(--panel-2);border:1px solid var(--rule);border-radius:12px}
.conta-dist>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:13.5px}
.conta-dist>div:last-child{border-bottom:0}
.conta-dist dt{color:var(--muted)}
.conta-dist dd{font-family:var(--mono);white-space:nowrap}
.conta-dist .tot dt,.conta-dist .tot dd{color:var(--ink);font-weight:600}
.conta-dist .tot dd{color:var(--accent)}
.gastos-dist{border:0;padding:0;margin:0;display:grid;gap:8px}
.gasto-l,.field .gasto-l,.gastos-dist label.gasto-l{display:grid;grid-template-columns:auto 1fr 110px auto;gap:10px;align-items:center;font-size:13.5px}
.gasto-l input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}
.gasto-l input:not([type=checkbox]){background:var(--panel-2);border:1px solid var(--rule-2);border-radius:9px;padding:8px 10px;color:var(--ink);outline:0;min-width:0}
.gasto-l input:not([type=checkbox]):focus{border-color:var(--accent)}
.gasto-l input[inputmode=decimal]{text-align:right;font-family:var(--mono)}
.gasto-outro,.gastos-dist [data-gp]{grid-template-columns:1fr 110px auto}

/* DRE */
.dre-scroll{border:1px solid var(--rule);border-radius:var(--radius);background:var(--panel);margin-top:14px}
.dre{width:100%;min-width:960px;border-collapse:separate;border-spacing:0;font-size:12.5px}
.dre th,.dre td{padding:9px 10px;border-bottom:1px solid var(--rule);white-space:nowrap}
.dre thead th{position:sticky;top:0;background:var(--panel-2);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.dre th[scope=row],.dre thead th:first-child{position:sticky;left:0;z-index:1;background:var(--panel);text-align:left;min-width:230px;font-weight:500}
.dre thead th:first-child{background:var(--panel-2);z-index:2}
.dre .num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted)}
.dre .num.tot{color:var(--ink);font-weight:600;background:var(--faint)}
.dre .num.av{color:var(--dim);font-size:11.5px}
.dre .futuro{opacity:.35}
.dre tr.abre{cursor:pointer}
.dre tr.abre:hover th[scope=row]{color:var(--accent)}
.dre .seta{display:inline-block;width:14px;color:var(--dim)}
.dre .sinal{display:inline-block;width:14px;color:var(--dim);font-family:var(--mono)}
.dre tr.sub th[scope=row]{padding-left:40px;font-weight:400;color:var(--muted)}
.dre tr.sub .num{font-size:12px}
.dre tr.res th,.dre tr.res .num{color:var(--ink);font-weight:600}
.dre tr.res td,.dre tr.res th{background:var(--panel-2)}
.dre tr.res th[scope=row]{background:var(--panel-2)}
.dre tr.final th,.dre tr.final .num{color:var(--accent)}
.dre tr.grp th[scope=row]{font-weight:600;color:var(--ink)}
.dre tr.fora th[scope=row]{color:var(--muted);font-style:italic}
.dre tr.sep td{padding:4px;border-bottom:0;background:transparent}
.dre tbody tr:last-child th,.dre tbody tr:last-child td{border-bottom:0}

@media (max-width:720px){
  .bancos-grid{grid-template-columns:1fr}
  .banco-card{min-height:0}
  .dre th[scope=row],.dre thead th:first-child{min-width:170px;max-width:170px;white-space:normal}
  .gasto-l{grid-template-columns:auto 1fr 96px}
  .gasto-outro,.gastos-dist [data-gp]{grid-template-columns:1fr 96px auto}
  #escopoSeg button{min-width:0}
}
@media (pointer:coarse){
  .gasto-l input:not([type=checkbox]),.rubricas select{min-height:42px;font-size:16px}
  .gasto-l input[type=checkbox]{width:22px;height:22px}
}

/* ==========================================================================
   Fase 5 — documentos: anexos, emissão, modelos e impressão
   ========================================================================== */
.drawer.largo{width:min(1100px,100vw)}
.voltar{display:inline-block;margin:-4px 0 12px;padding-left:0}
.aviso.leve{background:rgba(229,170,95,.1);border-color:rgba(229,170,95,.35);color:var(--aviso-txt)}
.sum-grid .aviso-c .big{color:var(--amber)}
.docs-acoes{display:flex;gap:16px;flex-wrap:wrap}
.docs-box{margin:4px 0 8px}
.docs-box>.muted{font-size:13px}

/* lista de arquivos e documentos emitidos */
.arq-lst{display:grid;gap:6px;margin:4px 0 10px}
.arq-lst li{padding:0;border-bottom:0}
.arq-lst li:has(>.lst-main){display:flex;align-items:center;gap:12px;padding:8px 0}
.arq-item{width:100%;display:flex;align-items:center;gap:12px;padding:9px 12px;min-height:54px;text-align:left;color:var(--ink);
  background:var(--panel-2);border:1px solid var(--rule);border-radius:11px;transition:border-color .15s}
.arq-item:hover{border-color:rgba(var(--accent-rgb),.45)}
.arq-item .lst-main,.arq-lst .lst-main{flex:1;min-width:0}
.arq-item .lst-main b,.arq-lst .lst-main b{display:block;font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arq-item .lst-main small,.arq-lst .lst-main small{display:block;font-size:11.5px;color:var(--muted)}
.arq-item .chip-s{flex:none;white-space:nowrap}
.arq-ic{flex:none;display:inline-grid;place-items:center;width:34px;height:40px;border-radius:6px;font:600 9.5px/1 var(--mono);letter-spacing:.03em;
  background:var(--accent-soft);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.25)}
.arq-ic.pdf{background:rgba(229,115,95,.12);color:var(--pdf-txt);border-color:rgba(229,115,95,.3)}
.arq-ic.doc{background:rgba(61,190,139,.12);color:var(--teal);border-color:rgba(61,190,139,.3);font-size:9px}
.arq-ic.big-ic{width:64px;height:78px;font-size:14px;border-radius:9px}
.ledger td.desc .arq-ic{float:left;width:26px;height:31px;margin:1px 10px 0 0;font-size:7.5px;border-radius:5px}
.ledger td.desc .pcard-selos{display:block;margin-top:5px}

/* anexos dentro da lista de documentos do processo */
.doc-ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.doc-anexar{display:inline-flex;align-items:center;gap:5px;font-size:12px}
.arq-minis{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.arq-mini{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 9px;border-radius:999px;font-size:11.5px;color:var(--accent);
  background:var(--accent-soft);border:1px solid rgba(var(--accent-rgb),.25);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arq-mini svg,.doc-anexar svg{width:13px;height:13px;flex:none}

/* enviar arquivo */
.arq-drop{position:relative;display:grid;justify-items:center;gap:6px;padding:26px 16px;text-align:center;border:1.5px dashed var(--rule-2);
  border-radius:14px;background:var(--panel-2);cursor:pointer;transition:border-color .15s,background .15s}
.arq-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.arq-drop:hover,.arq-drop.sobre{border-color:var(--accent);background:var(--accent-soft)}
.arq-drop.tem{border-style:solid;border-color:rgba(var(--accent-rgb),.5)}
.arq-drop-ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:22px}
.arq-drop b{font-size:14px;font-weight:600}
.arq-drop small{font-size:12px;color:var(--muted);max-width:360px}
.arq-prev{margin:0 0 12px;border-radius:12px;overflow:hidden;background:var(--panel-2);border:1px solid var(--rule);display:grid;place-items:center;min-height:120px}
.arq-prev img{display:block;max-width:100%;max-height:60vh;object-fit:contain}
.arq-pdf{display:grid;justify-items:center;gap:8px;padding:24px}

/* emitir e editar modelo: formulário ao lado da prévia */
.emit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:start}
.emit-prev{position:sticky;top:0;display:grid;gap:8px}
.em-cli{font-size:14px;padding:4px 0}
.em-conf,.md-campos{margin:10px 0;border:1px solid var(--rule);border-radius:12px;padding:2px 14px 8px;background:var(--panel-2)}
.em-conf summary,.md-campos summary{cursor:pointer;padding:10px 0;font-size:13px;color:var(--muted)}
.em-faltam input{border-color:rgba(229,170,95,.65)}
.md-texto{font-family:var(--mono);font-size:12.5px;line-height:1.55;min-height:320px;resize:vertical}
.md-grupo{margin:8px 0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.chip-campo{padding:5px 10px;border-radius:999px;font-size:12px;color:var(--ink);background:var(--panel);border:1px solid var(--rule-2)}
.chip-campo:hover{border-color:var(--accent);color:var(--accent)}
.form-note code{font-family:var(--mono);font-size:11.5px;color:var(--ink);background:var(--panel-3);padding:1px 5px;border-radius:4px}

/* o papel: prévia na tela e impressão */
.papel-wrap{background:#e6e3dc;border-radius:12px;padding:18px;max-height:calc(100vh - 150px);overflow:auto;border:1px solid var(--rule)}
.drawer-body>.papel-wrap{margin-top:14px;max-height:none}
.papel{display:block;background:#fff;color:#1d1f23;max-width:794px;margin:0 auto;padding:46px 54px;box-shadow:0 10px 30px rgba(0,0,0,.25);
  font-family:var(--sans);font-size:13px;line-height:1.62;border-radius:2px}
.papel-topo{display:flex;align-items:center;gap:14px;padding-bottom:14px;margin-bottom:22px;border-bottom:1.5px solid #1d1f23}
.papel-topo img{width:64px;height:auto;filter:grayscale(1) contrast(1.15)}
.papel-topo>div{flex:1;min-width:0}
.papel-topo b{display:block;font-size:14px}
.papel-topo small{display:block;font-size:10.5px;color:#555;line-height:1.45}
.papel-num{font-family:var(--mono);font-size:11px;color:#555;align-self:flex-start;white-space:nowrap}
.papel-txt h1{font-size:15px;text-align:center;letter-spacing:.04em;margin:4px 0 20px;font-weight:700}
.papel-txt h2{font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;margin:18px 0 6px;font-weight:700}
.papel-txt p{margin:0 0 10px;text-align:justify;hyphens:auto}
.papel-txt ul{margin:0 0 10px 20px}
.papel-txt li{margin:2px 0}
.papel .dv{font-weight:500}
.papel .dv.vazio{background:#fff1c9;color:#8a6200;border-radius:3px;padding:0 4px;font-size:.92em}
.ass{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:48px 0 10px;break-inside:avoid}
.ass.um{grid-template-columns:minmax(0,320px);justify-content:center}
.ass-b{display:grid;justify-items:center;text-align:center;gap:1px}
.ass-linha{display:block;width:100%;border-top:1px solid #1d1f23;margin-bottom:6px}
.ass-b b{font-size:12.5px}
.ass-b small{font-size:11px;color:#555}
.ass-b .ass-papel{text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.papel-rodape{margin-top:30px;padding-top:8px;border-top:1px solid #ddd;font-size:9.5px;color:#888;text-align:center}

/* modelos */
.modelos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:6px}
.modelo-card{display:grid;gap:6px;align-content:start;padding:16px 18px;min-height:132px;text-align:left;color:var(--ink);background:var(--panel);
  border:1px solid var(--rule);border-radius:var(--radius);transition:border-color .15s}
.modelo-card:hover{border-color:rgba(var(--accent-rgb),.5)}
.modelo-card.inativo{opacity:.55}
.modelo-card b{font-size:15px;font-weight:600}
.modelo-card small{font-size:12px;color:var(--muted)}
.modelo-top{display:flex;gap:6px}

/* imprimir só o documento (Salvar como PDF no navegador) */
.impressao{display:none}
@media print{
  body.imprimindo-doc{background:#fff!important}
  body.imprimindo-doc>*:not(#impressao){display:none!important}
  body.imprimindo-doc #impressao{display:block}
  body.imprimindo-doc .papel{box-shadow:none;padding:0;max-width:none;font-size:11.5pt}
  @page{size:A4;margin:18mm 18mm 16mm}
}

@media (max-width:1060px){
  .emit{grid-template-columns:minmax(0,1fr)}
  .emit-prev{position:static}
  .papel-wrap{max-height:none}
}
@media (max-width:720px){
  .papel-wrap{padding:8px;margin:0 -4px}
  .papel{padding:22px 18px;font-size:12px}
  .papel-txt p{text-align:left;hyphens:manual}
  .papel-topo img{width:44px}
  .ass{grid-template-columns:1fr;gap:34px}
  .modelos-grid{grid-template-columns:1fr}
  .arq-item .chip-s{display:none}
}
@media (pointer:coarse){
  .arq-mini{padding:7px 11px;font-size:12.5px}
  .chip-campo{padding:8px 12px;font-size:13px}
  .doc-anexar{min-height:36px}
}

/* registro de ponto: o relógio sai primeiro quando a barra aperta */
@media (max-width:1060px){.ponto-clock{display:none}}

/* ---------- fase 6: bonequinhos no avatar ---------- */
.avatar.boneco{overflow:hidden;padding:0;background:#F3D6E2}
.avatar.boneco img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.claro{color:#2A1A22;border-color:rgba(0,0,0,.12)}
.boneco-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:420px}
.boneco-opt{aspect-ratio:1;border-radius:18px;overflow:hidden;padding:0;border:2px solid transparent;background:#F3D6E2;display:block;transition:transform .15s}
.boneco-opt img{width:100%;height:100%;object-fit:cover;display:block}
.boneco-opt[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.boneco-opt:active{transform:scale(.96)}

/* ==========================================================================
   Tema claro (escolhido em "Meu perfil"; o padrão continua escuro)
   Mesmas camadas e o mesmo azul do logo, com contraste para luz do dia.
   ========================================================================== */
:root[data-theme="light"]{
  color-scheme:light;
  --page:#F4F6F9;
  --side:#FFFFFF;
  --paper:#FFFFFF;
  --panel:#FFFFFF;
  --panel-2:#F1F4F8;
  --panel-3:#E6EBF2;
  --ink:#141922;
  --muted:#5B6575;
  --dim:#687282;
  --rule:#E3E8EF;
  --rule-2:#D3DAE4;
  --accent:#2563EB;
  --accent-rgb:37,99,235;
  --accent-ink:#FFFFFF;
  --accent-soft:rgba(37,99,235,.10);
  --out:#A3ACB9;
  --danger:#C8432C;
  --danger-soft:rgba(200,67,44,.09);
  --stone:#6B7585;
  --faint:rgba(15,23,42,.035);
  --amber:#B26B00;
  --teal:#13875B;
  --violet:#7253D6;
  --topbar:rgba(244,246,249,.86);
  --avatar-bg:linear-gradient(145deg,#E9EEF5,#D9E0EA);
  --ponto-bg:linear-gradient(160deg,#F3F6FA,#E4E9F0);
  --ponto-ic:#5B6575;
  --ponto-off:#B4BCC8;
  --brilho:rgba(15,23,42,.08);
  --erro-txt:#9F2F1C;
  --aviso-txt:#7A4A00;
  --pdf-txt:#B23A26;
  --sombra:rgba(15,23,42,.14);
}
:root[data-theme="light"] .drawer{box-shadow:-24px 0 60px var(--sombra)}
:root[data-theme="light"] .pp,:root[data-theme="light"] .toast{box-shadow:0 18px 44px var(--sombra)}
:root[data-theme="light"] .side-brand img,:root[data-theme="light"] .login-logo{filter:drop-shadow(0 1px 1px rgba(15,23,42,.35)) drop-shadow(0 6px 16px rgba(15,23,42,.12))}
:root[data-theme="light"] .ponto-btn[data-state="pause"] .ponto-ic{color:var(--amber)}
:root[data-theme="light"] .ponto-btn[data-state="pause"] .ponto-dot{background:var(--amber)}

/* escolha do tema em "Meu perfil" */
.tema-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:420px}
.tema-opt{min-height:64px;border-radius:12px;border:1px solid var(--rule-2);background:var(--panel-2);color:var(--ink);font:inherit;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px}
.tema-opt small{font-weight:400;color:var(--muted);font-size:11.5px}
.tema-opt i{width:34px;height:18px;border-radius:6px;border:1px solid rgba(127,127,127,.4);display:block}
.tema-opt[data-tema="escuro"] i{background:linear-gradient(90deg,#0A0C10 50%,#20252E 50%)}
.tema-opt[data-tema="claro"] i{background:linear-gradient(90deg,#FFFFFF 50%,#E6EBF2 50%)}
.tema-opt[data-tema="auto"] i{background:linear-gradient(135deg,#FFFFFF 50%,#0A0C10 50%)}
.tema-opt[aria-pressed="true"]{border:2px solid var(--accent);background:var(--accent-soft)}

/* "Criar minha conta" e pedidos de acesso (fase 6) */
.login-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px}
.login-links .link-btn{min-height:40px}
.user-item .pedido{color:var(--aviso-txt);font-weight:600}
.pedido-box{margin:0 0 14px;padding:12px 14px;border-radius:var(--radius);border:1px solid rgba(229,170,95,.35);
  background:rgba(229,170,95,.1);color:var(--aviso-txt);font-size:13px;line-height:1.5}
.pedido-box b{display:block;margin-bottom:2px}

/* ---------- relatórios do caixa (painel do mês e folha para imprimir) ---------- */
.rel-filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:16px}
.rel-campos{display:flex;flex-wrap:wrap;gap:12px}
.rel-campo{display:flex;flex-direction:column;gap:6px}
.rel-campo input{min-height:44px;min-width:170px}
.rel-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.rel-kpis .big{font-size:clamp(21px,1.7vw,26px)}
.rel-kpis .foot{line-height:1.45}
.rel-kpis .destaque{background:linear-gradient(180deg,rgba(var(--accent-rgb),.13),rgba(var(--accent-rgb),0) 75%),var(--panel);border-color:rgba(var(--accent-rgb),.3)}
.rel-kpis .alerta .big{color:var(--amber)}
.rel-graf{grid-template-columns:minmax(0,1fr);margin-top:14px}
.rel-leg{font-size:12px;display:flex;align-items:center;gap:4px 12px;flex-wrap:wrap}
.rel-leg .sw{margin-right:5px}
.rel-chart{width:100%;position:relative;touch-action:pan-y}
.rel-chart svg{display:block}
.rel-cols{margin-top:14px}
.rel-cols .bar-row .nm small{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}
.rel-semana{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;height:190px;align-items:end;padding-top:6px}
.rel-semana>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;min-width:0}
.rel-semana span{font-size:10.5px;color:var(--muted);white-space:nowrap}
.rel-semana i{display:block;width:min(28px,70%);background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}
.rel-semana b{font-size:11.5px;font-weight:500;color:var(--muted);text-transform:capitalize}
.rel-sec{margin-top:26px}
.rel-tab tfoot td{font-weight:600;background:var(--panel-2);border-bottom:0}
.rel-folha{background:var(--panel-2);border:1px solid var(--rule);border-radius:var(--radius);padding:22px;overflow-x:auto}
.rel-carregando{color:#555;text-align:center;padding:40px 0}

/* A folha é sempre papel branco (igual nos dois temas e na impressão). */
.rel-papel{font-size:11.5px;line-height:1.45}
.rel-papel .rel-topo{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding-bottom:16px;border-bottom:2px solid #5b2147;margin-bottom:18px}
.rel-papel .rel-topo img{width:76px;height:auto;filter:grayscale(1) contrast(1.2)}
.rel-papel .rel-tit small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#666}
.rel-papel .rel-tit b{display:block;font-size:20px;letter-spacing:-.01em;line-height:1.15}
.rel-papel .rel-tit span{display:block;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#5b2147;margin-top:2px}
.rel-papel .rel-meta{display:grid;grid-template-columns:auto auto;gap:3px 14px;font-size:10.5px;margin:0}
.rel-papel .rel-meta dt{color:#666;text-align:right}
.rel-papel .rel-meta dd{margin:0;font-weight:600;text-align:right}
.rel-papel .rel-h{display:flex;align-items:center;gap:8px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;margin:20px 0 9px;break-after:avoid}
.rel-papel .rel-h i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:#5b2147;color:#fff;font-size:11px;letter-spacing:0}
.rel-papel .rel-resumo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rel-papel .rel-resumo>div{border:1px solid #ddd;border-radius:8px;padding:10px 12px}
.rel-papel .rel-resumo small{display:block;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#666}
.rel-papel .rel-resumo b{display:block;font-size:16px;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.rel-papel .rel-resumo .forte{background:#1d1f23;border-color:#1d1f23;color:#fff}
.rel-papel .rel-resumo .forte small{color:#ccc}
.rel-papel .rel-nota{font-size:10.5px;color:#555;margin:8px 0 0}
.rel-papel .rel-t{width:100%;border-collapse:collapse;margin-top:8px;font-size:10.5px}
.rel-papel .rel-t th{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#666;font-weight:600;text-align:left;padding:6px 8px;background:#f4f4f4;border-bottom:1px solid #ddd}
.rel-papel .rel-t td{padding:6px 8px;border-bottom:1px solid #eee;vertical-align:top}
.rel-papel .rel-t .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rel-papel .rel-t .nw{white-space:nowrap}
.rel-papel .rel-t tfoot td{font-weight:700;background:#f4f4f4;border-bottom:0}
.rel-papel .rel-t tr{break-inside:avoid}
.rel-papel .rel-conf{max-width:420px;margin-left:auto}
.rel-papel .rel-conf .forte td{background:#1d1f23;color:#fff;font-weight:700}
.rel-papel .rel-venc{color:#b42318}
.rel-papel .rel-assina{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:46px;font-size:10.5px;text-align:center;break-inside:avoid}
.rel-papel .rel-assina span{display:block;border-top:1px solid #1d1f23;margin-bottom:6px}
.rel-papel .rel-assina small{display:block;color:#666;margin-top:2px}
.rel-papel .rel-rodape{margin-top:26px;padding-top:10px;border-top:1px solid #ddd;font-size:9.5px;color:#777;text-align:center}
@media (max-width:1060px){
  .rel-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .rel-cols{grid-template-columns:minmax(0,1fr)}
  .rel-folha{padding:10px;margin:0 -4px}
  .rel-papel .rel-topo{grid-template-columns:auto minmax(0,1fr)}
  .rel-papel .rel-meta{grid-column:1/-1;grid-template-columns:auto 1fr}
  .rel-papel .rel-meta dt,.rel-papel .rel-meta dd{text-align:left}
  .rel-papel .rel-resumo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rel-papel .rel-vendas{min-width:620px}
  .rel-campo input{min-width:0;width:100%}
  .rel-campos{flex:1 1 100%}
  .rel-campos .rel-campo{flex:1}
}
@media (max-width:440px){
  .rel-kpis{grid-template-columns:minmax(0,1fr)}
}
.rel-campo{margin:0}
.rel-campo input::-webkit-calendar-picker-indicator{filter:invert(.65)}
:root[data-theme="light"] .rel-campo input::-webkit-calendar-picker-indicator{filter:none}
.rel-cols .bar-row{grid-template-columns:minmax(0,1fr) auto 46px}
.rel-cols .bar-row .vl{white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:720px){.rel-leg{display:none}}
/* Caixa sem o cartão da reserva (quem só vende): 4 cartões, depois 2 por linha. */
.caixa-grid.sem-reserva{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:820px){.caixa-grid.sem-reserva{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Pix parcelado por cliente (fase 6) ---------- */
.parc-filtros{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:16px 0 14px}
.parc-filtros .search{flex:1 1 260px;max-width:420px;min-height:42px}
.parc-card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px}
.parc-card.atrasado{border-color:rgba(200,67,44,.45);box-shadow:inset 3px 0 0 var(--danger)}
.parc-cab{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 18px;align-items:flex-start}
.parc-quem{min-width:0;flex:1 1 260px}
.parc-quem b{font-size:15px;font-weight:600}
.parc-quem small{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.parc-tel{font-size:12.5px;color:var(--accent);margin-left:6px;white-space:nowrap}
.parc-tot{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12.5px;color:var(--muted);text-align:right}
.parc-tot b{color:var(--ink);font-weight:600}
.parc-barra{height:4px;background:var(--panel-3);border-radius:4px;margin:12px 0 4px;overflow:hidden}
.parc-barra i{display:block;height:100%;background:var(--teal);border-radius:4px}
.parc-itens{list-style:none;margin:0;padding:0}
.parc-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule)}
.parc-item:last-child{border-bottom:0}
.parc-n{font-family:var(--mono);font-size:12px;color:var(--muted)}
.parc-venc{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13.5px;font-variant-numeric:tabular-nums}
.parc-v{font-weight:500;white-space:nowrap}
.parc-acoes{display:flex;gap:4px;justify-content:flex-end;min-width:0}
.parc-acoes .link-btn{min-height:36px}
.parc-item.paga .parc-venc,.parc-item.paga .parc-v,.parc-item.cancelada .parc-venc,.parc-item.cancelada .parc-v{color:var(--muted)}
.parc-item.cancelada .parc-v{text-decoration:line-through}
.parc-nota{font-size:12px;color:var(--muted);margin:10px 0 0;padding:8px 10px;background:var(--panel-2);border-radius:8px}
.parc-rod{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule)}
@media (max-width:720px){
  .parc-card{padding:14px}
  .parc-tot{align-items:flex-start;text-align:left}
  .parc-item{grid-template-columns:40px minmax(0,1fr) auto}
  .parc-acoes{grid-column:1/-1;justify-content:flex-end}
  .parc-filtros .search{max-width:none}
}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.parc-item{grid-template-columns:48px minmax(0,1fr) 110px 196px}
.parc-v{text-align:right}
@media (max-width:720px){.parc-item{grid-template-columns:40px minmax(0,1fr) auto}.parc-acoes:empty{display:none}}
.parc-filtros .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}

/* Venda esquecida lançada em outro dia */
.venda-outro-dia{margin:-4px 0 12px;font-size:13px}
.venda-outro-dia .link-btn{min-height:40px}
.aviso.passado{background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.35);color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.aviso.passado .passado-acoes{display:flex;gap:6px;margin-left:auto}

/* Entrada + parcelas na Nova venda */
.switch-linha{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13.5px;cursor:pointer;margin:2px 0 6px}
.switch-linha input{appearance:none;-webkit-appearance:none;width:40px;height:24px;border-radius:12px;background:var(--panel-3);border:1px solid var(--rule-2);position:relative;flex:none;cursor:pointer;transition:background .15s}
.switch-linha input::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--ink);opacity:.75;transition:transform .15s}
.switch-linha input:checked{background:var(--accent);border-color:var(--accent)}
.switch-linha input:checked::after{transform:translateX(16px);background:#fff;opacity:1}
.switch-linha input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pag-rot{grid-column:1/-1;font-size:11.5px;color:var(--muted);margin-bottom:-4px}
.pag input[readonly]{opacity:.8;cursor:default}
.hist-tools{align-items:flex-end}
.hist-resumo{font-size:13px;color:var(--muted);margin:0 0 12px}
.hist-resumo b{color:var(--ink);font-weight:600}

/* Saudação com o bonequinho grande (como no caixa antigo) */
.boas-vindas.com-boneco{padding:0 22px 0 0;overflow:hidden;align-items:stretch;min-height:150px}
.bv-boneco{width:160px;flex:none;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.bv-boneco img{display:block;width:160px;height:160px;object-fit:cover;object-position:center top;margin-bottom:-6px}
.boas-vindas.com-boneco .bv-txt{align-self:center;padding:18px 0}
.boas-vindas.com-boneco .bv-txt h2{font-size:clamp(20px,2.2vw,28px)}
.boas-vindas.compacta.com-boneco{min-height:0;padding-right:18px}
.boas-vindas.compacta.com-boneco .bv-boneco{width:64px}
.boas-vindas.compacta.com-boneco .bv-boneco img{width:64px;height:64px;margin-bottom:-3px}
.boas-vindas.compacta.com-boneco .bv-txt{padding:10px 0}
.boas-vindas.compacta.com-boneco .bv-txt h2{font-size:17px}
@media (max-width:720px){
  .boas-vindas.com-boneco{min-height:120px;padding-right:14px}
  .bv-boneco{width:118px}
  .bv-boneco img{width:118px;height:118px}
  .boas-vindas.com-boneco .bv-txt{padding:14px 0}
  .boas-vindas.compacta.com-boneco .bv-boneco{width:56px}
  .boas-vindas.compacta.com-boneco .bv-boneco img{width:56px;height:56px}
}

/* Caixa fechado: último caixa, atalhos, semana e pendências */
#caixaFechadoBox .sub-head{margin-top:6px}
.atalhos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 4px}
.atalho{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 16px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--rule);color:var(--ink);font-size:14px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s}
.atalho:hover,.atalho:focus-visible{border-color:rgba(var(--accent-rgb),.45);background:var(--accent-soft)}
.atalho-ic{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-size:15px;flex:none}
.caixa-extras{margin-top:14px}
.caixa-semana{height:170px}
.pend{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--panel-2);border:1px solid var(--rule);margin-bottom:8px;color:var(--ink);text-decoration:none}
.pend:last-child{margin-bottom:0}
.pend small{display:block;font-size:11.5px;color:var(--muted)}
.pend b{display:block;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.pend.alerta{border-color:rgba(200,67,44,.4);background:var(--danger-soft)}
.pend.alerta b{color:var(--danger)}
.pend>.muted{font-size:12px;white-space:nowrap}
@media (max-width:1060px){.atalhos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.caixa-extras{grid-template-columns:minmax(0,1fr)}}

/* ---------- barra de atalhos embaixo (celular e iPad em pé) ---------- */
.tabbar{display:none}
@media (max-width:1060px){
  .tabbar{display:grid;grid-template-columns:repeat(var(--tabs,5),minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-top:1px solid var(--rule);padding:6px max(6px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-right))}
  .tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:4px 2px;border:0;border-radius:12px;
    background:none;color:var(--muted);font:inherit;font-size:11px;font-weight:500;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tab svg{width:23px;height:23px}
  .tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .tab.active{color:var(--accent);background:var(--accent-soft)}
  .tab:active{transform:scale(.96)}
  .tab .selo{position:absolute;top:2px;right:calc(50% - 22px);min-width:17px;height:17px;font-size:10px;padding:0 4px}
  .tab .selo.ok{font-size:0;min-width:9px;width:9px;height:9px;padding:0;top:6px;right:calc(50% - 16px);background:var(--teal)}
  body.com-tabbar .content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  body.com-tabbar .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
}
@supports not (background:color-mix(in srgb,red 50%,blue)){.tabbar{background:var(--panel)}}
