/* CRM DoctorFit — estilos compartilhados */
:root{
  color-scheme: light;
  --page:#f4f5f3; --surface:#ffffff; --surface-2:#eef0ec; --row-hover:#eef3fb;
  --ink:#12140f; --ink-2:#4f554c; --muted:#868b80;
  --border:rgba(10,20,10,.10); --border-strong:rgba(10,20,10,.20);
  --brand:#0c7a63; --brand-ink:#ffffff; --azul:#2a78d6; --violet:#4a3aa7; --atencao:#b97a00; --critico:#c6482a; --ok:#2e8b57;
  --shadow:0 1px 2px rgba(10,20,10,.05), 0 6px 20px -12px rgba(10,20,10,.14);
  --nav-bg:#0f2430; --nav-fg:#c4d3dc;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --page:#0a0b0a; --surface:#141614; --surface-2:#1c1e1b; --row-hover:#1a2028;
    --ink:#f3f4f1; --ink-2:#c3c6bd; --muted:#8c9086;
    --border:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.20);
    --brand:#3fbe9c; --brand-ink:#04140f; --azul:#4c93ea; --violet:#a59cf0; --atencao:#e0ac4c; --critico:#e8836a; --ok:#55b57e;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
    --nav-bg:#050709; --nav-fg:#9db0bb;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --page:#0a0b0a; --surface:#141614; --surface-2:#1c1e1b; --row-hover:#1a2028;
  --ink:#f3f4f1; --ink-2:#c3c6bd; --muted:#8c9086;
  --border:rgba(255,255,255,.10); --border-strong:rgba(255,255,255,.20);
  --brand:#3fbe9c; --brand-ink:#04140f; --azul:#4c93ea; --violet:#a59cf0; --atencao:#e0ac4c; --critico:#e8836a; --ok:#55b57e;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 24px -12px rgba(0,0,0,.6);
  --nav-bg:#050709; --nav-fg:#9db0bb;
}
*{ box-sizing:border-box; }
body{ margin:0; background:var(--page); color:var(--ink); font:14px/1.45 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a{ color:inherit; }
/* menu lateral */
.shell{ display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; }
.side{ background:var(--nav-bg); color:var(--nav-fg); position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:16px 12px; gap:14px; overflow-y:auto; }
.brand{ display:flex; align-items:center; gap:10px; font-weight:800; color:#fff; text-decoration:none; letter-spacing:-.01em; padding:2px 6px; }
.brand i{ font-style:normal; background:var(--brand); color:var(--brand-ink); width:30px; height:30px; border-radius:9px; display:grid; place-items:center; font-size:12px; flex:none; }
.un{ display:flex; flex-direction:column; gap:5px; margin:0; padding:0 4px; }
.un label{ font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--nav-fg); opacity:.75; font-weight:700; }
.un select{ background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:8px; padding:7px 8px; font:inherit; font-size:13px; width:100%; }
.un select option{ color:#000; }
.un-nome{ color:#fff; font-size:13.5px; font-weight:600; }
.menu{ display:flex; flex-direction:column; gap:3px; flex:1; }
.grp{ font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; opacity:.7; font-weight:700; margin:12px 8px 4px; }
.item{ display:flex; align-items:center; gap:10px; color:var(--nav-fg); text-decoration:none; padding:9px 10px; border-radius:9px; font-weight:600; font-size:13.5px; }
.item svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.item:hover{ background:rgba(255,255,255,.08); color:#fff; }
.item.on{ background:rgba(255,255,255,.15); color:#fff; box-shadow:inset 3px 0 0 var(--brand); }
.foot{ border-top:1px solid rgba(255,255,255,.12); padding:12px 4px 0; display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.foot .btn2{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.2); }
.quem{ color:#fff; font-size:13px; font-weight:600; } .quem small{ display:block; font-weight:400; opacity:.7; font-size:11.5px; }
.foot-links{ display:flex; gap:14px; font-size:12.5px; } .foot-links a{ color:var(--nav-fg); text-decoration:underline; text-underline-offset:2px; } .foot-links a:hover{ color:#fff; }
.main{ min-width:0; }
.mtop{ display:none; }
.scrim-menu{ display:none; }
@media (max-width:900px){
  .shell{ display:block; }
  .side{ position:fixed; z-index:80; left:0; top:0; bottom:0; width:260px; transform:translateX(-100%); transition:transform .18s ease; }
  body.menu-open .side{ transform:none; }
  body.menu-open .scrim-menu{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:79; }
  .mtop{ display:flex; align-items:center; gap:12px; padding:10px 16px; background:var(--nav-bg); color:#fff; position:sticky; top:0; z-index:40; }
  .mtop button{ font:inherit; font-weight:600; font-size:13px; color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:8px; padding:6px 12px; cursor:pointer; }
}
@media (prefers-reduced-motion: reduce){ .side{ transition:none; } }

.wrap{ max-width:1400px; margin:0 auto; padding:22px 16px 60px; }
h1{ font-size:26px; font-weight:800; letter-spacing:-.01em; margin:0 0 4px; }
.eyebrow{ font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--brand); margin:0 0 8px; }
.sub{ font-size:14px; color:var(--ink-2); margin:0 0 16px; max-width:90ch; line-height:1.55; }
.bar{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:0 0 14px; }
.bar .sp{ flex:1; }
select, input[type=text], input[type=date], input[type=search], input[type=password], textarea{
  font:inherit; font-size:14px; padding:8px 10px; border-radius:8px; border:1px solid var(--border-strong); background:var(--surface); color:var(--ink); min-width:0; }
textarea{ width:100%; resize:vertical; }
.btn2{ font:inherit; font-size:12.5px; font-weight:600; padding:8px 16px; border-radius:999px; border:1px solid var(--border-strong); background:var(--surface-2); color:var(--ink-2); cursor:pointer; text-decoration:none; display:inline-block; }
.btn2:hover{ border-color:var(--ink-2); }
.btn2.pri{ background:var(--brand); color:var(--brand-ink); border-color:var(--brand); }
.btn2.danger{ color:var(--critico); border-color:color-mix(in srgb,var(--critico) 40%,transparent); }
.btn2.mini{ padding:3px 11px; font-size:11.5px; }
:is(.btn2, .card, select, input, textarea, a, button):focus-visible{ outline:2px solid var(--azul); outline-offset:2px; }
.panel{ background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); overflow:hidden; }
.ph{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center; padding:11px 16px; background:var(--surface-2); border-bottom:1px solid var(--border); }
.ph b{ font-size:14.5px; }
.tw{ overflow-x:auto; }
table.t{ width:100%; border-collapse:collapse; font-size:13px; }
.t th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:600; padding:8px 14px; border-bottom:1px solid var(--border-strong); white-space:nowrap; }
.t td{ padding:8px 14px; border-bottom:1px solid var(--border); vertical-align:middle; }
.t tr:last-child td{ border-bottom:0; }
small.m{ display:block; color:var(--muted); font-size:11.5px; }
.pill{ display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:99px; white-space:nowrap; }
.p-atraso{ background:color-mix(in srgb,var(--critico) 16%,transparent); color:var(--critico); }
.p-hoje{ background:color-mix(in srgb,var(--atencao) 18%,transparent); color:var(--atencao); }
.p-ok{ background:var(--surface-2); color:var(--ink-2); }
.p-ex{ background:color-mix(in srgb,var(--violet) 16%,transparent); color:var(--violet); }
.p-off{ background:var(--surface-2); color:var(--muted); }
.vazio{ padding:34px 20px; text-align:center; color:var(--ink-2); font-size:14px; line-height:1.6; }
.vazio b{ display:block; font-size:16px; color:var(--ink); margin-bottom:4px; }
.erro{ color:var(--critico); font-size:13px; min-height:1em; }
.ok-msg{ color:var(--ok); font-size:13px; }
label.f{ display:flex; flex-direction:column; gap:4px; font-size:11.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
label.f input, label.f select, label.f textarea{ text-transform:none; letter-spacing:0; font-weight:400; color:var(--ink); width:100%; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:520px){ .grid2{ grid-template-columns:1fr; } }
.scrim{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:60; display:none; }
.scrim.on{ display:block; }
.modal{ position:fixed; z-index:62; left:50%; top:50%; transform:translate(-50%,-50%); width:min(420px, calc(100vw - 32px)); background:var(--surface); border:1px solid var(--border-strong); border-radius:14px; padding:18px; display:none; flex-direction:column; gap:12px; box-shadow:0 20px 50px -20px rgba(0,0,0,.6); }
.modal.on{ display:flex; }
.modal h2{ margin:0; font-size:16px; }
.toast{ position:fixed; left:50%; bottom:22px; transform:translateX(-50%); background:var(--ink); color:var(--page); padding:9px 16px; border-radius:99px; font-size:13px; z-index:70; opacity:0; pointer-events:none; transition:opacity .2s; }
.toast.on{ opacity:1; }
.chips{ display:flex; flex-wrap:wrap; gap:6px; }
.chips label{ display:inline-flex; gap:6px; align-items:center; font-size:12.5px; padding:5px 11px; border-radius:99px; border:1px solid var(--border-strong); cursor:pointer; background:var(--surface); color:var(--ink-2); }
.chips label:has(input:checked){ background:var(--brand); color:var(--brand-ink); border-color:var(--brand); }
.chips input{ position:absolute; opacity:0; pointer-events:none; }
.chips label:has(input:focus-visible){ outline:2px solid var(--azul); outline-offset:2px; }
.tabs{ display:flex; gap:4px; flex-wrap:wrap; margin:0 0 14px; border-bottom:1px solid var(--border); }
.tabs button{ font:inherit; font-weight:600; font-size:13px; padding:9px 14px; border:0; background:none; color:var(--ink-2); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.tabs button.on{ color:var(--brand); border-bottom-color:var(--brand); }
@media print{
  .side, .mtop, .no-print{ display:none !important; } .shell{ display:block; }
  body{ background:#fff; color:#000; }
  .panel, .card, .kpi{ box-shadow:none; break-inside:avoid; }
}
