
:root{
  --bg:#F2F6FA; --surface:#FFFFFF; --surface-2:#F7FAFC; --ink:#0E2238; --muted:#5A6B7D; --line:#D8E1EA;
  --accent:#0F3F7A; --accent-ink:#FFFFFF; --teal:#1C9483; --teal-soft:#E2F4F1;
  --fds:#FFF0E0; --fds-ink:#A2560F; --warn:#B4281F; --warn-soft:#FDECEA;
  --radius:10px;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --cond:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0A1522; --surface:#112133; --surface-2:#0E1C2C; --ink:#E5EDF5; --muted:#93A5B8; --line:#23374E;
    --accent:#7EB0EE; --accent-ink:#0A1522; --teal:#4FCDB9; --teal-soft:#123A36;
    --fds:#352414; --fds-ink:#F2B06E; --warn:#FF8A80; --warn-soft:#3A1917;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0A1522; --surface:#112133; --surface-2:#0E1C2C; --ink:#E5EDF5; --muted:#93A5B8; --line:#23374E;
  --accent:#7EB0EE; --accent-ink:#0A1522; --teal:#4FCDB9; --teal-soft:#123A36;
  --fds:#352414; --fds-ink:#F2B06E; --warn:#FF8A80; --warn-soft:#3A1917;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans);font-variant-numeric:tabular-nums}
.wrap{max-width:1180px;margin:0 auto;padding-inline:16px;padding-block:18px 48px}
header.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:14px}
.brand h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;text-wrap:balance}
.brand p{margin:2px 0 0;color:var(--muted);font-size:13px}
.month{display:flex;align-items:center;gap:6px}
.month select,.month input{font:inherit}
.btn{font:600 13px var(--sans);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 12px;cursor:pointer}
.btn:hover{border-color:var(--accent)}
.btn:focus-visible,select:focus-visible,input:focus-visible,.tab:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--warn)}
.btn.icon{padding:7px 10px;min-width:34px}
.month .label{min-width:128px;text-align:center;font-weight:600;font-size:15px}
nav.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
.tab{font:600 14px var(--sans);background:none;border:none;color:var(--muted);padding:10px 14px;border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--teal)}
.tab.cfg{margin-left:auto}
.banner{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:13px}
.layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}}
.layout>*{min-width:0}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.panel-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.panel-h h2{margin:0;font-size:15px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-2px;margin-right:4px;border:1px solid var(--line)}
.sw.fds{background:var(--fds)} .sw.sem{background:var(--surface)}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
.grid th{font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:8px 8px;border-bottom:1px solid var(--line);background:var(--surface-2);position:sticky;top:0}
.grid td{padding:3px 6px;border-bottom:1px solid var(--line)}
.grid td.day{font:600 13px var(--cond);white-space:nowrap;width:78px;padding-left:12px}
.grid td.day span{color:var(--muted);font-weight:500;margin-left:4px}
.grid tr.we td{background:var(--fds)}
.grid tr.we td.day{color:var(--fds-ink)}
.grid td.fds{background:var(--fds)}
.grid select{width:100%;min-width:104px;font:13px var(--sans);color:var(--ink);background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 4px;cursor:pointer}
.grid select:hover{border-color:var(--line);background:var(--surface)}
.grid select.empty{color:var(--muted);font-style:italic}
.grid select.unknown{color:var(--warn)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.stat{background:var(--surface);padding:12px 14px}
.stat b{display:block;font-size:clamp(15px,3.6vw,19px);white-space:nowrap;font-weight:700;letter-spacing:-.01em}
.stat small{color:var(--muted);font-size:12px}
.stat.alert b{color:var(--warn)}
.report th{font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:right;padding:9px 12px;border-bottom:1px solid var(--line)}
.report th:first-child,.report td:first-child{text-align:left}
.report td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.report td:first-child{white-space:normal}
.report tfoot td{font-weight:700;background:var(--teal-soft);border-bottom:none}
.report .zero{color:var(--muted)}
.note{padding:10px 14px;color:var(--muted);font-size:12px}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.confirm{display:flex;gap:8px;align-items:center;font-size:13px}
.sticky{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}
@media (max-width:900px){.sticky{position:static}}
/* por plantonista */
.pick{font:600 14px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:7px 10px;max-width:100%}
.cal-wrap{padding:12px 14px;overflow-x:auto}
.cal{display:grid;grid-template-columns:repeat(7,minmax(104px,1fr));gap:6px;min-width:760px}
.cal .dh{font:600 11px var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 4px 2px}
.cal .cd{min-height:84px;border:1px solid var(--line);border-radius:8px;padding:5px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}
.cal .cd.off{visibility:hidden}
.cal .cd .n{font:600 12px var(--cond);color:var(--muted)}
.cal .cd.has{background:var(--surface)}
.chip{border-radius:6px;padding:4px 6px;font-size:11.5px;line-height:1.25;background:var(--teal-soft);border-left:3px solid var(--teal)}
.chip b{display:block;font-weight:600}
.chip.fds{background:var(--fds);border-left-color:var(--fds-ink)}
.chip small{color:var(--muted)}
/* meus plantões / vagas / solicitações */
.chip .act{margin-top:4px;font:600 11px var(--sans);background:none;border:1px solid currentColor;color:var(--accent);border-radius:5px;padding:2px 6px;cursor:pointer}
.chip .tag{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:600;color:var(--fds-ink)}
.who{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px}
.who p{margin:0;flex-basis:100%;color:var(--muted);font-size:13px}
.sheet{border-top:1px solid var(--line);background:var(--surface-2);padding:14px;display:grid;gap:10px}
.sheet h3{margin:0;font-size:14px}
.sheet .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sheet label{font-size:13px;color:var(--muted)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{font:600 13px var(--sans);border:none;background:var(--surface);color:var(--muted);padding:7px 12px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.vdays{display:grid;gap:14px;padding:14px}
.vday h3{margin:0 0 6px;font:600 13px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.vday.we h3{color:var(--fds-ink)}
.vlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.vcard{border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:8px;padding:10px 12px;background:var(--surface);display:grid;gap:6px}
.vcard.fds{border-left-color:var(--fds-ink);background:var(--fds)}
.vcard b{font-size:14px}
.vcard .meta{font-size:12px;color:var(--muted)}
.vcard .price{font-weight:700}
.vcard .state{font-size:12px;font-weight:600;color:var(--teal)}
.empty-state{padding:28px 14px;color:var(--muted);text-align:center}
.req{display:grid;grid-template-columns:auto 1fr auto;gap:10px 14px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
@media (max-width:600px){.req{grid-template-columns:1fr}}
.req .desc{font-size:13.5px}
.req .desc small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.badge{font:600 11px var(--cond);text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;background:var(--teal-soft);color:var(--teal);white-space:nowrap;justify-self:start}
.badge.repasse{background:var(--fds);color:var(--fds-ink)}
.badge.anuncio{background:var(--accent);color:var(--accent-ink)}
.vcard.rep{border-left-color:var(--accent)}
.badge.troca{background:var(--warn-soft);color:var(--warn)}
.st{font:600 12px var(--sans);white-space:nowrap}
.st.aprovada{color:var(--teal)} .st.recusada,.st.cancelada{color:var(--muted)}
.sub-h{padding:10px 14px;font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}
.count{display:inline-block;min-width:18px;padding:0 5px;margin-left:5px;border-radius:999px;background:var(--warn);color:#fff;font-size:11px;line-height:18px;text-align:center}
/* config */
.cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.field{display:grid;grid-template-columns:1fr 130px;gap:8px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line)}
.field label{font-size:13px}
.field input{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);text-align:right;width:100%}
.unit-h{padding:10px 14px 4px;font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--teal)}
.people{list-style:none;margin:0;padding:0;max-height:460px;overflow:auto}
.people li{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;border-bottom:1px solid var(--line)}
.people li .btn{padding:3px 8px;font-size:12px}
.add{display:flex;gap:8px;padding:12px 14px}
.add input{flex:1;font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.on{opacity:1}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

/* ---------- PWA: login, barra do usuário, instalação ---------- */
.userbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.userbar .me{font-size:13px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu{position:relative}
.menu-pop{position:absolute;right:0;top:calc(100% + 6px);background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(10,30,60,.14);padding:6px;display:grid;min-width:230px;z-index:20}
.menu-pop button{font:500 14px var(--sans);text-align:left;background:none;border:none;color:var(--ink);padding:9px 10px;border-radius:6px;cursor:pointer}
.menu-pop button:hover{background:var(--surface-2)}
.menu-pop small{padding:6px 10px;color:var(--muted);font-size:12px}
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding-inline:16px;padding-block:24px}
.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px 22px;display:grid;gap:14px}
.auth-card .logo{width:56px;height:56px;border-radius:14px}
.auth-card h1{margin:0;font-size:21px;text-wrap:balance}
.auth-card p{margin:0;color:var(--muted);font-size:13.5px}
.auth-card input{font:15px var(--sans);padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}
.auth-card .btn{padding:10px 14px;font-size:14px;width:100%}
.auth-card .or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}
.auth-card .or::before,.auth-card .or::after{content:"";flex:1;height:1px;background:var(--line)}
.linkbtn{background:none;border:none;color:var(--accent);font:600 13px var(--sans);cursor:pointer;padding:0;text-align:left}
.err{color:var(--warn);font-size:13px}
.ro{font-size:13px;padding:5px 4px;display:block;min-height:26px}
.ro.empty{color:var(--muted);font-style:italic}
.ro.mine{font-weight:700;color:var(--teal)}
.team li{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center}
.team .who2{display:grid}
.team .who2 small{color:var(--muted);font-size:12px}
.team .ctl{display:flex;gap:6px;flex-wrap:wrap;align-items:center;grid-column:1/-1}
.team select{font:13px var(--sans);padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);max-width:100%}
.pill{font:600 11px var(--cond);text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.pill.coord{background:var(--accent);color:var(--accent-ink)}
.pill.wait{background:var(--warn-soft);color:var(--warn)}
.install{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--teal-soft);border-radius:8px;padding:9px 12px;margin-bottom:12px;font-size:13px}
.people{max-height:none}

.cal .wd{display:none;font-style:normal}
/* no celular o calendário vira uma agenda: só os dias com plantão */
@media (max-width:640px){
  .cal{grid-template-columns:1fr;min-width:0;gap:8px}
  .cal .dh,.cal .cd.off,.cal .cd:not(.has){display:none}
  .cal .cd{min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
  .cal .cd .n{grid-column:1/-1;font-size:13px;color:var(--ink)}
  .cal .wd{display:inline}
  .cal-wrap{overflow-x:visible}
}

/* =====================================================================
   LAYOUT 2 — menu superior, lista de profissionais e grade semanal
   ===================================================================== */
:root{ --t-manha:#EFA3A3; --t-tarde:#EFC08A; --t-noite:#EEDB86; --navy:#0B2E6B; --hl:#DCEBFF; --today:#E4EEFF; --topbar-h:64px }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --t-manha:#B86A6A; --t-tarde:#B8874F; --t-noite:#A99A4E; --navy:#7EB0EE; --hl:#1C3558; --today:#18304F } }
:root[data-theme="dark"]{ --t-manha:#B86A6A; --t-tarde:#B8874F; --t-noite:#A99A4E; --navy:#7EB0EE; --hl:#1C3558; --today:#18304F }
#mainView{min-height:100vh;min-height:100dvh}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* barra superior */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:18px;height:var(--topbar-h);padding-inline:18px;background:var(--surface);border-bottom:1px solid var(--line)}
.brand2{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);flex:none}
.brand2 img{width:34px;height:34px;border-radius:9px}
.brand2 b{display:block;font-size:17px;letter-spacing:-.01em;line-height:1.05}
.brand2 small{display:block;font:600 10px var(--cond);letter-spacing:.28em;color:var(--teal)}
.topnav{display:flex;align-items:stretch;gap:2px;flex:1;min-width:0;overflow-x:auto;height:100%;scrollbar-width:none}
.topnav::-webkit-scrollbar{display:none}
.nv{position:relative;display:flex;align-items:center;gap:7px;padding:0 11px;background:none;border:none;border-bottom:3px solid transparent;color:var(--ink);font:500 14px var(--sans);cursor:pointer;white-space:nowrap}
.nv svg{width:18px;height:18px;color:var(--muted)}
.nv:hover{background:var(--surface-2)}
.nv[aria-current="page"]{border-bottom-color:var(--teal);font-weight:600}
.nv[aria-current="page"] svg{color:var(--teal)}
.nv .dot{position:absolute;top:10px;left:18px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#D93025;color:#fff;font:700 10.5px/17px var(--sans);text-align:center}
.usr{flex:none}
.usr-btn{display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;color:var(--ink);padding:4px 6px;border-radius:10px;position:relative}
.usr-btn:hover{background:var(--surface-2)}
.av{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;font:600 14px var(--sans);flex:none;letter-spacing:.02em}
:root[data-theme="dark"] .av{color:#0A1522}
.usr-txt{display:grid;text-align:left;line-height:1.2}
.usr-txt b{font-size:14px;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usr-txt small{font-size:11px;color:var(--muted)}
.bell{position:absolute;top:0;left:30px;min-width:17px;height:17px;border-radius:999px;background:#D93025;color:#fff;font:700 10.5px/17px var(--sans);text-align:center;padding:0 4px}
.banner2{margin:10px 18px 0;background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 12px;font-size:13px}
.install{margin:10px 18px 0}

/* calendário: lista lateral + grade */
.cal-view{display:grid;grid-template-columns:290px auto minmax(0,1fr);align-items:start}
.cal-view.collapsed{grid-template-columns:0 auto minmax(0,1fr)}
.cal-view.collapsed .side{visibility:hidden;overflow:hidden;padding:0;border:none}
.side{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));height:calc(100dvh - var(--topbar-h));overflow:auto;background:var(--surface);border-right:1px solid var(--line);padding:16px 14px 24px}
.side-search{display:flex;gap:10px;align-items:center}
.search{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--surface);min-width:0}
.search svg{width:17px;height:17px;color:var(--muted);flex:none}
.search input{flex:1;min-width:0;border:none;background:none;font:14px var(--sans);color:var(--ink);padding:10px 0;outline:none}
.round-add{width:30px;height:30px;border-radius:50%;border:none;background:var(--navy);color:#fff;font:600 19px/1 var(--sans);cursor:pointer;flex:none}
.side-add{display:flex;gap:6px;margin-top:10px}
.side-add input{flex:1;min-width:0;font:14px var(--sans);padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.side-h{display:flex;align-items:center;gap:8px;margin:20px 0 2px;font-size:16px}
.side-h svg{width:19px;height:19px}
.side-hint{margin:0 0 8px;font-size:12px;color:var(--muted)}
.plist{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.plist button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;padding:8px 6px;border:none;background:none;border-radius:9px;cursor:pointer;text-align:left;color:var(--ink);font:15px var(--sans)}
.plist button:hover{background:var(--surface-2)}
.plist button[aria-pressed="true"]{background:var(--hl)}
.plist .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plist .hh{font:600 13px var(--sans);color:var(--muted)}
.plist .zero .av{background:var(--line);color:var(--muted)}
.side-toggle{position:sticky;top:calc(var(--topbar-h) + 8px);margin:8px 0 0;width:26px;height:30px;border:1px solid var(--line);border-left:none;border-radius:0 6px 6px 0;background:var(--muted);color:#fff;font:600 16px var(--sans);cursor:pointer;z-index:2}
.cal-view.collapsed .side-toggle{transform:scaleX(-1);border-radius:6px 0 0 6px}
.cal-main{padding:12px 18px 40px;min-width:0}
.cal-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px 20px;margin-bottom:10px}
.ch-label{display:block;font-size:15px;color:var(--muted);margin-bottom:5px}
.ch-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.unit-sel{font:600 16px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 12px;min-width:220px;max-width:100%}
.btn.navy{background:var(--navy);color:#fff;border-color:var(--navy);text-transform:uppercase;letter-spacing:.04em;padding:9px 18px}
:root[data-theme="dark"] .btn.navy{color:#0A1522}
.ch-center{display:grid;justify-items:center;gap:6px}
.pill-mode{font:600 13px var(--sans);padding:4px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.mnav{display:flex;align-items:center;gap:10px}
.nav-arrow{background:none;border:none;font:400 30px/1 var(--sans);color:var(--ink);cursor:pointer;padding:0 8px;border-radius:6px}
.nav-arrow:hover{background:var(--surface-2)}
.mtitle{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em;min-width:200px;text-align:center}
.ch-right{display:flex;justify-content:flex-end;gap:6px;align-items:center}
.tool{display:grid;justify-items:center;gap:3px;background:none;border:none;color:var(--muted);font:13px var(--sans);cursor:pointer;padding:6px 10px;border-radius:8px}
.tool svg{width:24px;height:24px;color:var(--ink)}
.tool:hover{background:var(--surface-2)}
.tool[aria-pressed="true"]{color:var(--teal)} .tool[aria-pressed="true"] svg{color:var(--teal)}
.tool.icon-only{font-size:24px;color:var(--ink);padding:6px 12px}
#profBtnMobile{display:none}
.menu-pop .danger-txt{color:var(--warn)}
.legend2{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin:0 0 8px}
.lg{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.lg.t-manha{background:var(--t-manha)} .lg.t-tarde{background:var(--t-tarde)} .lg.t-noite{background:var(--t-noite)} .lg.fds{background:var(--fds);border:1px solid var(--fds-ink)}
.confirm-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 12px;margin-bottom:8px;font-size:13px}

/* grade semanal */
.grid-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.wk{border-collapse:collapse;width:100%;min-width:920px;table-layout:fixed}
.wk col.c-lab{width:128px}
.wk thead th{position:sticky;top:0;z-index:1;background:var(--surface-2);font:600 17px var(--sans);color:var(--ink);padding:9px 6px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.wk thead th:first-child{font:400 14px var(--sans);color:var(--muted);text-align:left;padding-left:12px}
.wk tr.dates td{background:var(--surface-2);text-align:center;font-size:16px;padding:6px 4px;border-left:1px solid var(--line);border-top:2px solid var(--ink)}
.wk tr.dates:first-child td{border-top:none}
.wk tr.dates td.out{color:var(--muted);opacity:.6}
.wk tr.dates td.today{background:var(--today);color:var(--navy);font-weight:700}
.wk td.tl{position:relative;text-align:center;padding:5px 12px 5px 6px;border-top:1px solid var(--line);background:var(--surface)}
.wk td.tl b{display:block;font-size:14px}
.wk td.tl small{display:block;font-size:12px;color:var(--muted)}
.wk td.tl::after{content:"";position:absolute;right:0;top:3px;bottom:3px;width:7px}
.wk td.tl.t-manha::after{background:var(--t-manha)} .wk td.tl.t-tarde::after{background:var(--t-tarde)} .wk td.tl.t-noite::after{background:var(--t-noite)}
.wk td.c{position:relative;height:44px;padding:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.wk td.c::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:5px}
.wk tr.r-manha td.c::before{background:var(--t-manha)} .wk tr.r-tarde td.c::before{background:var(--t-tarde)} .wk tr.r-noite td.c::before{background:var(--t-noite)}
.wk td.c.fds{background:var(--fds)}
.wk td.c.out{background:var(--surface-2)} .wk td.c.out::before{opacity:.35}
.cellbtn{display:grid;place-items:center;align-content:center;width:100%;height:100%;min-height:44px;padding:3px 8px 3px 12px;border:none;background:none;font:italic 14px var(--sans);color:var(--ink);cursor:pointer;text-align:center;line-height:1.2}
.cellbtn:hover{background:rgba(15,63,122,.06)}
.cellbtn .v{font:normal 11px var(--sans);color:var(--muted)}
.cellbtn.vago{color:var(--warn);font-style:normal;font-weight:600;font-size:12.5px;letter-spacing:.02em}
.cellbtn.mine{font-weight:700;color:var(--teal)}
.cellbtn.hl{background:var(--hl);font-weight:700;font-style:normal}
.cellbtn.dim{opacity:.35}
.cellbtn .sw{position:absolute;right:6px;bottom:3px;font:normal 13px var(--sans);color:var(--muted)}
.cellbtn .ask{position:absolute;right:6px;top:3px;font:600 10.5px var(--sans);color:var(--teal);font-style:normal}
.cellbtn:disabled{cursor:default}

/* celular: a grade vira lista de dias */
.dlist{display:grid;gap:10px;padding:10px}
.dcard{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}
.dcard.today{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.dcard h3{margin:0;padding:8px 12px;font:600 14px var(--sans);background:var(--surface-2);display:flex;justify-content:space-between}
.dcard.we h3{color:var(--fds-ink)}
.drow{display:grid;grid-template-columns:96px 1fr;border-top:1px solid var(--line);position:relative}
.drow .tl2{padding:7px 8px 7px 14px;font-size:12.5px;line-height:1.2;position:relative}
.drow .tl2 b{display:block;font-size:13.5px}
.drow .tl2 small{color:var(--muted)}
.drow .tl2::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px}
.drow.r-manha .tl2::before{background:var(--t-manha)} .drow.r-tarde .tl2::before{background:var(--t-tarde)} .drow.r-noite .tl2::before{background:var(--t-noite)}
.drow.fds .cellbtn{background:var(--fds)}
.drow .cellbtn{justify-items:start;text-align:left;position:relative}

/* páginas (mural, negociações, relatórios, dia, extrato, admin) */
.page{max-width:1240px;margin:0 auto;padding:16px 18px 48px}
.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:14px}
.page-head h1{margin:0 0 4px;font-size:24px;letter-spacing:-.01em}
.page-head .sub{margin:0;color:var(--muted);font-size:13.5px}
.page-head .seg{margin-top:8px}
.rel-ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rel-ctl select{font:600 14px var(--sans);padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.dia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.dia-card .panel-h small{color:var(--muted)}
.dia-row{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);position:relative}
.dia-row::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:5px}
.dia-row.r-manha::before{background:var(--t-manha)} .dia-row.r-tarde::before{background:var(--t-tarde)} .dia-row.r-noite::before{background:var(--t-noite)}
.dia-row b{display:block;font-size:14px} .dia-row small{color:var(--muted);font-size:12px}
.dia-row .who3{display:flex;align-items:center;gap:9px;font-size:15px}
.dia-row .who3 .av{width:32px;height:32px;font-size:12px}
.dia-row .vago2{color:var(--warn);font-weight:600}
.dia-row .val{font-size:12.5px;color:var(--muted)}

/* editor de turno */
.pop{position:fixed;z-index:60;width:290px;max-height:min(420px,70vh);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(10,30,60,.22);overflow:hidden}
.pop-h{padding:11px 13px;border-bottom:1px solid var(--line)}
.pop-h b{display:block;font-size:14px}
.pop-h small{color:var(--muted);font-size:12px}
.pop input{margin:9px 11px;font:14px var(--sans);padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.pop-list{overflow:auto;padding:0 6px 8px;display:grid}
.pop-list button{display:flex;align-items:center;gap:9px;text-align:left;border:none;background:none;color:var(--ink);font:14px var(--sans);padding:7px 8px;border-radius:7px;cursor:pointer}
.pop-list button:hover,.pop-list button:focus-visible{background:var(--surface-2)}
.pop-list button.cur{background:var(--hl);font-weight:600}
.pop-list .av{width:26px;height:26px;font-size:10.5px}
.pop-list .clear{color:var(--warn)}
.pop-body{padding:12px 13px;display:grid;gap:10px;font-size:13.5px}
.pop-body .btn{width:100%}
.modal{position:fixed;inset:0;z-index:70;background:rgba(8,20,40,.45);display:grid;place-items:center;padding:16px}
.modal-card{width:100%;max-width:520px;background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.modal .sheet{border-top:none;background:var(--surface);padding:18px}

/* menu inferior (celular) */
.bottomnav{display:none}
.sheet-more{position:fixed;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom,0px));z-index:45;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(10,30,60,.15);padding:8px;display:grid}
.sheet-more button{display:flex;align-items:center;gap:12px;text-align:left;border:none;background:none;color:var(--ink);font:15px var(--sans);padding:12px 10px;border-radius:8px;cursor:pointer}
.sheet-more svg{width:20px;height:20px;color:var(--muted)}

@media (max-width:1100px){
  .usr-txt{display:none}
  .nv span.lbl{display:none}
  .nv{padding:0 13px}
  .nv .dot{left:22px}
}
@media (max-width:860px){
  :root{--topbar-h:56px}
  .topnav{display:none}
  .topbar{justify-content:space-between;gap:10px}
  .usr-txt{display:none}
  .brand2 b{font-size:16px}
  .topbar,.cal-view,.page{max-width:100vw}
  .menu-pop{max-width:calc(100vw - 24px)}
  .cal-view,.cal-view.collapsed{grid-template-columns:minmax(0,1fr)}
  .side-toggle{display:none}
  .side{display:none;position:static;height:auto;border-right:none;border-bottom:1px solid var(--line)}
  .cal-view.side-open .side{display:block;visibility:visible;padding:14px}
  #profBtnMobile{display:grid}
  .cal-main{padding:10px 12px 90px}
  .cal-head{grid-template-columns:1fr;align-items:start}
  .ch-center{justify-items:stretch}
  .pill-mode{display:none}
  .mnav{justify-content:space-between}
  .mtitle{font-size:20px;min-width:0}
  .ch-right{justify-content:space-between}
  .unit-sel{flex:1;min-width:0}
  .grid-wrap{border:none;background:none;overflow:visible}
  .dlist{padding:0}
  .page{padding:12px 12px 90px}
  .page-head{flex-direction:column;align-items:stretch}
  .page-head .mnav{justify-content:space-between}
  .bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
  .bottomnav button{position:relative;display:grid;justify-items:center;gap:2px;padding:8px 2px 7px;border:none;background:none;color:var(--muted);font:500 11px var(--sans);cursor:pointer}
  .bottomnav svg{width:22px;height:22px}
  .bottomnav button[aria-current="page"]{color:var(--teal)}
  .bottomnav .dot{position:absolute;top:4px;left:calc(50% + 4px);min-width:16px;height:16px;border-radius:999px;background:#D93025;color:#fff;font:700 10px/16px var(--sans);padding:0 4px}
  .pop{left:0 !important;right:0;top:auto !important;bottom:0;width:auto;max-height:75vh;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .dia-row{grid-template-columns:96px 1fr}
  .dia-row .val{grid-column:2}
}

/* ---------- categorias de valor, cadastro de profissionais ---------- */
.cdot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid rgba(0,0,0,.12)}
.cat-legend{display:inline-flex;flex-wrap:wrap;gap:6px 14px}
.cat-legend span{white-space:nowrap}
.report th .thv{display:block;font:500 10.5px var(--sans);text-transform:none;letter-spacing:0;color:var(--muted)}
.span-all{grid-column:1/-1}
.cat-list{display:grid;gap:8px;padding:4px 14px 8px}
.cat-row{display:grid;grid-template-columns:auto minmax(140px,1fr) 150px auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px}
.cat-row input[type=text],.cat-row input[type=number]{font:14px var(--sans);padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);width:100%}
.cat-row input[type=number]{text-align:right}
.cat-row .money{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.swatches{display:flex;flex-wrap:wrap;gap:4px;max-width:150px}
.swatches button{width:20px;height:20px;border-radius:5px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.swatches button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.mat{border-collapse:collapse;width:100%;min-width:760px}
.mat th{font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px;border-bottom:1px solid var(--line);text-align:center}
.mat th:first-child{text-align:left}
.mat td{padding:5px;border-bottom:1px solid var(--line)}
.mat td.tl3{font-weight:600;font-size:13.5px;white-space:nowrap;padding-left:14px;position:relative}
.mat td.tl3 small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.mat td.tl3::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:5px;border-radius:2px}
.mat tr.r-manha td.tl3::before{background:var(--t-manha)} .mat tr.r-tarde td.tl3::before{background:var(--t-tarde)} .mat tr.r-noite td.tl3::before{background:var(--t-noite)}
.mat select{width:100%;font:12.5px var(--sans);padding:8px 4px;border:1px solid var(--line);border-radius:7px;color:var(--ink);cursor:pointer}
.search.small{padding:0 8px} .search.small input{padding:7px 0;width:150px}
.chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.pros td{white-space:nowrap} .pros td:first-child{white-space:normal}
.pros .inat td{color:var(--muted)}
.proform{display:grid;gap:10px}
.proform h3{margin:0;font-size:16px}
.proform label{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}
.proform input,.proform select{font:15px var(--sans);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}
.proform .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.proform .crm{display:grid;grid-template-columns:1fr 90px;gap:10px}
.proform .err{margin:0}
.proform .row{display:flex;gap:10px;flex-wrap:wrap}
.proform .done{background:var(--teal-soft);color:var(--teal);border-radius:8px;padding:9px 11px;font-size:13px}
.team .cad{grid-column:1/-1;font-size:12px;color:var(--muted)}
@media (max-width:600px){ .cat-row{grid-template-columns:auto 1fr;} .cat-row .money{grid-column:1/-1} .proform .two{grid-template-columns:1fr} }

.swatches{max-width:176px}
.swcustom{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);cursor:pointer;margin-top:2px}
.swcustom input[type=color]{width:26px;height:22px;padding:0;border:1px solid var(--line);border-radius:5px;background:none;cursor:pointer}

/* publicação e replicação */
.pubstat{margin-top:6px;font-size:12.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pubstat .pill{font-size:10.5px}
.pill.draft{background:var(--warn-soft);color:var(--warn)}
.pill.pub{background:var(--teal-soft);color:var(--teal)}
.pill.chg{background:var(--fds);color:var(--fds-ink)}
.btn.navy.attn{box-shadow:0 0 0 3px color-mix(in srgb, var(--warn) 35%, transparent)}
.unpub{padding:40px 16px;text-align:center;color:var(--muted)}
.unpub b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.opt{display:grid;gap:6px}
.opt label{display:flex;gap:9px;align-items:flex-start;font-size:14px;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.opt label small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.opt input[type=radio],.opt input[type=checkbox]{width:auto;margin-top:3px}
.opt .inl{display:inline-flex;align-items:center;gap:6px}
.opt .inl input{width:70px;padding:4px 6px;font-size:14px}
.fs-h{font:600 12px var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--teal);margin-top:4px}
.rep-res{font-size:13px;background:var(--teal-soft);color:var(--ink);border-radius:8px;padding:10px 12px}
.modal-card{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto}
.hint2{margin:0;font-size:13px;color:var(--muted)}

/* cor do turno vinda da configuração da escala (--tc) */
.wk td.tl::after,.wk td.c::before,.drow .tl2::before,.dia-row::before,.mat td.tl3::before{background:var(--tc,#ccc)!important}

/* subabas do administrador */
.subnav{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}
.subnav button{position:relative;background:none;border:none;border-bottom:3px solid transparent;padding:10px 14px;font:600 14px var(--sans);color:var(--muted);cursor:pointer;white-space:nowrap}
.subnav button[aria-current="page"]{color:var(--ink);border-bottom-color:var(--teal)}
.count2{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#D93025;color:#fff;font-size:11px;line-height:18px;text-align:center}
.esc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:4px 14px 16px}
.esc-card{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:grid;gap:8px;background:var(--surface)}
.esc-card.arq{opacity:.6}
.esc-card h3{margin:0;font-size:16px;display:flex;gap:8px;align-items:center;justify-content:space-between}
.esc-card .tchips{display:flex;flex-wrap:wrap;gap:5px}
.tchip{font-size:12px;padding:3px 8px;border-radius:6px;border-left:5px solid var(--tc);background:var(--surface-2)}
.esc-card .row{display:flex;gap:6px;flex-wrap:wrap}
.esc-card .btn{padding:5px 10px;font-size:12.5px}
.ed-body{padding:12px 14px;display:grid;gap:12px}
.ed-body label.f{display:grid;gap:4px;font-size:12.5px;color:var(--muted);max-width:420px}
.ed-body input[type=text],.ed-body select{font:15px var(--sans);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.presets{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
.trows{display:grid;gap:8px}
.trow{display:grid;grid-template-columns:auto minmax(120px,1.4fr) 110px 110px 70px auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-left:6px solid var(--tc);border-radius:9px}
.trow input{font:14px var(--sans);padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);width:100%}
.trow .dur{font:600 13px var(--sans);color:var(--muted);text-align:center}
.trow .mv{display:grid;gap:2px}
.trow .mv button{border:1px solid var(--line);background:var(--surface);border-radius:5px;font-size:11px;line-height:1;padding:3px 6px;cursor:pointer;color:var(--ink)}
.tcolors{display:flex;gap:4px;flex-wrap:wrap;grid-column:2/-1}
.tcolors button{width:18px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0}
.tcolors button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.thead2{display:grid;grid-template-columns:auto minmax(120px,1.4fr) 110px 110px 70px auto;gap:8px;padding:0 10px 0 16px;font:600 11px var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
@media (max-width:700px){ .trow{grid-template-columns:auto 1fr 1fr} .trow .tn{grid-column:2/-1} .thead2{display:none} }

/* vagas, dias sem turno, sobreaviso, conflitos, observações */
.semturno{display:block;width:100%;height:100%;min-height:44px;background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--muted) 22%,transparent) 7px 8px)}
.wk td.c:has(.semturno){background:var(--surface-2)!important}
.cellbtn.vago.sa{color:var(--muted);font-weight:500;font-style:italic;letter-spacing:0}
.cellbtn.conf{outline:2px solid var(--warn);outline-offset:-2px}
.cellbtn .cf{position:absolute;left:12px;top:2px;font:normal 12px var(--sans);color:var(--warn)}
.cellbtn .ob{position:absolute;right:6px;top:2px;font:normal 12px var(--sans);color:var(--navy)}
.conf-bar{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 12px;margin-bottom:8px;font-size:13px}
.pop-conf{color:var(--warn);font-size:12.5px;padding-bottom:0}
.pop-list .cfp{margin-left:auto;font-size:11px;font-weight:600;color:var(--warn)}
.pop-obs{display:grid;gap:6px;padding:8px 11px 11px;border-top:1px solid var(--line)}
.pop-obs label{font-size:12px;color:var(--muted)}
.pop-obs textarea{font:13.5px var(--sans);padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);resize:vertical}
.obtxt{display:block;font-size:12px;color:var(--navy);margin:2px 0 0}
.mat td.nodia{text-align:center;color:var(--muted);background:var(--surface-2)}
/* editor de escala: campos gerais e opções */
.ed-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.ed-grid label.f{max-width:none}
.ed-grid small{font-size:11.5px;color:var(--muted)}
.togs{display:grid;gap:8px}
.tog{display:flex;gap:12px;align-items:flex-start;background:var(--surface-2);border-radius:9px;padding:10px 12px;cursor:pointer}
.tog input{position:absolute;opacity:0;width:1px;height:1px}
.tog .sw2{flex:none;width:38px;height:22px;border-radius:999px;background:var(--line);position:relative;transition:background .15s;margin-top:2px}
.tog .sw2::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.tog input:checked + .sw2{background:var(--teal)}
.tog input:checked + .sw2::after{left:19px}
.tog input:focus-visible + .sw2{outline:2px solid var(--teal);outline-offset:2px}
.tog b{display:block;font-size:14px}
.tog small{display:block;font-size:12px;color:var(--muted)}
.trow{grid-template-columns:auto minmax(120px,1.4fr) 100px 100px 54px 70px auto}
.trow .tf{display:grid;gap:2px;font-size:11px;color:var(--muted)}
.trow2{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.dias{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12px;color:var(--muted)}
.dchk{display:inline-flex;align-items:center;gap:3px;font:600 11px var(--sans);color:var(--ink);padding:3px 6px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
.dchk input{width:auto;margin:0}
.dchk.sa{font-weight:500;font-size:12px}
.tcolors{grid-column:auto}
@media (max-width:700px){ .trow{grid-template-columns:auto 1fr 1fr} .trow .tn{grid-column:2/-1} }
@media (prefers-reduced-motion:reduce){ .tog .sw2,.tog .sw2::after{transition:none} }
.ed-grid select,.ed-grid input{width:100%;max-width:100%;min-width:0}
.wk tr.sub td.tl b{font-weight:500;color:var(--muted)}

/* =====================================================================
   IDENTIDADE PLANTÃO INTENSIVO — "monitor de UTI"
   Barra lateral petróleo, acento verde-monitor, alerta coral,
   horários em fonte monoespaçada, escala em cartões por dia.
   ===================================================================== */
:root{
  --bg:#EDF2F3; --surface:#FFFFFF; --surface-2:#F4F8F8; --ink:#0D2230; --muted:#5B6F78; --line:#D6E1E3;
  --accent:#0E9F8E; --accent-ink:#FFFFFF; --teal:#0E9F8E; --teal-soft:#DDF3EF; --navy:#0B2B3A;
  --rail:#0B2B3A; --rail-2:#10384B; --rail-ink:#A9C6CF; --pulse:#35E0B5;
  --warn:#D94B3D; --warn-soft:#FCE9E6; --fds:#FFF1E2; --fds-ink:#A45A12;
  --hl:#D5F2EC; --today:#DDF3EF; --radius:12px;
  --sans:"Red Hat Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --disp:"Red Hat Display","Red Hat Text",system-ui,sans-serif;
  --cond:"Red Hat Display","Red Hat Text",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#071A24; --surface:#0E2532; --surface-2:#0B202B; --ink:#E3EEF1; --muted:#8FA9B2; --line:#1D3A48;
    --accent:#2FD3B4; --accent-ink:#06222B; --teal:#2FD3B4; --teal-soft:#113E3A; --navy:#9FD8EA;
    --rail:#051319; --rail-2:#0A202A; --rail-ink:#86A8B3; --pulse:#35E0B5;
    --warn:#FF8A7D; --warn-soft:#3B1C1A; --fds:#33240F; --fds-ink:#F2B06E; --hl:#12403A; --today:#113E3A;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#071A24; --surface:#0E2532; --surface-2:#0B202B; --ink:#E3EEF1; --muted:#8FA9B2; --line:#1D3A48;
  --accent:#2FD3B4; --accent-ink:#06222B; --teal:#2FD3B4; --teal-soft:#113E3A; --navy:#9FD8EA;
  --rail:#051319; --rail-2:#0A202A; --rail-ink:#86A8B3; --pulse:#35E0B5;
  --warn:#FF8A7D; --warn-soft:#3B1C1A; --fds:#33240F; --fds-ink:#F2B06E; --hl:#12403A; --today:#113E3A;
}
body{font-family:var(--sans);background:var(--bg)}
h1,h2,h3,.mtitle,.page-head h1,.brand2 b,.stat b{font-family:var(--disp)}
.page-head h1{font-size:28px;font-weight:800;letter-spacing:-.02em}
.mtitle{font-weight:800;letter-spacing:-.02em;text-transform:capitalize}
.btn{border-radius:10px}
.btn.primary,.btn.navy{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.navy{text-transform:none;letter-spacing:0;font-weight:700}
.btn.navy.attn{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 28%,transparent)}
.av{background:var(--rail-2);color:#E9F7F4;border-radius:12px}
.panel{border-radius:var(--radius);box-shadow:0 1px 0 rgba(11,43,58,.04)}
.pill.coord{background:var(--rail);color:#E9F7F4}
.cellbtn.vago{color:var(--warn)}
time,.slot-h time,.tl small,.tchip,.dur{font-family:var(--mono)}

/* ---------- barra lateral (computador) ---------- */
@media (min-width:861px){
  :root{--topbar-h:0px}
  #mainView{padding-left:92px}
  .topbar{position:fixed;left:0;top:0;bottom:0;width:92px;height:auto;flex-direction:column;align-items:stretch;gap:6px;padding:16px 0 14px;background:var(--rail);border:none;z-index:35}
  .brand2{flex-direction:column;gap:6px;padding:0 8px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px}
  .brand2 img{width:42px;height:42px;border-radius:12px;box-shadow:0 0 0 3px rgba(53,224,181,.18)}
  .brand2 b{font-size:11px;line-height:1.15;text-align:center;color:#E9F7F4;font-weight:700;letter-spacing:.01em}
  .brand2 small{display:none}
  .topnav{flex-direction:column;align-items:stretch;height:auto;overflow-y:auto;overflow-x:hidden;flex:1;gap:2px;padding:0 8px}
  .nv{flex-direction:column;justify-content:center;gap:5px;padding:11px 4px;border:none;border-radius:12px;color:var(--rail-ink);font:600 11.5px var(--sans);white-space:normal;text-align:center;line-height:1.15}
  .nv svg{width:22px;height:22px;color:inherit}
  .nv:hover{background:rgba(255,255,255,.06);color:#E9F7F4}
  .nv[aria-current="page"]{background:var(--rail-2);color:#FFFFFF;box-shadow:inset 3px 0 0 var(--pulse)}
  .nv[aria-current="page"] svg{color:var(--pulse)}
  .nv span.lbl{display:block!important}
  .nv .dot{top:6px;left:auto;right:10px;background:var(--warn)}
  .usr{margin-top:auto;display:flex;justify-content:center;position:relative}
  .usr-btn{flex-direction:column;gap:4px;color:var(--rail-ink)}
  .usr-btn:hover{background:rgba(255,255,255,.06)}
  .usr-txt{display:none!important}
  .bell{left:auto;right:6px}
  .usr .menu-pop{left:calc(100% + 8px);right:auto;top:auto;bottom:0}
  .banner2,.install{margin-left:22px;margin-right:22px}
  .side{top:0;height:100vh;height:100dvh}
  .side-toggle{top:10px}
}

/* ---------- painel da equipe à direita ---------- */
@media (min-width:861px){
  .cal-view{grid-template-columns:minmax(0,1fr) auto 300px}
  .cal-view.collapsed{grid-template-columns:minmax(0,1fr) auto 0}
  .cal-main{order:1}
  .side-toggle{order:2;border:1px solid var(--line);border-right:none;border-radius:8px 0 0 8px;background:var(--surface);color:var(--ink)}
  .cal-view.collapsed .side-toggle{border-radius:8px 0 0 8px}
  .side{order:3;border-right:none;border-left:1px solid var(--line)}
}
.side-h{font-family:var(--disp)}
.plist button{border-radius:12px}
.plist .nm{display:grid;gap:4px}
.hbar{display:block;height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.hbar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--pulse))}
.plist .zero .hbar{opacity:.4}

/* ---------- cabeçalho da escala ---------- */
.cal-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}
.ch-label{font:700 11px var(--disp);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}
.unit-sel{border-radius:10px;font-family:var(--disp);font-weight:700}
.nav-arrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:22px;padding:0;background:var(--surface)}
.pill.draft,.pill.pub,.pill.chg{font-family:var(--mono);letter-spacing:.04em}
.pill.pub::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:6px;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent);vertical-align:1px}

/* ---------- escala em cartões por dia ---------- */
.grid-wrap{border:none;background:none;overflow:visible}
.board{display:grid;gap:10px}
.board-h{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;position:sticky;top:0;z-index:2;background:var(--bg);padding:4px 0}
.board-h span{font:700 11px var(--disp);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);padding-left:6px}
.board-h span.we{color:var(--fds-ink)}
.bweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0}
.tile.out{background:transparent;border-style:dashed;opacity:.5}
.tile.we{background:color-mix(in srgb,var(--fds) 55%,var(--surface))}
.tile.today{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}
.tile-h{display:flex;align-items:baseline;gap:6px;padding:0 2px}
.tnum{font:800 20px/1 var(--disp);letter-spacing:-.02em;color:var(--ink)}
.tile.out .tnum{font-size:14px;color:var(--muted)}
.twd{font:600 12px var(--sans);color:var(--muted);text-transform:lowercase}
.thoje{margin-left:auto;font:700 10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);background:var(--accent);padding:2px 7px;border-radius:999px}
.slot{position:relative;border-radius:10px;overflow:hidden;border:1px solid color-mix(in srgb,var(--tc) 55%,var(--line))}
.slot::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tc)}
.slot-h{display:flex;justify-content:space-between;gap:6px;padding:5px 8px 0 11px;font:700 10.5px var(--disp);text-transform:uppercase;letter-spacing:.05em;color:color-mix(in srgb,var(--ink) 72%,transparent)}
.slot-h span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot-h time{font-weight:500;font-size:10px;letter-spacing:0;text-transform:none;color:var(--muted);white-space:nowrap}
.slot .cellbtn{min-height:34px;padding:2px 8px 6px 11px;justify-items:start;text-align:left;font:600 13px/1.25 var(--sans);font-style:normal;color:var(--ink)}
.slot .cellbtn:hover{background:rgba(255,255,255,.35)}
.slot .cellbtn.vago{font:700 11px var(--mono);letter-spacing:.08em;color:var(--warn)}
.slot .cellbtn.vago::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;border:1.5px dashed var(--warn);margin-right:6px;vertical-align:0}
.slot .cellbtn.vago.sa{font:italic 500 12px var(--sans);letter-spacing:0;color:var(--muted)}
.slot .cellbtn.vago.sa::before{display:none}
.slot .cellbtn.mine{color:var(--accent);font-weight:800}
.slot .cellbtn.mine::after{content:"você";margin-left:6px;font:700 9.5px var(--mono);text-transform:uppercase;background:var(--accent);color:var(--accent-ink);padding:1px 5px;border-radius:5px;vertical-align:1px}
.slot .cellbtn.hl{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.slot .cellbtn.conf{outline:none;box-shadow:inset 0 0 0 2px var(--warn)}
.slot .cellbtn .cf{left:auto;right:8px;top:auto;bottom:4px}
.slot .cellbtn .v{font:500 10.5px var(--mono);color:var(--muted)}
@media (max-width:1180px){ .board-h,.bweek{gap:6px} .tile{padding:6px} .slot .cellbtn{font-size:12px} }
@media (max-width:860px){
  .board-h{display:none}
  .dlist{display:grid;gap:10px}
  .tile.m .tnum{font-size:22px}
}

/* ---------- login com pulso ---------- */
.auth{background:radial-gradient(1200px 600px at 10% -10%,var(--rail-2),transparent 60%),var(--rail);position:relative;overflow:hidden}
.auth::before{content:"";position:absolute;inset:auto 0 18% 0;height:120px;opacity:.18;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='120' viewBox='0 0 600 120'%3E%3Cpolyline fill='none' stroke='%2335E0B5' stroke-width='3' points='0,60 200,60 225,60 240,30 255,60 275,60 295,8 320,112 340,60 370,60 390,45 410,60 600,60'/%3E%3C/svg%3E") repeat-x center/600px 120px}
.auth-card{position:relative;border:none;box-shadow:0 30px 60px rgba(0,0,0,.35);border-radius:18px}
.auth-card h1{font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.02em}
#boot{background:var(--rail)} #boot .note{color:var(--rail-ink)}

/* ---------- ajustes gerais ---------- */
.subnav button[aria-current="page"],.tab[aria-selected="true"]{border-bottom-color:var(--accent)}
.stat b{font-weight:800}
.report tfoot td{background:var(--teal-soft)}
.bottomnav button[aria-current="page"]{color:var(--accent)}
.bottomnav{background:var(--rail);border-top:none}
.bottomnav button{color:var(--rail-ink)}
.bottomnav button[aria-current="page"]{color:var(--pulse)}
@media (max-width:860px){ .topbar{background:var(--rail);border-bottom:none} .brand2 b{color:#E9F7F4} .brand2 small{color:var(--pulse)} .usr-btn{color:#E9F7F4} }
.slot-h{justify-content:flex-start}
.slot-h span{margin-left:auto;font-size:9.5px}
.slot-h time{font-size:10.5px;font-weight:600;color:color-mix(in srgb,var(--ink) 70%,transparent)}
@media (max-width:860px){.slot-h{justify-content:space-between}.slot-h span{margin-left:0;order:-1;font-size:10.5px}}
.pop{max-height:min(560px,82vh)}
.pop-list{min-height:170px}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .av{background:var(--teal-soft);color:var(--ink)} }
:root[data-theme="dark"] .av{background:var(--teal-soft);color:var(--ink)}

/* ---------- Fase 1: repasse parcial, jornada, ponto, fechamento, histórico ---------- */
.cellbtn .cn{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cellbtn .parc{display:block;font:600 10.5px/1.2 var(--sans);color:var(--navy);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cellbtn .jr,.cellbtn .ind,.cellbtn .pt{position:absolute;font:normal 11px var(--sans);font-style:normal}
.slot .cellbtn .jr{right:22px;bottom:4px;color:var(--warn)}
.slot .cellbtn .ind{right:38px;bottom:3px;font-size:10px}
.slot .cellbtn .pt{right:22px;top:2px;font-weight:800}
.drow .cellbtn .jr{right:22px;bottom:3px;color:var(--warn)} .drow .cellbtn .ind{right:38px;bottom:3px} .drow .cellbtn .pt{right:22px;top:2px}
.pt.ok{color:var(--accent)} .pt.on{color:#E0A800} .pt.no{color:var(--warn)}
.badge.parcial{background:var(--teal-soft);color:var(--teal)}
.seg{flex-wrap:wrap}
#relSeg{max-width:100%}
.jor-bar{background:var(--fds);color:var(--fds-ink);border-color:color-mix(in srgb,var(--fds-ink) 30%,transparent)}
.jor-bar summary{cursor:pointer;font-weight:600}
.jor-bar ul{margin:8px 0 2px 18px;padding:0;max-height:220px;overflow:auto;font-size:13px}
.pop-list button.bloq{opacity:.55}
.pop-div{margin:6px 10px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;font-size:13px;display:grid;gap:6px}
.pop-div summary{cursor:pointer;font-weight:600;color:var(--accent)}
.pop-div label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.pop-div select{font:14px var(--sans);padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.pop-div > span{display:block}
.pop-hist{margin:6px 10px 10px;font-size:12.5px}
.pop-hist summary{cursor:pointer;color:var(--muted);font-weight:600}
.pop-hist div{padding:5px 0;border-bottom:1px solid var(--line);display:grid}
.pop-hist small{color:var(--muted)}
.hpart{font:500 11px var(--mono);font-style:normal;color:var(--muted)}
/* ponto */
.ponto-card{border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-radius:14px;padding:12px 14px;margin:0 0 14px}
#pontoDia .ponto-card{margin:0 0 14px}
.pc-h{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.pc-h svg{width:20px;height:20px;fill:none;stroke:var(--accent);stroke-width:2}
.pc-h small{color:var(--muted)}
.pt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.pt-row:first-of-type{border-top:none}
.pt-row > div{display:grid;gap:2px}
.pt-row small{color:var(--muted)}
.pt-ok{color:var(--accent);font-weight:700;font-size:13px} .pt-on{color:#B88700;font-weight:700;font-size:13px} .pt-no{color:var(--warn);font-weight:600;font-size:13px}
.stp{display:inline-block;padding:2px 8px;border-radius:999px;font:700 11px var(--mono);letter-spacing:.03em;background:var(--surface-2);color:var(--muted)}
.stp.ok{background:var(--teal-soft);color:var(--teal)} .stp.alerta{background:var(--fds);color:var(--fds-ink)} .stp.falta{background:var(--warn-soft);color:var(--warn)} .stp.andamento{background:#FFF6D6;color:#8A6500}
.sub2{display:block;color:var(--muted);font-size:11.5px;font-weight:400}
.via{font:600 9.5px var(--mono);font-style:normal;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 3px;margin-left:3px}
.report.ponto td,.report.fin td,.report.hist td{vertical-align:top}
.report td.acts{white-space:nowrap}
.qr-box{display:grid;place-items:center;padding:10px;background:#fff;border-radius:12px;border:1px solid var(--line)}
.qr-box svg{width:min(260px,70vw);height:auto}
.ponto-cfg{margin-top:4px}
.f > span{font-size:13px;font-weight:600}
/* indisponibilidades */
.ind-list{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:6px}
.ind-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.ind-list li small{color:var(--muted);flex:1;min-width:140px}
.ind-per{font:600 12px var(--mono);color:var(--accent)}
.ind-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:8px 0}
.ind-form label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.ind-form label.grow{flex:1;min-width:160px}
.ind-form input,.ind-form select,.pref textarea{font:14px var(--sans);padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.pref{display:grid;gap:4px;font-size:13px;font-weight:600;margin-top:10px}
#dispPanel{margin-top:14px}
/* fechamento */
.fin-closed{padding:10px 12px;border-radius:10px;background:var(--teal-soft);color:var(--ink);margin-bottom:10px;font-size:13.5px}
.note.warn{color:var(--fds-ink)}
.stat.ok b{color:var(--accent)}
table.mini{width:100%;border-collapse:collapse;font-size:13px;margin:6px 0}
table.mini td{padding:4px 6px;border-bottom:1px solid var(--line)} table.mini td:not(:first-child){text-align:right}
table.mini tr.t td{font-weight:700}
.aj-list{display:grid;gap:4px}
.aj{display:flex;align-items:center;gap:8px;font-size:13.5px}
.aj span{flex:1} .aj b.neg{color:var(--warn)}
.aj-add{display:grid;grid-template-columns:auto 1fr 110px auto;gap:6px;margin:6px 0}
.aj-add input,.aj-add select,.desc-row input,.desc-row select{font:14px var(--sans);padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);min-width:0}
.fin-liq{margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--teal-soft);font-size:15px}
.desc-list{display:grid;gap:6px;margin:8px 0}
.desc-row{display:grid;grid-template-columns:1.3fr 1fr 110px auto;gap:6px;align-items:center}
.desc-row .money input{width:70px}
@media (max-width:600px){ .aj-add{grid-template-columns:1fr 1fr} .desc-row{grid-template-columns:1fr 1fr} }
.ind-form label{flex:1 1 130px;min-width:0}
.ind-form input,.ind-form select{width:100%;min-width:0;box-sizing:border-box}
.ed-body input[type=number]{font:15px var(--sans);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
#jorAdmin .ed-body{padding:4px 14px 14px}
.sheet{grid-template-columns:minmax(0,1fr)}
.sheet .row > *{min-width:0}
.sheet select.pick{max-width:100%;min-width:0}
.report.ponto th,.report.ponto td,.report.hist th,.report.hist td{text-align:left}
.report.fin th:nth-child(2),.report.fin td:nth-child(2){text-align:left}
#dispBody .ind-list,#dispBody .ind-form,#dispBody .pref,#dispBody .row,#indAdmin .ind-list,#indAdmin .ind-form,#prefAdmin .ind-list{margin-left:14px;margin-right:14px}
#dispBody .row{margin-bottom:14px}
#indAdmin .ind-form{margin-bottom:14px}

/* ---------- regras de repetição ---------- */
.slot .cellbtn .rp,.drow .cellbtn .rp{position:absolute;right:54px;bottom:3px;font:700 11px var(--sans);font-style:normal;color:var(--accent)}
.pop-repbtn{margin:6px 10px 0;width:calc(100% - 20px);justify-content:center}
.pop-rep{margin:6px 10px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface));border-radius:10px;font-size:13px;display:grid;gap:6px}
.pop-rep small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.rp-btns{display:flex;flex-wrap:wrap;gap:6px}
.rp-btns .btn{padding:5px 9px;font-size:12px}
.rp-head{margin:0;font-size:14px} .rp-head small{color:var(--muted)}
.rds{display:flex;flex-wrap:wrap;gap:6px 16px}
.rd{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}
.rp-box{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px;background:var(--surface-2)}
.rp-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px}
.rp-row .nn{width:62px;font:15px var(--sans);padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.rp-row select,.rp-dur input[type=date]{font:14px var(--sans);padding:5px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.rp-row .x{border:none;background:none;color:var(--warn);font-size:18px;cursor:pointer;padding:0 4px}
.rp-row.rpwk b{min-width:64px;font-size:13px}
.dw{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--navy);background:var(--surface);color:var(--ink);font:600 11px var(--sans);cursor:pointer}
.dw.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.rp-res{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.rp-dur{display:grid;gap:8px}
.rp-dur .nn{width:62px;font:15px var(--sans);padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}
.minical{border:1px solid var(--line);border-radius:10px;padding:8px;max-width:280px}
.mc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.mc-h button{border:none;background:none;font-size:20px;cursor:pointer;color:var(--ink);padding:0 8px}
.mc-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.mc-dh{font:700 11px var(--sans);color:var(--muted)}
.mc-d{display:grid;place-items:center;height:30px;width:30px;margin:auto;border-radius:50%;font-size:12px}
.mc-d.on{background:var(--navy);color:var(--surface);font-weight:700}
.mc-d.exc{background:var(--warn);color:#fff;font-weight:700}
.mc-d.ocup{background:var(--surface);box-shadow:inset 0 0 0 2px #E0A800;font-weight:700}
.mc-d.ini{outline:2px solid var(--accent);outline-offset:1px}
.mc-leg{display:grid;gap:3px;font-size:11.5px;color:var(--muted);margin-top:6px}
.mc-leg i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.mc-leg i.on{background:var(--navy)} .mc-leg i.exc{background:var(--warn)} .mc-leg i.ocup{box-shadow:inset 0 0 0 2px #E0A800}
@media (max-width:600px){ .rp-res{grid-template-columns:1fr} .dw{width:34px;height:34px} }
.rp-box{grid-template-columns:minmax(0,1fr);min-width:0}
#pontoForm > *{min-width:0;max-width:100%}
.proform label.rd{display:inline-flex;flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:14px}
.proform label.rd input[type=radio]{margin:0}
.slot .cellbtn .rp,.drow .cellbtn .rp{right:38px;top:2px;bottom:auto}
.proform label.rd input[type=radio]{width:auto;flex:0 0 auto;accent-color:var(--accent)}
.proform label.rd{justify-content:flex-start;white-space:nowrap;flex-wrap:wrap}
.proform label.rd input[type=number],.proform label.rd input[type=date]{width:auto}
.rp-dur .rd{align-self:start}
.slot .cellbtn .rp,.drow .cellbtn .rp,.cellbtn .cn .rp{position:static;margin-left:4px;font:700 11px var(--sans);color:var(--accent)}

/* ---------- Dashboard ---------- */
.dz-root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s-outras:#8A9BA3}
@media (prefers-color-scheme: dark){ :root:where(:not([data-theme="light"])) .dz-root{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s-outras:#6B7F88} }
:root[data-theme="dark"] .dz-root{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s-outras:#6B7F88}
#dashBody{padding:4px 14px 16px}
.dz-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.dz-tile{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);display:grid;gap:2px}
.dz-tile b{font:800 22px var(--disp);color:var(--ink);letter-spacing:-.01em}
.dz-tile small{font-size:12px;color:var(--muted)}
.dz-tile.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))} .dz-tile.warn b{color:var(--warn)}
.dz-delta{font:600 11.5px var(--sans);color:var(--muted)} .dz-delta.up{color:var(--fds-ink)} .dz-delta.down{color:var(--accent)}
.dz-sub{font-size:11.5px;color:var(--muted)}
.dz-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:14px}
.dz-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);min-width:0}
.dz-card h3{margin:0;font:700 15px var(--disp);color:var(--ink)}
.dz-note{margin:2px 0 8px;font-size:12px;color:var(--muted)}
.dz-svg{width:100%;height:auto;display:block;overflow:visible}
.dz-grid line.dz-grid,.dz-svg .dz-grid{stroke:var(--line);stroke-width:1}
.dz-svg .dz-base{stroke:color-mix(in srgb,var(--ink) 35%,transparent);stroke-width:1}
.dz-svg .dz-ref{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3;opacity:.6}
.dz-svg text{font-family:var(--sans)}
.dz-svg .dz-ax{font-size:10.5px;fill:var(--muted)} .dz-svg .dz-ax.cur{fill:var(--ink);font-weight:700}
.dz-svg .dz-lab{font-size:11.5px;fill:var(--ink)}
.dz-svg .dz-val{font-size:10.5px;fill:var(--muted);font-weight:600}
.dz-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);margin:2px 0 6px}
.dz-leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.dz-leg b{color:var(--ink)}
.dz-stack{position:relative;height:26px;border-radius:6px;overflow:hidden;background:var(--surface-2);margin:8px 0}
.dz-seg{position:absolute;top:0;bottom:0}
.dz-tab{margin-top:6px;font-size:12px} .dz-tab summary{cursor:pointer;color:var(--accent);font-weight:600}
.dz-tab table{margin-top:6px}
.dz-tip{position:fixed;z-index:90;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:8px 10px;font-size:12px;min-width:150px;max-width:260px}
.dz-tip b{display:block;margin-bottom:4px;font-size:12.5px}
.dz-tip div{display:flex;align-items:center;gap:6px;padding:1px 0}
.dz-tip i{width:12px;height:3px;border-radius:2px;flex:0 0 auto}
.dz-tip strong{font-weight:700} .dz-tip span{color:var(--muted)}
.dz-svg{fill:none;stroke:none}
.dz-svg path,.dz-svg rect,.dz-svg text{stroke:none}
.dz-svg text{fill:var(--muted)}
.dz-svg .dz-lab{fill:var(--ink);font-weight:500}
.imp-list{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px;display:grid;gap:2px;font-size:13px}
.imp-list div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dotted var(--line);padding:3px 0}
.imp-list small{color:var(--muted);white-space:nowrap}
.hint2.warn{color:var(--fds-ink)}

/* ---------- revisão: tema escuro e grades de números ---------- */
:root{--cat-mix:62%}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){--cat-mix:24%} }
:root[data-theme="dark"]{--cat-mix:24%}
.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.esc-lib{border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:grid;gap:6px;margin:0}
.esc-lib legend{font-size:12.5px;color:var(--muted);padding:0 4px}
.esc-chk{display:flex;flex-wrap:wrap;gap:6px 16px}
.esc-lib small{font-size:11.5px;color:var(--muted)}
.pop-ocultos{margin:2px 10px;font-size:12px;text-align:left}
.proform label.chk{display:flex;flex-direction:row;align-items:center;gap:8px;color:var(--ink);font-size:14px}
.proform label.chk input{width:auto;margin:0;accent-color:var(--accent)}

/* convites e lojas */
.auth-conv{font-size:13px;opacity:.75;margin:-4px 0 4px}
.auth-links{font-size:12px;text-align:center;margin:6px 0 0}
.auth-links a{color:inherit;opacity:.8}
.pend-acts{display:grid;gap:8px;margin:8px 0}
.menu-pop .menu-a{display:block;font:500 14px var(--sans);color:var(--ink);padding:9px 10px;border-radius:6px;text-decoration:none}
.menu-pop .menu-a:hover{background:var(--surface-2)}
.conv-add{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}
.conv-add input{flex:1 1 240px;min-width:0}
.people.conv li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.people.conv .who2{flex:1 1 220px;min-width:0}
.btn.del-go{background:#b3261e;color:#fff;border-color:#b3261e}
.btn.del-go:disabled{opacity:.5}

/* login no estilo do site */
.auth-wrap{width:100%;max-width:980px;position:relative;z-index:1;display:grid;gap:22px}
.auth-card.auth-split{max-width:none;padding:0;gap:0;display:grid;grid-template-columns:1fr}
.auth-intro,.auth-fields{display:grid;gap:14px;align-content:start;padding:26px 22px}
.auth-fields{padding-top:0}
.auth-eyebrow{font:700 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.auth-intro .logo{margin-bottom:2px}
.auth-help{display:grid;grid-template-columns:1fr;gap:10px}
.ah{display:grid;gap:2px;padding:4px 0 4px 14px;border-left:3px solid var(--pulse);color:#fff;font-size:14px;text-decoration:none}
.ah b{font:600 15px var(--sans);color:#fff}
.ah span,.ah button{color:var(--pulse);font:600 14px var(--sans)}
.ah button{background:none;border:none;padding:0;text-align:left;cursor:pointer}
.ah button:hover{text-decoration:underline}
.ah-dest{background:var(--pulse);border:none;border-radius:12px;padding:12px 16px}
.ah-dest b{color:var(--navy);font-weight:500}.ah-dest span{color:var(--navy);font-weight:800}
.auth-wrap>.auth-links{color:var(--rail-ink);margin:0}
.auth-wrap>.auth-links a{color:var(--rail-ink)}
@media (min-width:820px){
  .auth-card.auth-split{grid-template-columns:1fr 1fr}
  .auth-intro{padding:44px 40px;align-content:center}
  .auth-fields{padding:44px 40px;border-left:1px solid var(--line)}
  .auth-split h1{font-size:40px;line-height:1.05}
  .auth-intro p{font-size:15.5px}
  .auth-help{grid-template-columns:repeat(4,1fr);align-items:center}
  .auth-help:has(.ah-dest[hidden]){grid-template-columns:repeat(3,1fr)}
}
