/* ══════════════════════════════════════════════════════
   ponto_ctrl — alinhado ao design system do site
   tokens idênticos a conta.css / ferramentas.css / financas.css
   ══════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* superfícies e texto — mesmos do resto do site */
  --bg:#0a0a08;--bg2:#111110;--bg3:#161614;--bg4:#1c1c19;
  --tx:#f0ede6;--tx2:#6b6b67;--tx3:#9a9990;
  --bd:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.12);--bd3:rgba(255,255,255,.2);

  /* acento da marca */
  --ac:#07C42C;--ac2:#09d930;--acd:rgba(7,196,44,.12);--acd2:rgba(7,196,44,.06);

  /* semânticos */
  --ok:#0ca30c;--okd:rgba(12,163,12,.12);
  --warn:#fab219;--warnd:rgba(250,178,25,.12);
  --crit:#e66767;--critd:rgba(230,103,103,.12);
  --info:#3987e5;--infod:rgba(57,135,229,.12);
  --vac:#3ddad7;--vacd:rgba(61,218,215,.12);
  --hol:#9085e9;--hold:rgba(144,133,233,.12);

  --r:8px;--rl:14px;--rf:100px;
  --mono:'Space Mono',monospace;
  --sans:'Space Grotesk',system-ui,sans-serif;
}

html{background:var(--bg);color:var(--tx);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
body{min-height:100vh}
body.modal-open{overflow:hidden}
.container{max-width:1140px;margin:0 auto;padding:0 24px}

/* ─── AUTH LOADING ─────────────────────────────────── */
#auth-loading{position:fixed;inset:0;background:var(--bg);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
#auth-loading.hidden{display:none}
.spin{width:34px;height:34px;border:2px solid var(--acd);border-top-color:var(--ac);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spin-label{font-family:var(--sans);font-size:12px;color:var(--tx2);letter-spacing:.04em}

/* ─── SITE NAV ─────────────────────────────────────── */
.site-nav{position:sticky;top:0;z-index:200;background:rgba(var(--paper),.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--bd);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:52px}
.site-nav-logo{display:flex;align-items:center;padding:5px;border-radius:50%;box-shadow:0 0 14px rgba(7,196,44,calc(.45*var(--ga))),0 0 32px rgba(7,196,44,calc(.15*var(--ga)))}
.site-nav-links{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.site-nav-links a{color:var(--tx2);font-size:11px;font-weight:600;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:color .2s;font-family:var(--sans)}
.site-nav-links a:hover,.site-nav-links a.active{color:var(--ac-tx)}
@media(max-width:768px){.site-nav-links{display:none!important}}

/* ─── USER BAR ─────────────────────────────────────── */
.user-bar{background:var(--bg2);border-bottom:1px solid var(--bd);padding:7px 24px;display:none;align-items:center;gap:12px;font-size:12px;font-family:var(--sans)}
.user-bar.on{display:flex}
.ub-name{font-weight:600;color:var(--tx)}
.ub-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.ub-link{font-size:11px;font-weight:600;color:var(--tx2);text-decoration:none;letter-spacing:.05em;transition:color .2s}
.ub-link:hover{color:var(--tx)}
.btn-signout{background:none;border:1px solid var(--bd2);border-radius:var(--rf);color:var(--tx2);font-size:11px;font-weight:600;padding:5px 14px;cursor:pointer;font-family:var(--sans);letter-spacing:.06em;transition:all .2s}
.btn-signout:hover{border-color:var(--bd3);color:var(--tx)}
.sync-status{font-size:10px;font-family:var(--mono);color:var(--tx2)}
.sync-status.saving{color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.sync-status.saved{color:var(--ac-tx)}
.sync-status.error{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}

/* ─── HEADER ───────────────────────────────────────── */
header{border-bottom:1px solid var(--bd);padding:18px 0 16px}
header .container{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.logo{font-family:var(--mono);font-size:13px;color:var(--tx2);white-space:nowrap}
.logo span{color:var(--ac-tx)}
.contract-badge{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;padding:4px 11px;border-radius:var(--rf);background:var(--acd);border:1px solid rgba(7,196,44,.25);color:var(--ac-tx);display:none;white-space:nowrap}
.contract-badge.active{display:inline-flex;align-items:center;gap:4px}

/* navegação de mês — vira o "título" da página */
.month-nav{display:flex;align-items:center;gap:4px;margin-left:auto;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--rf);padding:3px}
.month-nav button{background:none;border:none;color:var(--tx2);cursor:pointer;width:28px;height:28px;border-radius:50%;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.month-nav button:hover{background:var(--bg4);color:var(--tx)}
#month-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.03em;color:var(--tx);min-width:112px;text-align:center;text-transform:capitalize}
.btn-today-month{width:auto!important;padding:0 12px;border-radius:var(--rf)!important;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ac-tx)!important}
.btn-today-month:hover{background:var(--acd)!important}

/* barra de ações — uma linha só, pills consistentes */
.header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%}
.hbtn{background:none;border:1px solid var(--bd2);color:var(--tx3);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;padding:7px 14px;border-radius:var(--rf);cursor:pointer;transition:all .18s;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.hbtn svg{width:13px;height:13px;flex-shrink:0;opacity:.8}
.hbtn:hover{border-color:var(--bd3);color:var(--tx);background:var(--bg3)}
.hbtn:hover svg{opacity:1}
.hbtn.red:hover{border-color:rgba(230,103,103,.4);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545);background:var(--critd)}
.hbtn.green:hover{border-color:rgba(61,218,215,.4);color:color-mix(in srgb,var(--vac) var(--dk),#1E6B69);background:var(--vacd)}
.hbtn.purple:hover{border-color:rgba(144,133,233,.4);color:color-mix(in srgb,var(--hol) var(--dk),#5F589A);background:var(--hold)}
.hbtn.orange:hover{border-color:rgba(250,178,25,.4);color:color-mix(in srgb,var(--warn) var(--dk),#7D590C);background:var(--warnd)}

/* ─── PAINEL DE HOJE ───────────────────────────────── */
.today-panel{margin-top:22px;background:linear-gradient(180deg,var(--bg2),var(--bg));border:1px solid var(--bd);border-radius:var(--rl);padding:20px 22px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;position:relative;overflow:hidden}
.today-panel::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ac)}
.today-panel.lunch::before{background:var(--warn)}
.today-panel.done::before{background:var(--ok)}
.today-panel.idle::before{background:var(--bd2)}
.today-panel.off::before{background:var(--hol)}
.tp-main{flex:1;min-width:250px}
.tp-label{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--tx2);font-weight:600;margin-bottom:4px}
.tp-exit{font-family:var(--mono);font-size:38px;font-weight:700;line-height:1.05;color:var(--ac-tx);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;letter-spacing:-.02em}
.today-panel.lunch .tp-exit{color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.today-panel.done .tp-exit{color:color-mix(in srgb,var(--ok) var(--dk),#087008)}
.today-panel.off .tp-exit{color:color-mix(in srgb,var(--hol) var(--dk),#5F589A);font-size:26px}
.tp-exit.muted{color:var(--bd3)}
.tp-exit-cap{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--tx2)}
.tp-sub{font-size:12px;color:var(--tx3);margin-top:7px;font-family:var(--sans)}
.tp-sub strong{color:var(--tx);font-family:var(--mono);font-weight:700}
.tp-sub em{font-style:normal;color:var(--tx3)}
.tp-sub em.bad{color:color-mix(in srgb,var(--warn) var(--dk),#7D590C);font-weight:600}
.calc-box i.bad{color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.tp-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.tp-chip{font-family:var(--mono);font-size:11px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--rf);padding:4px 12px;color:var(--tx);display:inline-flex;gap:7px;align-items:center}
.tp-chip b{font-family:var(--sans);font-weight:600;color:var(--tx2);text-transform:uppercase;font-size:9px;letter-spacing:.07em}
.tp-chip.pos{border-color:rgba(7,196,44,.3);color:var(--ac-tx)}
.tp-chip.neg{border-color:rgba(230,103,103,.3);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.tp-count{font-family:var(--mono);font-size:11px;padding:4px 12px;border-radius:var(--rf);background:var(--acd);border:1px solid rgba(7,196,44,.25);color:var(--ac-tx)}
.tp-count.over{background:var(--warnd);border-color:rgba(250,178,25,.3);color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
/* "editar" vive junto dos chips de batida, com o mesmo peso visual */
.tp-chip-btn{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px dashed var(--bd2);border-radius:var(--rf);padding:4px 12px;color:var(--tx2);cursor:pointer;transition:all .18s;display:inline-flex;align-items:center;gap:6px}
.tp-chip-btn svg{width:11px;height:11px;stroke-linecap:round;stroke-linejoin:round}
.tp-chip-btn:hover{border-style:solid;border-color:var(--ac);color:var(--ac-tx);background:var(--acd)}
.tp-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tp-btn{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;padding:11px 20px;border-radius:var(--rf);cursor:pointer;transition:all .18s;border:1px solid var(--bd2);background:none;color:var(--tx2);white-space:nowrap}
.tp-btn.primary{background:var(--ac);border-color:var(--ac);color:#0a0a08}
.tp-btn.primary:hover{background:var(--ac2)}
.tp-btn.ghost:hover{border-color:var(--bd3);color:var(--tx);background:var(--bg3)}

/* ─── CARDS ────────────────────────────────────────── */
.hero{padding:20px 0 18px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.card{background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:16px 18px;transition:border-color .2s}
.card:hover{border-color:var(--bd2)}
.card.accent{border-color:rgba(7,196,44,.22);background:var(--acd2)}
.card.danger{border-color:rgba(230,103,103,.22);background:var(--critd)}
.card.success{border-color:rgba(7,196,44,.22);background:var(--acd2)}
.card.warn{border-color:rgba(250,178,25,.22);background:var(--warnd)}
.card-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--tx2);font-weight:600;margin-bottom:8px}
.card-value{font-family:var(--mono);font-size:26px;font-weight:700;line-height:1;letter-spacing:-.02em}
.card.accent .card-value{color:var(--ac-tx)}
.card.danger .card-value{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.card.success .card-value{color:var(--ac-tx)}
.card.warn .card-value{color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.card-sub{font-size:10px;color:var(--tx2);margin-top:7px;line-height:1.5}

/* ─── PROGRESSO ────────────────────────────────────── */
.progress-wrap{padding:0 0 22px}
.progress-info{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--tx2);font-weight:600}
#prog-pct{font-family:var(--mono);font-size:12px;color:var(--tx);letter-spacing:0}
.progress-bar{position:relative;height:6px;background:var(--bg4);border-radius:3px}
.progress-fill{height:100%;max-width:100%;background:var(--ac);border-radius:3px;transition:width .45s cubic-bezier(.4,0,.2,1)}
.progress-fill.behind{background:var(--warn)}
.progress-fill.ahead{background:var(--ac)}
.progress-marker{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx);opacity:.5;border-radius:1px;transition:left .45s cubic-bezier(.4,0,.2,1);cursor:help}
.progress-detail{font-size:10px;color:var(--tx2);font-family:var(--mono);margin-top:9px}
.progress-detail::before{content:'';display:inline-block;width:2px;height:9px;background:var(--tx);opacity:.5;margin-right:7px;vertical-align:-1px}

/* ─── TABELA ───────────────────────────────────────── */
.table-section{padding-bottom:48px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.section-title{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--tx2);font-weight:600}
.section-title span{color:var(--ac-tx)}
.section-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

.btn-sm{background:none;border:1px solid var(--bd2);color:var(--tx3);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;padding:6px 13px;border-radius:var(--rf);cursor:pointer;transition:all .18s;white-space:nowrap}
.btn-sm:hover{border-color:var(--bd3);color:var(--tx);background:var(--bg3)}
.btn-sm.primary{background:var(--ac);border-color:var(--ac);color:#0a0a08;font-weight:700}
.btn-sm.primary:hover{background:var(--ac2)}

/* filtros como chips de alternância — sem checkbox nativo */
.chk{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--tx2);border:1px solid var(--bd2);border-radius:var(--rf);padding:6px 13px;cursor:pointer;transition:all .18s;user-select:none;white-space:nowrap}
.chk input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.chk::before{content:'';width:13px;height:13px;border-radius:4px;border:1px solid var(--bd3);flex-shrink:0;transition:all .18s;background:transparent}
.chk:hover{border-color:var(--bd3);color:var(--tx3)}
.chk.on{border-color:rgba(7,196,44,.4);color:var(--ac-tx);background:var(--acd)}
.chk.on::before{background:var(--ac);border-color:var(--ac);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%230a0a08' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size:11px;background-repeat:no-repeat;background-position:center}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--bd);border-radius:var(--r);background:var(--bg2)}
table{width:100%;border-collapse:collapse;min-width:880px}
thead th{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--tx2);font-weight:600;padding:12px 10px;text-align:left;border-bottom:1px solid var(--bd);background:var(--bg3);position:sticky;top:0;z-index:2}
thead th.c{text-align:center}
tbody tr{border-bottom:1px solid var(--bd);transition:background .12s}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:var(--bg3)}
tbody tr.weekend{opacity:.4}
tbody tr.today-row{background:var(--acd2);box-shadow:inset 3px 0 0 var(--ac)}
tbody tr.today-row:hover{background:var(--acd)}
tbody tr.holiday-row{box-shadow:inset 3px 0 0 var(--hol)}
tbody tr.vacation-row{box-shadow:inset 3px 0 0 var(--vac)}
tbody tr.medical-row{box-shadow:inset 3px 0 0 var(--crit)}
td{padding:7px 10px;vertical-align:middle}
td.c{text-align:center}
.tbl-empty{text-align:center;color:var(--tx2);font-family:var(--sans);font-size:12px;padding:34px 0}

.td-day{font-family:var(--mono);font-size:12px;color:var(--tx2);width:60px;line-height:1.35}
.td-day strong{color:var(--tx);display:block;font-size:13px}
.td-time input{background:var(--bg3);border:1px solid transparent;border-radius:6px;color:var(--tx);font-family:var(--mono);font-size:12px;padding:5px 4px;width:88px;min-width:88px;text-align:center;outline:none;transition:all .15s}
.td-time input:hover:not(:focus):not(:disabled){border-color:var(--bd2)}
.td-time input:focus{border-color:var(--ac);background:var(--acd);color:var(--ac-tx)}
.td-time input.filled{color:var(--tx)}
.td-time input.ai-f{color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295));border-color:rgba(57,135,229,.3);background:var(--infod)}
.td-time input.preview{color:var(--tx2);border:1px dashed var(--bd2);background:transparent}
.td-time input:disabled{opacity:.22;cursor:not-allowed;background:transparent}

.td-worked{font-family:var(--mono);font-size:12px;text-align:center;color:var(--tx)}
.td-lunch{font-family:var(--mono);font-size:12px;color:var(--tx)}
.td-lunch.long{color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.td-lunch.short{color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.td-lunch.zero{color:var(--tx2);opacity:.5}
.td-bal{font-family:var(--mono);font-size:12px;font-weight:700}
.td-bal.pos{color:var(--ac-tx)}
.td-bal.neg{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.td-bal.zero{color:var(--tx2);opacity:.5}

.pill{display:inline-block;font-family:var(--sans);font-size:9px;padding:3px 9px;border-radius:var(--rf);font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.p-ok{background:var(--acd);color:var(--ac-tx)}
.p-warn{background:var(--warnd);color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.p-neg{background:var(--critd);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.p-off{background:var(--bg4);color:var(--tx2)}
.p-today{background:var(--ac);color:#0a0a08}
.p-ai{background:var(--infod);color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.p-holiday{background:var(--hold);color:color-mix(in srgb,var(--hol) var(--dk),#5F589A)}
.p-vacation{background:var(--vacd);color:color-mix(in srgb,var(--vac) var(--dk),#1E6B69)}
.p-medical{background:var(--critd);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}

/* botões de marcação por dia */
.td-act{white-space:nowrap;text-align:center}
.tag-btn{background:none;border:1px solid var(--bd);color:var(--tx2);cursor:pointer;font-family:var(--mono);font-size:10px;font-weight:700;line-height:1;width:24px;height:24px;border-radius:6px;transition:all .15s;margin-left:3px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.tag-btn:first-child{margin-left:0}
.tag-btn.holiday:hover,.tag-btn.holiday.active{border-color:rgba(144,133,233,.5);color:color-mix(in srgb,var(--hol) var(--dk),#5F589A);background:var(--hold)}
.tag-btn.medical:hover,.tag-btn.medical.active{border-color:rgba(230,103,103,.5);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545);background:var(--critd)}
.tag-btn.vacation:hover,.tag-btn.vacation.active{border-color:rgba(61,218,215,.5);color:color-mix(in srgb,var(--vac) var(--dk),#1E6B69);background:var(--vacd)}
.tag-btn.clear{font-size:13px}
.tag-btn.clear:hover{border-color:rgba(230,103,103,.45);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}

.note-b{font-size:9px;color:color-mix(in srgb,var(--warn) var(--dk),#7D590C);font-family:var(--mono);margin-top:2px}
.note-ai{font-size:9px;color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295));font-family:var(--mono);margin-top:2px}
.note-h{font-size:9px;color:color-mix(in srgb,var(--hol) var(--dk),#5F589A);font-family:var(--mono);margin-top:2px}
.note-v{font-size:9px;color:color-mix(in srgb,var(--vac) var(--dk),#1E6B69);font-family:var(--mono);margin-top:2px}
.note-m{font-size:9px;color:color-mix(in srgb,var(--crit) var(--dk),#9A4545);font-family:var(--mono);margin-top:2px}

.legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:14px 2px 0;font-size:10px;color:var(--tx2);font-family:var(--sans)}
.legend .lg{display:inline-flex;align-items:center;gap:7px}
.legend .tag-btn{margin:0;cursor:default;pointer-events:none}
.legend .dim{color:var(--tx2);opacity:.65}

.info-bar{border-top:1px solid var(--bd);padding:16px 2px 0;margin-top:16px;display:flex;gap:20px;flex-wrap:wrap;align-items:center}
.info-item{font-size:10px;color:var(--tx2);text-transform:uppercase;letter-spacing:.07em;font-weight:600;display:inline-flex;align-items:baseline;gap:6px}
.info-item span{font-family:var(--mono);color:var(--tx);text-transform:none;letter-spacing:0;font-weight:400;font-size:11px}
.info-sep{width:1px;height:12px;background:var(--bd2)}

/* ─── CAIXA DE DÉBITO ──────────────────────────────── */
.debt-box{background:var(--bg2);border:1px solid rgba(230,103,103,.28);border-radius:var(--rl);padding:20px 22px;display:flex;flex-direction:column;gap:18px}
.debt-header{display:flex;align-items:center;gap:12px}
.debt-box-icon{font-size:20px;flex-shrink:0}
.debt-box-title{font-size:14px;font-weight:700;color:color-mix(in srgb,var(--crit) var(--dk),#9A4545);letter-spacing:-.01em}
.debt-box-sub{font-size:12px;color:var(--tx3);font-family:var(--sans);margin-top:2px}
.debt-box-sub em{color:var(--tx);font-style:normal;font-family:var(--mono);font-weight:700}
.debt-body{display:flex;flex-direction:column;gap:16px}
.debt-scenarios{display:flex;gap:8px;flex-wrap:wrap}
.debt-sc{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:12px 16px;text-align:center;min-width:104px}
.debt-sc-label{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--tx2);font-weight:600;margin-bottom:6px}
.debt-sc-val{font-family:var(--mono);font-size:17px;font-weight:700;color:var(--tx)}
.debt-sc-sub{font-size:10px;color:var(--tx2);margin-top:4px;font-family:var(--mono)}
.debt-sc.highlight{border-color:rgba(7,196,44,.35);background:var(--acd2)}
.debt-sc.highlight .debt-sc-val{color:var(--ac-tx)}
.debt-custom{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--bd)}
.debt-custom-label{font-size:11px;color:var(--tx2);white-space:nowrap;text-transform:uppercase;letter-spacing:.07em;font-weight:600}
.debt-custom-wrap{display:flex;align-items:center;gap:8px;flex:1;min-width:190px}
.debt-custom-input{background:var(--bg3);border:1px solid var(--bd2);border-radius:6px;color:var(--tx);font-family:var(--mono);font-size:13px;padding:7px 10px;width:74px;outline:none;text-align:center;transition:border-color .15s}
.debt-custom-input:focus{border-color:var(--ac)}
.debt-custom-unit{font-size:11px;color:var(--tx2);font-family:var(--sans)}
.debt-custom-result{font-family:var(--mono);font-size:12px;background:var(--bg3);border:1px solid var(--bd);border-radius:6px;padding:7px 14px;white-space:nowrap;transition:all .2s;color:var(--tx2)}
.debt-custom-result.ok{border-color:rgba(7,196,44,.35);color:var(--ac-tx)}
.debt-custom-result.warn{border-color:rgba(250,178,25,.35);color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.debt-custom-result.bad{border-color:rgba(230,103,103,.35);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}

/* ─── MODAIS ───────────────────────────────────────── */
.modal-backdrop{position:fixed;inset:0;background:rgba(5,5,4,.86);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;z-index:400;opacity:0;pointer-events:none;transition:opacity .2s;padding:28px 16px;overflow-y:auto}
.modal-backdrop.open{opacity:1;pointer-events:all}
.modal{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--rl);padding:26px;width:100%;position:relative;margin:auto;box-shadow:0 24px 60px rgba(0,0,0,calc(.5*var(--sa)))}
.modal.sm{max-width:430px}
.modal.md{max-width:500px}
.modal.lg{max-width:640px}
.modal h3{font-family:var(--mono);font-size:13px;font-weight:700;margin-bottom:4px;color:var(--tx)}
.modal-sub{font-size:11px;color:var(--tx2);margin-bottom:22px;line-height:1.5}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.modal label{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--tx2);font-weight:600;display:block;margin-bottom:5px}
.modal input[type=time],.modal input[type=text],.modal input[type=number],.modal input[type=date],.modal select{width:100%;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);font-family:var(--mono);font-size:13px;padding:9px 11px;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s}
.modal input[type=date]::-webkit-calendar-picker-indicator,
.modal input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.55);cursor:pointer}
.modal select option{background:var(--bg3)}
.modal input:focus,.modal select:focus{border-color:var(--ac)}
.modal input.preview{border-style:dashed;color:var(--tx2)}
.static-field{background:transparent;border:1px dashed var(--bd2);border-radius:var(--r);color:var(--tx2);font-family:var(--mono);font-size:13px;padding:9px 11px}
.hint-line{font-size:10px;color:var(--tx2);margin-top:12px;line-height:1.6;opacity:.85}
.modal-actions{display:flex;gap:8px;margin-top:22px;justify-content:flex-end;flex-wrap:wrap;align-items:center}

.btn-cancel{background:none;border:1px solid var(--bd2);color:var(--tx2);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;padding:9px 18px;border-radius:var(--rf);cursor:pointer;transition:all .18s}
.btn-cancel:hover{border-color:var(--bd3);color:var(--tx)}
.btn-ghost{background:none;border:1px solid var(--bd2);color:var(--tx2);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.06em;padding:9px 18px;border-radius:var(--rf);cursor:pointer;transition:all .18s}
.btn-ghost:hover{border-color:var(--ac);color:var(--ac-tx);background:var(--acd)}
.btn-save{background:var(--ac);border:1px solid var(--ac);color:#0a0a08;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.06em;padding:9px 20px;border-radius:var(--rf);cursor:pointer;transition:all .18s}
.btn-save:hover{background:var(--ac2);border-color:var(--ac2)}
.btn-save:disabled{opacity:.3;cursor:not-allowed;background:var(--ac)}
.btn-mini{background:none;border:1px solid var(--bd2);color:var(--tx2);font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.05em;padding:5px 12px;border-radius:var(--rf);cursor:pointer;transition:all .18s}
.btn-mini:hover{border-color:var(--bd3);color:var(--tx)}
.btn-mini.danger:hover{border-color:rgba(230,103,103,.45);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.modal-divider{border:none;border-top:1px solid var(--bd);margin:22px 0}

/* resumo ao vivo do modal de dia */
.calc-box{margin-top:18px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:9px}
.calc-box>div{display:grid;grid-template-columns:104px 76px 1fr;align-items:baseline;gap:10px}
.calc-box span{color:var(--tx2);text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:600}
.calc-box b{font-family:var(--mono);font-size:15px;color:var(--tx);font-weight:700}
.calc-box b.pos{color:var(--ac-tx)}
.calc-box b.neg{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.calc-box i{font-style:normal;font-size:10px;color:var(--tx2)}
.calc-box .hl{border-top:1px solid var(--bd);padding-top:9px;margin-top:2px}
.calc-box .hl b{color:var(--ac-tx)}

/* ─── UPLOAD / IA ──────────────────────────────────── */
.upload-zone{border:1px dashed var(--bd2);border-radius:var(--r);padding:28px 20px;text-align:center;cursor:pointer;transition:all .2s;margin-bottom:16px;position:relative;background:var(--bg3)}
.upload-zone:hover,.upload-zone.drag{border-color:var(--ac);background:var(--acd2)}
.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.uz-icon{font-size:26px;margin-bottom:8px}
.uz-title{font-size:12px;font-weight:600;color:var(--tx);margin-bottom:4px}
.uz-hint{font-size:10px;color:var(--tx2)}
.upload-preview{max-width:100%;max-height:150px;border-radius:6px;border:1px solid var(--bd2);margin-top:14px;object-fit:contain;display:none}
.ai-status{border-radius:var(--r);padding:11px 14px;font-size:11px;margin-bottom:16px;display:none;line-height:1.5}
.ai-status.loading{background:var(--infod);border:1px solid rgba(57,135,229,.25);color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.ai-status.success{background:var(--acd);border:1px solid rgba(7,196,44,.25);color:var(--ac-tx)}
.ai-status.error{background:var(--critd);border:1px solid rgba(230,103,103,.25);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.ai-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:8px;animation:pulse 1s infinite;vertical-align:1px}
.ai-status.success .ai-dot,.ai-status.error .ai-dot{animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.ai-preview{background:var(--bg3);border-radius:var(--r);border:1px solid var(--bd);padding:12px;margin-bottom:16px;display:none;max-height:180px;overflow-y:auto}
.ai-preview-title{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--tx2);font-weight:600;margin-bottom:9px}
.ai-row{display:grid;grid-template-columns:36px 1fr 1fr 1fr 1fr;gap:6px;font-family:var(--mono);font-size:11px;padding:3px 0;border-bottom:1px solid var(--bd)}
.ai-row:last-child{border:none}
.ai-row .day{color:var(--tx2)}
.ai-row .t{color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295));text-align:center}
.ai-row .t.empty{color:var(--tx2);opacity:.4}
.merge-opts{margin-bottom:16px;display:none;flex-direction:column;gap:6px}
.merge-opts .opt{display:flex;align-items:flex-start;gap:9px;font-size:11px;color:var(--tx2);cursor:pointer;line-height:1.5}
.merge-opts input[type=radio]{accent-color:var(--ac);margin-top:3px;flex-shrink:0}

/* ─── CONTRATO ─────────────────────────────────────── */
.contract-section{margin-bottom:22px}
.contract-section-title{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:var(--tx2);font-weight:600;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--bd)}
.rule-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rule-label{font-size:11px;color:var(--tx3);flex:1;min-width:130px}
.rule-override{background:var(--bg3);border:1px solid var(--bd);border-radius:6px;color:var(--tx);font-family:var(--mono);font-size:12px;padding:6px 10px;outline:none;width:96px;transition:border-color .15s}
.rule-override:focus{border-color:var(--ac)}
.rule-src{font-size:9px;font-family:var(--sans);font-weight:600;letter-spacing:.05em;padding:3px 8px;border-radius:var(--rf)}
.rule-src.ai{background:var(--infod);color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.rule-src.manual{background:var(--bg4);color:var(--tx2)}

/* ─── LISTAS (atestados / férias) ──────────────────── */
.att-list{display:flex;flex-direction:column;gap:7px;max-height:250px;overflow-y:auto}
.att-item{display:flex;align-items:center;gap:12px;background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:11px 14px;transition:border-color .15s}
.att-item:hover{border-color:var(--bd2)}
.att-info{flex:1;min-width:0}
.att-period{font-family:var(--mono);font-size:12px;color:var(--tx)}
.att-meta{font-size:10px;color:var(--tx2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-btns{display:flex;gap:6px;flex-shrink:0}
.vac-summary{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:11px 14px;font-size:12px;color:var(--tx2);margin-top:14px}
.vac-summary b{color:var(--ac-tx);font-family:var(--mono);font-weight:700}

/* ─── VISUALIZADOR ─────────────────────────────────── */
.fv-body{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:10px;max-height:60vh;overflow:auto;text-align:center}
.fv-body img{max-width:100%;border-radius:6px}
.fv-pdf{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 20px}
.fv-pdf-icon{font-size:34px}
.fv-pdf-label{font-size:11px;color:var(--tx2)}
.fv-pdf a.btn-save{text-decoration:none;display:inline-block}

/* ─── HISTÓRICO ────────────────────────────────────── */
.hist-month-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:330px;overflow-y:auto}
.hist-card{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:all .18s}
.hist-card:hover{border-color:rgba(7,196,44,.35);background:var(--acd2)}
.hist-card .hm-label{font-size:10px;color:var(--tx2);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.hist-card .hm-bal{font-family:var(--mono);font-size:17px;font-weight:700;line-height:1}
.hist-card .hm-bal.pos{color:var(--ac-tx)}
.hist-card .hm-bal.neg{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.hist-card .hm-bal.zero{color:var(--tx2)}
.hist-card .hm-sub{font-size:10px;color:var(--tx2);margin-top:5px}
.hist-empty{font-size:12px;color:var(--tx2);padding:26px 0;text-align:center}
.cumbal-wrap{background:var(--bg3);border:1px solid var(--bd);border-radius:var(--r);padding:16px 18px;margin-bottom:20px}
.cumbal-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--tx2);font-weight:600;margin-bottom:6px}
.cumbal-value{font-family:var(--mono);font-size:24px;font-weight:700;letter-spacing:-.02em}
.cumbal-value.pos{color:var(--ac-tx)}
.cumbal-value.neg{color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.cumbal-value.zero{color:var(--tx2)}
.cumbal-sub{font-size:11px;color:var(--tx2);margin-top:5px}

/* ─── TOAST ────────────────────────────────────────── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--bg3);border:1px solid var(--bd2);color:var(--tx);font-family:var(--sans);font-size:12px;font-weight:600;padding:11px 18px;border-radius:var(--rf);opacity:0;transition:all .24s;pointer-events:none;z-index:600;white-space:nowrap;display:flex;align-items:center;gap:12px;box-shadow:0 12px 32px rgba(0,0,0,calc(.45*var(--sa)))}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.toast.success{border-color:rgba(7,196,44,.4);color:var(--ac-tx)}
.toast.warn{border-color:rgba(250,178,25,.4);color:color-mix(in srgb,var(--warn) var(--dk),#7D590C)}
.toast.info{border-color:rgba(57,135,229,.4);color:color-mix(in srgb,var(--info) var(--dk),color-mix(in srgb,#366396 var(--dk),#356295))}
.toast.error{border-color:rgba(230,103,103,.4);color:color-mix(in srgb,var(--crit) var(--dk),#9A4545)}
.toast-undo{background:none;border:1px solid currentColor;color:inherit;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 10px;border-radius:var(--rf);cursor:pointer;opacity:.75;transition:opacity .15s}
.toast-undo:hover{opacity:1}

/* ─── RESPONSIVO ───────────────────────────────────── */
@media(max-width:900px){
  .form-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .container{padding:0 16px}
  .cards{grid-template-columns:repeat(2,1fr)}
  .hist-month-list{grid-template-columns:repeat(2,1fr)}
  .month-nav{margin-left:0;width:100%;justify-content:space-between}
  #month-label{flex:1}
  .header-actions{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}
  .header-actions::-webkit-scrollbar{display:none}
  .section-actions{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px;scrollbar-width:none}
  .section-actions::-webkit-scrollbar{display:none}
  .tp-exit{font-size:30px}
  .tp-actions{width:100%}
  .tp-btn{flex:1;text-align:center}
  .info-bar{gap:14px}
  .info-sep{display:none}
  .legend{gap:12px}
}
@media(max-width:440px){
  .cards{grid-template-columns:1fr 1fr}
  .hbtn{padding:7px 12px;font-size:10px}
  .form-grid,.modal-grid{grid-template-columns:1fr}
  .modal{padding:20px}
  .calc-box>div{grid-template-columns:88px 68px 1fr;gap:8px}
}

/* ─── IMPRESSÃO ────────────────────────────────────── */
@media print{
  .site-nav,.user-bar,.header-actions,.section-actions,.today-panel,
  .debt-box,.progress-wrap,.toast,.modal-backdrop,.ad-slot,.td-act,
  .legend,#auth-loading,.month-nav button{display:none!important}
  html,body{background:#fff!important;color:#000!important}
  .card,.table-wrap,table,thead th{background:#fff!important;color:#000!important}
  .card{border:1px solid #ccc!important}
  .card-value,.td-bal,.td-lunch,.td-worked,.td-day strong,.cumbal-value{color:#000!important}
  tbody tr{border-bottom:1px solid #ddd!important;box-shadow:none!important;opacity:1!important}
  .td-time input{border:none!important;background:none!important;color:#000!important}
  .pill{border:1px solid #999!important;color:#000!important;background:none!important}
  .table-wrap{border:1px solid #ccc!important}
  table{min-width:0!important}
}

/* ─── ADSENSE ──────────────────────────────────────── */
.ad-slot{width:100%;text-align:center;overflow:hidden}
.ad-slot ins{display:block;margin:0 auto}
.ad-slot--between{margin:24px auto}
.ad-slot--prefooter{margin:40px auto 0}
@media print{.ad-slot{display:none!important}}

/* ══════════════════════════════════════════════════════
   FUNDO ANIMADO + MOVIMENTO
   mesmos valores de ferramentas.css / jogos.css
   ══════════════════════════════════════════════════════ */

/* grade fixa com máscara radial + glow que segue o cursor */
.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(var(--ink),.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(var(--ink),.025) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 40%,transparent 100%);
  mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 40%,transparent 100%)}
.cursor-glow{pointer-events:none;position:fixed;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(7,196,44,.06) 0%,transparent 70%);
  transform:translate(-50%,-50%);z-index:0;transition:opacity .3s;mix-blend-mode:screen}
@media(max-width:900px){.cursor-glow{display:none}}

/* conteúdo acima do fundo */
.user-bar,header,main{position:relative;z-index:1}

/* revelação no scroll — mesmo padrão do site */
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}
.fade-up.visible{opacity:1;transform:none}

/* spotlight que segue o cursor nos cards */
.card,.today-panel,.hist-card,.debt-sc{isolation:isolate}
.card::after,.hist-card::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;
  transition:opacity .3s;border-radius:inherit;
  background:radial-gradient(320px circle at var(--gx,50%) var(--gy,50%),rgba(7,196,44,.1),transparent 60%)}
.today-panel::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;
  transition:opacity .35s;border-radius:inherit;
  background:radial-gradient(520px circle at var(--gx,50%) var(--gy,50%),rgba(7,196,44,.07),transparent 60%)}
.card:hover::after,.hist-card:hover::after,.today-panel:hover::after{opacity:1}
.card{position:relative;overflow:hidden;transition:border-color .25s,transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,calc(.45*var(--sa)))}
.hist-card{position:relative;overflow:hidden}
.today-panel{transition:border-color .3s,box-shadow .3s}
.today-panel:hover{box-shadow:0 16px 44px rgba(0,0,0,calc(.4*var(--sa)))}

/* ponto vivo enquanto a jornada está em andamento */
.tp-label .live{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ac);
  margin-right:7px;vertical-align:1px;animation:pulse-green 1.9s infinite}
.today-panel.lunch .tp-label .live{background:var(--warn);animation:pulse-amber 1.9s infinite}
@keyframes pulse-green{0%,100%{box-shadow:0 0 0 0 rgba(7,196,44,calc(.45*var(--ga)));opacity:1}60%{box-shadow:0 0 0 6px rgba(7,196,44,calc(0*var(--ga)));opacity:.75}}
@keyframes pulse-amber{0%,100%{box-shadow:0 0 0 0 rgba(250,178,25,calc(.45*var(--ga)));opacity:1}60%{box-shadow:0 0 0 6px rgba(250,178,25,calc(0*var(--ga)));opacity:.75}}

/* a previsão de saída pisca quando muda (ex.: almoço mais longo) */
@keyframes exit-flash{0%{transform:scale(1)}30%{transform:scale(1.045)}100%{transform:scale(1)}}
.tp-exit.flash{animation:exit-flash .5s cubic-bezier(.4,0,.2,1);text-shadow:0 0 26px rgba(7,196,44,calc(.45*var(--ga)))}

/* entrada dos cards e do painel — sem depender de observer */
@keyframes card-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.card.card-in{animation:card-in .5s cubic-bezier(.4,0,.2,1) both}
.today-panel.panel-in{animation:card-in .55s cubic-bezier(.4,0,.2,1) both}

/* entrada escalonada das linhas da tabela */
@keyframes row-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
tbody tr.anim{animation:row-in .34s cubic-bezier(.4,0,.2,1) both}

/* feedback tátil nos controles */
.hbtn:active,.btn-sm:active,.tp-btn:active,.btn-save:active,.btn-cancel:active,
.btn-ghost:active,.btn-mini:active,.chk:active,.tag-btn:active,.tp-chip-btn:active{transform:scale(.96)}
.hbtn,.btn-sm,.tp-btn,.btn-save,.btn-cancel,.btn-ghost,.btn-mini,.chk,.tag-btn,.tp-chip-btn{
  transition:all .18s cubic-bezier(.4,0,.2,1)}
.tag-btn:hover{transform:translateY(-1px)}

/* chips e pills entram com leveza */
@keyframes chip-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tp-chips>*{animation:chip-in .3s cubic-bezier(.4,0,.2,1) both}
.tp-chips>*:nth-child(1){animation-delay:.02s}
.tp-chips>*:nth-child(2){animation-delay:.05s}
.tp-chips>*:nth-child(3){animation-delay:.08s}
.tp-chips>*:nth-child(4){animation-delay:.11s}
.tp-chips>*:nth-child(5){animation-delay:.14s}
.tp-chips>*:nth-child(6){animation-delay:.17s}

/* modais entram com escala sutil */
.modal{transform:translateY(8px) scale(.985);opacity:.6;transition:transform .24s cubic-bezier(.4,0,.2,1),opacity .24s}
.modal-backdrop.open .modal{transform:none;opacity:1}

/* respeita quem pediu menos movimento */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .cursor-glow{display:none}
  .fade-up{opacity:1;transform:none}
}

@media print{.bg-grid,.cursor-glow{display:none!important}}
