/* =============================================================================
   MoveTime — Design system família A (index.html). Seção 3.1 do documento.
   ============================================================================= */
:root {
  --bg:#0A1628; --bg2:#0a1a26; --panel:rgba(16,42,56,.55); --cell:rgba(10,30,42,.6); --card:#0b2231;
  --border:rgba(16,185,129,.10); --border2:rgba(255,255,255,.07);
  --txt:#eaf6ee; --dim:#7fa093; --dim2:#4e6a60;
  --green:#10B981; --green2:#0096C7; --red:#ff5f5f; --amber:#ffd166; --viol:#a78bfa;
  --ferias:#10B981; --dayoff:#ffd166; --licenca:#c77dff; --ausencia:#ff7eb6;
  --calOk:#10B981; --calMid:#ffd166; --calBad:#ff5f5f;
  --chartP:#3078d8; --pillP:#3078d8; --statP:#3078d8;
  --chartS:#d86030; --pillS:#d86030; --statS:#d86030;
  --link:#4da3ff;
  --sans:'Inter','Segoe UI',system-ui,sans-serif;
  --mono:'Inter','Segoe UI',system-ui,sans-serif; /* números e códigos usam Inter com algarismos tabulares */
  --code:'JetBrains Mono',Consolas,monospace;
  --modal:#111E35;
}
html[data-mode="light"] {
  --bg:#eef3f6 !important; --bg2:#e4ebf0 !important; --panel:rgba(255,255,255,.94) !important; --cell:#fff !important; --card:#fff !important;
  --border:rgba(22,163,74,.22) !important; --border2:rgba(15,40,55,.13) !important;
  --txt:#14242e !important; --dim:#557080 !important; --dim2:#8aa0ac !important;
  --green:#16a34a !important; --green2:#15803d !important; --link:#1d6fd1 !important;
  --amber:#b97f00 !important; --calMid:#b97f00 !important; --dayoff:#b97f00 !important;
  --modal:#fff !important;
}

:root { color-scheme:dark; }
html[data-mode="light"] { color-scheme:light; }
button.chip { cursor:pointer; }
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body {
  font-family:var(--sans); color:var(--txt); background-color:var(--bg); min-height:100vh;
  background-image:
    linear-gradient(rgba(16,185,129,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,185,129,.03) 1px, transparent 1px),
    radial-gradient(1000px 500px at 70% -10%, rgba(0,150,199,.10), transparent),
    radial-gradient(700px 400px at 0% 10%, rgba(20,120,160,.10), transparent);
  background-size:44px 44px, 44px 44px, auto, auto;
  background-attachment:fixed;
}
html[data-mode="light"] body {
  background-image:
    linear-gradient(rgba(22,163,74,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22,163,74,.06) 1px, transparent 1px);
  background-size:44px 44px, 44px 44px;
}
a { color:var(--link); }
.mono { font-family:var(--mono); }
.hidden { display:none !important; }

/* ------------------------------------------------------------------ header */
header.top {
  position:sticky; top:0; z-index:60; display:flex; align-items:center; gap:12px; padding:12px 22px;
  background:rgba(6,16,24,.85); backdrop-filter:blur(10px); border-bottom:1px solid var(--border2);
}
html[data-mode="light"] header.top { background:rgba(255,255,255,.92); box-shadow:0 1px 0 rgba(15,40,55,.06); }
.logo { display:flex; align-items:center; gap:10px; }
.logo img { height:46px; max-width:320px; }
.logo-mark {
  width:38px; height:38px; border-radius:10px; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--green),var(--green2)); color:#0A1628;
  font:800 21px var(--mono); box-shadow:0 0 18px rgba(16,185,129,.35);
}
.logo-stack { display:flex; flex-direction:column; align-items:center; line-height:1; color:var(--green); }
.logo-clock { width:30px; height:30px; filter:drop-shadow(0 0 6px rgba(16,185,129,.35)); }
.logo-word { font:800 19px/1 var(--sans, inherit); letter-spacing:-.3px; margin-top:-1px; }
.logo-word span { color:var(--txt); } .logo-word b { color:var(--green); font-weight:800; }
.logo-stack.big .logo-clock { width:72px; height:72px; } .logo-stack.big .logo-word { font-size:40px; }
.logo-name { font-size:16.5px; font-weight:700; line-height:1.1; }
.logo-sub { font-size:9.5px; text-transform:uppercase; letter-spacing:2.2px; color:var(--dim); }
.top-spacer { margin:0 auto; }
.envtag {
  font:10px var(--mono); letter-spacing:2px; padding:4px 10px; border-radius:7px;
  border:1px solid rgba(16,185,129,.55); color:var(--green); background:rgba(16,185,129,.07);
}
.userchip {
  display:flex; align-items:center; gap:8px; background:var(--bg2); border-radius:9px; padding:7px 13px; font-size:12px;
}
.userchip .dot { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); }

.modesw {
  position:relative; width:56px; height:28px; border-radius:999px; background:var(--bg2); border:1px solid var(--border2);
  cursor:pointer; padding:0; flex:none;
}
.modesw .ico { position:absolute; top:50%; transform:translateY(-50%); font-size:12px; opacity:.65; color:var(--dim); }
.modesw .ico.sun { left:7px; } .modesw .ico.moon { right:7px; }
.modesw .knob {
  position:absolute; top:2px; left:30px; width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:12px;
  background:linear-gradient(135deg,#2b3a67,#1a2444); color:#ffe08a; transition:all .25s cubic-bezier(.4,.2,.2,1);
}
html[data-mode="light"] .modesw .knob { left:2px; background:linear-gradient(135deg,#ffd76a,#f5b82e); color:#7a4a00; }

nav.tabs { display:flex; gap:4px; }
.tab {
  background:none; border:0; color:var(--dim); font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:9px; cursor:pointer;
  font-family:inherit;
}
.tab:hover { color:var(--txt); }
.tab.on { background:linear-gradient(135deg,var(--green),var(--green2)); color:#0A1628; }

main { max-width:1280px; margin:0 auto; padding:18px 22px; }
#app:not(.hidden) { display:flex; flex-direction:column; min-height:100vh; }
#app > main { flex:1 0 auto; width:100%; box-sizing:border-box; }
footer.foot { text-align:center; color:var(--dim2); font-size:11px; padding:16px; flex:none; }

/* ------------------------------------------------------------------ painéis, campos e botões */
.panel { background:var(--panel); border:1px solid var(--border); border-radius:16px; padding:20px 22px; margin-bottom:16px; }
.panel-h { display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.panel-h h2 { margin:0; font-size:17px; font-weight:700; }
.panel-h .sub { color:var(--dim); font-size:12.5px; }
label.f { display:block; font-size:10px; text-transform:uppercase; letter-spacing:1.6px; font-weight:600; color:var(--dim); margin-bottom:6px; }
label.f .req { color:var(--green); }
.in {
  width:100%; background:rgba(4,14,20,.8); border:1px solid var(--border2); border-radius:10px; padding:11px 13px; font-size:14px;
  color:var(--txt); font-family:inherit; outline:none; transition:border-color .15s, box-shadow .15s;
}
.in:focus { border-color:rgba(16,185,129,.5); box-shadow:0 0 0 3px rgba(16,185,129,.08); }
.in.err { border-color:var(--red); box-shadow:0 0 0 3px rgba(255,95,95,.12); }
select.in { appearance:none; padding-right:30px; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-size:5px 5px; background-repeat:no-repeat; }
select.in option { background:var(--bg2); color:var(--txt); }
textarea.in { resize:vertical; min-height:72px; }
html[data-mode="light"] .in { background:#fff; }

.grid { display:grid; gap:14px; }
.g2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.g3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.g4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.span2 { grid-column:span 2; }

.btn-go {
  background:linear-gradient(135deg,var(--green),var(--green2)); color:#0A1628; font-weight:800; padding:12px 22px; border-radius:10px;
  font-size:14px; border:0; cursor:pointer; font-family:inherit;
}
.btn-go:hover { filter:brightness(1.1); }
.btn-go:disabled { filter:grayscale(.7); cursor:wait; }
.btn-ghost {
  background:var(--bg2); border:1px solid var(--border2); color:var(--txt); font-weight:600; padding:12px 18px; border-radius:10px;
  font-size:13.5px; cursor:pointer; font-family:inherit;
}
.btn-ghost:hover { border-color:rgba(16,185,129,.4); }
.btn-ghost.sm { padding:7px 12px; font-size:12.5px; }
.cpy { background:none; border:0; color:var(--dim2); font-size:11px; cursor:pointer; padding:0 3px; }
.cpy:hover { color:var(--green); }
.actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; flex-wrap:wrap; }
.actions .btn-go { min-width:150px; }

/* segmento Suporte | Projeto */
.seg { display:inline-flex; background:var(--bg2); border:1px solid var(--border2); border-radius:12px; padding:3px; gap:3px; }
.seg button {
  border:0; background:none; color:var(--dim); font:600 13px inherit; font-family:inherit; padding:8px 16px; border-radius:9px; cursor:pointer;
}
.seg button.on.S { background:color-mix(in srgb, var(--pillS) 18%, transparent); color:var(--pillS); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--pillS) 45%, transparent); }
.seg button.on.P { background:color-mix(in srgb, var(--pillP) 18%, transparent); color:var(--pillP); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--pillP) 45%, transparent); }

/* pills */
.pill { font:9.5px var(--mono); padding:2px 8px; border-radius:10px; border:1px solid transparent; white-space:nowrap; display:inline-block; }
.pill.P { color:var(--pillP); background:color-mix(in srgb, var(--pillP) 14%, transparent); border-color:color-mix(in srgb, var(--pillP) 40%, transparent); }
.pill.S { color:var(--pillS); background:color-mix(in srgb, var(--pillS) 12%, transparent); border-color:color-mix(in srgb, var(--pillS) 35%, transparent); }
.pill.X { color:var(--dim); background:rgba(255,255,255,.05); border-color:var(--border2); }
.pill.open { color:var(--green); background:color-mix(in srgb, var(--green) 10%, transparent); border-color:color-mix(in srgb, var(--green) 35%, transparent); }
.pill.closed { color:var(--dim); background:rgba(255,255,255,.05); border-color:var(--border2); }
.chip { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--txt); font-family:inherit; padding:4px 10px; border-radius:999px; background:var(--bg2); border:1px solid var(--border2); }
.chip button { background:none; border:0; color:var(--dim2); cursor:pointer; padding:0; font-size:12px; }
.chip button:hover { color:var(--red); }

/* seções do projeto (sanfona) */
.sec { border:1px solid var(--border2); border-radius:14px; margin-top:12px; background:var(--cell); }
.sec > summary {
  list-style:none; cursor:pointer; padding:13px 16px; font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
  display:flex; align-items:center; gap:10px; color:var(--txt);
}
.sec > summary::-webkit-details-marker { display:none; }
.sec > summary .arr { margin-left:auto; color:var(--dim); transition:transform .2s; }
.sec[open] > summary .arr { transform:rotate(90deg); }
.sec .sec-b { padding:4px 16px 16px; }
.hint { color:var(--dim); font-size:12px; margin-top:6px; }

/* editor rico (fundo branco, igual ao da nota de conclusão) */
.rte { border:1px solid var(--border2); border-radius:10px; overflow:hidden; background:#fff; }
.rte-tb { display:flex; flex-wrap:wrap; gap:2px; padding:5px 6px; background:#f7f8fa; border-bottom:1px solid #e3e7ec; }
.rte-tb button, .rte-tb label {
  min-width:28px; height:28px; border:0; background:none; color:#3b4250; border-radius:6px; cursor:pointer; font:600 13px 'Segoe UI',sans-serif;
  display:inline-grid; place-items:center; padding:0 6px; position:relative;
}
.rte-tb button:hover, .rte-tb label:hover { background:#e7ebf0; }
.rte-tb .sep { width:1px; background:#dfe3e8; margin:4px 3px; }
.rte-tb input[type=color] { position:absolute; inset:0; opacity:0; cursor:pointer; }
.rte-tb .colorbar { display:block; width:14px; height:3px; margin-top:1px; border-radius:2px; }
.rte-area {
  min-height:140px; max-height:420px; overflow:auto; padding:12px 14px; color:#242a35; font-size:13.5px; line-height:1.5; outline:none;
  font-family:'Segoe UI',system-ui,sans-serif;
}
.rte-area:empty::before { content:attr(data-ph); color:#9aa3af; }
.rte-area img { max-width:100%; }
.attach-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; }
.attach-row .none { color:var(--dim2); font-size:12px; }

/* lista de chamados */
.filters { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px; }
.filters .in { width:auto; }
.filters .grow { flex:1; min-width:220px; }
.chk { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--dim); cursor:pointer; user-select:none; }
.chk input { accent-color:var(--green); }
.tlist { display:flex; flex-direction:column; gap:6px; }
.trow {
  display:grid; grid-template-columns:80px minmax(0,1fr) 70px 220px 160px 90px; gap:12px; align-items:center;
  background:var(--card); border:1px solid var(--border2); border-radius:12px; padding:10px 14px; cursor:pointer; font-size:13px;
}
.trow:hover { border-color:rgba(16,185,129,.35); }
.trow .num { font:700 12px var(--mono); color:var(--green); }
.trow .subj { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trow .who, .trow .when { color:var(--dim); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.trow .when { font-family:var(--mono); font-size:11px; text-align:right; }
.empty { color:var(--dim2); font-size:13px; padding:18px; text-align:center; }
.more { display:flex; justify-content:center; margin-top:10px; }

/* ------------------------------------------------------------------ overlays, modais, toast */
.overlay {
  position:fixed; inset:0; background:rgba(3,9,14,.85); backdrop-filter:blur(4px); z-index:100;
  display:grid; place-items:center; padding:16px; animation:fade .15s ease;
}
html[data-mode="light"] .overlay { background:rgba(20,35,45,.35); }
.modal {
  position:relative; background:var(--modal); border:1px solid var(--border2); border-radius:18px; padding:28px;
  width:min(640px,94vw); max-height:92vh; overflow:auto;
}
html[data-mode="light"] .modal { box-shadow:0 24px 60px rgba(20,40,60,.22); }
.modal.wide { width:min(980px,96vw); }
.modal h2 { margin:0 0 6px; font-size:19px; }
.modal .msub { color:var(--dim); font-size:13px; margin-bottom:18px; }
.modalx {
  position:absolute; top:12px; right:14px; width:32px; height:32px; border-radius:9px; border:0; background:none; color:var(--dim);
  font-size:20px; cursor:pointer;
}
.modalx:hover { color:var(--red); background:rgba(255,95,95,.08); }

.toast {
  position:fixed; right:22px; bottom:22px; z-index:230; background:var(--modal); border:1px solid rgba(16,185,129,.5); border-radius:12px;
  padding:13px 18px; font-size:13px; max-width:min(460px,92vw); animation:up .2s ease; color:var(--txt);
}
.toast.err { border-color:rgba(255,95,95,.55); }

.confirm { background:var(--bg2); border-radius:16px; padding:26px; max-width:470px; width:94vw; text-align:center; border:1px solid var(--border2); }
.confirm .ic { width:56px; height:56px; border-radius:50%; margin:0 auto 14px; display:grid; place-items:center; font-size:26px; color:var(--amber); background:rgba(255,209,102,.15); }
.confirm h3 { margin:0 0 8px; font-size:17px; }
.confirm p { margin:0 0 18px; color:var(--dim); font-size:13.5px; line-height:1.5; }
.confirm .row { display:flex; gap:10px; justify-content:center; }
.confirm .ok { background:var(--green); color:#0A1628; border:0; font-weight:800; border-radius:10px; padding:11px 20px; cursor:pointer; font-family:inherit; }

/* detalhe do chamado */
.dhead { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; padding-right:36px; }
.dhead h2 { margin:0; }
.kv { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:10px 18px; margin:14px 0; }
.kv div > span { display:block; font-size:10px; text-transform:uppercase; letter-spacing:1.4px; color:var(--dim); font-weight:600; margin-bottom:2px; }
.kv div b { font-weight:600; font-size:13.5px; }
.kv .ni { color:var(--dim2); font-style:italic; font-weight:400; }
.dbox { background:#fff; color:#242a35; border-radius:10px; padding:12px 14px; font-size:13.5px; line-height:1.5; overflow:auto; max-height:320px; }
.dbox img { max-width:100%; }
.notes { display:flex; flex-direction:column; gap:10px; margin-top:10px; }
.note { background:var(--card); border:1px solid var(--border2); border-radius:12px; padding:10px 12px; }
.note .meta { color:var(--dim); font-size:11.5px; margin-bottom:6px; font-family:var(--mono); }
.note .body { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.note .body img { max-width:100%; }
.h3 { font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:var(--dim); margin:18px 0 8px; }

/* login */
#login {
  position:fixed; inset:0; z-index:200; display:grid; place-items:center;
  background:linear-gradient(115deg,#04070f 0%,#050b1c 45%,#07223f 100%);
}
.login-card {
  background:#0a2430; border-radius:14px; width:min(620px,94vw); padding:56px 60px; text-align:center; box-shadow:0 24px 70px rgba(0,0,0,.55);
}
.login-card img { height:110px; }
.login-card .logo-mark { width:96px; height:96px; font-size:54px; border-radius:22px; margin:0 auto; }
.login-card h3 { color:#10B981; font-size:20px; margin:38px 0 26px; }
.msbtn {
  width:100%; display:flex; align-items:center; justify-content:center; gap:12px; background:#efefef; color:#1c1c1c; border:0; border-radius:6px;
  padding:15px; font-size:15.5px; font-weight:600; cursor:pointer; font-family:inherit;
}
.msbtn:hover { background:#fff; }
.mslogo { display:grid; grid-template-columns:8px 8px; gap:2px; }
.mslogo i { width:8px; height:8px; display:block; }
#localLogin .in { background:#0A1628; color:#eaf6ee; border-color:rgba(255,255,255,.12); font-size:15px; }
.login-note { color:#7fa093; font-size:11.5px; margin-top:12px; }
.login-err { color:#ff5f5f; font-size:13px; margin-top:16px; min-height:18px; }

#maint {
  position:fixed; inset:0; z-index:100000; background:#0b1a24; display:grid; place-items:center; text-align:center; color:#9db4c0;
}
#maint .big { font-size:48px; }
#maint h2 { color:#10B981; }

@keyframes up { from { transform:translateY(10px); opacity:0; } to { transform:none; opacity:1; } }
@keyframes fade { from { opacity:0; } to { opacity:1; } }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
.shake { animation:shake .42s ease; }

/* ------------------------------------------------------------------ responsivo */
@media (max-width:980px) {
  .g4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .g3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trow { grid-template-columns:70px minmax(0,1fr) 60px; }
  .trow .who, .trow .when, .trow .st { display:none; }
  header.top { flex-wrap:wrap; }
}
@media (max-width:600px) {
  .g2, .g3, .g4 { grid-template-columns:1fr; }
  .span2 { grid-column:auto; }
  main { padding:14px 16px; }
  header.top { padding:10px 16px; }
  .login-card { padding:36px 24px; }
}

/* =============================================================================
   Minhas horas (seção 5)
   ============================================================================= */
.monthnav { display:flex; align-items:center; gap:10px; margin:0 auto; }
.monthwork { font:9.5px var(--mono); line-height:1.35; white-space:nowrap; font-weight:700; border-radius:7px; background:var(--bg2); padding:4px 9px; color:var(--dim); text-align:center; }
.monthwork b { color:var(--txt); font-weight:700; }
.mbtn { width:32px; height:32px; border-radius:9px; background:var(--bg2); color:var(--dim); border:0; cursor:pointer; font-size:16px; font-family:inherit; }
.mbtn:hover { color:var(--txt); }
.mbtn-today { width:auto; padding:0 12px; font-size:12.5px; font-weight:600; }
.mtitle { font-size:17px; font-weight:700; text-transform:capitalize; min-width:170px; text-align:center; white-space:nowrap; }
.top-spacer.hidden-nav { display:block; }

.lrow { display:grid; grid-template-columns:minmax(0,1fr) 230px 160px 150px auto auto auto; gap:12px; align-items:end; }
.hm { display:flex; gap:6px; }
.hm .in { padding:11px 8px; text-align:center; }
.hm span { align-self:center; color:var(--dim); font-size:11px; }

/* autocomplete de chamado */
.acwrap { position:relative; }
.acbox {
  position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:80; background:var(--modal); border:1px solid var(--border2);
  border-radius:12px; padding:5px; max-height:330px; overflow:auto; box-shadow:0 18px 40px rgba(0,0,0,.45);
}
.aci { display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:8px; cursor:pointer; font-size:13px; }
.aci:hover, .aci.on { background:color-mix(in srgb, var(--green) 10%, transparent); }
.aci .acid { color:var(--green); font-size:11.5px; font-weight:700; }
.aci .acs { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acempty { padding:10px; color:var(--dim2); font-size:12.5px; }

/* dropdown "Tipo de tarefa" */
.ttdd { position:relative; }
.ttdd-btn {
  width:100%; display:flex; align-items:center; gap:9px; background:rgba(4,14,20,.8); border:1px solid var(--border2); border-radius:10px;
  padding:7px 11px 7px 7px; color:var(--txt); font:14px inherit; font-family:inherit; cursor:pointer; text-align:left;
}
html[data-mode="light"] .ttdd-btn { background:#fff; }
.ttdd-btn.err { border-color:var(--red); box-shadow:0 0 0 3px rgba(255,95,95,.12); }
.ttdd-ic { width:26px; height:26px; border-radius:7px; display:grid; place-items:center; flex:none;
  background:color-mix(in srgb, var(--green) 14%, transparent); color:var(--green); }
.ttdd-lbl { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ttdd-lbl.ph { color:var(--dim2); }
.ttdd-chev { color:var(--dim); transition:transform .15s; }
.ttdd.open .ttdd-chev { transform:rotate(180deg); }
.ttdd-menu {
  position:absolute; left:0; min-width:100%; top:calc(100% + 4px); z-index:85; background:var(--modal); border:1px solid var(--border2);
  border-radius:12px; padding:5px; max-height:320px; overflow:auto; box-shadow:0 18px 40px rgba(0,0,0,.45); animation:ttddIn .14s ease;
}
.ttdd-opt { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:8px; cursor:pointer; font-size:13px; white-space:nowrap; }
.ttdd-opt:hover, .ttdd-opt.kb { background:color-mix(in srgb, var(--green) 10%, transparent); }
.ttdd-opt .ck { width:14px; color:var(--green); font-weight:800; }
.tag-def { font-size:9.5px; font-weight:800; padding:2px 7px; border-radius:6px; background:linear-gradient(135deg,#ffd76a,#f5b82e); color:#7a4a00; margin-left:auto; }
@keyframes ttddIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }

/* flag encerrar */
.flag {
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border2); border-radius:12px; padding:8px 13px; font-size:13px;
  cursor:pointer; user-select:none; color:var(--dim);
}
.flag input { accent-color:var(--amber); }
.flag.on { border-color:var(--amber); color:var(--amber); background:color-mix(in srgb, var(--amber) 12%, transparent); font-weight:600; }
.closebox { margin-top:12px; }
.closebox .rte-area { min-height:120px; }
.modal .closebox .rte-area { min-height:260px; }

.searchrow { margin-top:16px; }
.filtering { margin-top:8px; font-size:13px; color:var(--dim); }
.filtering b { color:var(--green); font-family:var(--mono); }
.linkbtn { background:none; border:0; color:var(--link); cursor:pointer; font:inherit; padding:0; text-decoration:underline; }

/* resumo do mês */
.summary { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:6px 2px 14px; font-size:13.5px; color:var(--dim); }
.summary b { font-family:var(--mono); }
.sbar { width:160px; height:9px; border-radius:6px; background:var(--chartS); overflow:hidden; }
.sbar i { display:block; height:100%; background:var(--chartP); }
.syncing { color:#ffd166; font-weight:600; }
.summary .right { margin-left:auto; }

/* calendário */
.calhead { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; margin-bottom:8px; }
.calhead div { font-size:11px; letter-spacing:3px; font-weight:700; color:var(--dim); text-align:center; }
.week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; margin-bottom:10px; }
.day {
  min-height:118px; padding:9px 6px; border-radius:14px; background:var(--cell); border:1px solid var(--border2);
  display:flex; flex-direction:column; gap:7px; cursor:pointer; min-width:0;
}
.day.out { opacity:.32; }
.day.off { background:rgba(148,163,178,.10); filter:saturate(.55); }
.day.future { opacity:.7; cursor:default; }
.day.today { border:1.5px dashed #00C9C9; box-shadow:0 0 14px rgba(0,201,201,.15); }
.day.sel { outline:2px dashed var(--green); outline-offset:1px; }
.day.empty-hl { border-color:var(--red); background:rgba(255,95,95,.05); }
.day.dimmed { opacity:.22; }
.dtop { display:flex; align-items:center; gap:5px; padding:0 3px; }
.dnum { font-size:15px; font-weight:700; }
.dnum small { font-size:9.5px; font-weight:600; color:var(--dim); margin-left:3px; text-transform:uppercase; }
.dtot { margin-left:auto; font:700 11.5px var(--mono); padding:3px 9px; border-radius:8px; }
.dtot.ok { color:var(--calOk); background:color-mix(in srgb, var(--calOk) 13%, transparent); }
.dtot.mid { color:var(--calMid); background:color-mix(in srgb, var(--calMid) 13%, transparent); }
.dtot.bad { color:var(--calBad); background:color-mix(in srgb, var(--calBad) 13%, transparent); }
.dtot.zero { color:var(--dim2); background:rgba(255,255,255,.04); }
.dplus { width:20px; height:20px; border-radius:6px; border:0; cursor:pointer; font-weight:800; line-height:1;
  background:color-mix(in srgb, var(--green) 16%, transparent); color:var(--green); flex:none; }
.dplus:hover { background:color-mix(in srgb, var(--green) 30%, transparent); }
.dmsg { font-size:11px; color:var(--dim2); padding:0 3px; }
.dmsg.hol { color:var(--green); font-weight:700; text-align:center; margin:auto 0; font-size:12px; }
.day > .dmsg:not(.warn):last-child { text-align:center; margin:auto 0; }
.day.hol { background:color-mix(in srgb, var(--statP) 12%, var(--cell)); }
.tt-all { color:var(--green); font-family:var(--mono); } .tt-p { color:var(--statP); font-family:var(--mono); } .tt-s { color:var(--statS); font-family:var(--mono); }
.dmsg.warn { color:var(--red); font-weight:700; }
.dmsg.ferias { color:var(--ferias); font-weight:600; } .dmsg.dayoff { color:var(--dayoff); font-weight:600; }
.dmsg.licenca { color:var(--licenca); font-weight:600; } .dmsg.ausencia { color:var(--ausencia); font-weight:600; }
.ecard { background:var(--card); border-radius:10px; padding:6px 5px; font-size:11.5px; border:1px solid var(--border2); }
.eline { display:flex; align-items:center; gap:2px; }
.eid { font:700 10.5px var(--mono); padding:1px 5px; border-radius:6px; }
.eid.P { color:var(--pillP); background:color-mix(in srgb, var(--pillP) 13%, transparent); }
.eid.S { color:var(--pillS); background:color-mix(in srgb, var(--pillS) 13%, transparent); }
.eid.X { color:var(--dim); background:rgba(255,255,255,.05); }
.ehrs { margin-left:auto; font:700 11px var(--mono); color:var(--green); }
.dot { width:6px; height:6px; border-radius:50%; flex:none; margin-left:4px; }
.dot.Synced { background:var(--green); box-shadow:0 0 6px var(--green); }
.dot.Pending { background:#ffd166; animation:pulse 1.2s infinite; }
.dot.Failed { background:var(--red); }
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:.25; } }
.esub { margin-top:5px; color:var(--dim); font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
.eretry { display:block; margin-top:4px; color:#ffd166; text-decoration:underline; cursor:pointer; font-size:11px; background:none; border:0; padding:0; font-family:inherit; }

/* modais de lançamento */
.modal.m420 { width:min(420px,94vw); }
.modal.m880 { width:min(880px,96vw); }
.modal.m640 { width:min(640px,96vw); }
.modal.m960 { width:min(960px,96vw); }
.mgrid { display:grid; gap:14px; }
.bdays-h { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:6px 0 10px; }
.bdays-h .mtitle { font-size:14.5px; min-width:130px; }
.bgrid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.bday {
  border-radius:11px; border:1px solid var(--border2); background:var(--cell); color:var(--txt); padding:6px 2px; cursor:pointer;
  font-family:inherit; display:flex; flex-direction:column; align-items:center; gap:1px;
}
.bday small { font-size:9.5px; color:var(--dim); }
.bday b { font:700 12px var(--mono); }
.bday.emptyd { border-color:color-mix(in srgb, var(--red) 55%, transparent); }
.bday.emptyd b { color:var(--red); }
.bday.on { background:linear-gradient(135deg,var(--green),var(--green2)); border-color:transparent; }
.bday.on b, .bday.on small { color:#0A1628; }
.bday:disabled { opacity:.3; cursor:not-allowed; }
.bday.blank { visibility:hidden; }
.bcount { margin-top:10px; font-size:12.5px; color:var(--dim); }
.bcount b { color:var(--green); font-family:var(--mono); }

/* tiConfirm */
.ticonf { background:#0D1E38; border-radius:18px; padding:26px; width:min(430px,94vw); text-align:center; border:1px solid #223039; animation:tiAttPop .18s ease; color:#eaf6ee; }
.ticonf .ic { width:62px; height:62px; border-radius:50%; margin:0 auto 14px; display:grid; place-items:center; font-size:28px; background:rgba(255,209,102,.15); }
.ticonf .ic.danger { background:rgba(255,95,95,.18); }
.ticonf h3 { margin:0 0 8px; font-size:19px; font-weight:800; }
.ticonf p { margin:0 0 20px; color:#9db4c0; font-size:13.5px; line-height:1.5; }
.ticonf .row { display:flex; gap:10px; }
.ticonf .row button { flex:1; }
@keyframes tiAttPop { from { transform:scale(.94); opacity:0; } to { transform:none; opacity:1; } }

/* modal Uso de IA */
.iabox { background:#0D1E38; border:1px solid #223039; border-radius:16px; padding:22px; width:min(560px,94vw); max-height:92vh; overflow:auto; color:#eaf6ee; position:relative; }
.iabox h2 { margin:0; font-size:18px; }
.iabox .msub { color:#8aa0ad; font-size:13px; margin:4px 0 16px; }
.iabox label.f { color:#8aa0ad; }
.iaseg { display:inline-flex; background:#0a1a26; border:1px solid #223039; border-radius:11px; padding:3px; gap:3px; }
.iaseg button { border:0; background:none; color:#8aa0ad; font:700 13px inherit; font-family:inherit; padding:8px 18px; border-radius:8px; cursor:pointer; }
.iaseg button.on { background:linear-gradient(135deg,#10B981,#0096C7); color:#0A1628; }
.iapct { display:flex; align-items:center; gap:12px; }
.iapct .in { width:74px; font:800 18px var(--mono); text-align:center; padding:8px; }
.iapct .pc { color:#10B981; font-weight:800; }
.iapct input[type=range] { flex:1; accent-color:#10B981; height:6px; }
.iamarks { display:flex; gap:6px; margin-top:8px; }
.iamarks button { flex:1; border:1px solid #223039; background:#0a1a26; color:#8aa0ad; border-radius:8px; padding:5px; cursor:pointer; font:600 12px var(--mono); }
.iamarks button:hover { color:#10B981; }
.iatime { display:flex; gap:8px; }
.iatime .in { flex:1; }
.iatime select.in { width:120px; flex:none; }
.iastatus { font-size:13px; font-weight:700; margin-top:8px; color:#8aa0ad; }
.iastatus.bad { color:#ff6b6b; } .iastatus.ok { color:#10B981; }
.iabox .in { background:#0A1628; color:#eaf6ee; }
.iabox .err { outline:2px solid #ff5f5f; outline-offset:1px; border-radius:10px; }
.msel { position:relative; }
.msel-btn { width:100%; text-align:left; cursor:pointer; }
.msel-menu { position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:5; background:#0D1E38; border:1px solid #223039; border-radius:12px; padding:6px; max-height:240px; overflow:auto; box-shadow:0 18px 40px rgba(0,0,0,.5); }
.msel-menu label { display:flex; gap:8px; align-items:center; padding:6px 8px; border-radius:7px; cursor:pointer; font-size:13px; }
.msel-menu label:hover { background:rgba(16,185,129,.08); }
.msel-menu input { accent-color:#10B981; }
.msel-foot { display:flex; justify-content:space-between; padding:6px 8px 2px; border-top:1px solid #223039; margin-top:4px; }
.iaShake { animation:shake .45s ease; }

@media (max-width:980px) {
  .lrow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lrow .acwrap { grid-column:span 2; }
  .week, .calhead { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calhead { display:none; }
  .monthwork { display:none; }
}
@media (max-width:600px) {
  .lrow { grid-template-columns:1fr; }
  .lrow .acwrap { grid-column:auto; }
  .week { grid-template-columns:1fr; }
  .mtitle { min-width:auto; font-size:15px; }
}

/* =============================================================================
   Gestão (seção 8) e Config (seção 9)
   ============================================================================= */
.gbar-top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.gbar-top .per { color:var(--dim); font-size:13px; }
.gbar-top .per b { color:var(--txt); text-transform:capitalize; }
.reports { margin-left:auto; display:flex; align-items:center; gap:4px; border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:3px; background:var(--panel); }
.reports .lb { font-size:10.5px; text-transform:uppercase; color:var(--dim2); letter-spacing:1.2px; padding:0 8px; }
.reports button { background:none; border:0; color:var(--txt); font:600 12.5px inherit; font-family:inherit; padding:7px 11px; border-radius:7px; cursor:pointer; }
.reports button:hover { background:color-mix(in srgb, var(--green) 12%, transparent); }
.gtop { display:grid; grid-template-columns:270px 1fr; gap:12px; margin-bottom:14px; }
.donutbox { background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:14px; }
.donutbox .tt { font-size:10px; text-transform:uppercase; letter-spacing:1.4px; color:var(--dim); font-weight:600; margin-bottom:10px; }
.donut { width:150px; height:150px; border-radius:50%; margin:0 auto; position:relative; }
.donut::after { content:""; position:absolute; inset:24%; border-radius:50%; background:var(--modal); }
.donut b { position:absolute; inset:0; display:grid; place-items:center; z-index:1; font:700 15px var(--mono); }
.dleg { margin-top:10px; font-size:12.5px; display:flex; flex-direction:column; gap:4px; }
.dleg i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.kpis4 { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.kpi { background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:16px; }
.kpi .l { font-size:10px; text-transform:uppercase; letter-spacing:1.4px; color:var(--dim); font-weight:600; }
.kpi .v { font:700 24px var(--mono); color:var(--green); margin-top:6px; }
.kpi .s { font-size:12px; color:var(--dim); margin-top:2px; }
.acc { background:var(--panel); border:1px solid var(--border); border-radius:14px; margin-bottom:10px; }
.acc > summary { list-style:none; cursor:pointer; padding:15px 18px; font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; display:flex; align-items:center; gap:10px; }
.acc > summary::-webkit-details-marker { display:none; }
.acc > summary .cnt { margin-left:auto; font-family:var(--mono); color:var(--dim); letter-spacing:0; text-transform:none; font-weight:600; }
.acc > summary .arr { color:var(--dim); transition:transform .2s; }
.acc[open] > summary .arr { transform:rotate(90deg); }
.acc .acc-b { padding:0 18px 18px; }
.tools { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.tools .in { width:auto; padding:8px 11px; font-size:13px; }
.prow { border:1px solid var(--border2); border-radius:14px; padding:13px 16px; margin-bottom:8px; background:var(--cell); cursor:pointer; }
.prow .top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.prow .nm { font-size:14px; font-weight:700; min-width:170px; }
.gpill { font-size:10px; padding:1px 7px; border-radius:10px; margin-left:4px; font-weight:600; }
.pbar { flex:1; min-width:140px; height:8px; border-radius:5px; background:var(--chartS); overflow:hidden; display:flex; }
.pbar i { display:block; height:100%; background:var(--chartP); }
.prow .nums { font:12px var(--mono); color:var(--dim); white-space:nowrap; }
.prow .nums b { color:var(--txt); }
.prow .pend { color:var(--amber); font:600 12px var(--mono); } .prow .fail { color:var(--red); font:600 12px var(--mono); }
.prow .tk { margin-top:10px; display:flex; flex-direction:column; gap:4px; }
.prow .tk div { display:flex; gap:8px; font-size:12.5px; align-items:center; }
.prow .tk .h { margin-left:auto; color:var(--green); font:600 12px var(--mono); }
.sgcards { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.sgcard { background:var(--cell); border:1px solid var(--border2); border-left:4px solid; border-radius:12px; padding:14px; cursor:pointer; position:relative; }
.sgcard .v { font:800 26px var(--mono); }
.sgcard .l { font-size:13px; font-weight:600; display:flex; align-items:center; gap:6px; }
.sgcard .l i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.sgcard .s { font-size:11.5px; color:var(--dim); margin-top:3px; }
.sgcard .ch { position:absolute; right:12px; top:14px; color:var(--dim); }
.iakpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:14px; }
.iakpi { background:var(--cell); border:1px solid var(--border2); border-left:4px solid; border-radius:12px; padding:14px; position:relative; }
.iakpi .ic { position:absolute; right:12px; top:10px; font-size:24px; opacity:.35; }
.iakpi .v { font:800 24px var(--mono); }
.iakpi .l { font-size:12px; font-weight:600; } .iakpi .s { font-size:11.5px; color:var(--dim); }
.charts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.chart { background:var(--cell); border:1px solid var(--border2); border-radius:12px; padding:14px; }
.chart h5 { margin:0 0 10px; font-size:12.5px; display:flex; align-items:center; gap:8px; }
.chart h5 select { margin-left:auto; }
.vbars { display:flex; align-items:flex-end; gap:6px; height:140px; }
.vbars .b { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; font:10px var(--mono); color:var(--dim); }
.vbars .b i { width:100%; border-radius:5px 5px 0 0; min-height:2px; }
.vbars .b span.v { color:var(--txt); font-weight:600; }
.hbars { display:flex; flex-direction:column; gap:8px; }
.hbars .r { display:grid; grid-template-columns:150px 1fr 70px; gap:8px; align-items:center; font-size:12.5px; }
.hbars .r .t { height:12px; border-radius:6px; background:rgba(255,255,255,.05); overflow:hidden; }
.hbars .r .t i { display:block; height:100%; border-radius:6px; }
.hbars .r .n { font:12px var(--mono); text-align:right; }
.ianote { font-size:12.5px; color:var(--dim); margin-top:8px; }
table.dt { width:100%; border-collapse:collapse; font-size:12.5px; }
table.dt th { text-align:left; color:var(--dim); font-weight:600; font-size:10.5px; text-transform:uppercase; letter-spacing:1px; padding:8px; border-bottom:1px solid var(--border2); position:sticky; top:0; background:var(--modal); }
table.dt td { padding:8px; border-bottom:1px solid var(--border2); vertical-align:top; }
table.dt td.n { font-family:var(--mono); text-align:right; white-space:nowrap; }
table.dt tr.bad { background:rgba(255,95,95,.07); box-shadow:inset 3px 0 0 var(--red); }
.revisar { font:700 10px var(--mono); color:#fff; background:var(--red); border-radius:6px; padding:1px 6px; animation:pulse 1.2s infinite; }
.banner-red { background:rgba(255,95,95,.1); border:1px solid rgba(255,95,95,.5); border-radius:10px; padding:10px 12px; font-size:12.5px; margin-bottom:10px; }
.missrow { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:8px 0; border-bottom:1px solid var(--border2); }
.missrow .nm { min-width:180px; font-weight:600; }
.missrow .q { color:var(--red); font:700 12px var(--mono); min-width:70px; }
.missrow .d { font:10.5px var(--mono); padding:1px 6px; border-radius:6px; background:rgba(255,95,95,.1); color:var(--red); }
.abscal { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.abscal .h { font-size:10.5px; text-align:center; color:var(--dim); font-weight:700; letter-spacing:2px; }
.abscal .c { min-height:76px; border-radius:10px; background:var(--cell); border:1px solid var(--border2); padding:5px; display:flex; flex-direction:column; gap:3px; }
.abscal .c.today { border-color:#5b9dff; }
.abscal .c.out { opacity:.25; }
.abscal .c .n { font:600 11px var(--mono); color:var(--dim); align-self:flex-end; }
.absleg { display:flex; gap:6px; margin:-4px 0 8px; }
.prow .nm .gps { display:block; margin-top:2px; } .prow .nm .gps .gpill { margin-left:0; margin-right:4px; }
.abschip { font-size:10.5px; border-radius:20px; padding:1px 7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.abschip.ferias { color:var(--ferias); background:color-mix(in srgb, var(--ferias) 15%, transparent); border:1px solid color-mix(in srgb, var(--ferias) 38%, transparent); }
.abschip.dayoff { color:var(--dayoff); background:color-mix(in srgb, var(--dayoff) 15%, transparent); border:1px solid color-mix(in srgb, var(--dayoff) 38%, transparent); }
.abschip.licenca { color:var(--licenca); background:color-mix(in srgb, var(--licenca) 15%, transparent); border:1px solid color-mix(in srgb, var(--licenca) 38%, transparent); }
.abschip.ausencia { color:var(--ausencia); background:color-mix(in srgb, var(--ausencia) 15%, transparent); border:1px solid color-mix(in srgb, var(--ausencia) 38%, transparent); }
/* esteira */
.esbox { background:var(--bg2); border-radius:18px; padding:26px; width:min(820px,96vw); max-height:92vh; overflow:auto; position:relative; border:1px solid var(--border2); }
.es-h { display:flex; gap:14px; align-items:center; margin-bottom:14px; padding-right:30px; }
.es-h .ic { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-size:22px; background:var(--panel); }
.es-h h2 { margin:0; font-size:18px; } .es-h p { margin:3px 0 0; color:var(--dim); font-size:12.5px; }
.es-st { font:600 11px var(--mono); padding:3px 10px; border-radius:20px; display:inline-block; margin-bottom:12px; }
.es-step { display:grid; grid-template-columns:34px 1fr; gap:14px; position:relative; padding-bottom:18px; }
.es-step::before { content:""; position:absolute; left:16px; top:34px; bottom:0; width:2px; background:var(--border2); }
.es-step:last-of-type::before { display:none; }
.es-num { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font:700 14px var(--mono); border:2px solid var(--border2); color:var(--dim); }
.es-step.cur .es-num { border-color:#00C9C9; color:#00C9C9; } .es-step.ok .es-num { border-color:#10B981; background:#10B981; color:#0A1628; }
.es-step h4 { margin:6px 0 8px; font-size:14px; }
.es-boxes { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
.es-boxes div { background:var(--panel); border-radius:10px; padding:10px; text-align:center; font-size:11.5px; color:var(--dim); }
.es-boxes b { display:block; font:700 18px var(--mono); color:var(--txt); }
.es-teams { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.es-teams div { background:var(--panel); border-radius:10px; padding:8px 10px; font-size:12px; }
.es-teams div.empty { border:1px solid var(--red); color:var(--red); }
.es-teams b { display:block; font-size:12.5px; }
.es-params { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.es-params label.f { margin-bottom:3px; }
/* config (seção 9) */
.cfg { display:grid; grid-template-columns:210px minmax(0,1fr); gap:18px; align-items:start; }
.cfg-menu { position:sticky; top:70px; display:flex; flex-direction:column; gap:6px; }
.cfg-menu h2 { margin:0 0 12px; font-size:25px; font-weight:800; letter-spacing:-.3px; }
.ctab { border:1px solid transparent; border-radius:10px; padding:9px 14px; font-size:13.5px; background:color-mix(in srgb, var(--cell) 55%, transparent); color:var(--txt); cursor:pointer; text-align:left; font-family:inherit; }
.ctab:hover { border-color:color-mix(in srgb, var(--green) 40%, transparent); }
.ctab.on { background:color-mix(in srgb, var(--green) 12%, transparent); border-color:color-mix(in srgb, var(--green) 45%, transparent); color:var(--green); font-weight:700; }
.cfg-body { min-width:0; }
.cfg-panel { margin:0; }
.cfg-body p.hint { color:var(--txt); font-size:15px; font-weight:500; margin:0 0 12px; line-height:1.45; }
.cfg-body p.hint b { font-weight:800; } .cfg-body .amber { color:var(--amber); }
.cfg-body .grow { flex:1 1 auto; min-width:160px; }
.cfg-body .frow .in.grow { width:auto; }
.cfg-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:14px; }
.cfg-foot .btn-go { min-width:150px; }
.frow { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.frow .in { width:auto; padding:10px 14px; font-size:14px; }
.frow .btn-go, .frow .btn-ghost { padding:10px 18px; white-space:nowrap; }
.xbtn { background:none; border:1px solid transparent; border-radius:7px; color:var(--dim2); cursor:pointer; padding:2px 7px; font-size:12px; }
.xbtn:hover { color:var(--red); border-color:color-mix(in srgb, var(--red) 40%, transparent); }
.clist { display:flex; flex-direction:column; gap:6px; }
.citem { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; background:var(--cell); border:1px solid var(--border2); font-size:13px; flex-wrap:wrap; }
.citem.past { opacity:.42; }
.citem .when { font:11.5px var(--mono); color:var(--dim); }
.citem .soon { color:#00C9C9; }
.citem .act { margin-left:auto; display:flex; gap:6px; align-items:center; }
.origin { font:10px var(--mono); padding:2px 8px; border-radius:10px; color:var(--dim); border:1px solid var(--border2); }
.origin.corp { color:#00C9C9; border-color:rgba(0,201,201,.4); } .origin.manual { color:var(--amber); border-color:color-mix(in srgb, var(--amber) 40%, transparent); }
.corpline { font:12px var(--mono); color:var(--dim); display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.corpline.ok { color:var(--green); } .corpline.err { color:var(--red); }
.modetag { display:inline-block; font-size:12.5px; padding:6px 12px; border-radius:20px; background:var(--cell); border:1px solid var(--border2); margin-bottom:14px; }
.colorgrid { display:grid; grid-template-columns:1fr 1fr; gap:6px 40px; }
.colorgrid .r { display:flex; align-items:center; gap:10px; font-size:14px; padding:5px 0; cursor:pointer; }
.colorgrid .r > span { flex:1; color:var(--txt); }
.colorgrid input[type=color], .grpbar .swatch { width:40px; height:28px; border:1px solid var(--border2); border-radius:6px; background:none; padding:0; cursor:pointer; flex:none; }
.hex { width:84px !important; flex:none; font-family:var(--mono) !important; font-weight:700; padding:6px 8px !important; font-size:12px !important; }
.warnbox { background:rgba(255,209,102,.08); border:1px solid rgba(255,209,102,.45); border-radius:10px; padding:10px 12px; font-size:12.5px; margin-bottom:14px; }
.grpbar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:12px; border:1px solid var(--border2); border-radius:12px; background:var(--cell); margin-bottom:14px; }
.grpbar .in { width:auto; padding:8px 11px; font-size:13px; }
.grpbar .lbl { font-size:11px; color:var(--dim); text-transform:uppercase; letter-spacing:1px; margin-left:8px; }
.grpbar .danger { margin-left:auto; }
.btn-ghost.danger:hover { border-color:var(--red); color:var(--red); }
.dual { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.dual .side { border:1px solid var(--border2); border-radius:12px; padding:12px; display:flex; flex-direction:column; gap:8px; min-height:320px; background:var(--cell); transition:border-color .15s, background .15s; }
.dual .side.in-grp { border:1.5px dashed color-mix(in srgb, var(--green) 65%, transparent); }
.dual .side.over { background:color-mix(in srgb, var(--green) 7%, transparent); border-color:var(--green); }
.dual .side .in { padding:8px 11px; font-size:13px; }
.side-h { display:flex; align-items:center; gap:8px; font-size:13px; }
.side-h .linkbtn { margin-left:auto; font-size:12px; }
.side-h .cnt { font:11px var(--mono); color:var(--dim); }
.badge-g { font:700 11px var(--mono); padding:2px 9px; border-radius:20px; background:var(--green); color:#0A1628; }
.plist { overflow:auto; max-height:430px; display:flex; flex-direction:column; gap:5px; }
.pcardx { display:flex; align-items:center; gap:10px; padding:7px 10px; border-radius:9px; background:var(--panel); border:1px solid var(--border2); cursor:grab; font-size:12.5px; user-select:none; }
.pcardx:hover { border-color:var(--green); }
.pcardx.drag { opacity:.4; }
.pcardx.off { opacity:.55; }
.pcardx .av { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font:700 10.5px var(--mono); background:color-mix(in srgb, var(--green) 18%, transparent); color:var(--green); flex:none; }
.pcardx .nm { display:flex; flex-direction:column; min-width:0; }
.pcardx small { color:var(--dim); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dropzone { border:1px dashed var(--border2); border-radius:10px; padding:18px; text-align:center; color:var(--dim2); font-size:12px; }
.grpfoot { display:flex; align-items:center; gap:12px; margin-top:14px; font-size:13px; }
.grpfoot .btn-go { margin-left:auto; min-width:150px; }
.grpfoot .dirty { color:var(--amber); font-size:12px; }
.smcols { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.smcol { border:1px solid var(--border2); border-radius:12px; padding:10px; min-height:220px; background:var(--cell); }
.smcol.auto { border-style:dashed; }
.smcol.over { border-color:var(--green); }
.smcol h5 { margin:0 0 8px; font-size:11.5px; display:flex; align-items:center; gap:6px; }
.smcol h5 .cnt { margin-left:auto; font:10px var(--mono); color:var(--dim); }
.smchip { font:11px var(--mono); padding:5px 8px; border-radius:7px; background:var(--panel); border:1px solid var(--border2); margin-bottom:5px; cursor:grab; }
.tiptop { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.tiptop .subtabs { margin:0 auto 0 0; }
.tiptop .in { padding:7px 11px; font-size:13px; }
.subtabs { display:flex; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.subtabs button { border:1px solid var(--border2); border-radius:20px; padding:7px 15px; background:none; color:var(--txt); cursor:pointer; font-weight:600; font-size:12.5px; font-family:inherit; }
.subtabs button.on { background:#00C9C9; color:#04222b; border-color:#00C9C9; }
.matrix { overflow:auto; max-height:calc(100vh - 300px); min-height:200px; border:1px solid var(--border2); border-radius:12px; }
.matrix table { border-collapse:separate; border-spacing:0; font-size:12.5px; min-width:100%; }
.matrix th, .matrix td { padding:8px 12px; border-bottom:1px solid var(--border2); border-right:1px solid var(--border2); background:var(--modal); white-space:nowrap; }
.matrix thead th { position:sticky; top:0; z-index:2; font-size:12px; text-align:center; vertical-align:bottom; }
.matrix tbody th { position:sticky; left:0; z-index:1; text-align:left; font-weight:600; min-width:220px; }
.matrix th.corner { left:0; z-index:3; text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:1px; color:var(--dim); }
.matrix tbody tr:hover td, .matrix tbody tr:hover th { background:color-mix(in srgb, var(--green) 6%, var(--modal)); }
.matrix td { text-align:center; }
.matrix .gh { display:flex; align-items:center; justify-content:center; gap:6px; font-weight:700; }
.matrix .gh i { width:9px; height:9px; border-radius:50%; display:inline-block; }
.matrix th small { display:block; color:var(--dim); font-weight:400; font:10.5px var(--mono); margin:3px 0; }
.matrix th small.none { color:var(--amber); }
.matrix th .linkbtn { font-size:11px; font-weight:400; }
.mcell { display:inline-flex; vertical-align:middle; cursor:pointer; }
.matrix input[type=checkbox], .cb17 { width:17px; height:17px; accent-color:var(--green); cursor:pointer; margin:0; }
.matrix .star { background:none; border:0; cursor:pointer; color:var(--dim2); font-size:16px; padding:0 0 0 6px; vertical-align:middle; line-height:1; }
.matrix .star.on { color:#f5b82e; } .matrix .star.off { visibility:hidden; }
.matrix td:hover .star.off { visibility:visible; opacity:.35; }
.matrix.reg td { text-align:left; min-width:260px; }
.matrix tr.miss th { box-shadow:inset 3px 0 0 var(--red); }
.missmsg { font:400 11px inherit; color:var(--red); margin-top:3px; }
.regtop { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.chipc { font:600 11.5px var(--mono); padding:4px 11px; border-radius:20px; background:var(--cell); border:1px solid var(--border2); }
.chipc.warn { color:var(--red); border-color:color-mix(in srgb, var(--red) 40%, transparent); } .chipc.ok { color:var(--green); }
.switch { display:inline-flex; align-items:center; gap:9px; font-size:12.5px; cursor:pointer; margin-left:auto; user-select:none; }
.switch input { display:none; }
.switch .sl { width:36px; height:20px; border-radius:20px; background:var(--bg2); border:1px solid var(--border2); position:relative; transition:background .15s; }
.switch .sl::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:var(--dim); transition:left .15s, background .15s; }
.switch input:checked + .sl { background:color-mix(in srgb, var(--green) 30%, transparent); border-color:var(--green); }
.switch input:checked + .sl::after { left:18px; background:var(--green); }
.wlpick { display:flex; align-items:center; gap:8px; width:100%; max-width:340px; text-align:left; background:var(--cell); border:1px solid var(--border2); border-radius:9px; padding:7px 10px; color:var(--txt); font:12.5px var(--mono); cursor:pointer; }
.wlpick:hover { border-color:var(--green); }
.wlpick.none { border-color:color-mix(in srgb, var(--red) 45%, transparent); }
.wlpick .car { margin-left:auto; color:var(--dim); }
.wlpop { position:absolute; z-index:12000; background:var(--modal); border:1px solid var(--border2); border-radius:12px; padding:8px; box-shadow:0 14px 40px rgba(0,0,0,.45); display:flex; flex-direction:column; gap:6px; }
.wlpop .in { padding:8px 10px; font-size:13px; }
.wlopts { max-height:260px; overflow:auto; display:flex; flex-direction:column; }
.wlopts button, .wlclear { background:none; border:0; text-align:left; padding:7px 10px; border-radius:7px; color:var(--txt); cursor:pointer; font:12.5px var(--mono); }
.wlopts button:hover, .wlopts button.on { background:color-mix(in srgb, var(--green) 12%, transparent); color:var(--green); }
.wlclear { color:var(--red); border-top:1px solid var(--border2); border-radius:0 0 7px 7px; font-family:inherit; }
.wlclear:hover { background:rgba(255,95,95,.1); }
.stickybar { position:sticky; bottom:10px; z-index:5; background:var(--modal); border:1px solid var(--amber); border-radius:12px; padding:10px 14px; display:flex; align-items:center; gap:10px; margin-top:12px; box-shadow:0 10px 30px rgba(0,0,0,.35); font-size:13px; }
.addp { border:1px solid var(--border2); border-radius:12px; padding:10px 14px; margin-bottom:14px; background:var(--cell); }
.addp summary { cursor:pointer; font-size:13px; font-weight:600; color:var(--green); }
table.colab .nick { width:200px; padding:7px 10px; font-size:13px; }
table.colab .nick.saved { border-color:var(--green); }
table.colab td { vertical-align:middle; }
.maint { border:1px solid #d9534f; background:rgba(217,83,79,.08); border-radius:12px; padding:14px 16px; display:flex; align-items:center; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
.maint .mst { font:12px var(--mono); color:var(--dim); margin-top:4px; } .maint .mst.on { color:#d9534f; font-weight:700; }
.maint .btn-red { background:#d9534f; color:#fff; border:0; border-radius:10px; padding:10px 16px; font-weight:700; cursor:pointer; font-family:inherit; margin-left:auto; }
.acc-grid { display:grid; grid-template-columns:230px minmax(0,1fr); gap:14px; align-items:start; }
.acc-pool { border:1px solid var(--border2); border-radius:12px; padding:10px; max-height:620px; overflow:auto; background:var(--cell); position:sticky; top:70px; }
.acc-pool h5 { margin:6px 0 8px; font-size:10.5px; text-transform:uppercase; color:var(--dim); letter-spacing:1.2px; }
.acc-pool .in { padding:7px 10px; font-size:12.5px; margin-bottom:6px; }
.acc-pool .pp .dchip { display:flex; }
.acc-cards { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.acc-card { border:1px solid var(--border2); border-radius:12px; padding:12px; min-height:130px; background:var(--cell); }
.acc-card.over { border-color:var(--green); background:color-mix(in srgb, var(--green) 6%, var(--cell)); }
.acc-card h5 { margin:0 0 10px; font-size:13.5px; display:flex; align-items:center; gap:8px; }
.dchip { display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:4px 10px; border-radius:20px; background:var(--panel); border:1px solid var(--border2); margin:2px; cursor:grab; }
.dchip button { background:none; border:0; color:var(--dim2); cursor:pointer; padding:0; font-size:11px; }
.dchip button:hover { color:var(--red); }
.dchip i { width:8px; height:8px; border-radius:50%; display:inline-block; }
.fixadm { margin-top:14px; font:11.5px var(--mono); color:var(--dim); }
.logrow { display:grid; grid-template-columns:120px 60px 1fr auto; gap:10px; align-items:start; padding:9px 0; border-bottom:1px solid var(--border2); font-size:12.5px; }
.logrow .t { font:11px var(--mono); color:var(--dim); }
.logrow .lv { font:700 10px var(--mono); border-radius:6px; padding:2px 6px; text-align:center; }
.logrow .lv.ERR { color:var(--red); background:rgba(255,95,95,.12); } .logrow .lv.WARN { color:var(--amber); background:rgba(255,209,102,.12); }
.logrow pre { margin:4px 0 0; white-space:pre-wrap; font:11px var(--mono); color:var(--dim); max-height:120px; overflow:auto; }
@media (max-width:980px) { .gtop, .charts, .cfg, .acc-grid, .acc-cards, .dual, .colorgrid { grid-template-columns:1fr; } .smcols { grid-template-columns:1fr 1fr; } .cfg-menu { position:static; flex-direction:row; flex-wrap:wrap; } .acc-pool { position:static; } }
/* cabeçalho com todas as abas */
.tab { white-space:nowrap; }
.logo { flex:none; }
@media (max-width:1560px) { .tab { padding:9px 11px; font-size:13px; } header.top { gap:8px; } .monthnav .mtitle { min-width:140px; font-size:15.5px; } }
@media (max-width:1320px) { header.top { flex-wrap:wrap; } }
.gtop { align-items:start; }

/* filtros alinhados à direita e seta do select sem cobrir o texto */
.acc .tools { justify-content:flex-end; }
.tools select.in, select.in { padding-right:34px !important; background-position:calc(100% - 17px) 50%, calc(100% - 12px) 50%; }
.tools .in:not(select) { padding:8px 11px; }

/* Ausência TI */
.aus-form { display:grid; grid-template-columns:minmax(0,1.4fr) 180px minmax(0,1.2fr) auto; gap:12px; align-items:end; }
.aus-btns { display:flex; gap:8px; }
.modal.rp { width:min(720px,96vw); }
.rp-nav { display:flex; align-items:center; justify-content:space-between; margin:16px 0 8px; }
.rp-nav span { font-weight:700; text-transform:capitalize; }
.rp-months { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rp-months.ov { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.rp-t { font-size:13px; font-weight:700; text-transform:capitalize; margin-bottom:6px; text-align:center; }
.rp-g { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.rp-g .h { font-size:10px; color:var(--dim); text-align:center; font-weight:700; padding-bottom:3px; }
.rp-g button { height:34px; border-radius:8px; border:1px solid transparent; background:var(--cell); color:var(--txt); cursor:pointer; font:600 12.5px var(--mono); position:relative; }
.rp-g button:hover { border-color:var(--green); }
.rp-g button.we { color:var(--dim); }
.rp-g button.mate::after { content:""; position:absolute; left:6px; right:6px; bottom:3px; height:4px; border-radius:2px; background:#f5b82e; }
.rp-g button.in-r { background:color-mix(in srgb, var(--green) 22%, transparent); }
.rp-g button.edge { background:var(--green); color:#0A1628; }
.rp-leg { display:flex; gap:16px; font-size:11.5px; color:var(--dim); margin-top:10px; flex-wrap:wrap; }
.rp-leg i { display:inline-block; width:14px; height:10px; border-radius:3px; margin-right:5px; vertical-align:middle; }
.rp-leg i.sel { background:var(--green); } .rp-leg i.mate { background:#f5b82e; height:4px; }
.rp-leg i.mine { background:#3b82f6; } .rp-leg i.mate2 { background:#f5b82e; } .rp-leg i.both { background:#ef4444; }
.rp-m.mini .rp-g { gap:2px; }
.rp-m.mini .dd { width:30px; height:30px; display:grid; place-items:center; border-radius:6px; font:11px var(--mono); color:#9db4c0; background:rgba(255,255,255,.04); justify-self:center; }
.rp-m.mini .dd.mine { background:#3b82f6; color:#fff; }
.rp-m.mini .dd.mate { background:#f5b82e; color:#2a1a00; }
.rp-m.mini .dd.both { background:#ef4444; color:#fff; font-weight:800; }
@media (max-width:980px) { .aus-form { grid-template-columns:1fr 1fr; } .rp-months { grid-template-columns:1fr; } }
.envtag, .userchip { white-space:nowrap; flex:none; }

/* Config — layout das fotos */
.dlist { display:flex; flex-direction:column; max-height:calc(100vh - 330px); overflow:auto; padding-right:6px; }
.drow { display:flex; align-items:center; gap:10px; padding:5px 2px; font-size:13.5px; border-bottom:1px solid color-mix(in srgb, var(--border2) 60%, transparent); flex-wrap:wrap; }
.drow b.mono { font-size:12.5px; }
.drow .when { font-size:11.5px; color:var(--dim); }
.drow .when .soon, .drow .when.soon { color:#00C9C9; }
.drow .act { margin-left:auto; display:flex; gap:8px; align-items:center; }
.drow.past { opacity:.42; }
.drow small { font-size:11px; }
.dsep { font:700 10.5px var(--mono); letter-spacing:1.5px; color:var(--dim); padding:14px 2px 6px; }
.origin { border:0 !important; padding:0 !important; font:11px inherit !important; }
.corpline { margin:-2px 0 6px; font-size:12px; font-family:inherit; }
.rangebtn { text-align:left; cursor:pointer; color:var(--txt); }
.aus-form { display:grid; grid-template-columns:minmax(0,1fr) 170px 200px auto; gap:10px; align-items:end; margin-bottom:12px; }
.aus-form .f { font:700 10.5px var(--mono); letter-spacing:1.5px; text-transform:uppercase; color:var(--dim); }
.sidewrap { display:flex; flex-direction:column; gap:6px; min-width:0; }
.dual { grid-template-columns:1fr auto 1fr !important; align-items:stretch; }
.swapico { align-self:center; color:var(--dim); font-size:18px; }
.side-h { justify-content:space-between; }
.side-h.ingrp b { color:var(--green); }
.badge-n { font:700 11px var(--mono); padding:2px 9px; border-radius:20px; background:var(--bg2); color:var(--dim); }
.dual .side { min-height:360px; background:transparent; border:0; padding:0; }
.dual .side.in-grp { border:1.5px dashed color-mix(in srgb, var(--green) 65%, transparent); padding:8px; border-radius:10px; }
.pcardx { font-weight:600; font-size:13px; padding:9px 12px; }
.grpbar { background:transparent; border:0; padding:0; }
.utabs { display:flex; gap:22px; border-bottom:1px solid var(--border2); margin-bottom:14px; }
.utabs button { background:none; border:0; border-bottom:2px solid transparent; padding:8px 4px; color:var(--txt); font:600 14px inherit; cursor:pointer; }
.utabs button.on { color:var(--green); border-bottom-color:var(--green); }
.regpill { font:600 10.5px inherit; color:var(--green); border:1px solid color-mix(in srgb, var(--green) 55%, transparent); border-radius:20px; padding:1px 8px; margin-left:6px; }
.usecnt { font:600 11px var(--mono); color:var(--dim); margin-left:6px; }
.matrix .gh { font-size:12.5px; }
.matrix.reg th, .matrix.reg td { border-right:0; background:transparent; }
.matrix.reg thead th { background:var(--modal); text-align:left; font:700 11px var(--mono); letter-spacing:1.5px; text-transform:uppercase; color:var(--dim); }
.matrix.reg tbody th { min-width:340px; }
.rcell { display:flex; align-items:flex-start; gap:10px; }
.rdot { width:9px; height:9px; border-radius:50%; background:var(--green); margin-top:5px; flex:none; }
tr.miss .rdot { background:var(--amber); }
.matrix tr.miss th { box-shadow:none; }
.missmsg { color:var(--amber) !important; font-weight:500; }
.wlpick { background:none !important; border:0 !important; max-width:none; padding:6px 0; }
.wlpick i { color:var(--amber); }
.wlpick b { font-family:var(--mono); }
.chipc.warn { color:var(--amber) !important; border-color:color-mix(in srgb, var(--amber) 40%, transparent) !important; }
.ialist .citem { background:color-mix(in srgb, var(--statP) 14%, var(--cell)); font-size:15px; padding:9px 12px; }
.cdesc { font-size:11.5px; color:var(--dim); margin:-4px 0 10px; line-height:1.4; }
.acc-card .dchip, .acc-pool .dchip { border-style:dashed; }
.acc-card .dchip.person { border-style:solid; }
.maint { flex-wrap:nowrap !important; } .maint > div:first-child { flex:1; } .maint .mt { font-size:16px; } .maint .dmsg { color:var(--txt); font-size:12.5px; margin-top:3px; }
.acc-pool .dchip { display:flex; margin:4px 0; }
.maint .mst { margin:0 0 0 auto !important; }
.maint .btn-red { margin-left:0 !important; background:transparent; border:1px solid var(--border2); color:var(--txt); }
.smcol h5 { justify-content:center; text-align:center; text-transform:uppercase; letter-spacing:.5px; font-size:11px; }
.smcol { min-height:140px; background:color-mix(in srgb, var(--statP) 10%, var(--cell)); }
.smchip { font-weight:700; }
.logrow .lv.ERROR { color:var(--red); background:rgba(255,95,95,.12); }

.rp-head { display:flex; gap:20px; align-items:flex-start; justify-content:space-between; padding-right:30px; flex-wrap:wrap; }
.rp-head h2 { margin:0; }
.rp-head .msub b { color:var(--green); }
.rp-io { display:flex; gap:10px; } .rp-io .in { width:150px; }
.rp-hint { font-size:12px; color:var(--dim); margin:10px 0 2px; }
.rp-wrap { display:flex; align-items:center; gap:6px; }
.rp-wrap .rp-months { flex:1; }
.rp-arrow { background:none; border:0; color:var(--dim); font-size:22px; cursor:pointer; padding:4px; }
.rp-arrow:hover { color:var(--txt); }

/* Uso de IA — igual ao original */
.iabox { background:#0b0f14; border-color:#1f2a33; }
.iabox label.f { color:#c9d6dd; font-weight:700; }
.iaseg { display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%; background:none; border:0; padding:0; }
.iaseg button { border:1px solid #2a3a46; background:#0D1E38; color:#eaf6ee; padding:12px; font-size:15px; border-radius:10px; }
.iaseg button.on { border-color:transparent; }
.iapct { gap:10px; }
.iapct .in { width:84px; }
.iarange { flex:1; position:relative; padding-top:30px; }
.iarange .iamarks { position:absolute; top:0; left:9px; right:9px; height:28px; margin:0; display:block; }
.iarange .iamarks button { position:absolute; transform:translateX(-50%); flex:none; padding:2px 7px; font:700 11px var(--mono); color:#eaf6ee; border:1px solid #2a3a46; background:#0D1E38; border-radius:6px; }
.iarange .iamarks button::after { content:""; position:absolute; left:50%; top:100%; width:1px; height:7px; background:#3a4a56; }
.iarange input[type=range] { width:100%; -webkit-appearance:none; appearance:none; height:6px; border-radius:6px; background:linear-gradient(90deg,#10B981 var(--p,50%),#2a3a46 var(--p,50%)); outline:none; }
.iarange input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:20px; height:20px; border-radius:50%; background:#10B981; border:3px solid #0D1E38; box-shadow:0 0 0 1px #10B981; cursor:pointer; }
.iarange input[type=range]::-moz-range-thumb { width:16px; height:16px; border-radius:50%; background:#10B981; border:3px solid #0D1E38; cursor:pointer; }
.iatime { gap:8px; }
.iatime .in { flex:0 0 130px; text-align:center; font-weight:700; }
.iaunit { flex:1; border:1px solid #2a3a46; background:#0D1E38; color:#eaf6ee; border-radius:10px; font:700 14px inherit; font-family:inherit; cursor:pointer; padding:10px; }
.iaunit.on { background:linear-gradient(135deg,#10B981,#0096C7); color:#0A1628; border-color:transparent; }
.iatime.err .iaunit, .iatime.err .in { border-color:#ff6b6b; }
.iabox .msel-btn { position:relative; text-align:left; padding-right:30px; }
.iabox .msel-btn::after { content:"▾"; position:absolute; right:12px; top:50%; transform:translateY(-50%); color:#8aa0ad; }
.iabox .actions .btn-ghost, .iabox .actions .btn-go { padding:10px 20px; }

.iaseg.err button { border-color:#ff6b6b; }
.iabox .msel-menu { position:static; margin-top:6px; padding:0; max-height:none; overflow:hidden; background:#0D1E38; border:1px solid #2a3a46; border-radius:10px; box-shadow:none; display:flex; flex-direction:column; }
.iabox .msel-menu.hidden { display:none; }
.iabox .msel-menu label { padding:9px 12px; border-radius:0; font-size:13.5px; border-bottom:1px solid #16212a; }
.iabox .msel-menu label.msel-all { font-weight:700; }
.iabox .msel-menu input[type=checkbox] { width:15px; height:15px; }
.iabox .msel-menu { max-height:250px; overflow:auto; }
.msel-done { margin:8px; border:0; border-radius:8px; padding:10px; font:700 13.5px inherit; font-family:inherit; cursor:pointer; color:#0A1628; background:linear-gradient(135deg,#10B981,#0096C7); position:sticky; bottom:8px; }
/* "+" do dia desenhado em CSS (o glifo "+" variava de fonte/tamanho no Windows) */
.dplus { position:relative; font-size:0 !important; padding:0; display:inline-block; }
.dplus::before, .dplus::after { content:""; position:absolute; left:50%; top:50%; background:currentColor; border-radius:1px; transform:translate(-50%,-50%); }
.dplus::before { width:10px; height:2px; } .dplus::after { width:2px; height:10px; }
/* Minhas horas — cartão do dia igual ao original */
.dnum { font-size:17px; font-weight:800; }
.dnum small { font-size:11px; font-weight:800; color:var(--txt); margin-left:5px; letter-spacing:.5px; }
.dtop { gap:7px; }
.dtot { font-size:12px; padding:4px 12px; border-radius:20px; border:1.5px solid currentColor; }
.dtot.zero { color:var(--dim); border-color:color-mix(in srgb, var(--dim) 45%, transparent); background:rgba(255,255,255,.04); }
.dplus { width:26px; height:26px; border-radius:8px; border:1.5px solid color-mix(in srgb, var(--green) 70%, transparent); background:color-mix(in srgb, var(--green) 10%, transparent); }
.dplus::before { width:11px; } .dplus::after { height:11px; }
.ecard { border-radius:14px; padding:6px 8px; background:color-mix(in srgb, var(--statP) 10%, var(--card)); border:1px solid color-mix(in srgb, var(--statP) 35%, transparent); }
.eline { gap:6px; }
.eid { font-size:11.5px; padding:2px 7px; border-radius:20px; }
.eid.P { background:color-mix(in srgb, var(--pillP) 22%, transparent); }
.eid.S { background:color-mix(in srgb, var(--pillS) 22%, transparent); }
.ecard .cpy { color:var(--txt); font-size:13px; padding:0 2px; opacity:.85; }
.ecard .cpy:hover { opacity:1; color:var(--green); }
.ehrs { font-size:12.5px; }
.dot { width:8px; height:8px; }
.dot.Synced { box-shadow:0 0 8px var(--green), 0 0 2px var(--green); }
.sbar { width:300px; height:12px; border-radius:8px; }
.sbar i { border-radius:8px 0 0 8px; }
.eline { gap:3px; min-width:0; }
.ecard .cpy { font-size:12px; padding:0 1px; }
.dot { margin-left:3px; }
.ecard { padding:6px 6px; overflow:hidden; }
/* ajuste fino: proporção da foto do original em tamanho normal */
.dnum { font-size:16px; } .dnum small { font-size:10.5px; }
.dtot { font-size:11.5px; padding:2px 11px; border-width:1px; line-height:16px; }
.dtot.ok { background:color-mix(in srgb, var(--calOk) 22%, transparent); }
.dtot.mid { background:color-mix(in srgb, var(--calMid) 20%, transparent); }
.dtot.bad { background:color-mix(in srgb, var(--calBad) 18%, transparent); }
.dtot.zero { color:color-mix(in srgb, var(--txt) 70%, transparent); border-color:transparent; background:rgba(255,255,255,.10); }
.dplus { width:22px; height:22px; border-radius:7px; border-width:1px; }
.dplus::before { width:10px; } .dplus::after { height:10px; }
.day > .dmsg:not(.warn):not(.hol) { font-size:12px; color:var(--dim); }
/* tamanhos do original (tela inteira) */
.dnum { font-size:14px; } .dnum small { font-size:9.5px; margin-left:4px; }
.dtop { gap:5px; }
.dtot { font-size:10.5px; padding:1px 8px; line-height:15px; }
.dplus { width:18px; height:18px; border-radius:5px; }
.dplus::before { width:8px; height:1.6px; } .dplus::after { width:1.6px; height:8px; }
.ecard { padding:3px 5px; border-radius:10px; }
.eid { font-size:10px; padding:1px 5px; }
.ecard .cpy { font-size:10.5px; }
.ehrs { font-size:11px; }
.dot { width:6px; height:6px; }
.day > .dmsg:not(.warn):not(.hol) { font-size:11px; }
.dmsg.hol { font-size:11.5px; }
.sbar { width:220px; height:9px; }

/* "+" nítido: caixa 20px, barras de 2px em pixel inteiro */
.dplus { width:20px; height:20px; border-radius:6px; transform:none; }
.dplus::before, .dplus::after { transform:none; border-radius:0; }
.dplus::before { left:4px; right:4px; width:auto; top:calc(50% - 1px); height:2px; }
.dplus::after { top:4px; bottom:4px; height:auto; left:calc(50% - 1px); width:2px; }
.dtot { line-height:16px; padding:1px 9px; }

/* =============================================================================
   Tipografia (revisão de UX): uma família só (Inter), algarismos tabulares,
   rótulos em caixa-alta com espaçamento moderado; monoespaçada só para código.
   ============================================================================= */
html { -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
body, button, input, select, textarea { font-family:var(--sans); font-feature-settings:"tnum" 1, "cv11" 1; }
.mono, [class*="mono"] { font-variant-numeric:tabular-nums; }
.hex, .logrow pre, pre, code, .smchip { font-family:var(--code) !important; }
label.f, .calhead div, .h3, .dsep, .aus-form .f, .rp-io .f { font-family:var(--sans); font-weight:700; letter-spacing:.08em; }
.calhead div { letter-spacing:.18em; font-size:11px; }
.monthwork { font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:0; }
.envtag { font-family:var(--sans); font-weight:700; letter-spacing:.14em; }
.tab, .btn-go, .btn-ghost { letter-spacing:-.005em; }
h1, h2, h3, .mtitle, .cfg-menu h2 { letter-spacing:-.02em; }
/* primeira letra maiúscula em mensagens soltas (textos vindos de dados também) */
.dmsg::first-letter, .empty::first-letter, .hint::first-letter, .when::first-letter, .acempty::first-letter, .iastatus::first-letter, .msub::first-letter { text-transform:uppercase; }
.when, .origin { display:inline-block; }

/* Minhas horas: total do dia e "+" — compactos e bem visíveis */
.dtop { gap:6px; align-items:center; }
.dnum { font-size:15px; font-weight:800; letter-spacing:-.02em; }
.dnum small { font-size:10px; font-weight:700; color:var(--dim); letter-spacing:.06em; margin-left:4px; }
.dtot { height:20px; line-height:20px; padding:0 8px; border:0 !important; border-radius:6px; font:700 11.5px var(--sans); font-variant-numeric:tabular-nums; }
.dtot.ok { color:#06140b; background:var(--calOk); }
.dtot.mid { color:#1d1503; background:var(--calMid); }
.dtot.bad { color:#fff; background:var(--calBad); }
.dtot.zero { color:var(--dim); background:color-mix(in srgb, var(--txt) 9%, transparent); }
.dplus { width:20px; height:20px; border-radius:6px; border:0 !important; background:color-mix(in srgb, var(--green) 18%, transparent); color:var(--green); transition:background .12s, color .12s, transform .12s; }
.dplus::before { left:5px; right:5px; top:calc(50% - 1px); height:2px; }
.dplus::after { top:5px; bottom:5px; left:calc(50% - 1px); width:2px; }
.dplus:hover { background:var(--green); color:#06140b; transform:scale(1.06); }
.day.future .dtot.zero { opacity:.6; }
.ehrs, .eid { font-family:var(--sans); }
.eid { font-weight:700; }
.tt-all, .tt-p, .tt-s { font-family:var(--sans); font-weight:800; }
.dtot { display:inline-flex; align-items:center; justify-content:center; line-height:1; min-width:34px; }

/* rótulos em cinza, números coloridos (mesma linha de "Minhas horas") */
.dleg, .prow .nums { color:var(--dim); }
.prow .nums b { font-family:var(--sans); }
/* Config → IA: itens sem fundo azul */
.ialist .citem { background:transparent; border:1px solid var(--border2); }
/* Config → Acessos: grupo dentro do card fica verde com pontilhado verde */
.acc-card .dchip:not(.person) { color:var(--green); border:1.5px dashed color-mix(in srgb, var(--green) 75%, transparent); background:color-mix(in srgb, var(--green) 8%, transparent); font-weight:600; }
.acc-card .dchip:not(.person) i { box-shadow:0 0 0 2px color-mix(in srgb, var(--green) 25%, transparent); }

/* Gestão: tudo alinhado em colunas */
.prow .top { flex-wrap:nowrap; }
.prow .nm { flex:0 0 200px; min-width:0; }
.prow .pbar { flex:1 1 auto; }
.prow .nums { flex:0 0 360px; text-align:right; }
.prow .tk { gap:2px; margin-top:10px; padding-left:0; }
.prow .tk .tkrow { display:grid; grid-template-columns:70px minmax(0,1fr) 64px 70px; gap:10px; align-items:center; padding:3px 0; border-top:1px solid color-mix(in srgb, var(--border2) 60%, transparent); }
.prow .tk .tkn { font-weight:700; font-variant-numeric:tabular-nums; }
.prow .tk .tks { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.prow .tk .tkp { text-align:center; }
.prow .tk .h { margin:0; text-align:right; }
@media (max-width:980px) { .prow .top { flex-wrap:wrap; } .prow .nm, .prow .nums { flex-basis:100%; text-align:left; } }

/* Links: cor normal do texto; azul (e sublinhado) só ao passar o mouse */
a, .linkbtn, a.mono, [data-tk], [data-open], .kc-code { color:inherit; text-decoration:none; transition:color .12s; }
a:not(.kc-code):not(.eid):not(.elink):hover, .linkbtn:hover, [data-tk]:not(.eid):hover, [data-open]:not(.kc-code):not(.eid):not(.elink):hover { color:var(--link) !important; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.linkbtn { font-weight:600; }
.prow .flags { flex:0 0 64px; display:flex; gap:6px; justify-content:flex-end; }
.prow .tk .tkrow { grid-template-columns:70px minmax(0,1fr) 64px 70px 64px; } .prow .tk .tkrow::after { content:""; }

/* códigos em "pílula" (#123) no sistema todo: no hover só a volta fica azul */
.eid, .kc-code { border:1px solid transparent; text-decoration:none !important; cursor:pointer; transition:border-color .12s; }
.eid:hover, .kc-code:hover { border-color:var(--link) !important; }
.eid.P, .eid.P:hover { color:var(--pillP) !important; } .eid.S, .eid.S:hover { color:var(--pillS) !important; } .eid.X, .eid.X:hover { color:var(--dim) !important; }

/* Minhas horas: o número não é link; o nome do chamado é, com a volta azul no hover */
.eid { cursor:default; } .eid:hover { border-color:transparent !important; }
.elink { display:block; box-sizing:border-box; width:100%; padding:2px 6px; margin:2px 0 0; border:1px solid transparent; border-radius:7px; color:inherit !important; text-decoration:none !important; cursor:pointer; transition:border-color .12s; }
.elink:hover { border-color:var(--link); }

/* =============================================================================
   Identidade MoveAIT (brand guide v1.0): navy + gradiente ciano→teal→esmeralda,
   DM Sans / DM Mono. Sobrescreve a paleta anterior.
   ============================================================================= */
:root {
  --bg:#0A1628; --bg2:#0D1E38; --panel:rgba(17,30,53,.72); --cell:rgba(17,30,53,.85); --card:#162540;
  --border:rgba(0,201,201,.14); --border2:rgba(255,255,255,.08);
  --txt:#FFFFFF; --dim:#7A8EA8; --dim2:#556680;
  --green:#10B981; --green2:#0096C7; --red:#FF6B6B; --amber:#F5B82E; --viol:#A78BFA;
  --ferias:#10B981; --dayoff:#F5B82E; --licenca:#C084FC; --ausencia:#FF7EB6;
  --calOk:#10B981; --calMid:#F5B82E; --calBad:#FF6B6B;
  --chartP:#2F7FE0; --pillP:#5B9BF0; --statP:#5B9BF0;
  --chartS:#E8721F; --pillS:#F08A4B; --statS:#F08A4B;
  --link:#00C9C9;
  --grad:linear-gradient(90deg,#0096C7,#00C9C9,#10B981);
  --sans:'DM Sans','Segoe UI',system-ui,sans-serif;
  --mono:'DM Sans','Segoe UI',system-ui,sans-serif;
  --code:'DM Mono',Consolas,monospace;
  --modal:#111E35;
}
html[data-mode="light"] {
  --bg:#E8EDF5 !important; --bg2:#DCE3EE !important; --panel:rgba(255,255,255,.96) !important; --cell:#FFFFFF !important; --card:#FFFFFF !important;
  --border:rgba(0,150,199,.22) !important; --border2:#C8D0DC !important;
  --txt:#0A1628 !important; --dim:#5A6A80 !important; --dim2:#8A9BB5 !important;
  --green:#0E9F6E !important; --green2:#0096C7 !important; --link:#1565C0 !important;
  --amber:#B97F00 !important; --calMid:#B97F00 !important; --dayoff:#B97F00 !important;
  --pillP:#1565C0 !important; --statP:#1565C0 !important; --pillS:#D86030 !important; --statS:#D86030 !important;
  --modal:#FFFFFF !important;
}
body {
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    radial-gradient(900px 480px at 78% -8%, rgba(0,150,199,.12), transparent 70%),
    radial-gradient(700px 420px at 4% 92%, rgba(16,185,129,.07), transparent 60%);
  background-size:56px 56px, 56px 56px, auto, auto;
}
html[data-mode="light"] body {
  background-image:linear-gradient(rgba(10,22,40,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(10,22,40,.045) 1px, transparent 1px);
  background-size:56px 56px, 56px 56px;
}
header.top { background:rgba(10,22,40,.95) !important; border-bottom:1px solid var(--border2); }
html[data-mode="light"] header.top { background:rgba(255,255,255,.95) !important; }
/* CTAs e aba ativa com o gradiente da marca */
.btn-go, .tab.on, .iaseg button.on, .iaunit.on, .msel-done { background:var(--grad) !important; color:#0A1628 !important; }
.btn-go:hover { filter:brightness(1.08); }
.envtag { color:#00C9C9; border-color:rgba(0,201,201,.5); background:rgba(0,201,201,.08); }
.in:focus { border-color:rgba(0,201,201,.6) !important; box-shadow:0 0 0 3px rgba(0,201,201,.12) !important; }
.mono, .hex, code, pre { font-feature-settings:"tnum" 1; }
/* logo MoveTime */
.brandlogo { display:block; height:38px; width:auto; }
.brandlogo.light { display:none; }
html[data-mode="light"] .brandlogo.dark { display:none; } html[data-mode="light"] .brandlogo.light { display:block; }
#loginLogo .brandlogo { height:auto; width:min(340px,80vw); margin:0 auto; }
#login { background:radial-gradient(ellipse 55% 55% at 75% 45%, rgba(0,150,199,.14), transparent 70%), radial-gradient(ellipse 35% 45% at 15% 85%, rgba(16,185,129,.09), transparent 60%), #0A1628 !important; }
html[data-mode="light"] #login { background:#E8EDF5 !important; }
.login-card { background:#111E35 !important; border:1px solid rgba(255,255,255,.08); }
html[data-mode="light"] .login-card { background:#FFFFFF !important; border-color:#C8D0DC; }
.login-card img.brandlogo { height:auto !important; }
.login-card h3 { color:#FFFFFF !important; } html[data-mode="light"] .login-card h3 { color:#0A1628 !important; }
.brandlogo { height:32px; }
.logo .brandlogo { height:30px; max-width:none; }
/* área de conteúdo mais larga (aproveita as laterais) */
main { max-width:min(1720px, 100%) !important; padding-left:28px !important; padding-right:28px !important; }
main.wide { max-width:none !important; }
@media (max-width:1720px) { .tab { padding:8px 11px; font-size:13px; } header.top { gap:8px; } }

/* ================================================================== MENU LATERAL (navegação) */
:root { --side-w:68px; --side-open:236px; }
#app:not(.hidden) { padding-left:var(--side-w); transition:padding-left .18s ease; }
body.side-pinned #app:not(.hidden) { padding-left:var(--side-open); }
#app.hidden .appnav { display:none; }
.appnav {
  position:fixed; left:0; top:0; bottom:0; z-index:80; width:var(--side-w); overflow:hidden;
  display:flex; flex-direction:column; gap:4px; padding:14px 10px 14px;
  background:#0D1E38; border-right:1px solid var(--border2); transition:width .18s ease, box-shadow .18s ease;
}
.appnav:hover, body.side-pinned .appnav { width:var(--side-open); }
.appnav:hover { box-shadow:12px 0 40px rgba(0,0,0,.35); }
body.side-pinned .appnav:hover { box-shadow:none; }
html[data-mode="light"] .appnav { background:#fff; }
.side-brand { height:48px; display:flex; align-items:center; margin:0 0 18px 2px; flex:none; }
.side-brand .side-mark { width:44px; height:44px; object-fit:contain; flex:none; }
.side-brand .brandlogo { height:40px; max-width:200px; display:none !important; }
.appnav:hover .side-brand .side-mark, body.side-pinned .side-brand .side-mark { display:none; }
html:not([data-mode="light"]) .appnav:hover .side-brand .brandlogo.dark, html:not([data-mode="light"]) body.side-pinned .side-brand .brandlogo.dark,
html[data-mode="light"] .appnav:hover .side-brand .brandlogo.light, html[data-mode="light"] body.side-pinned .side-brand .brandlogo.light { display:block !important; }
.appnav nav.tabs { display:flex; flex-direction:column; gap:4px; }
.appnav .tab {
  display:flex; align-items:center; gap:14px; width:100%; text-align:left; white-space:nowrap;
  padding:11px 13px; border-radius:11px; border:1px solid transparent; background:none; color:var(--dim);
  font-size:14px; font-weight:500;
}
.appnav .tab.hidden { display:none; }
.appnav .tab .nico { width:20px; height:20px; flex:none; }
.appnav .tab span { opacity:0; transition:opacity .12s; }
.appnav:hover .tab span, body.side-pinned .appnav .tab span { opacity:1; }
.appnav .tab:hover { color:var(--txt); background:rgba(255,255,255,.05); }
html[data-mode="light"] .appnav .tab:hover { background:rgba(10,22,40,.05); }
.appnav .tab.on { color:var(--txt) !important; background:rgba(16,185,129,.12) !important; border-color:rgba(16,185,129,.35); box-shadow:inset 3px 0 0 var(--green); font-weight:700; }
.appnav .tab.on .nico { color:var(--green); }
.side-fill { flex:1; }
.appnav .side-pin { font-size:12.5px; color:var(--dim2); }

/* topo enxuto: mês à esquerda, ambiente e usuário à direita */
header.top { gap:12px; }
.top-fill { flex:1; }
.usermenu { position:relative; flex:none; }
.usermenu .userchip { display:flex; align-items:center; gap:8px; cursor:pointer; font:inherit; font-size:13.5px; color:var(--txt); padding:4px 12px 4px 4px; border-radius:999px; border:1px solid var(--border2); background:var(--bg2); }
.usermenu .userchip:hover { border-color:rgba(16,185,129,.4); }
.uav { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-size:11.5px; font-weight:700; color:#fff; background:linear-gradient(135deg,#0096C7,#10B981); flex:none; }
.userchip .caret { color:var(--dim); font-size:11px; }
.umenu {
  position:absolute; right:0; top:calc(100% + 8px); min-width:250px; z-index:90; display:none;
  background:var(--modal); border:1px solid var(--border2); border-radius:14px; padding:6px; box-shadow:0 16px 44px rgba(0,0,0,.4);
}
.usermenu.open .umenu { display:block; }
.umenu-who { padding:10px 12px 12px; border-bottom:1px solid var(--border2); margin-bottom:6px; display:flex; flex-direction:column; gap:2px; font-size:12px; color:var(--dim); }
.umenu-who b { color:var(--txt); font-size:14px; }
.umenu-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 12px; font-size:13.5px; }
.umenu-out { display:block; width:100%; text-align:left; border:0; background:none; font:inherit; font-size:13.5px; color:#ff6b6b; padding:10px 12px; border-radius:9px; cursor:pointer; }
.umenu-out:hover { background:rgba(255,107,107,.08); }
@media (max-width:900px) { :root { --side-w:58px; } body.side-pinned #app:not(.hidden) { padding-left:var(--side-w); } body.side-pinned .appnav:not(:hover) { width:var(--side-w); } body.side-pinned .appnav:not(:hover) .tab span { opacity:0; } }

/* ajustes do menu lateral (v2): abrir empurra o conteúdo; logo sem distorção; mês centralizado */
body:has(.appnav:hover) #app:not(.hidden) { padding-left:var(--side-open); }
.appnav:hover { box-shadow:none; }
.side-brand { justify-content:flex-start; }
.side-brand .side-mark { width:46px; height:46px; object-fit:contain; transform:scale(1.15); }
.side-brand .brandlogo { width:196px !important; height:auto !important; max-height:46px; max-width:none; object-fit:contain; object-position:left center; }
header.top { display:grid !important; grid-template-columns:1fr auto 1fr; align-items:center; }
header.top .top-l { min-width:0; }
header.top .monthnav { justify-self:center; }
header.top .top-r { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-width:0; }
@media (max-width:900px) {
  header.top { grid-template-columns:1fr; justify-items:center; row-gap:8px; }
  header.top .top-l { display:none; }
  body:has(.appnav:hover) #app:not(.hidden) { padding-left:var(--side-w); }
  .appnav:hover { box-shadow:12px 0 40px rgba(0,0,0,.35); }
}
/* ícone do menu fechado inteiro (sem corte da seta) */
.side-brand { margin-left:0; }
.side-brand .side-mark { width:46px; height:46px; transform:none; margin:0 auto; }
/* ícone recortado (sem a margem transparente do favicon) e menu fechado um pouco mais largo */
:root { --side-w:76px; }
.appnav { padding-left:12px; padding-right:12px; }
.side-brand .side-mark { width:52px; height:auto; margin:0; transform:none; object-fit:contain; }

/* ================================================================== modal "Sobreposição de ausência" (igual ao original) */
.ovl { width:min(560px,94vw); max-height:92vh; overflow:auto; text-align:center; padding:26px 28px 24px; border-radius:20px;
  background:var(--modal); border:1px solid var(--border2); box-shadow:0 30px 80px rgba(0,0,0,.5); }
.ovl-ic { width:52px; height:52px; margin:0 auto 12px; border-radius:50%; display:grid; place-items:center; font-size:22px; color:#F5B82E;
  background:rgba(245,184,46,.12); border:1px solid rgba(245,184,46,.35); }
.ovl h3 { margin:0 0 4px; font-size:20px; }
.ovl > p { margin:0 0 14px; color:var(--dim); font-size:13.5px; }
.ovl-who { display:grid; grid-template-columns:repeat(2,max-content); justify-content:center; gap:8px 18px; margin-bottom:16px; }
.ovl-who .it { display:flex; align-items:center; gap:8px; }
.ovl-who .nm { font-size:12.5px; font-weight:600; padding:4px 11px; border-radius:99px; color:#d8c8ff; background:rgba(167,139,250,.22); border:1px solid rgba(167,139,250,.55); white-space:nowrap; }
html[data-mode="light"] .ovl-who .nm { color:#5b21b6; background:rgba(167,139,250,.15); }
.ovl-who .dr { font:600 12px var(--sans); color:var(--dim); font-variant-numeric:tabular-nums; }
.ovl-cals { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }
.ovl-cal { padding:14px 16px 12px; border-radius:14px; background:rgba(0,0,0,.28); border:1px solid var(--border2); }
html[data-mode="light"] .ovl-cal { background:#f3f6fa; }
.ovl-cal .t { font-weight:700; font-size:14px; margin-bottom:8px; }
.ovl-cal .g { display:grid; grid-template-columns:repeat(7,34px); gap:5px; }
.ovl-cal .g span { height:30px; display:grid; place-items:center; font-size:13px; border-radius:7px; border:1.5px solid transparent; font-variant-numeric:tabular-nums; }
.ovl-cal .g .h { height:20px; font-size:11px; font-weight:700; color:var(--dim); }
.ovl-cal .d.mine { background:rgba(59,130,246,.22); border-color:#3B82F6; font-weight:700; }
.ovl-cal .d.mate { background:rgba(245,184,46,.16); border-color:rgba(245,184,46,.7); }
.ovl-cal .d.both { background:rgba(239,68,68,.28); border-color:#f06b6b; color:#fff; font-weight:700; }
html[data-mode="light"] .ovl-cal .d.both { color:#7f1d1d; }
.ovl-leg { display:flex; justify-content:center; flex-wrap:wrap; gap:18px; margin:14px 0 20px; font-size:12.5px; color:var(--dim); }
.ovl-leg span { display:flex; align-items:center; gap:7px; }
.ovl-leg i { width:12px; height:12px; border-radius:3px; border:1.5px solid; }
.ovl-leg i.mine { background:#3B82F6; border-color:#3B82F6; }
.ovl-leg i.both { background:rgba(239,68,68,.45); border-color:#f06b6b; }
.ovl-leg i.mate { background:rgba(245,184,46,.45); border-color:#F5B82E; }
.ovl-row { display:flex; justify-content:center; gap:12px; }
.ovl-row button { min-width:150px; }
.ovl-cal .t { text-transform:capitalize; }

/* ================================================================== Config → Listas dos chamados */
.lsx { display:grid; grid-template-columns:290px minmax(0,1fr); gap:20px; align-items:start; margin-top:6px; }
.lsx-side { display:flex; flex-direction:column; gap:16px; position:sticky; top:76px; }
.lsx-g h5 { margin:0 0 8px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--dim); }
.lsx-g { display:flex; flex-direction:column; gap:6px; }
.lsx-card { display:flex; align-items:center; gap:12px; width:100%; text-align:left; font-family:inherit; color:var(--txt); cursor:pointer;
  padding:10px 12px; border-radius:12px; border:1px solid var(--border2); background:var(--cell); transition:border-color .12s, background .12s; }
.lsx-card:hover { border-color:rgba(16,185,129,.4); }
.lsx-card.on { border-color:var(--green); background:rgba(16,185,129,.10); box-shadow:inset 3px 0 0 var(--green); }
.lsx-card .ic { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; background:var(--bg2); font-size:16px; flex:none; }
.lsx-card .tx { display:flex; flex-direction:column; min-width:0; flex:1; }
.lsx-card b { font-size:14px; font-weight:600; } .lsx-card small { font-size:12px; color:var(--dim); }
.lsx-card .go { color:var(--dim2); font-size:18px; } .lsx-card.on .go { color:var(--green); }
.lsx-main { background:var(--panel); border:1px solid var(--border2); border-radius:16px; padding:20px 22px; }
.lsx-h { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.lsx-h .ic { width:46px; height:46px; border-radius:12px; display:grid; place-items:center; font-size:22px; background:rgba(16,185,129,.12); flex:none; }
.lsx-h h3 { margin:0; font-size:20px; } .lsx-h p { margin:3px 0 0; font-size:13px; color:var(--dim); } .lsx-h p b { color:var(--txt); font-weight:600; }
.lsx-n { margin-left:auto; font-size:12.5px; font-weight:700; color:var(--green); background:rgba(16,185,129,.12); border-radius:99px; padding:5px 12px; white-space:nowrap; }
.lsx-pv { border:1px dashed var(--border2); border-radius:12px; padding:12px 14px; margin-bottom:14px; background:rgba(0,0,0,.12); }
html[data-mode="light"] .lsx-pv { background:#f6f8fb; }
.lsx-pv .lb { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--dim2); margin-bottom:8px; }
.lsx-pv .pv { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.pv-chip { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; padding:6px 11px; border-radius:9px; border:1px solid var(--border2); background:var(--cell); }
.pv-chip.on { border-color:var(--green); background:rgba(16,185,129,.12); font-weight:700; }
.pv-chip .pd { width:8px; height:8px; border-radius:50%; background:var(--dim2); }
.pv-chip .pd.crit { background:#FF6B6B; } .pv-chip .pd.high { background:#F08A4B; } .pv-chip .pd.mid { background:#F5B82E; } .pv-chip .pd.low { background:#10B981; }
.pv-lane { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:7px 10px; border-radius:8px; border:1px solid var(--border2); background:var(--cell); border-top:3px solid #00C9C9; }
.pv-lane.done { border-top-color:var(--green); opacity:.8; }
.pv-select { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-width:240px; padding:9px 12px; border-radius:9px; border:1px solid var(--border2); background:var(--bg2); font-size:13.5px; }
.pv-select i { font-style:normal; color:var(--dim); } .pv-more { font-size:12px; color:var(--dim); margin-left:6px; }
.lsx-pv-empty { font-size:12.5px; color:#F5B82E; }
.lsx-note { font-size:13px; color:var(--dim); background:rgba(0,201,201,.06); border:1px solid rgba(0,201,201,.2); border-radius:10px; padding:10px 12px; margin-bottom:12px; }
.lsx-note b { color:var(--txt); }
.lsx-list { display:flex; flex-direction:column; border:1px solid var(--border2); border-radius:12px; overflow:hidden; }
.lsx-it { display:flex; align-items:center; gap:12px; padding:10px 12px; border-bottom:1px solid var(--border2); background:var(--cell); min-height:52px; }
.lsx-it:last-child { border-bottom:0; }
.lsx-it:hover { background:rgba(16,185,129,.05); }
.lsx-it .pos { width:24px; height:24px; border-radius:7px; display:grid; place-items:center; font-size:11.5px; font-weight:700; color:var(--dim); background:var(--bg2); flex:none; }
.lsx-it .nm { flex:1; min-width:0; font-weight:600; font-size:14px; display:flex; align-items:center; gap:8px; cursor:text; }
.lsx-it .nm .in { height:36px; flex:1; }
.lsx-it .nm .ok { border:0; border-radius:8px; padding:8px 14px; font:700 12.5px inherit; font-family:inherit; cursor:pointer; color:#0A1628; background:var(--green); }
.lsx-it .acts { display:flex; gap:4px; opacity:.55; transition:opacity .12s; }
.lsx-it:hover .acts { opacity:1; }
.lsx-it .acts button, .lsx-it .nm .txt { width:32px; height:32px; border-radius:8px; border:1px solid var(--border2); background:none; color:var(--txt); cursor:pointer; font-size:14px; font-family:inherit; }
.lsx-it .acts button:hover:not(:disabled) { border-color:var(--green); color:var(--green); }
.lsx-it .acts button.del:hover { border-color:#FF6B6B; color:#FF6B6B; }
.lsx-it .acts button:disabled { opacity:.25; cursor:default; }
.lsx-it .acts button.txt, .lsx-it .nm .txt { width:auto; padding:0 12px; font-size:12.5px; font-weight:600; }
.lsx-sw { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--dim); cursor:pointer; white-space:nowrap; user-select:none; }
.lsx-sw input { display:none; }
.lsx-sw .sw { width:32px; height:18px; border-radius:99px; background:var(--border2); position:relative; transition:background .15s; }
.lsx-sw .sw::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:left .15s; }
.lsx-sw input:checked + .sw { background:var(--green); } .lsx-sw input:checked + .sw::after { left:16px; }
.lsx-sw:has(input:checked) { color:var(--green); font-weight:600; }
.lsx-empty { padding:22px; text-align:center; color:var(--dim); font-size:13.5px; background:var(--cell); }
.lsx-add { display:flex; gap:10px; margin-top:12px; }
.lsx-add .in { flex:1; }
.lsx-off { margin-top:16px; } .lsx-off summary { cursor:pointer; color:var(--dim); font-size:13px; margin-bottom:8px; }
.lsx-off .lsx-it { border:1px solid var(--border2); border-radius:10px; margin-bottom:6px; opacity:.75; }
.lsx-off .lsx-it .acts { opacity:1; }
@media (max-width:1100px) { .lsx { grid-template-columns:1fr; } .lsx-side { position:static; display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); } }

/* ================================================================== trocar senha / senha provisória */
.umenu-item { display:block; width:100%; text-align:left; border:0; background:none; font:inherit; font-size:13.5px; color:var(--txt); padding:10px 12px; border-radius:9px; cursor:pointer; }
.umenu-item:hover { background:rgba(16,185,129,.08); }
.umenu-item.hidden { display:none; }
.pw-ov { z-index:12500; }
.pwm { width:min(440px,94vw); padding:26px 28px 22px; border-radius:20px; background:var(--modal); border:1px solid var(--border2); box-shadow:0 30px 80px rgba(0,0,0,.5); }
.pwm .ic { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:22px; background:rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.35); margin-bottom:12px; }
.pwm h3 { margin:0 0 4px; font-size:20px; } .pwm > p { margin:0 0 16px; color:var(--dim); font-size:13.5px; } .pwm > p b { color:var(--txt); }
.pwm .f { display:block; margin:12px 0 6px; } .pwm .in { width:100%; }
.pw-rules { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.pw-rules span { font-size:11.5px; padding:3px 9px; border-radius:99px; border:1px solid var(--border2); color:var(--dim); }
.pw-rules span::before { content:"○ "; } .pw-rules span.ok { color:var(--green); border-color:rgba(16,185,129,.45); } .pw-rules span.ok::before { content:"✓ "; }
.pw-show { display:flex; align-items:center; gap:8px; margin-top:12px; font-size:12.5px; color:var(--dim); cursor:pointer; }
.pwm .row { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.pwm .row .btn-go { min-width:170px; }
.tpw { display:flex; gap:8px; align-items:center; margin-top:6px; }
.tpw .in { flex:1; font-family:var(--mono, monospace); font-size:16px; letter-spacing:.04em; }
