/* =====================================================================
   Grupo Falcão · Gestão de Engenharia — Tema 2026
   Carregado depois de app.css e operations.css (sobrepõe o visual antigo)
   ===================================================================== */
:root{
  --bg:#f3f5fa; --surface:#ffffff; --surface-2:#f7f9fc; --text:#0f1b3d; --muted:#65708a; --line:#e3e8f1;
  --primary:#1c3d91; --primary-2:#2a55c4; --primary-soft:#e9eefb; --accent:#36b54a; --accent-soft:#e7f6ea;
  --nav:#0b1a45; --green:#1d8f4e; --green-soft:#e5f5eb; --amber:#b7791f; --amber-soft:#fdf3e1;
  --red:#cf3f4a; --red-soft:#fdecee; --purple:#6d5bd0;
  --radius:18px; --radius-sm:12px; --sidebar:264px;
  --shadow:0 1px 2px rgba(15,27,61,.05),0 10px 30px rgba(15,27,61,.06);
  --shadow-lg:0 24px 60px rgba(11,26,69,.18);
  --today:#fff6d1; --today-line:#f2cf5b; --weekend:#f1f3f7;
}
html[data-mode="dark"]{
  --bg:#0a1122; --surface:#111a31; --surface-2:#15203b; --text:#e9eefc; --muted:#98a4c0; --line:#22304f;
  --primary:#86a6ff; --primary-2:#a4bcff; --primary-soft:#1a2a55; --accent:#5fd370; --accent-soft:#16331f;
  --green:#5fcf8e; --green-soft:#153525; --amber:#e8b565; --amber-soft:#382c17; --red:#f1848d; --red-soft:#3d1f27;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.25); --today:#3a3314; --today-line:#9c8424; --weekend:#172241;
}
body{font-family:"Plus Jakarta Sans","DM Sans",system-ui,sans-serif;background:var(--bg);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.number,.brand-name{font-family:"Plus Jakarta Sans",Manrope,sans-serif}
h1{font-size:1.75rem;font-weight:800;letter-spacing:-.03em}
h2{font-weight:750;letter-spacing:-.015em}

/* ---------- Menu lateral ---------- */
.sidebar{background:linear-gradient(180deg,#0d2159 0%,#0a1740 55%,#091334 100%);padding:22px 16px 16px;border-right:0;box-shadow:4px 0 30px rgba(9,19,52,.18)}
.brand-v2{gap:12px;padding:6px 8px 4px}
.brand-logos{display:flex;align-items:center}
.brand-logos span{width:44px;height:44px;border-radius:14px;background:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(0,0,0,.25);flex-shrink:0}
.brand-logos span+span{margin-left:-10px;border:2px solid #0c1e52}
.brand-logos img{width:32px;height:32px;object-fit:contain}
.brand-v2 .brand-name{color:#fff;font-weight:800;font-size:1.06rem;letter-spacing:-.02em}
.brand-v2 .brand-sub{color:#93a6d6;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;margin-top:1px}
.sidebar-company{margin:18px 6px 0}
.sidebar-company span{color:#8fa1cf}
.sidebar-company select{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.12)!important;color:#e7ecfb!important;border-radius:10px}
.workspace-label{color:#7f93c6;font-size:.68rem;letter-spacing:.16em;margin:24px 12px 10px}
.nav-link{color:#b9c6e6;border-radius:12px;padding:11px 14px;margin:3px 0;font-weight:600;position:relative}
.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-link.active{background:rgba(255,255,255,.12);color:#fff;box-shadow:none}
.nav-link.active::before{content:"";position:absolute;left:-16px;top:9px;bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.nav-link.active svg{opacity:1;color:var(--accent)}
.nav-count{background:var(--accent);color:#08260f;font-weight:800}
.nav-divider{background:rgba(255,255,255,.08)}
.sidebar-user{border-top:1px solid rgba(255,255,255,.08)}
.sidebar .avatar{background:linear-gradient(135deg,#2a55c4,#36b54a);color:#fff}

/* ---------- Barra superior ---------- */
.topbar{position:sticky;top:0;z-index:20;height:68px;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.breadcrumb strong{font-weight:700}
.icon-btn{border-radius:11px}
.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}
.company-select{border-radius:12px;border:1px solid var(--line);background:var(--surface-2);padding:4px 10px}

/* ---------- Títulos e cartões ---------- */
.page-heading .eyebrow,.eyebrow{color:var(--accent);font-weight:800;letter-spacing:.14em;font-size:.7rem;text-transform:uppercase}
.page-heading p{color:var(--muted)}
.panel,.metric,.contract-card,.audit-card,.report-card,.cost-total-card,.cost-composition-card,.closing-card{border-radius:var(--radius)!important;border:1px solid var(--line)!important;background:var(--surface);box-shadow:var(--shadow)}
.panel-head{border-bottom:1px solid var(--line)}
.metric{position:relative;overflow:hidden}
.metric::after{content:"";position:absolute;inset:auto -30px -40px auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--primary-soft),transparent 70%);pointer-events:none}
.metric-icon{border-radius:12px;background:var(--primary-soft);color:var(--primary)}
.metric .number{font-weight:800;letter-spacing:-.03em}
.contract-card{transition:transform .18s ease,box-shadow .18s ease}
.contract-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(15,27,61,.10)}
.project-symbol{border-radius:14px!important}

/* ---------- Botões, campos e selos ---------- */
.btn{border-radius:12px;font-weight:700;transition:transform .12s ease,box-shadow .18s ease,background .18s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border:0;box-shadow:0 8px 20px rgba(28,61,145,.28)}
html[data-mode="dark"] .btn.primary{color:#0a1122}
.btn.primary:hover{box-shadow:0 10px 26px rgba(28,61,145,.36)}
.field input,.field select,.field textarea,.filter-select,.search input,.period-select{border-radius:11px!important;border-color:var(--line)!important}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)!important;box-shadow:0 0 0 4px var(--primary-soft)!important;outline:none}
.badge,.pill{border-radius:999px;font-weight:700;letter-spacing:.01em}
.tabs{border-bottom:1px solid var(--line)}
.tab{font-weight:650}
.tab.active,.tab[aria-selected="true"]{color:var(--primary);box-shadow:inset 0 -3px 0 var(--accent)}

/* ---------- Tabelas ---------- */
.table-wrap table thead th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2)}
.table-wrap table tbody tr:hover td{background:var(--surface-2)}

/* ---------- Calendário (apontamentos e projeções) ---------- */
.calendar-table th,.calendar-table td,.attendance-table th,.attendance-table td,.projection-table th,.projection-table td{border-color:var(--line)!important}
.calendar-table th.weekend,.attendance-table th.weekend,.projection-table th.weekend{color:var(--red)!important;font-weight:800}
.calendar-table td.weekend,.attendance-table td.weekend,.projection-table td.weekend{background:var(--weekend)}
.calendar-table th.today,.attendance-table th.today,.projection-table th.today{background:var(--today)!important;color:var(--text)!important}
.calendar-table td.today,.attendance-table td.today,.projection-table td.today{box-shadow:inset 1px 0 0 var(--today-line),inset -1px 0 0 var(--today-line)}
.table-wrap::-webkit-scrollbar{height:12px}
.table-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:8px;border:3px solid var(--surface)}
.table-wrap::-webkit-scrollbar-track{background:transparent}

/* ---------- Janelas (modais) ---------- */
dialog#modal{border-radius:22px;border:1px solid var(--line);box-shadow:var(--shadow-lg)}
dialog#modal::backdrop{background:rgba(9,19,52,.45);backdrop-filter:blur(4px)}
#toast{border-radius:14px;box-shadow:var(--shadow-lg)}

/* ---------- Tela de acesso ---------- */
.login-story{background:radial-gradient(1200px 600px at -10% -10%,#2a55c4 0%,transparent 55%),radial-gradient(800px 500px at 110% 110%,#1f9d57 0%,transparent 55%),linear-gradient(160deg,#0d2159,#081335)!important}
.login-story .eyebrow{color:#9fe3aa}
.login-story h1 span{color:#7fe08f}
.login-preview{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:18px!important;backdrop-filter:blur(6px)}
.login-preview .progress{background:rgba(255,255,255,.15)}
.login-preview .progress span{background:linear-gradient(90deg,#7fa2ff,#7fe08f)}
.login-logos{display:flex;gap:14px;margin-top:26px}
.login-logo-card{background:#fff;border-radius:18px;padding:14px 18px;height:96px;display:grid;place-items:center;box-shadow:0 12px 30px rgba(0,0,0,.25);flex:0 0 auto}
.login-logo-card img{max-height:68px;width:auto}
.login-form h2{font-size:1.6rem;font-weight:800;letter-spacing:-.03em}
.login-form .metric-icon{background:var(--accent-soft);color:var(--green)}

/* ---------- Celular ---------- */
@media (max-width:900px){
  .login-logos{justify-content:center}
  .login-logo-card{height:76px;padding:10px 14px}
  .login-logo-card img{max-height:52px}
  .topbar{height:60px}
  h1{font-size:1.4rem}
}

/* ---------- Notificações de ponto ---------- */
.pend-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.pend-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pend-tabs{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px}
.pend-tabs button{padding:8px 14px;border-radius:9px;font-weight:700;font-size:.85rem;color:var(--muted)}
.pend-tabs button.on{background:var(--surface);color:var(--primary);box-shadow:0 2px 8px rgba(15,27,61,.08)}
.pend-search{min-width:240px}
.pend-list{display:flex;flex-direction:column;gap:8px}
.pend-person{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);transition:border-color .15s,box-shadow .15s,transform .15s}
.pend-person:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 10px 26px rgba(15,27,61,.08);transform:translateY(-1px)}
.pend-person-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.pend-person-main strong{font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pend-chips{display:flex;gap:6px;flex-wrap:wrap}
.pend-person-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.pend-count{font-weight:800;font-size:1.3rem;color:var(--red)}
.pend-person-side small{color:var(--muted)}
.badge.purple{background:color-mix(in srgb,var(--purple) 14%,transparent);color:var(--purple)}
.pend-empty{text-align:center;padding:42px 12px;color:var(--muted)}
.pend-empty svg{color:var(--green);width:34px;height:34px}
.pend-empty h3{color:var(--text);margin:10px 0 4px}
/* calendário flutuante */
dialog#modal.pend-dialog{width:min(980px,96vw);max-width:96vw}
.pend-loading{display:flex;align-items:center;gap:8px;color:var(--muted);padding:20px 0}
.pend-cal-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.pend-cal{border-collapse:collapse;width:max-content;min-width:100%}
.pend-cal th,.pend-cal td{border:1px solid var(--line);padding:8px 10px;text-align:center;vertical-align:top;font-size:.8rem}
.pend-cal thead th{background:var(--surface-2);font-weight:800}
.pend-cal thead th span{display:block}
.pend-cal thead th small{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:.65rem}
.pend-cal thead th.weekend{color:var(--red)}
.pend-cal .pend-cal-name{text-align:left;min-width:190px;position:sticky;left:0;background:var(--surface);z-index:1}
.pend-cal td.pend-cal-name{display:flex;align-items:center;gap:8px;font-weight:700}
.pend-cal td{min-width:92px}
.pend-cal td strong{display:block;font-size:.95rem}
.pend-cal td i{display:block;font-style:normal;font-size:.68rem;margin-top:4px;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--text);white-space:nowrap;border-left:3px solid var(--c)}
.p-falta{background:var(--red-soft)!important}.p-incompleto{background:var(--amber-soft)!important}
.p-impar{background:color-mix(in srgb,var(--purple) 12%,transparent)!important}.p-fora{background:var(--primary-soft)!important}
.pend-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.pend-legend span{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px}
.pend-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.pend-day{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface-2)}
.pend-day-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.pend-day-head strong{margin-right:4px;text-transform:capitalize}
.pend-detail{color:var(--muted);font-size:.8rem;margin:2px 0 8px}
.pend-punches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pend-punches li{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.82rem}
.pend-time{font-weight:800;font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:2px 8px}
.pend-where{font-weight:600;border-left:3px solid var(--c);padding-left:6px}
.pend-map{color:var(--primary);font-weight:600;font-size:.75rem;display:inline-flex;align-items:center;gap:3px}
.pend-resolve{display:flex;gap:8px;margin-top:10px}
.pend-resolve input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface);color:var(--text);font-size:.82rem}
.pend-solved{color:var(--green);font-size:.8rem;font-weight:600;margin-top:8px;display:flex;align-items:center;gap:5px}
@media (max-width:900px){.pend-metrics{grid-template-columns:1fr}.pend-person-side small{display:none}.pend-search{min-width:0;flex:1}.pend-resolve{flex-direction:column}}
dialog#modal.pend-dialog{width:min(1000px,96vw)!important;max-width:96vw!important}
.brand-v2 .brand-sub{letter-spacing:.08em;font-size:.66rem;white-space:nowrap}
.login-story .brand{margin-bottom:28px}

/* ---------- Calendário de apontamentos: compacto e limpo ---------- */
.attendance-table{border-collapse:separate;border-spacing:0}
.attendance-table td{height:40px!important;padding:2px!important}
.attendance-table td:first-child{padding-block:4px!important}
.attendance-table .day-cell{min-height:34px!important;height:34px!important;min-width:40px!important;padding:0!important;border-radius:8px;font-size:.72rem;line-height:1;background:transparent;color:var(--text);border:0}
.attendance-table .cell-time{display:flex;flex-direction:column;align-items:center;gap:1px;font-weight:800;font-variant-numeric:tabular-nums}
.attendance-table .cell-mins{font-size:.62rem;font-weight:700;opacity:.8}
.attendance-table thead th{height:44px;padding:4px 2px!important;font-size:.72rem}
.attendance-table thead th small{display:block;font-size:.6rem;letter-spacing:.04em}
/* coluna do colaborador fixa, com fundo sólido (sem quadrados aparecendo por trás) */
.attendance-table .att-name-col{position:sticky;left:0;z-index:3;background:var(--surface)!important;min-width:230px;max-width:230px;width:230px;text-align:left;padding-left:14px!important;box-shadow:inset -1px 0 0 var(--line),8px 0 14px -12px rgba(15,27,61,.35)}
.attendance-table thead .att-name-col{z-index:4;background:var(--surface-2)!important;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.attendance-table tbody tr:hover td.att-name-col{background:var(--surface-2)!important}
.attendance-table .att-name-col .project-name{display:block;max-width:210px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem;line-height:1.25}
.attendance-table .att-name-col .project-meta{display:block;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
/* cores dos dias */
.day-cell.att-complete{background:#dcf5e3!important;color:#12663a!important}
.day-cell.att-extra{background:#15803d!important;color:#fff!important}
.day-cell.att-multi{background:#fdf0b8!important;color:#7a5a00!important}
.day-cell.att-pending{background:#ffe1c7!important;color:#9a3d05!important;box-shadow:inset 0 0 0 2px #f59e4b}
.day-cell.att-missing{background:#fde2e4!important;color:#b4232f!important;font-weight:800}
.day-cell.att-auto{box-shadow:inset 0 0 0 2px #7cc4f4}
.day-cell.att-pending.att-auto{box-shadow:inset 0 0 0 2px #f59e4b}
html[data-mode="dark"] .day-cell.att-complete{background:#153f27!important;color:#8ce3ad!important}
html[data-mode="dark"] .day-cell.att-multi{background:#3d3310!important;color:#f3d36b!important}
html[data-mode="dark"] .day-cell.att-pending{background:#4a2a12!important;color:#ffb57a!important}
html[data-mode="dark"] .day-cell.att-missing{background:#4a1d23!important;color:#ff9aa3!important}
.att-legend div{display:flex;flex-wrap:wrap;gap:14px}
.att-legend span{display:inline-flex;align-items:center;gap:6px;font-size:.78rem}
.att-legend i{width:16px;height:16px;border-radius:5px;display:inline-block;background:var(--surface-2)}
.att-legend i.att-complete{background:#dcf5e3}.att-legend i.att-extra{background:#15803d}.att-legend i.att-multi{background:#fdf0b8}
.att-legend i.att-pending{background:#ffe1c7;box-shadow:inset 0 0 0 2px #f59e4b}.att-legend i.att-missing{background:#fde2e4}.att-legend i.att-auto{box-shadow:inset 0 0 0 2px #7cc4f4;background:transparent}
/* botão de sincronizar o dia no lançamento de horário */
.sync-day-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:12px 14px;border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:14px;background:var(--primary-soft)}
.sync-day-box strong{display:flex;align-items:center;gap:6px;font-size:.85rem}
.sync-day-box small{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}
.sync-day-box .btn{white-space:nowrap}
/* aviso central ao entrar */
.pend-aviso{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;background:rgba(9,19,52,.35);backdrop-filter:blur(3px);animation:pendIn .25s ease}
.pend-aviso.saindo{opacity:0;transition:opacity .25s}
.pend-aviso-card{background:var(--surface);color:var(--text);border-radius:22px;padding:28px 28px 22px;width:min(420px,92vw);text-align:center;box-shadow:var(--shadow-lg);border:1px solid var(--line)}
.pend-aviso-ico{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;margin:0 auto 12px;background:#ffe1c7;color:#c2410c}
.pend-aviso-card h3{font-size:1.15rem;margin-bottom:6px}
.pend-aviso-card p{color:var(--muted);margin-bottom:18px}
.pend-aviso-actions{display:flex;gap:10px;justify-content:center}
@keyframes pendIn{from{opacity:0}to{opacity:1}}
.attendance-table tbody td{height:42px!important;padding-top:3px!important;padding-bottom:3px!important}
.attendance-table tbody td.att-name-col{padding:4px 10px 4px 14px!important}
.attendance-table .calendar-cost-col{padding:2px 8px!important}
.attendance-table .calendar-cost-button{padding:2px 4px!important;line-height:1.1;font-size:.8rem}
.attendance-table .calendar-cost-button small{display:none}
.attendance-table tbody td:nth-last-child(2){font-size:.8rem;padding:2px 6px!important}

/* ---------- Editor de horários do dia ---------- */
.pend-cal td.pend-cell-edit{cursor:pointer;position:relative;transition:filter .15s,box-shadow .15s}
.pend-cal td.pend-cell-edit:hover{box-shadow:inset 0 0 0 2px var(--primary);filter:brightness(.98)}
.pend-cell-hint{display:none;font-style:normal;font-size:.62rem;font-weight:700;color:var(--primary);margin-top:4px;align-items:center;justify-content:center;gap:3px}
.pend-cal td.pend-cell-edit:hover .pend-cell-hint{display:flex}
.day-editor{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(9,19,52,.4);backdrop-filter:blur(2px);padding:16px}
.de-card{width:min(720px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);padding:20px 22px}
.de-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.de-head h3{font-size:1.15rem}
.de-head p{color:var(--muted);font-size:.85rem;text-transform:capitalize}
.de-info{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.8rem;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:8px}
.de-info b{color:var(--text)}
.de-chip{display:inline-block;background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}
.de-rows{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.de-row{display:grid;grid-template-columns:120px 120px 1fr 36px;gap:10px;align-items:end}
.de-field{display:flex;flex-direction:column;gap:4px;font-size:.75rem;font-weight:700;color:var(--muted);position:relative}
.de-field input{border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--surface);color:var(--text);font-size:.9rem;font-weight:600;width:100%}
.de-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.de-sugestoes{position:absolute;top:100%;left:0;right:0;z-index:5;margin:4px 0 0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);max-height:220px;overflow:auto}
.de-sugestoes li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.82rem;color:var(--text);font-weight:500}
.de-sugestoes li:hover{background:var(--primary-soft)}
.de-sugestoes li i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.de-sugestoes li.de-vazio{color:var(--muted);cursor:default}
.de-remover{margin-bottom:2px}
.de-add{margin-bottom:10px}
.de-total{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);font-size:.85rem}
.de-erro{color:var(--red);font-size:.82rem;margin-top:8px;font-weight:600}
.de-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media (max-width:640px){.de-row{grid-template-columns:1fr 1fr 36px}.de-contrato{grid-column:1 / 3;grid-row:2}.de-remover{grid-column:3;grid-row:1}}
/* lixeira ao lado do nome (aparece ao passar o mouse) */
.att-name-wrap{display:flex;align-items:center;gap:6px}
.att-name-text{min-width:0;flex:1}
.att-remove{flex-shrink:0;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--muted);opacity:0;transition:opacity .15s,background .15s,color .15s}
.attendance-table tr:hover .att-remove,.att-remove:focus-visible{opacity:1}
.att-remove:hover{background:var(--red-soft);color:var(--red)}
.attendance-table .att-name-col .project-name,.attendance-table .att-name-col .project-meta{max-width:180px!important}
/* janela do dia: saldo */
.day-popover-balance{margin-top:8px;padding:6px 8px;border-radius:8px;font-size:.78rem;font-weight:700;background:var(--surface-2)}
.day-popover-balance.falta{background:#ffe1c7;color:#9a3d05}
.day-popover-balance.extra{background:#dcf5e3;color:#12663a}
.day-popover-balance.ok{background:#dcf5e3;color:#12663a}
/* lixeira sempre visível (suave), destaque ao passar o mouse */
.attendance-table .att-remove{opacity:.45!important;color:var(--muted)}
.attendance-table tr:hover .att-remove{opacity:1!important;color:var(--red)}
@media (hover:none){.attendance-table .att-remove{opacity:1!important}}
/* dia de hoje ainda em andamento (não é pendência nem jornada cumprida) */
.day-cell.att-progress{background:#e6eefc!important;color:#1c3d91!important;box-shadow:inset 0 0 0 2px #9db4ea}
html[data-mode="dark"] .day-cell.att-progress{background:#1b2b55!important;color:#a4bcff!important}
.day-popover-balance.andamento{background:#e6eefc;color:#1c3d91}
.att-legend i.att-progress{background:#e6eefc;box-shadow:inset 0 0 0 2px #9db4ea}
/* editor dentro da janela "Lançamento de Horário" */
dialog#modal.lanc-dialog{width:min(760px,96vw)!important;max-width:96vw!important}
.day-editor.inline{position:static;display:block;background:none;backdrop-filter:none;padding:0}
.day-editor.inline .de-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.de-field input.de-pre{background:#fff7e0;border-color:#f2cf5b;color:#7a5a00}
html[data-mode="dark"] .de-field input.de-pre{background:#3a3314;border-color:#9c8424;color:#f3d36b}
.de-info-pre{background:#fff7e0;border-color:#f2cf5b;color:#7a5a00}
html[data-mode="dark"] .de-info-pre{background:#3a3314;border-color:#9c8424;color:#f3d36b}

/* ---------- Calendário do contrato: rolagem vertical própria e cabeçalho inteiro ---------- */
section.panel > .toolbar{position:static!important;border-bottom:1px solid var(--line)}
.table-wrap:has(> .attendance-table){overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:auto;scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) var(--surface-2)}
.table-wrap:has(> .attendance-table)::-webkit-scrollbar{width:12px;height:12px}
.table-wrap:has(> .attendance-table)::-webkit-scrollbar-track{background:var(--surface-2)}
.table-wrap:has(> .attendance-table)::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:8px;border:3px solid var(--surface-2)}
.attendance-table thead{position:static!important;box-shadow:none!important}
.attendance-table thead th{position:sticky!important;top:0;z-index:6;height:auto!important;padding:7px 3px!important;line-height:1.2;background:var(--surface-2)!important;box-shadow:inset 0 -1px 0 var(--line);vertical-align:middle;white-space:nowrap}
.attendance-table thead th .day-header-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:0;line-height:1.15}
.attendance-table thead th.today{background:var(--today)!important}
.attendance-table thead th.att-name-col{left:0;z-index:9}
.attendance-table thead th.calendar-cost-col{right:0;z-index:9;background:var(--primary-soft)!important;white-space:normal;line-height:1.25;padding:7px 8px!important}
.attendance-table thead th.calendar-cost-col small{display:block}
/* editor dentro da janela: ocupar a largura toda */
.day-editor.inline{display:flex!important;flex-direction:column;align-items:stretch;width:100%;text-align:left}
.day-editor.inline .de-info,.day-editor.inline .de-rows,.day-editor.inline .de-total,.day-editor.inline .sync-day-box{width:100%;box-sizing:border-box}
.day-editor.inline .de-add{align-self:flex-start}
.day-editor.inline .de-foot{justify-content:flex-end}

/* Cabeçalho do calendário sempre acima das células fixas do corpo */
.attendance-table thead th{z-index:20!important}
.attendance-table thead th.att-name-col,.attendance-table thead th.calendar-cost-col,.attendance-table thead th:first-child,.attendance-table thead th:last-child{z-index:25!important}
.attendance-table tbody td:first-child,.attendance-table tbody td.att-name-col{z-index:5!important}
.attendance-table tbody td.calendar-cost-col,.attendance-table tbody td:last-child{z-index:4!important}

/* ===================== Projeções (v64) ===================== */
.pj-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.pj-kpi{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.pj-kpi>span{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#e8eefc;color:#1c3d91;flex:none}
.pj-kpi>span.amber{background:#fdf1dc;color:#b86e00}.pj-kpi>span.violet{background:#efe9fd;color:#6b3fd6}.pj-kpi>span.green{background:#e3f5ea;color:#157a3c}
.pj-kpi strong{display:block;font-size:1.35rem;line-height:1.1;color:var(--text)}.pj-kpi small{color:var(--muted);font-size:.78rem}
.pj-toolbar{gap:10px!important}.pj-toolbar-l{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pj-vistas .pill span{display:inline-block;margin-left:6px;padding:0 6px;border-radius:99px;background:rgba(0,0,0,.07);font-size:.72rem;font-weight:700}
.pj-vistas .pill.active span{background:rgba(255,255,255,.25)}
.pj-legenda{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 22px;border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.pj-legenda-t{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}
.pj-leg-item{display:inline-flex;align-items:center;gap:6px;color:var(--text)}
.pj-leg-item i{font-style:normal;font-weight:800;font-size:.66rem;padding:2px 6px;border-radius:5px}
.pj-wrap{max-height:calc(100vh - 330px);min-height:220px;overflow:auto!important}
.pj-table thead{position:static!important}
.pj-table thead th{position:sticky!important;top:0;z-index:20!important;background:var(--surface-2)!important;padding:7px 2px!important;height:auto!important;line-height:1.15}
.pj-table thead th small{display:block;font-size:.62rem;font-weight:600;opacity:.8}
.pj-table thead th.pj-name-col{left:0;z-index:25!important}
.pj-table tbody td.pj-name-col{z-index:5!important;background:var(--surface)!important}
.pj-table td{height:40px!important;padding:0!important}
.pj-table .day-cell.pj-cell{min-height:38px!important;min-width:44px;width:100%;padding:4px 0!important;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pj-traco{color:var(--line-strong,#c9cfdb);font-size:.8rem}
.pj-cell.pj-vazio:hover .pj-traco{color:#1c3d91;font-weight:800}
.pj-cell.pj-vazio:hover .pj-traco::before{content:'+';}.pj-cell.pj-vazio:hover .pj-traco{font-size:0}.pj-cell.pj-vazio:hover .pj-traco::before{font-size:1rem}
.pj-chip{display:flex;align-items:center;justify-content:center;gap:2px;width:calc(100% - 6px);height:26px;border-radius:7px;font-size:.64rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.pj-chip b{font-weight:800}.pj-chip i{font-style:normal;font-weight:800;font-size:.6rem;background:rgba(255,255,255,.9);color:#1b2440;border-radius:99px;padding:0 4px;line-height:13px}
.pj-chip.pj-liga-esq{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;width:calc(100% - 2px)}
.pj-chip.pj-liga-dir{border-top-right-radius:0;border-bottom-right-radius:0}
.pj-chip.pj-liga-esq.pj-liga-dir{width:calc(100% + 1px)}
.pj-cell:hover .pj-chip{filter:brightness(1.08);outline:2px solid rgba(28,61,145,.35);outline-offset:1px}
.pj-multi .pj-chip{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.0) 0 6px,rgba(255,255,255,.14) 6px 9px)}
.pj-pessoa{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:1px;min-width:0;width:100%}
.pj-pessoa strong{font-size:.8rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-pessoa small{font-size:.68rem;color:var(--muted);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pj-pessoa:hover strong{color:#1c3d91;text-decoration:underline}
.pj-table td.pj-name-col{padding:4px 12px!important}
.pj-tip{position:fixed;z-index:9999;display:none;min-width:220px;max-width:320px;background:#0f1b3d;color:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 12px 30px rgba(10,20,50,.3);font-size:.78rem;pointer-events:none}
.pj-tip-h{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;opacity:.7;margin-bottom:6px}
.pj-tip-i{display:flex;gap:8px;align-items:flex-start;padding:4px 0}.pj-tip-i+.pj-tip-i{border-top:1px solid rgba(255,255,255,.12)}
.pj-tip-i i{width:10px;height:10px;border-radius:3px;margin-top:4px;flex:none}
.pj-tip-i strong{display:block;font-weight:700}.pj-tip-i span{opacity:.75;font-size:.72rem}
/* formulário */
.pj-dialog{width:min(560px,calc(100vw - 32px))!important}
.pj-form{display:flex;flex-direction:column;gap:14px}
.pj-datas{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pj-editando{display:flex;align-items:center;gap:8px;background:#eef3ff;color:#1c3d91;border-radius:8px;padding:8px 12px;font-size:.82rem}
.pj-editando .text-link{margin-left:auto}
.pj-hist h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 8px}
#pj-hist-lista{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow:auto}
.pj-hist-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}
.pj-hist-row>i{font-style:normal;font-weight:800;font-size:.66rem;padding:4px 7px;border-radius:6px;min-width:44px;text-align:center}
.pj-hist-row>div{flex:1;min-width:0}.pj-hist-row strong{display:block;font-size:.85rem}.pj-hist-row span{font-size:.78rem;color:var(--muted)}
.pj-hist-row em{font-style:normal;font-size:.7rem;font-weight:700;color:#b86e00;background:#fdf1dc;border-radius:99px;padding:2px 8px}
.pj-hist-row.cruza{border-color:#f2c778}.pj-hist-row.editing{border-color:#1c3d91;background:#f3f6ff}
.pj-hist-vazio{font-size:.85rem;padding:6px 2px}
.pj-confirm{border:0;border-radius:16px;padding:24px;width:min(440px,calc(100vw - 32px));background:var(--surface);color:var(--text);box-shadow:0 20px 60px rgba(10,20,50,.3);text-align:center}
.pj-confirm::backdrop{background:rgba(10,20,50,.45)}
.pj-confirm-ic{color:#d97706;margin-bottom:6px}.pj-confirm h3{font-size:1.05rem;margin:0 0 10px}
.pj-confirm-b{text-align:left;font-size:.9rem;max-height:50vh;overflow:auto}
.pj-conf-lista{list-style:none;padding:0;margin:8px 0}.pj-conf-lista li{display:flex;gap:8px;align-items:center;padding:6px 10px;border-radius:8px;background:var(--surface-2);margin-bottom:5px}
.pj-conf-lista i{width:10px;height:10px;border-radius:3px;flex:none}
.pj-conf-nome{font-weight:700;margin:10px 0 0}.pj-conf-q{font-weight:700;margin-top:12px;text-align:center}
.pj-confirm-f{display:flex;gap:10px;margin-top:16px}.pj-confirm-f .btn{flex:1;justify-content:center}
@media (max-width:900px){.pj-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pj-wrap{max-height:none}}
@media print{.pj-kpis,.pj-vistas,.pj-legenda{display:none}.pj-wrap{max-height:none!important;overflow:visible!important}}
.pj-table .day-cell.pj-cell{min-width:50px;padding:4px 0!important}
.pj-chip,.pj-chip.pj-liga-esq,.pj-chip.pj-liga-dir,.pj-chip.pj-liga-esq.pj-liga-dir{flex:1;width:auto;margin:0 3px}
.pj-chip.pj-liga-esq{margin-left:0!important}.pj-chip.pj-liga-dir{margin-right:0!important}
.pj-multi .pj-chip{gap:3px;padding:0 2px}
/* Paginação das projeções (igual ao RH) */
.pj-pag{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 22px;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}
.pj-pag b{color:var(--text)}
.pj-pag-nav{display:flex;align-items:center;gap:10px}
.pj-pag-atual{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:7px;background:#1c3d91;color:#fff!important;margin:0 2px}
.pj-pag-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:1.2rem;line-height:1;cursor:pointer}
.pj-pag-btn:hover:not(:disabled){border-color:#1c3d91;color:#1c3d91}
.pj-pag-btn:disabled{opacity:.35;cursor:default}
.pj-pag-qtd{display:flex;align-items:center;gap:8px}
.pj-pag-qtd select{border:1px solid var(--line);border-radius:8px;padding:5px 8px;background:var(--surface);color:var(--text);font-weight:700}
@media print{.pj-pag{display:none}}

/* ===== Correções de modo claro/escuro (v66) ===== */
section.panel > .toolbar{background:var(--surface)!important}
.map-btn-row .btn{flex:1 1 140px!important;min-width:0;white-space:nowrap;justify-content:center}
.cost-total-card{background:linear-gradient(135deg,#1c3d91,#132b6b)!important;border-color:#1c3d91!important;color:#fff}
html:not([data-mode="dark"]) .eyebrow{color:#1f8a3a!important}
html:not([data-mode="dark"]) .pj-traco{color:#a3abbc}
.attendance-table thead,.pj-table thead,.projection-table thead{background:transparent!important}
html[data-mode="dark"] .calendar-table td.today,html[data-mode="dark"] .attendance-table td.today,html[data-mode="dark"] .projection-table td.today{background:#1b2644!important}
html[data-mode="dark"] .calendar-table th.today,html[data-mode="dark"] .attendance-table th.today,html[data-mode="dark"] .projection-table th.today{background:#27345a!important;color:#fff!important}
html[data-mode="dark"] .mini-stat strong{color:#a9bdff!important}
html[data-mode="dark"] .pj-traco{color:#4a5675}
/* Horário a cumprir */
.hc-resumo{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}
.hc-bloco{min-width:110px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface-2)}
.hc-bloco small,.hc-total small{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.hc-bloco strong{font-size:1.25rem;color:var(--text)}
.hc-total{flex:1;min-width:220px;border-radius:12px;padding:10px 16px;background:#e8eefc;color:#1c3d91}
.hc-total strong{display:block;font-size:1.1rem}.hc-total span{font-size:.78rem;opacity:.85}
html[data-mode="dark"] .hc-total{background:#1d2c57;color:#c9d6ff}
.hc-vazio{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:.88rem}.hc-vazio strong{display:block;color:var(--text)}
.hc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hc-preview{margin-top:12px;display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--text)}
.hc-form .field-help{margin-top:12px}
/* Contrato no mês (cadastros / equipe) */
.ec-ctr{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.ec-chip{font-size:.66rem;font-weight:800;padding:2px 6px;border-radius:5px}
.ec-nome{font-size:.8125rem;color:var(--text)}
/* Localização das batidas (alfinete ao lado de Entrada N) */
.de-lbl-row{display:flex;align-items:center;gap:6px}
.de-pin{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;padding:0}
.de-pin svg{width:12px;height:12px}
.de-pin.ok{color:#fff;background:#16a34a;border-color:#16a34a}
.de-pin.fora{color:#fff;background:#ea580c;border-color:#ea580c}
.de-pin.sem{opacity:.55}
.de-pin:hover{transform:scale(1.12)}
.bt-mapa{position:fixed;inset:0;z-index:2000;background:rgba(10,20,50,.45);display:grid;place-items:center;padding:16px}
.bt-card{width:min(620px,100%);background:var(--surface);color:var(--text);border-radius:16px;box-shadow:0 24px 60px rgba(10,20,50,.35);overflow:hidden;display:flex;flex-direction:column}
.bt-head{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.bt-head h3{margin:0;font-size:1rem;display:flex;align-items:center;gap:6px}
.bt-head p{margin:6px 0 0;display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.8rem}
.bt-ok,.bt-fora,.bt-facial{display:inline-flex;align-items:center;gap:5px;font-weight:700}
.bt-ok{color:#16a34a}.bt-fora{color:#ea580c}.bt-facial{color:var(--muted);font-weight:600}
.bt-map{height:min(380px,55vh);background:var(--surface-2)}
.bt-carregando{height:100%;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.85rem;padding:20px;text-align:center}
.bt-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line)}
.bt-foot small{color:var(--muted)}
/* Local do contrato (mapa no formulário) */
.cm-sec{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.cm-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.cm-head strong{display:flex;align-items:center;gap:6px;font-size:.95rem;color:var(--text)}
.cm-head small{display:block;font-weight:500;color:var(--muted);font-size:.78rem;margin-top:3px;max-width:520px}
.cm-modos{display:flex;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px}
.cm-modos label{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:7px;font-size:.82rem;font-weight:700;color:var(--text);cursor:pointer}
.cm-modos label:has(input:checked){background:#1c3d91;color:#fff}
.cm-modos input{accent-color:#fff;margin:0}
.cm-barra{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cm-busca{flex:1 1 240px;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:var(--surface);color:var(--muted)}
.cm-busca input{border:0;background:transparent;color:var(--text);padding:8px 0;width:100%;outline:none;font-size:.85rem}
.cm-raio{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--text)}
.cm-raio input{width:90px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface);color:var(--text)}
.cm-map-wrap{position:relative}
.cm-map{height:340px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#dfe5ee;cursor:crosshair}
.cm-carregando{height:100%;display:flex;align-items:center;justify-content:center;gap:8px;color:#5b6477;font-size:.85rem}
.cm-camadas{position:absolute;top:10px;right:10px;z-index:500;display:flex;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.2);overflow:hidden}
.cm-camadas button{border:0;background:#fff;color:#1b2440;padding:6px 12px;font-size:.78rem;font-weight:700;cursor:pointer}
.cm-camadas button.ativo{background:#1c3d91;color:#fff}
.cm-status{font-size:.82rem}.cm-status span{display:inline-flex;align-items:center;gap:6px}
.cm-ok{color:#16a34a;font-weight:700}.cm-dica{color:var(--muted)}
.cm-metricas{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:8px}
.cm-m{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}
.cm-m small{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-m strong{font-size:.95rem;color:var(--text);white-space:nowrap}
.cm-m-main{background:#1c3d91;border-color:#1c3d91}.cm-m-main small{color:#c7d3f5}.cm-m-main strong{color:#fff;font-size:1.1rem}
@media (max-width:700px){.cm-metricas{grid-template-columns:1fr 1fr}.cm-map{height:280px}}
.cm-modos input[type=radio]{appearance:auto;-webkit-appearance:radio;width:15px!important;height:15px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;flex:none;box-shadow:none!important;background:none!important}
.cm-modos label{white-space:nowrap}
/* Custo de paralisação no card do contrato */
.par-card{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin:-4px 0 14px;padding:10px 12px;border-radius:10px;background:#fef2f2;border:1px solid #fecaca}
.par-card span{display:block;font-size:.72rem;color:#9f1239}
.par-card strong{font-size:1rem;color:#dc2626}
.par-card small{grid-column:1/-1;display:flex;align-items:center;gap:5px;font-size:.72rem;color:#9f1239}
.par-card.ativo{border-color:#f87171}
html[data-mode="dark"] .par-card{background:#3a1418;border-color:#7f1d1d}
html[data-mode="dark"] .par-card span,html[data-mode="dark"] .par-card small{color:#fca5a5}
html[data-mode="dark"] .par-card strong{color:#f87171}
/* Locais do contrato: lista no formulário + janela grande do mapa (v73) */
.cl-sec{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.cl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cl-head strong{display:flex;align-items:center;gap:6px;font-size:.95rem;color:var(--text)}
.cl-head small{display:block;font-weight:500;color:var(--muted);font-size:.78rem;margin-top:3px}
.cl-lista{display:flex;flex-direction:column;gap:8px}
.cl-vazio{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.84rem;padding:6px 2px}
.cl-item{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.cl-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none;background:#e8eefc;color:#1c3d91}
.cl-ic.ponto{background:#dcfce7;color:#15803d}
.cl-info{flex:1;min-width:0;display:flex;flex-direction:column}
.cl-info strong{font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-info small{font-size:.74rem;color:var(--muted)}
.cl-area{text-align:right;flex:none}.cl-area small{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cl-area strong{font-size:1rem;color:#1c3d91}
html[data-mode="dark"] .cl-area strong{color:#a9bdff}
html[data-mode="dark"] .cl-ic{background:#1d2c57;color:#a9bdff}html[data-mode="dark"] .cl-ic.ponto{background:#123a24;color:#86efac}
.cl-del{color:var(--red)}
.cm-janela{position:fixed;inset:0;z-index:3000;background:rgba(10,20,50,.55);display:flex;align-items:center;justify-content:center;padding:18px}
.cm-card{width:min(1280px,100%);height:min(900px,100%);background:var(--surface);color:var(--text);border-radius:18px;box-shadow:0 30px 80px rgba(10,20,50,.4);display:flex;flex-direction:column;overflow:hidden}
.cm-topo{display:flex;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.cm-topo h3{margin:0;display:flex;align-items:center;gap:8px;font-size:1.1rem}.cm-topo small{color:var(--muted);font-size:.8rem}
.cm-janela .cm-barra{padding:10px 18px;border-bottom:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cm-nome{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700}
.cm-nome input{border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface);color:var(--text);width:220px}
.cm-janela .cm-map-wrap{flex:1;min-height:260px;position:relative}
.cm-janela .cm-map{height:100%;border-radius:0;border:0}
.cm-rodape{border-top:1px solid var(--line);padding:10px 18px 14px;display:flex;flex-direction:column;gap:10px}
.cm-janela .cm-metricas{grid-template-columns:1.3fr repeat(5,1fr)}
.cm-coord{font-size:.82rem!important}
.cm-acoes{display:flex;justify-content:flex-end;gap:10px}
@media (max-width:900px){.cm-janela{padding:0}.cm-card{height:100%;border-radius:0}.cm-janela .cm-metricas{grid-template-columns:1fr 1fr}.cm-nome input{width:100%}}
/* Cards que alternam (Visão geral) */
.metric-rot{position:relative;overflow:hidden}
.metric-rot .rot-slide{transition:opacity .6s ease,transform .6s ease}
.metric-rot .rot-slide:not(.ativo){position:absolute;inset:0;padding:inherit;opacity:0;transform:translateY(10px);pointer-events:none}
.metric-rot .rot-slide.ativo{opacity:1;transform:none}
.rot-dots{position:absolute;right:18px;bottom:14px;display:flex;gap:4px;z-index:2}
.rot-dots i{width:6px;height:6px;border-radius:99px;background:var(--line);transition:all .4s}
.rot-dots i.ativo{width:16px;background:#1c3d91}
html[data-mode="dark"] .rot-dots i.ativo{background:#a9bdff}
.metric-icon.rot-azul{background:#e8eefc!important;color:#1c3d91!important}
.metric-icon.rot-vermelho{background:#fee2e2!important;color:#dc2626!important}
.metric-icon.rot-verde{background:#e7efe0!important;color:#5f7a45!important}
html[data-mode="dark"] .metric-icon.rot-azul{background:#1d2c57!important;color:#a9bdff!important}
html[data-mode="dark"] .metric-icon.rot-vermelho{background:#3a1418!important;color:#f87171!important}
html[data-mode="dark"] .metric-icon.rot-verde{background:#23301a!important;color:#b5cc98!important}
/* Períodos de paralisação no card */
.par-periodos{grid-column:1/-1;list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.par-periodos li{font-size:.74rem;font-weight:700;color:#b91c1c}
.par-periodos em{font-weight:600;font-style:normal;opacity:.8}
html[data-mode="dark"] .par-periodos li{color:#fca5a5}
.contract-card h2{margin-bottom:4px}
.cc-prev{display:flex;align-items:center;gap:5px;font-size:.74rem;color:var(--muted);margin:0 0 10px}
.cc-prev b{color:var(--text);font-weight:700}
/* Relatórios: seleção de colaboradores */
.rel-chk{width:36px;text-align:center!important;padding-right:0!important}
.rel-chk input{width:16px;height:16px;cursor:pointer;accent-color:#1c3d91}
tr.rel-marcado td{background:rgba(28,61,145,.06)!important}
html[data-mode="dark"] tr.rel-marcado td{background:rgba(169,189,255,.08)!important}
.rel-datas input{min-width:140px}
.pend-metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.pend-metric-cid{cursor:pointer}.pend-metric-cid:hover{border-color:#f59e0b}
.pend-semcid{cursor:default}.pend-semcid .pend-person-main small{display:block;margin-top:4px}
.pend-semcid .pend-person-side{max-width:260px;text-align:right}.pend-semcid .pend-person-side small{color:var(--muted)}
.pend-tab-n{display:inline-block;margin-left:4px;padding:0 6px;border-radius:99px;background:#f59e0b;color:#fff;font-size:.7rem}
@media (max-width:900px){.pend-metrics{grid-template-columns:1fr 1fr!important}}
.shared-money > div{position:relative}
.shared-money .rs-prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.85rem;color:var(--muted);pointer-events:none;z-index:1}
.shared-money > div > input{padding-left:36px!important}
/* Evolução do contrato (tempo e custo) */
.evo-bloco{margin-bottom:14px}.evo-bloco:last-of-type{margin-bottom:20px}
.evo-bloco .composition-row{margin-bottom:6px}
.evo-bloco .progress{margin:0}
.evo-sub{display:block;margin-top:5px;font-size:.7rem;color:var(--muted);line-height:1.35}
.evo-ok{color:#15803d}.evo-ruim{color:var(--red)}.evo-baixo{color:#b45309}
html[data-mode="dark"] .evo-ok{color:#86efac}html[data-mode="dark"] .evo-baixo{color:#fbbf24}
.cc-prev.atrasado,.cc-prev.atrasado b{color:var(--red)!important}
.cc-prev em{font-style:normal;font-weight:700}
.vp-field input{width:100%}
.vp-diario{display:block;margin-top:5px;font-size:.76rem;color:var(--muted)}
.vp-diario b{color:var(--text)}
/* Lixeira invisível nas notificações (admin master) */
.pend-person{position:relative}
.pend-del{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--red);opacity:0;transition:opacity .15s;cursor:pointer;flex:none}
.pend-person:hover .pend-del,.pend-del:focus{opacity:1}
.pend-del:hover{background:rgba(220,38,38,.1)}
/* Histórico */
.hist-lista{display:flex;flex-direction:column}
.hist-row{display:flex;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);align-items:flex-start}
.hist-row.desfeito{opacity:.6}
.hist-quando{width:84px;flex:none;display:flex;flex-direction:column}.hist-quando strong{font-size:.85rem}.hist-quando small{color:var(--muted);font-size:.75rem}
.hist-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.hist-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hist-tab{font-size:.78rem;font-weight:700;color:var(--text)}
.hist-user{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--muted)}
.hist-desc{font-size:.86rem;color:var(--text)}
.hist-mud{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.75rem;color:var(--muted)}.hist-mud i{font-style:normal;text-transform:capitalize}
.hist-mais summary{cursor:pointer;font-size:.76rem;color:var(--primary)}.hist-mais div{font-size:.76rem;padding:3px 0;color:var(--muted)}
.hist-desf{color:#15803d;font-size:.74rem;display:inline-flex;gap:4px;align-items:center}
.hist-lix{color:var(--red);font-size:.74rem;display:inline-flex;gap:4px;align-items:center}
.hist-acao{flex:none}
@media (max-width:700px){.hist-row{flex-wrap:wrap}.hist-acao{width:100%}}
/* ===== Tela de login (v83) ===== */
.lg-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;position:relative;overflow:hidden;background:#06122e}
.lg-fundo{position:fixed;inset:0;background:url('/engenharia/assets/img/login-fundo.jpg') center/cover no-repeat;filter:saturate(.9)}
.lg-fundo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,46,.55),rgba(6,18,46,.78) 60%,rgba(8,40,40,.8));backdrop-filter:blur(2px)}
.lg-card{position:relative;z-index:1;width:min(420px,100%);background:rgba(13,24,52,.82);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:26px 26px 18px;box-shadow:0 30px 80px rgba(0,0,0,.45);backdrop-filter:blur(14px);color:#e7ecf7;display:flex;flex-direction:column;gap:14px}
.lg-topo{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;gap:10px}
.lg-logo{width:64px;height:64px;border-radius:14px;background:#fff;display:grid;place-items:center;padding:6px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.lg-logo img{max-width:100%;max-height:100%;object-fit:contain}
.lg-titulo{text-align:center}.lg-titulo h1{margin:0;font-size:1.45rem;line-height:1.1;font-weight:800;background:linear-gradient(90deg,#60a5fa,#22d3ee);-webkit-background-clip:text;background-clip:text;color:transparent}
.lg-titulo p{margin:4px 0 0;font-size:.78rem;color:#9fb0d4}
.lg-seguro{align-self:center;display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:700;color:#67e8f9;border:1px solid rgba(103,232,249,.35);background:rgba(34,211,238,.08);padding:4px 12px;border-radius:99px}
.lg-campo{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:700;color:#c9d4ee}
.lg-campo input{width:100%;background:rgba(3,10,30,.7);border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:12px 14px;color:#fff;font-size:.92rem;outline:none}
.lg-campo input::placeholder{color:#6b7a9c}
.lg-campo input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.25)}
.lg-senha{position:relative;display:block}.lg-senha input{padding-right:44px}
.lg-senha button{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:#8ea0c7;cursor:pointer;padding:6px}
.lg-lembrar{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#9fb0d4}
.lg-entrar{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:13px;font-weight:800;font-size:.95rem;color:#fff;cursor:pointer;background:linear-gradient(90deg,#3b82f6,#06b6d4);box-shadow:0 10px 24px rgba(37,99,235,.35)}
.lg-entrar:hover{filter:brightness(1.07)}.lg-entrar:disabled{opacity:.7;cursor:wait}
.lg-esqueci{background:none;border:0;color:#9fb0d4;font-size:.8rem;cursor:pointer;text-align:center}.lg-esqueci:hover{color:#fff;text-decoration:underline}
.lg-tema{display:flex;justify-content:center}.lg-tema button{background:none;border:0;color:#6b7a9c;cursor:pointer;padding:4px}
.lg-rodape{position:relative;z-index:1;margin-top:18px;font-size:.74rem;color:#8ea0c7}
.lg-h2{margin:0;font-size:1.3rem;color:#fff;text-align:center}.lg-p{margin:0;font-size:.85rem;color:#a9b7d6;text-align:center;line-height:1.5}
.lg-erro{margin:0;color:#fca5a5;font-size:.82rem;text-align:center}
/* Usuários e acessos */
.us-login{font-size:.8rem;background:var(--surface-2);padding:2px 7px;border-radius:6px}
.us-del{color:var(--red)}
/* ===== v84 ===== */
/* menu lateral com submenus */
.nav-wrap{position:relative}
.nav-flyout{position:fixed;z-index:4000;display:none;min-width:230px;background:#0d2a6b;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:6px;box-shadow:0 18px 40px rgba(5,15,40,.45)}
.nav-wrap.aberto .nav-flyout{display:block;animation:navIn .12s ease-out}
@keyframes navIn{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:none}}
.nav-flyout-t{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#8fa6d8;padding:6px 10px 4px}
.nav-flyout a{display:block;padding:9px 12px;border-radius:8px;color:#e6ecfa;font-size:.86rem;font-weight:600;text-decoration:none;white-space:nowrap}
.nav-flyout a:hover{background:rgba(255,255,255,.1);color:#fff}
/* ausência no lançamento */
.de-aus-box{border:1px dashed var(--line);border-radius:12px;padding:10px 12px;margin:4px 0 10px;background:var(--surface-2)}
.de-aus-box.on{border-color:#f59e0b;background:rgba(245,158,11,.08)}
.de-aus-chk{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.88rem}.de-aus-chk small{color:var(--muted);font-weight:500}
.de-aus-chk input{width:17px;height:17px;accent-color:#d97706}
.de-aus-campos{display:grid;grid-template-columns:220px 1fr;gap:10px;margin-top:10px}
.de-aus-campos select,.de-aus-campos input{width:100%}
.de-off{opacity:.35;pointer-events:none;filter:grayscale(1)}
.day-cell.att-aus{background:#e0e7ff!important;color:#3730a3!important;font-weight:800}
html[data-mode="dark"] .day-cell.att-aus{background:#262f5c!important;color:#c7d2fe!important}
/* DSR */
.attendance-table th.att-dsr-col{font-size:.62rem;line-height:1.15;text-align:center;min-width:72px}
.attendance-table td.att-dsr-col{text-align:center}
.dsr-chk{display:inline-flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.dsr-chk input{width:16px;height:16px;accent-color:#dc2626}.dsr-chk small{font-size:.62rem;color:var(--red);font-weight:700}
.dsr-nota{display:block;font-size:.62rem;color:var(--red);font-weight:700}
.dsr-line strong{color:var(--red)}
/* carga horária semanal */
.ch-dialog{width:min(980px,calc(100vw - 32px))!important}
.ch-tabela{width:100%;border-collapse:collapse;font-size:.85rem}
.ch-tabela th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 6px;text-align:center;border-bottom:1px solid var(--line)}
.ch-tabela th:first-child,.ch-tabela td:first-child{text-align:left}
.ch-tabela td{padding:6px;border-bottom:1px solid var(--line);text-align:center}
.ch-tabela tfoot td{font-weight:800;border-bottom:0;padding-top:10px}
.ch-tabela input[type=time]{width:100%;min-width:96px;padding:6px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}
.ch-tabela input[type=checkbox]{width:16px;height:16px;accent-color:#1c3d91}
.ch-tot{font-weight:800;color:var(--text)}
.ch-nome{font-weight:700;white-space:nowrap}
.ch-folga td{color:var(--muted)}
.ch-ajuda{margin-top:14px;font-size:.78rem;color:var(--muted);line-height:1.5}.ch-ajuda p{margin:0 0 6px}
#modal.ch-dialog{width:min(1040px,calc(100vw - 32px))!important;max-width:min(1040px,calc(100vw - 32px))!important}
.ch-tabela input[type=time]{min-width:92px;font-size:.82rem}
.ch-tabela th{white-space:nowrap}
.de-aus-campos select{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--surface);color:var(--text);font-size:.88rem}
.de-aus-campos input{height:42px}
/* ===== Menu lateral: aberto = ícone + nome; recolhido = só ícones (botão de expandir no topo) ===== */
:root{--sidebar:240px!important}
@media(max-width:760px){:root{--sidebar:0px!important}}
.sidebar{width:240px!important;padding:14px 12px 12px!important;align-items:stretch;overflow:visible;transition:width .2s ease,padding .2s ease}
.app-main{transition:margin-left .2s ease}
.sidebar-top{display:flex;align-items:center;gap:8px;padding:2px 2px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}
.sidebar-top .brand-v2{flex:1;min-width:0;flex-direction:row;justify-content:flex-start;padding:0;gap:10px}
.sidebar .brand-text{min-width:0}.sidebar .brand-v2 .brand-name{font-size:.98rem;white-space:nowrap}.sidebar .brand-v2 .brand-sub{font-size:.6rem;overflow:hidden;text-overflow:ellipsis}
.sidebar .brand-logos span{width:34px;height:34px;border-radius:10px}.sidebar .brand-logos img{width:24px;height:24px}
.menu-toggle{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#b9c6e6;border:1px solid rgba(255,255,255,.12);background:transparent;cursor:pointer;transition:background .15s,color .15s}
.menu-toggle:hover{background:rgba(255,255,255,.1);color:#fff}
.sidebar .sidebar-company,.sidebar .sidebar-user > div{display:none!important}
.sidebar .workspace-label{margin:16px 12px 6px;white-space:nowrap}
.sidebar nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.sidebar .nav-link{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:10px 12px!important;margin:1px 0!important;font-size:.875rem!important;font-weight:600;line-height:1.2;border-radius:12px;white-space:nowrap}
.sidebar .nav-link svg{width:20px;height:20px;flex:none}
.sidebar .nav-link .nav-count{position:static;margin-left:auto;font-size:.68rem;padding:0 6px;line-height:17px}
.sidebar .nav-link.active::before{left:-12px}
.sidebar .nav-divider{margin:10px 8px}
.sidebar .sidebar-bottom{padding-top:12px}
@media(min-width:761px){
  html.menu-recolhido{--sidebar:72px!important}
  html.menu-recolhido .sidebar{width:72px!important;padding:14px 10px 12px!important}
  html.menu-recolhido .sidebar-top{justify-content:center;padding:2px 0 12px}
  html.menu-recolhido .sidebar-top .brand-v2,html.menu-recolhido .sidebar .workspace-label{display:none!important}
  html.menu-recolhido .sidebar .nav-link{justify-content:center;padding:11px 0!important;position:relative}
  html.menu-recolhido .sidebar .nav-link span:not(.nav-count){display:none}
  html.menu-recolhido .sidebar .nav-link .nav-count{position:absolute;top:4px;right:4px;margin:0;font-size:.58rem;padding:0 4px;line-height:14px}
  html.menu-recolhido .sidebar .nav-link.active::before{left:-10px}
}
@media(max-width:760px){.menu-toggle{display:none}}
.nav-wrap.aberto > .nav-link{background:rgba(255,255,255,.12);color:#fff}
.nav-flyout{min-width:240px}
.ch-tip{position:relative;cursor:help;border-bottom:1px dotted currentColor}
.ch-tip:hover::after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);width:190px;white-space:normal;background:#111827;color:#fff;font-size:.74rem;font-weight:500;text-transform:none;letter-spacing:0;line-height:1.35;padding:8px 10px;border-radius:8px;box-shadow:0 8px 20px rgba(0,0,0,.25);z-index:50;text-align:center}
.ch-tip:hover::before{content:"";position:absolute;top:calc(100% + 2px);left:50%;transform:translateX(-50%);border:6px solid transparent;border-bottom-color:#111827;z-index:50}
.ch-tabela .table-wrap,.ch-form .table-wrap{overflow:visible}
.pend-sec{display:flex;align-items:center;gap:8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:6px 0 10px}
.pend-sec ~ .pend-sec{margin-top:22px}
/* lixeira do colaborador fora da tabela, só ao passar o mouse na linha */
.attendance-table .att-remove{display:none!important}
.att-lix-flutuante{position:fixed;z-index:60;width:30px;height:30px;border-radius:9px;border:1px solid #fecaca;background:#fff;color:#dc2626;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(220,38,38,.18);opacity:0;pointer-events:none;transition:opacity .12s}
.att-lix-flutuante.on{opacity:1;pointer-events:auto}
.att-lix-flutuante:hover{background:#dc2626;color:#fff}
html[data-mode="dark"] .att-lix-flutuante{background:#3a1418;border-color:#7f1d1d;color:#f87171}
/* ===== Níveis de acesso ===== */
body.perfil-simples .calendar-cost-col, body.perfil-simples .att-dsr-col, body.perfil-simples [data-action="toggle-costs"],
body.perfil-simples [data-sync-contract], body.perfil-simples .cost-stat-link, body.perfil-simples .par-card,
body.perfil-simples .contract-details > div:first-child, body.perfil-simples .evo-bloco + .evo-bloco,
body.perfil-simples .tab[data-value="costs"], body.perfil-simples .metrics .metric:nth-child(3), body.perfil-simples .analytics-grid,
body.perfil-simples .projection-table .table-footer,
body.perfil-simples [data-action="new-project"], body.perfil-simples [data-action="edit-project"], body.perfil-simples .delete-contract-btn,
body.perfil-simples [data-action="new-allocation"], body.perfil-simples [data-action="approve-calendar"], body.perfil-simples [data-action="edit-horario"],
body.perfil-simples [data-action="feriados-nacionais"], body.perfil-simples [data-action="holiday"], body.perfil-simples [data-action="delete-holiday"],
body.perfil-eng [data-action="new-project"], body.perfil-eng [data-action="edit-project"], body.perfil-eng .delete-contract-btn,
body.perfil-eng [data-action="new-allocation"], body.perfil-eng [data-action="edit-horario"], body.perfil-eng [data-action="feriados-nacionais"],
body.perfil-eng [data-action="holiday"], body.perfil-eng [data-action="delete-holiday"], body.perfil-eng [data-action="approve-calendar"],
body.perfil-eng .att-lix-flutuante, body.perfil-simples .att-lix-flutuante { display:none!important }
body.perfil-eng .att-dsr-col input, body.perfil-simples .att-dsr-col input { pointer-events:none; opacity:.5 }
body.perfil-simples .day-cell { cursor:default }
/* Cadastros */
.niveis-ajuda{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 22px;border-top:1px solid var(--line)}
.niveis-ajuda div{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:.76rem;color:var(--muted);line-height:1.4}
.niveis-ajuda b{display:block;color:var(--text);font-size:.8rem;margin-bottom:3px}
.us-nivel{min-width:200px}
.us-ctrs{display:flex;flex-wrap:wrap;gap:5px}.us-ctr{font-size:.72rem;font-weight:700;background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:2px 9px}
.us-chk-lista{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:6px}
.us-chk{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer;font-size:.86rem;font-weight:500;color:var(--text)}
.us-chk:hover{background:var(--surface-2)}.us-chk input{width:17px;height:17px;accent-color:#1c3d91}
.us-chk i{width:10px;height:10px;border-radius:3px;flex:none}.us-chk span{flex:1}.us-chk small{color:var(--muted)}
@media(max-width:900px){.niveis-ajuda{grid-template-columns:1fr 1fr}}

/* ===== v92: Control iD em azul, janela de sincronizar, perfis e lixeira padrão ===== */
.day-cell.att-auto{outline:2px solid #2563eb!important;outline-offset:-2px}
.att-legend i.att-auto{box-shadow:none!important;outline:2px solid #2563eb;outline-offset:-2px;background:transparent}
html[data-mode="dark"] .day-cell.att-auto,html[data-mode="dark"] .att-legend i.att-auto{outline-color:#60a5fa!important}
.day-editor input.de-cid{border-color:#2563eb!important;box-shadow:0 0 0 1px #2563eb inset;background:#eff6ff}
html[data-mode="dark"] .day-editor input.de-cid{border-color:#60a5fa!important;box-shadow:0 0 0 1px #60a5fa inset;background:#13254a}
.de-cid-tag{display:inline-block;font-size:.66rem;font-weight:700;color:#1d4ed8;background:#dbeafe;border:1px solid #93c5fd;border-radius:999px;padding:1px 7px;margin-left:6px;line-height:1.5;vertical-align:middle}
html[data-mode="dark"] .de-cid-tag{color:#bfdbfe;background:#1e3a8a;border-color:#3b82f6}
.de-info.de-info-cid{border:1px solid #93c5fd;background:#eff6ff;color:#1e3a8a}
.de-info.de-info-cid .de-cid-tag{margin:0 2px 0 0}
html[data-mode="dark"] .de-info.de-info-cid{background:#13254a;border-color:#2563eb;color:#bfdbfe}
/* janela Sincronizar Control iD */
.sync-sel-ajuda{color:var(--muted);font-size:.85rem;margin:0 0 12px}
.sync-sel-topo{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);margin-bottom:10px}
.sync-sel-todos{display:flex;gap:7px;align-items:center;cursor:pointer;font-size:.85rem}
.sync-sel-cont{margin-left:auto;font-size:.8rem;color:var(--muted)}
.sync-sel-busca{width:100%;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;padding:8px 11px;background:var(--surface);color:var(--text)}
.sync-sel-lista{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.sync-sel-item{display:flex;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:.88rem}
.sync-sel-item:last-child{border-bottom:0}
.sync-sel-item:hover{background:var(--surface-2)}
.sync-sel-item small{margin-left:auto;color:var(--muted);font-size:.75rem}
.sync-sel-item input,.sync-sel-todos input{width:17px;height:17px;accent-color:var(--primary)}
/* perfis: lápis e lixeira só ao passar o mouse no usuário */
.us-acoes{display:inline-flex;gap:2px;opacity:0;transition:opacity .15s;vertical-align:middle}
tr.us-linha:hover .us-acoes,.us-acoes:focus-within{opacity:1}
@media (hover:none){.us-acoes{opacity:1}}
.us-edit{color:var(--primary)}
.us-edit:hover{background:var(--primary-soft)}
.us-nivel-tag{position:relative;display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--text);cursor:help}
.us-nivel-tag.master{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}
.us-nivel-tag.info{padding:1px 4px;border:0;background:none;color:var(--muted);vertical-align:middle}
.us-tip-flut{position:fixed;z-index:1000;max-width:290px;white-space:normal;font-weight:400;font-size:.76rem;line-height:1.45;color:#fff;background:#0f1c36;padding:9px 11px;border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:none}
.us-nivel-lbl{display:inline-flex;align-items:center;gap:2px}
.us-ro{opacity:.7;cursor:not-allowed}
.us-senha-box{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.us-senha-box b{display:flex;align-items:center;gap:6px;font-size:.88rem}
.us-senha-box small{display:block;color:var(--muted);font-size:.78rem;margin-top:3px;font-weight:400}
/* lixeira padrão (igual à da lista de usuários): ícone vermelho, sem caixa */
.lix-vermelha,.delete-contract-btn,[data-action="delete-holiday"],.cl-del,.de-remover,[data-pj-del],[data-action="remove-projection"],.pend-del,.att-lix-flutuante{color:var(--red)!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:11px}
.lix-vermelha:hover,.delete-contract-btn:hover,[data-action="delete-holiday"]:hover,.cl-del:hover,.de-remover:hover,[data-pj-del]:hover,[data-action="remove-projection"]:hover,.pend-del:hover,.att-lix-flutuante:hover{color:var(--red)!important;background:rgba(220,38,38,.1)!important}
.att-lix-flutuante{width:36px;height:36px}
html[data-mode="dark"] .att-lix-flutuante{background:transparent!important;color:#f87171!important}

/* ===== v93: notificações mais largas, batidas em pares ===== */
dialog#modal.pend-dialog{width:min(1320px,96vw)!important;max-width:96vw!important}
.pend-days{grid-template-columns:repeat(auto-fill,minmax(540px,1fr))!important}
@media (max-width:700px){.pend-days{grid-template-columns:1fr!important}}
.pend-punches{display:grid!important;grid-template-columns:1fr 1fr;gap:8px 18px!important}
@media (max-width:520px){.pend-punches{grid-template-columns:1fr}}
.pend-punches li{flex-wrap:nowrap!important;min-width:0}
.pend-punches li.muted{grid-column:1 / -1}
.pend-punches .pend-where{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pend-map{flex:none;width:26px;height:26px;border-radius:8px;justify-content:center;color:var(--primary)}
.pend-map:hover{background:var(--primary-soft)}
.pend-map.sem{color:var(--muted);opacity:.35;cursor:default}
.pend-map.sem:hover{background:none}
.pend-cal th:first-child,.pend-cal td:first-child{position:static}
.evo-m-abaixo{color:#2563eb!important}.evo-m-dentro{color:var(--green)!important}.evo-m-acima{color:var(--red)!important}
html[data-mode="dark"] .evo-m-abaixo{color:#60a5fa!important}
.evo-acum{display:block;margin-top:3px;opacity:.85}
/* feriados dos contratos */
.fer-sel{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}
.fer-sel select{min-width:300px}
.fer-local{display:inline-flex;align-items:center;gap:4px;font-size:.85rem}
.fer-tit{font-size:.95rem;margin:0 0 10px}
.nav-flyout-sep{margin-top:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12)}
.field-help.wide{grid-column:1 / -1;display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.8rem;margin:0}
/* v94: tabela de feriados */
.fer-tab{display:flex;flex-direction:column}
.fer-tr{display:grid;grid-template-columns:150px 1fr 40px;gap:14px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);font-size:.9rem}
.fer-tr.mun{grid-template-columns:150px 1fr 220px 40px}
.panel-body .fer-tab .fer-tr:not(.fer-th):not(.mun) span:nth-child(3).muted{font-size:.82rem}
.fer-tab .fer-tr:last-child{border-bottom:0}
.fer-th{font-size:.7rem!important;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;padding-top:0}
.fer-data{font-variant-numeric:tabular-nums;font-weight:700}
.fer-anual{font-weight:500;font-size:.7rem;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:1px 7px;margin-left:4px}
.fer-acao{text-align:right}
.fer-vazio{padding:14px 4px;margin:0}
.fer-tab:has(.fer-th:not(.mun)) .fer-tr:not(.mun){grid-template-columns:150px 1fr 160px}
.fer-tab .fer-tr:not(.mun):has(.fer-acao){grid-template-columns:150px 1fr 40px}
@media(max-width:640px){.fer-tr,.fer-tr.mun{grid-template-columns:90px 1fr 36px}.fer-tr.mun span:nth-child(3){grid-column:2;grid-row:2;font-size:.8rem;color:var(--muted)}.fer-tr.mun .fer-acao{grid-row:1;grid-column:3}}
/* v95: botões de edição só para Nível 3 e Administrador Master */
body.perfil-leitura [data-action="new-project"], body.perfil-leitura [data-action="edit-project"], body.perfil-leitura .delete-contract-btn,
body.perfil-leitura [data-action="new-allocation"], body.perfil-leitura [data-action="edit-horario"], body.perfil-leitura [data-action="feriados-nacionais"],
body.perfil-leitura [data-action="holiday"], body.perfil-leitura [data-action="delete-holiday"], body.perfil-leitura [data-action="approve-calendar"],
body.perfil-leitura [data-action="edit-schedule-times"], body.perfil-leitura [data-action="cost-settings"], body.perfil-leitura [data-action="edit-employee"],
body.perfil-leitura .fer-gerenciar, body.perfil-leitura [data-fer-novo], body.perfil-leitura [data-fer-nacionais], body.perfil-leitura [data-fer-del],
body.perfil-leitura .att-lix-flutuante, body.perfil-leitura [data-remove-member] { display:none!important }
.collab-nome{display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4}
.collab-nome strong{font-size:14px}
.collab-nome .badge{font-size:.68rem;padding:2px 8px}

/* ===== v100: férias, clientes, mês finalizado, telas adaptáveis ===== */
.day-cell.att-ferias{background:#e9e3ff!important;color:#5b3fc4!important;font-weight:800;font-size:.62rem!important;letter-spacing:.02em;cursor:default}
html[data-mode="dark"] .day-cell.att-ferias{background:#2e2557!important;color:#c4b5fd!important}
.fer-nota{color:#6d4fd8!important}
.fer-chk{width:36px;text-align:center}
.fer-chk input,.fer-tab-sel input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}
.fer-res{font-size:.8rem;color:var(--muted);margin-left:4px}
.fer-tabela td{vertical-align:middle}
dialog#modal.fer-dialog{width:min(1500px,96vw)!important;max-width:96vw!important}
dialog#modal.fer-hist-dialog{width:min(720px,96vw)!important}
.fer-split{display:grid;grid-template-columns:330px 1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:56vh;max-height:64vh}
.fer-esq{border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--surface-2);min-height:0}
.fer-esq-top,.fer-dir-top{padding:12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:.88rem}
.fer-dir-top{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap}
.fer-esq-top input{border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:var(--surface);color:var(--text)}
.fer-disp{overflow:auto;flex:1;padding:6px}
.fer-disp-item{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:9px 10px;border-radius:9px;border-bottom:1px solid var(--line);color:var(--text)}
.fer-disp-item:hover{background:var(--primary-soft)}
.fer-disp-item span{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:.82rem}
.fer-disp-item small{flex-basis:100%;color:var(--muted);font-size:.72rem}
.fer-disp-item .badge{font-size:.62rem;padding:1px 7px}
.fer-dir{display:flex;flex-direction:column;min-width:0;min-height:0}
.fer-sel-wrap{overflow:auto;flex:1}
.fer-tab-sel{width:100%;font-size:.82rem}
.fer-tab-sel th{position:sticky;top:0;background:var(--surface);z-index:2;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:left;padding:9px 8px}
.fer-tab-sel td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.fer-tab-sel input[type=date],.fer-tab-sel select,.fer-todos-dt input{border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:var(--surface);color:var(--text);font-size:.8rem}
.fer-todos-dt{font-size:.78rem;color:var(--muted);display:flex;gap:5px;align-items:center}
.fer-hist-top{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.fer-hist-top div{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.fer-hist-top span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.fer-hist{display:flex;flex-direction:column}
.fer-hist-row{display:grid;grid-template-columns:200px 120px 1fr 36px;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);font-size:.88rem}
.fer-lista-del{margin:8px 0 0 18px;font-size:.88rem}
@media(max-width:900px){.fer-split{grid-template-columns:1fr;max-height:none}.fer-esq{max-height:260px;border-right:0;border-bottom:1px solid var(--line)}.fer-hist-row{grid-template-columns:1fr auto 36px}.fer-hist-row .muted{grid-column:1 / -1}}
.cli-campo{position:relative}
.cli-sug li{flex-direction:column;align-items:flex-start!important;gap:1px!important}
.cli-sug li small{color:var(--muted);font-size:.72rem;font-weight:400}
.mes-fin{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;background:#e7f6ec;border:1px solid #9bd5ae;color:#0b5c2c;cursor:pointer;font-size:.9rem}
.mes-fin input{width:17px;height:17px;accent-color:#0b7c38}
.mes-fin small{color:#3f7a55;font-size:.78rem}
.mes-fin.so-ver{cursor:default}
html[data-mode="dark"] .mes-fin{background:#123222;border-color:#1f6b3d;color:#9ee6b8}
/* telas de apontamento e projeções se ajustam ao tamanho do monitor */
.page:has(.attendance-table),.page:has(.pj-table){max-width:none}
.attendance-table,.pj-table{width:100%}
.attendance-table th:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col),.attendance-table td:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col){min-width:clamp(34px,2.25vw,96px)!important}
.attendance-table .day-cell{min-width:clamp(32px,2.1vw,92px)!important;height:clamp(32px,2.2vw,56px)!important;min-height:clamp(32px,2.2vw,56px)!important;font-size:clamp(.66rem,.62vw,1rem)!important}
.attendance-table thead th{font-size:clamp(.62rem,.6vw,.95rem)}
.attendance-table .att-name-col{min-width:clamp(170px,12vw,340px)!important;width:clamp(170px,12vw,340px)!important;max-width:clamp(170px,12vw,340px)!important}
.attendance-table .att-name-col .project-name,.attendance-table .att-name-col .project-meta{max-width:calc(clamp(170px,12vw,340px) - 26px)!important}
.attendance-table .att-name-col .project-name{font-size:clamp(.74rem,.7vw,1.05rem)}
.pj-table .day-cell.pj-cell{min-width:clamp(34px,2.25vw,96px)!important;font-size:clamp(.6rem,.55vw,.9rem)}
.pj-table td{height:clamp(34px,2.2vw,54px)!important}
.pj-table .pj-name-col{min-width:clamp(170px,12vw,340px)}
@media (min-width:2200px){.page:has(.attendance-table),.page:has(.pj-table){padding-inline:48px}}
@media (max-width:820px){.attendance-table .att-name-col{min-width:140px!important;width:140px!important;max-width:140px!important}}
.fer-tab-sel td:nth-child(2){max-width:170px;font-size:.72rem;line-height:1.3}
.fer-tab-sel td:nth-child(1){min-width:150px}
.fer-tab-sel select{min-width:110px}
.fer-tab-sel td:last-child{width:40px}
.fer-tab-sel input.fer-proprio{border-color:var(--primary)!important;box-shadow:0 0 0 1px var(--primary) inset;font-weight:600}

/* ===== v103: tela fixa (só a lista rola) e tamanho da letra ===== */
.page{zoom:var(--zoom-pagina,1)}
html.tela-fixa,html.tela-fixa body{overflow:hidden;height:100%}
.rola-dentro{overflow:auto!important}
.pj-wrap.rola-dentro{min-height:0}
.zoom-ctl{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);margin-right:6px}
.zoom-ctl button{padding:6px 9px;font-weight:800;font-size:.8rem;color:var(--text);line-height:1}
.zoom-ctl button:hover{background:var(--primary-soft);color:var(--primary)}
.zoom-ctl span{font-size:.72rem;color:var(--muted);min-width:40px;text-align:center;border-inline:1px solid var(--line);padding:6px 4px;cursor:default;user-select:none}
/* férias: linhas mais baixas, cabeçalho preso ao rolar */
.fer-tabela th,.fer-tabela td{padding:6px 12px!important;font-size:.8rem}
.fer-tabela td strong{font-weight:700;font-size:.8rem}
.fer-tabela .badge{padding:2px 8px;font-size:.68rem}
.fer-tabela thead th{position:sticky;top:0;z-index:3;background:var(--surface-2)}
.fer-tabela .icon-btn{width:30px;height:30px}
@media (max-width:820px){.zoom-ctl span{display:none}}
/* modo tela fixa: cabeçalho do contrato mais compacto para sobrar espaço para a lista */
html.modo-fixo .footer{display:none}
html.modo-fixo .page{padding-top:16px;padding-bottom:10px}
html.modo-fixo .back-link{margin-bottom:6px}
html.modo-fixo .detail-banner{margin-bottom:10px}
html.modo-fixo .detail-banner h1{font-size:1.35rem}
html.modo-fixo .detail-banner .project-symbol{width:42px;height:42px}
html.modo-fixo .detail-stats{margin:10px 0 12px;gap:12px}
html.modo-fixo .detail-stats .mini-stat{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
html.modo-fixo .detail-stats .mini-stat strong{margin-top:0;font-size:1.15rem}
html.modo-fixo .detail-stats .mini-stat small{display:none}
html.modo-fixo .tabs{margin-bottom:10px}
html.modo-fixo .tab{padding:8px 1px}
html.modo-fixo .attendance-legend{padding-top:8px!important;padding-bottom:8px!important}
html.modo-fixo .table-footer{padding-top:6px;padding-bottom:6px}
html.modo-fixo .row.between.mt-20{margin-top:10px}
html.modo-fixo .page-heading{margin-bottom:14px}
html.modo-fixo .pj-kpis{margin-bottom:12px}
html.modo-fixo .pj-kpis>*{padding-top:10px;padding-bottom:10px}
/* v104: projeções — barra de filtros centralizada, cabeçalho centralizado, nomes menores */
.pj-toolbar{align-items:center!important;padding-top:12px!important;padding-bottom:12px!important}
.pj-toolbar>*{align-self:center}
.pj-toolbar .toolbar-group{align-items:center}
.pj-toolbar .pills,.pj-toolbar .search{margin:0}
.pj-table thead th.pj-name-col{text-align:center!important}
.pj-table thead th.pj-name-col>span{display:block;text-align:center;width:100%}
.pj-pessoa strong{font-size:clamp(.66rem,.6vw,.92rem)!important}
.pj-pessoa small{font-size:clamp(.56rem,.5vw,.78rem)!important}
.attendance-table .att-name-col .project-name{font-size:clamp(.68rem,.62vw,.95rem)!important}
.attendance-table .att-name-col .project-meta{font-size:clamp(.56rem,.5vw,.78rem)!important}
section.panel > .toolbar{margin-top:0!important;padding-top:12px!important;padding-bottom:12px!important;align-items:center}
/* v105: nomes e funções das Projeções ~20% menores (10 -> 8) */
.pj-pessoa strong{font-size:clamp(.53rem,.48vw,.74rem)!important}
.pj-pessoa small{font-size:clamp(.45rem,.4vw,.62rem)!important}
/* v106: nomes e funções das Projeções com tamanho fixo em qualquer monitor */
.pj-pessoa strong{font-size:8.5px!important}
.pj-pessoa small{font-size:7px!important}
.erro-carga{position:fixed;left:50%;top:18px;transform:translateX(-50%);z-index:5000;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:12px;padding:12px 18px;box-shadow:0 10px 30px rgba(0,0,0,.15);font-size:.9rem}
.erro-carga a{color:#991b1b;text-decoration:underline;font-weight:700}
/* v107: nome 10,5px e função 9px (fixo) em Projeções e no calendário dos contratos */
.pj-pessoa strong{font-size:10.5px!important}
.pj-pessoa small{font-size:9px!important}
.attendance-table .att-name-col .project-name{font-size:10.5px!important}
.attendance-table .att-name-col .project-meta{font-size:9px!important}
/* v108: calendário e projeções com tamanho FIXO — tela maior mostra mais colunas em vez de esticar */
.attendance-table,.pj-table{width:max-content!important;min-width:0!important;table-layout:auto}
.attendance-table th:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col),.attendance-table td:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col){min-width:39px!important;width:39px!important;max-width:39px!important}
.attendance-table .day-cell{min-width:36px!important;width:100%!important;height:34px!important;min-height:34px!important;font-size:.72rem!important}
.attendance-table thead th{font-size:.7rem}
.attendance-table .att-name-col{min-width:190px!important;width:190px!important;max-width:190px!important}
.attendance-table .att-name-col .project-name,.attendance-table .att-name-col .project-meta{max-width:166px!important}
.pj-table th:not(.pj-name-col),.pj-table td:not(.pj-name-col){min-width:36px!important;width:36px!important;max-width:36px!important}
.pj-table .day-cell.pj-cell{min-width:34px!important;font-size:.6rem!important}
.pj-table td{height:36px!important}
.pj-table .pj-name-col{min-width:0}
/* v109: em telas largas a tabela ocupa toda a largura — a sobra vai para a coluna do nome (dias continuam do mesmo tamanho) */
.attendance-table,.pj-table{min-width:100%!important;width:100%!important;table-layout:auto}
.attendance-table .att-name-col{width:auto!important;max-width:none!important;min-width:190px!important}
.attendance-table .att-name-col .project-name,.attendance-table .att-name-col .project-meta{max-width:none!important}
.attendance-table th.calendar-cost-col,.attendance-table td.calendar-cost-col{width:150px!important;min-width:150px!important;max-width:150px!important}
.attendance-table th.att-total-col,.attendance-table td.att-total-col{width:62px!important;min-width:62px!important;max-width:80px!important}
.attendance-table th.att-dsr-col,.attendance-table td.att-dsr-col{width:70px!important;min-width:70px!important;max-width:70px!important}
.pj-table .pj-name-col{width:auto!important;min-width:245px}
/* v110: nome com largura fixa; os dias dividem a largura da tela (letra e altura não mudam) */
.attendance-table .att-name-col{width:230px!important;min-width:230px!important;max-width:230px!important}
.attendance-table .att-name-col .project-name,.attendance-table .att-name-col .project-meta{max-width:206px!important}
.attendance-table th:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col),.attendance-table td:not(.att-name-col):not(.calendar-cost-col):not(.att-total-col):not(.att-dsr-col){min-width:39px!important;width:auto!important;max-width:none!important}
.attendance-table th.att-total-col,.attendance-table td.att-total-col{width:80px!important;min-width:80px!important;max-width:80px!important;white-space:normal}
.pj-table .pj-name-col{width:250px!important;min-width:250px!important;max-width:250px!important}
.pj-table th:not(.pj-name-col),.pj-table td:not(.pj-name-col){min-width:36px!important;width:auto!important;max-width:none!important}
.btn.export-dir{margin-left:auto}
.aprov-slot{display:inline-flex}
/* v112: barra fixa de filtros em Contratos */
.ct-barra{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-34px -36px 22px;padding:14px 36px;background:color-mix(in srgb,var(--canvas,var(--bg)) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.ct-barra-dir{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ct-barra .search{min-width:230px}
.ct-situ .pill{display:inline-flex;align-items:center;gap:6px}
.ct-qtd{font-size:.68rem;font-weight:700;min-width:18px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--muted);text-align:center}
.ct-situ .pill.active .ct-qtd{background:var(--primary-soft);color:var(--primary)}
@media(max-width:1240px){.ct-barra{margin:-28px -25px 20px;padding:12px 25px}}
@media(max-width:1000px){.ct-barra{top:60px}}
@media(max-width:700px){.ct-barra{margin:-25px -18px 18px;padding:10px 18px}.ct-barra-dir{margin-left:0;width:100%}.ct-barra .search{flex:1;min-width:0}}
.ct-barra{background:var(--bg)!important}
.cc-prev.cc-ini{margin-bottom:2px}
.modal-foot .ct-excluir{margin-right:auto;color:var(--red)!important;background:transparent!important;border:1px solid transparent!important;box-shadow:none!important}
.modal-foot .ct-excluir:hover{background:rgba(220,38,38,.1)!important;border-color:rgba(220,38,38,.25)!important}
/* v115: Projeções sem cabeçalho e sem cards; barra com filtros, busca, mês e Nova projeção */
.pj-barra-dir{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.pj-barra-dir .search{min-width:220px}
.pj-toolbar{flex-wrap:wrap}
.pj-barra-dir .search{min-width:0;width:190px}
.pj-barra-dir .period-control,.pj-barra-dir select{font-size:.85rem}
.pj-toolbar .pill{padding:6px 10px}
.pj-toolbar-l{gap:8px!important}
/* v116: Manter conectado + aviso de sessão */
.lg-opcoes{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.lg-manter{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#9fb0d4;cursor:pointer}
.lg-opcoes .lg-lembrar{margin:0}
.sessao-aviso{position:fixed;inset:0;z-index:9999;background:rgba(6,12,30,.55);display:grid;place-items:center;padding:16px}
.sessao-card{max-width:380px;width:100%;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:24px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.sessao-card h3{margin:0 0 6px}.sessao-card p{color:var(--muted);margin:0 0 16px}
.sessao-acoes{display:flex;gap:10px}.sessao-acoes .btn{flex:1;justify-content:center}

/* ===== v118 · Card de contrato (design atualizado) ===== */
:root{--cc-azul:#0b2a6f;--cc-azul-txt:#0b2a6f;--cc-ama:#f2b100;--cc-ver:#c4161c;--cc-topo:#f1f2f5;--cc-trilho:#e6e9f2}
[data-mode="dark"]{--cc-azul:#5b84ff;--cc-azul-txt:#9db5ff;--cc-topo:#18233f;--cc-trilho:#26324f}
/* tamanho fixo: o card nunca estica; só muda quantos cabem por linha */
.contract-grid.cc2-grid{display:grid;grid-template-columns:repeat(auto-fill,300px);justify-content:center;gap:22px;align-items:start}
.cc2{width:300px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 10px rgba(15,27,61,.06);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s;outline:none;display:flex;flex-direction:column}
.cc2:hover,.cc2:focus-visible{transform:translateY(-3px);box-shadow:0 10px 26px rgba(15,27,61,.14);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}
.cc2-topo{position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:14px 14px 0;background:linear-gradient(var(--cc-topo) 0 52px,transparent 52px)}
.cc2-topo .project-symbol{width:58px;height:58px;border-radius:14px;font-size:.8rem;flex:0 0 58px;box-shadow:0 2px 6px rgba(0,0,0,.08);background:#fff}
.cc2-tags{display:flex;align-items:center;gap:7px;margin-top:6px}
.cc2-eq{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--muted);font-size:.74rem;font-weight:700}
.cc2-status{padding:4px 12px;border-radius:999px;font-size:.74rem;font-weight:700;border:0;cursor:pointer;transition:filter .15s,box-shadow .15s}
.cc2-status:hover{filter:brightness(.95);box-shadow:0 0 0 2px color-mix(in srgb,currentColor 35%,transparent)}
.cc2-s-active{background:#c8f2d0;color:#13873a}.cc2-s-paused{background:#fbcdb8;color:#b3261e}
.cc2-s-starting{background:#ececef;color:#2a2f3a}.cc2-s-finished{background:#dfe6f7;color:#5d6f99}
[data-mode="dark"] .cc2-s-active{background:#16402a;color:#6fe08f}[data-mode="dark"] .cc2-s-paused{background:#4a2018;color:#ffab91}
[data-mode="dark"] .cc2-s-starting{background:#2a3047;color:#d4d9e6}[data-mode="dark"] .cc2-s-finished{background:#22305a;color:#a9bbec}
.cc2-corpo{padding:10px 18px 14px;display:flex;flex-direction:column;flex:1}
.cc2-cliente{font-size:.68rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc2-nome{font-size:.98rem;font-weight:800;margin:4px 0 0;line-height:1.25;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc2-desc{font-size:.86rem;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc2-local{display:flex;align-items:center;gap:4px;font-size:.74rem;color:var(--muted);margin-top:7px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.cc2-meio{padding:10px 0;min-height:118px;display:flex;flex-direction:column;justify-content:center;gap:9px;border-bottom:1px solid var(--line)}
.cc2-barra{padding:0 4px}
.cc2-lin,.cc2-sub{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cc2-lin span{font-size:.74rem;color:var(--muted)}.cc2-lin b{font-size:.8rem;font-weight:800}
.cc2-trilho{height:6px;border-radius:6px;background:var(--cc-trilho);margin:4px 0 3px;overflow:hidden}
.cc2-trilho i{display:block;height:100%;border-radius:6px}
.cc2-sub span{font-size:.66rem;color:var(--muted)}.cc2-sub b{font-size:.68rem;font-weight:800}
.cc2-quadro{border-radius:14px;padding:12px 16px;display:flex;flex-direction:column;gap:9px}
.cc2-quadro div{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.cc2-quadro span{font-size:.74rem;color:var(--muted)}.cc2-quadro b{font-size:.74rem;font-weight:800;color:var(--muted)}
.cc2-cinza{background:color-mix(in srgb,var(--muted) 11%,var(--surface))}
.cc2-azulado{background:color-mix(in srgb,#3a62d8 11%,var(--surface))}
.cc2-azulado .cc2-marg{color:var(--cc-azul-txt);font-size:.86rem}
.cc2-pe{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:10px}
.cc2-gestor{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.cc2-gestor span{font-size:.7rem;color:var(--muted)}.cc2-gestor b{font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
/* botão da empresa na cor da empresa */
.cc2-emp{flex:0 0 auto;padding:5px 12px;border-radius:999px;font-size:.72rem;font-weight:700;cursor:pointer;background:color-mix(in srgb,var(--emp) 10%,var(--surface));color:var(--emp);border:1.5px solid color-mix(in srgb,var(--emp) 55%,transparent);transition:background .15s,color .15s}
[data-mode="dark"] .cc2-emp{color:color-mix(in srgb,var(--emp) 45%,#fff)}
.cc2-emp:hover{background:var(--emp);color:#fff;border-color:var(--emp)}
.btn-privado[aria-pressed="true"]{color:var(--primary);background:var(--primary-soft)}
@media (max-width:360px){.contract-grid.cc2-grid{grid-template-columns:1fr}.cc2{width:100%}}
/* telas grandes: a página de contratos usa a largura toda (cabem mais cards por linha, sem esticar) */
.page:has(.cc2-grid){max-width:none}
/* todos os cards com a mesma altura */
.cc2-meio{height:132px;min-height:0}
.cc2-nome,.cc2-desc,.cc2-cliente{min-height:0}
/* v119: valores ocultos (modo privativo) em cinza escuro */
.priv-mask{color:#4b5563!important;-webkit-text-fill-color:#4b5563;letter-spacing:.02em}
[data-mode="dark"] .priv-mask{color:#8b93a7!important;-webkit-text-fill-color:#8b93a7}
/* v119: cards maiores, mantendo a proporção (tudo cresce junto: textos, logo, barras) */
.contract-grid.cc2-grid{grid-template-columns:repeat(auto-fill,348px);gap:24px}
.cc2{zoom:1.16}
@media (max-width:400px){.contract-grid.cc2-grid{grid-template-columns:1fr}.cc2{zoom:1;width:100%}}
.cc2-gestor b{max-width:150px}
/* v120: cards 20% maiores */
.contract-grid.cc2-grid{grid-template-columns:repeat(auto-fill,360px)}
.cc2{zoom:1.2}
@media (max-width:420px){.contract-grid.cc2-grid{grid-template-columns:1fr}.cc2{zoom:1;width:100%}}
/* v121: cards sempre centralizados (inclusive a ultima linha e quando ha poucos cards) */
.contract-grid.cc2-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:24px}
.contract-grid.cc2-grid>.cc2{flex:0 0 auto}
@media (max-width:420px){.contract-grid.cc2-grid>.cc2{flex:1 1 100%}}
/* v122: tamanho do card fixo (as linhas de cliente e descrição sempre reservadas; o meio tem altura fixa) */
.cc2{height:352px}
.cc2-corpo{overflow:hidden}
.cc2-cliente{height:14px;line-height:14px}
.cc2-nome{height:22px;line-height:22px}
.cc2-desc{height:19px;line-height:19px}
.cc2-local{height:28px;margin-top:4px;padding-bottom:8px;box-sizing:border-box}
/* mais respiro entre os indicadores */
.cc2-meio{height:150px;gap:16px;padding:14px 0}
.cc2-barra{padding:0 6px}
.cc2-trilho{margin:6px 0 5px}
.cc2-quadro{gap:12px;padding:14px 16px}
.cc2-pe{margin-top:auto}
.cc2-nome{height:24px;line-height:24px}
.cc2{height:354px}
.cost-part small.cost-irrf{display:block;font-size:.68rem;color:var(--muted);font-weight:600}

/* ===== v126 · Card no padrão exato da apresentação (Montserrat + proporções medidas no arquivo) =====
   Medidas da apresentação em pontos convertidas para px (× 1,094) — o card inteiro ainda recebe zoom de 1,2. */
.cc2,.cc2 *{font-family:'Montserrat',system-ui,sans-serif;box-sizing:border-box}
.cc2{width:300px;height:345px;border-radius:15px}
/* topo: faixa de 62px, logo 66px a 21px da esquerda e 13px do topo */
.cc2-topo{height:80px;padding:13px 13px 0 21px;background:linear-gradient(var(--cc-topo) 0 62px,transparent 62px)}
.cc2-topo .project-symbol{width:66px;height:66px;flex:0 0 66px;border-radius:15px}
.cc2-tags{margin-top:8px;gap:11px}
.cc2-eq{height:22px;min-width:41px;justify-content:center;padding:0 9px;font-size:10.9px;font-weight:700;color:#7a89a8;background:#e9edf7}
[data-mode="dark"] .cc2-eq{background:#22305a;color:#a9b6d6}
.cc2-status{height:22px;min-width:107px;padding:0 10px;font-size:9.8px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
/* textos */
.cc2-corpo{padding:0 18px 0;display:flex;flex-direction:column;flex:1}
.cc2-cliente{margin-top:12px;height:12px;line-height:12px;font-size:8.75px;padding-left:5px}
.cc2-nome{margin-top:8px;height:16px;line-height:16px;font-size:13.1px;font-weight:700;padding-left:5px}
.cc2-desc{height:16px;line-height:16px;font-size:13.1px;font-weight:400;padding-left:5px}
.cc2-local{margin-top:10px;height:25px;line-height:13px;font-size:9.8px;padding:0 0 12px 5px;gap:4px}
.cc2-local svg{width:11px;height:11px}
/* indicadores: rótulo 9pt, % 10pt negrito, barra 6px, valores/datas 8pt */
.cc2-meio{height:117px;padding:14px 0 11px;gap:0;justify-content:flex-start}
.cc2-barra{padding:0 11px 0 10px}
.cc2-barra+.cc2-barra{margin-top:16px}
.cc2-lin{height:12px;align-items:center}
.cc2-lin span{font-size:9.8px}
.cc2-lin b{font-size:10.9px;font-weight:700}
.cc2-trilho{height:6px;margin:5px 0 4px}
.cc2-sub{height:10px;align-items:center}
.cc2-sub span,.cc2-sub b{font-size:8.75px}
.cc2-sub b{font-weight:700}
/* quadros de "A iniciar" e "Finalizado" ocupam a mesma área dos indicadores */
.cc2-meio:has(.cc2-quadro){padding:10px 0;justify-content:center}
.cc2-quadro{height:96px;padding:12px 18px;gap:0;justify-content:space-between;border-radius:14px}
.cc2-quadro span{font-size:9.8px}
.cc2-quadro b{font-size:8.75px;font-weight:700}
.cc2-azulado .cc2-marg{font-size:10.9px}
/* rodapé: Gestor 9pt (nome em negrito) e botão da empresa 9pt negrito */
.cc2-pe{padding-top:11px;margin-top:0;align-items:flex-start}
.cc2-gestor{padding-left:5px;line-height:12px}
.cc2-gestor span,.cc2-gestor b{font-size:9.8px}
.cc2-gestor b{font-weight:700;max-width:140px}
.cc2-emp{height:22px;min-width:129px;margin-top:3px;margin-right:-5px;padding:0 10px;font-size:9.8px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
/* v127: filtro ligado pelo card (clicar de novo desliga) */
.cc2-status.cc2-on{box-shadow:0 0 0 2px currentColor}
.cc2-emp.cc2-on{background:var(--emp);color:#fff;border-color:var(--emp)}
/* v128: crédito do autor na tela de entrada */
.lg-rodape .lg-autor{display:block;margin-top:6px;font-size:.74rem;opacity:.9}
.lg-rodape .lg-autor a{font-weight:700;text-decoration:none;background:linear-gradient(90deg,#7fa6ff,#6fe08f);-webkit-background-clip:text;background-clip:text;color:transparent}
.lg-rodape .lg-autor a:hover{text-decoration:underline;text-decoration-color:#7fa6ff}

/* ===== v129: pedidos de férias do RH ===== */
.fpd .panel-head h2{display:flex;align-items:center;gap:8px}
.fpd-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.fpd-card{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:12px;background:var(--surface)}
.fpd-card.urg{border-left-color:#ef4444;box-shadow:0 0 0 1px color-mix(in srgb,#ef4444 25%,transparent)}
.fpd-card .btn{align-self:flex-start;margin-top:4px}
.fpd-l1{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.fpd-l1 b{font-size:.92rem}
.fpd-prazo{display:flex;align-items:center;gap:6px;font-size:.84rem;flex-wrap:wrap}
.fpd-ab{color:#a16207;font-weight:600}
.fpd-obs{font-size:.8rem;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--line) 45%,transparent)}
.fpd-obs.dev{background:color-mix(in srgb,#ef4444 12%,transparent);color:#b91c1c}
.fpd-per{font-size:.82rem;font-weight:600}
.fpd-mais{margin-top:16px}
.fpd-mais summary{cursor:pointer;font-size:.85rem;color:var(--muted);margin-bottom:10px}
.fpd-regras{display:flex;gap:8px;align-items:flex-start;font-size:.84rem;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,#3b82f6 10%,transparent);margin-bottom:12px;line-height:1.45}
.fpd-regras svg{flex:none;margin-top:2px}
.fpd-linha{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:8px 0;border-bottom:1px solid var(--line)}
.fpd-rot{min-width:130px;font-weight:600;font-size:.85rem}
.fpd-linha input[type=date]{padding:7px 9px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.fpd-dias{font-size:.82rem;color:var(--muted);min-width:60px}
.fpd-resumo{margin-top:12px;font-size:.86rem;display:flex;flex-direction:column;gap:6px}
.fpd-aviso{display:flex;align-items:center;gap:6px;color:#b45309;font-weight:600;font-size:.82rem}
#modal.fpd-dialog{max-width:720px}
@media (max-width:640px){.fpd-linha{flex-wrap:wrap}.fpd-rot{min-width:100%}}

/* Feriados no calendário: igual ao fim de semana, mas com a data em amarelo */
/* Feriado em destaque: coluna inteira em âmbar, faixa no topo, selo FERIADO e data em amarelo */
.calendar-table th.holiday,.attendance-table th.holiday{color:#b45309!important;font-weight:800;background:#fde68a!important;box-shadow:inset 0 3px 0 #f59e0b;position:relative}
.calendar-table th.holiday small,.attendance-table th.holiday small{color:#b45309!important;font-weight:800}
.calendar-table td.holiday,.attendance-table td.holiday{background:var(--weekend)!important}
.fer-flag{display:block;margin:0 auto 2px;width:max-content;padding:0 4px;border-radius:4px;background:#f59e0b;color:#fff;font-size:.5rem;font-weight:900;letter-spacing:.03em;line-height:1.5}
.att-legend i.att-feriado{background:#fde68a;border:1px solid #f59e0b}
html[data-mode="dark"] .calendar-table th.holiday,html[data-mode="dark"] .attendance-table th.holiday{color:#fbbf24!important;background:#4a3a0f!important}
html[data-mode="dark"] .calendar-table th.holiday small,html[data-mode="dark"] .attendance-table th.holiday small{color:#fbbf24!important}


/* ===== Formulário de contrato (REV 03) ===== */
.ct-form .ct-sec-t{margin-top:6px;padding-bottom:6px;border-bottom:1px solid var(--line);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ct-form .ct-sec-t:first-child{margin-top:0}
.ct-linha{display:grid;gap:12px;align-items:end}
.ct-linha.ct-2{grid-template-columns:1fr 1fr}
.ct-linha.ct-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ct-linha>div>.field,.ct-linha>div>label{width:100%}
.ct-cor input[type=color]{height:42px;padding:3px;cursor:pointer}
.ct-criterios{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface-2,transparent)}
.ct-criterios>summary{cursor:pointer;font-weight:700;font-size:.88rem;display:flex;align-items:center;gap:6px;list-style:none}
.ct-criterios>summary::-webkit-details-marker{display:none}
.ct-criterios>summary small{font-weight:500;color:var(--muted)}
.ct-criterios[open]>summary{margin-bottom:10px}
.ct-logo-prev{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ct-logo-prev img{width:96px;height:96px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:#fff}
@media (max-width:640px){.ct-linha.ct-2,.ct-linha.ct-3{grid-template-columns:1fr}}

/* ===== Pop-ups: rolagem só no corpo (cabeçalho e rodapé fixos), barra de rolagem contida ===== */
dialog#modal{display:flex;flex-direction:column;overflow:hidden;max-height:90dvh;padding:0}
dialog#modal:not([open]){display:none}
dialog#modal>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
dialog#modal .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
dialog#modal .modal-foot{flex:0 0 auto}
dialog#modal .modal-head{flex:0 0 auto}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:999px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 70%,transparent);background-clip:content-box;border:2px solid transparent}
html,body{overflow-x:clip}
.table-wrap{overflow-x:auto;overscroll-behavior-x:contain}

/* ===== Editar/Criar contrato (layout novo) ===== */
dialog#modal.contract-dialog{width:min(640px,calc(100% - 24px))}
.ct-form2{display:flex;flex-direction:column;gap:14px}
.ct-form2 .field{gap:6px}
.ct-form2 .field>span,.ct-form2 .field>label:first-child{font-size:.82rem;color:var(--muted);font-weight:500}
.ct-form2 .field input:not([type=color]):not([type=checkbox]):not([type=radio]),.ct-form2 .field select,.ct-form2 .campo-datas-btn{border-radius:12px;min-height:44px}
.ct-form2 .ct-linha{display:grid;gap:12px;align-items:start}
.ct-form2 .ct-nome-tag{grid-template-columns:1fr 140px}
.ct-form2 .ct-2{grid-template-columns:1fr 1fr}
.ct-form2 .ct-3{grid-template-columns:1fr 1fr 1.2fr}
.ct-tag-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 6px 0 0;min-height:44px}
.ct-tag-wrap input[name=tag]{border:0!important;min-height:42px!important;flex:1;min-width:0;text-align:center;letter-spacing:.15em;font-weight:700;text-transform:uppercase;background:transparent}
.ct-tag-wrap input[type=color]{width:30px;height:30px;min-width:30px;min-height:30px!important;padding:0!important;border:0!important;border-radius:8px!important;cursor:pointer;background:none;flex:none;appearance:none;-webkit-appearance:none;overflow:hidden}
.ct-tag-wrap input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.ct-tag-wrap input[type=color]::-webkit-color-swatch-wrapper{padding:0;width:100%;height:100%}
.ct-tag-wrap input[type=color]::-webkit-color-swatch{border:0;border-radius:8px;width:100%;height:100%;margin:0}
.ct-tag-wrap input[type=color]::-moz-color-swatch{border:0;border-radius:8px}
.ct-toggle{position:relative;display:grid;grid-template-columns:repeat(var(--n,2),1fr);border:1px solid var(--line);border-radius:12px;padding:3px;min-height:44px;background:var(--surface-2,#f1f5f9);isolation:isolate}
.ct-toggle button{position:relative;z-index:1;border:0;background:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;border-radius:9px;transition:color .2s}
.ct-toggle button.on{color:var(--text)}
.ct-toggle-slide{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/var(--n,2));transform:translateX(calc(var(--i,0)*100%));transition:transform .28s cubic-bezier(.4,0,.2,1);background:var(--surface);border-radius:9px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.ct-cli-img{grid-template-columns:1fr 170px}
.ct-cli-custo{display:flex;flex-direction:column;gap:12px}
.ct-cli-custo .cli-campo{font-size:0}
.ct-cli-custo .cli-campo input[data-cli-busca]{font-size:.9rem;padding-right:34px;cursor:pointer}
.ct-cli-custo .cli-campo::after{content:"";position:absolute;right:14px;top:17px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);pointer-events:none}
.ct-cli-custo .vp-field .vp-diario{font-size:.75rem;color:var(--muted);line-height:1.4;margin-top:2px}
.ct-cli-img{align-items:stretch!important}.ct-cli-custo{justify-content:flex-start}
.ct-img-box{border:1px solid var(--line);border-radius:14px;background:var(--surface-2,#f8fafc);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;min-height:112px;text-align:center}
.ct-img-box img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--line);background:#fff}
.ct-img-vazio{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:.72rem}
.ct-img-btn{cursor:pointer;margin:0;font-size:.8rem!important;padding:7px 14px!important}
.ct-img-rm{font-size:.75rem;color:var(--muted)}
.ct-criterios2{display:grid;grid-template-columns:40px repeat(6,1fr);gap:6px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2,#f8fafc)}
.ct-criterios2 .ct-cr-edit{align-self:end;height:40px;width:40px;color:var(--primary)}
.ct-criterios2.editando .ct-cr-edit{background:var(--primary);color:#fff;border-color:var(--primary)}
.ct-cr{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--muted);text-align:center;min-width:0}
.ct-cr-in{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-height:40px;padding:0 6px}
.ct-cr-in i{font-style:normal;font-size:.72rem;color:var(--muted)}
.ct-cr-in input{border:0!important;min-height:38px!important;width:100%;min-width:0;padding:0 2px!important;text-align:center;font-weight:600;background:transparent!important;border-radius:0!important}
.ct-cr-in input:disabled{color:var(--muted);opacity:.7}
.ct-cr-in input::-webkit-outer-spin-button,.ct-cr-in input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ct-cr-in input{-moz-appearance:textfield}
.ct-cr-nota{grid-column:1/-1;font-size:.72rem;color:var(--muted);margin-top:2px}
.ct-area-box{border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.ct-uf{grid-template-columns:110px 1fr auto!important;align-items:center!important;gap:10px!important}
.ct-uf .field{flex-direction:row;align-items:center;gap:8px}
.ct-uf .field>span{white-space:nowrap;font-weight:700;color:var(--text)!important}
.ct-uf .field select{flex:1;min-width:0}
#ct-area-anchor,#ct-area-anchor .cl-sec,#ct-area-anchor .cl-head{display:contents}
#ct-area-anchor .cl-head>div{display:none}
#ct-area-anchor .cl-head .btn{min-height:44px;margin-left:6px}
#ct-area-anchor .cl-lista{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;margin-top:2px}
#ct-area-anchor .cl-item{padding:6px 10px;gap:10px}#ct-area-anchor .cl-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#ct-area-anchor .cl-area{display:flex;align-items:baseline;gap:6px}#ct-area-anchor .cl-area strong{font-size:.95rem}
#ct-area-anchor .cl-vazio{grid-column:1/-1;background:var(--surface-2,#f8fafc);border-radius:10px;padding:10px;text-align:center;font-size:.8rem;color:var(--muted)}
dialog#modal .modal-foot .ct-excluir{margin-right:auto;color:var(--red)!important;border-color:var(--red)!important;background:transparent!important}
@media (max-width:640px){.ct-form2 .ct-nome-tag,.ct-form2 .ct-2,.ct-form2 .ct-3,.ct-cli-img{grid-template-columns:1fr}.ct-criterios2{grid-template-columns:40px repeat(3,1fr)}.ct-uf{grid-template-columns:1fr!important}}

/* ===== Carregando: enquanto os dados não chegam, mostra só um indicador (sem piscar telas incompletas) ===== */
#app:empty{min-height:100vh;display:grid;place-items:center;background:var(--bg)}
#app:empty::before{content:"";width:38px;height:38px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--primary);animation:eng-gira .8s linear infinite}
@keyframes eng-gira{to{transform:rotate(360deg)}}

/* botão Sair no rodapé do menu lateral */
.sidebar .nav-sair{width:100%;margin-top:10px!important;border:0;background:transparent;font:inherit;font-weight:600;color:#ff9aa5;cursor:pointer;border-top:1px solid rgba(255,255,255,.08);border-radius:0 0 12px 12px;padding-top:14px!important}
.sidebar .nav-sair:hover{background:rgba(239,68,68,.16);color:#fff;border-radius:12px}
