:root{
  --bg:#F5F6F4;
  --surface:#FFFFFF;
  --surface-2:#EDEFEC;
  --ink:#1B222C;
  --muted:#5C6570;
  --border:#DADFE0;
  --accent:#0B6E6E;
  --accent-ink:#FFFFFF;
  --warn:#B5651D;
  --good:#3F7D58;
  --danger:#B3453B;
  --psico-bg:#ECE9FA;
  --psico-ink:#5B4FC4;
  --shadow:0 1px 2px rgba(20,30,30,.06);
  --font-ui:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#10151A; --surface:#171F26; --surface-2:#1E2831;
    --ink:#E7EBEE; --muted:#8B98A3; --border:#2A343C;
    --accent:#2BA6A0; --accent-ink:#06201F;
    --warn:#D98A3D; --good:#5BAE79; --danger:#E0685C;
    --psico-bg:#2B2645; --psico-ink:#B9AEF2;
    --shadow:0 1px 2px rgba(0,0,0,.3);
  }
}
:root[data-theme="dark"]{
  --bg:#10151A; --surface:#171F26; --surface-2:#1E2831;
  --ink:#E7EBEE; --muted:#8B98A3; --border:#2A343C;
  --accent:#2BA6A0; --accent-ink:#06201F;
  --warn:#D98A3D; --good:#5BAE79; --danger:#E0685C;
  --psico-bg:#2B2645; --psico-ink:#B9AEF2;
  --shadow:0 1px 2px rgba(0,0,0,.3);
}
:root:not([data-theme]){ color-scheme: light dark; }
:root[data-theme="light"]{ color-scheme: light; }
:root[data-theme="dark"]{ color-scheme: dark; }

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{ background:var(--bg); color:var(--ink); font-family:var(--font-ui); min-height:100vh; }
button, input, textarea{ font-family:inherit; color:var(--ink); }
h1,h2,h3{ margin:0; }
[hidden]{ display:none !important; }

/* ---------- Login ---------- */
.login-screen{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.login-card{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:32px 28px; width:100%; max-width:340px; }
.login-card h1{ font-size:1.2rem; font-weight:800; margin-bottom:4px; }
.login-card p.sub{ color:var(--muted); font-size:.85rem; margin:0 0 22px; }
.login-card label{ display:flex; flex-direction:column; gap:5px; font-size:.82rem; color:var(--muted); font-weight:600; margin-bottom:14px; }
.login-card input{ padding:10px 12px; border-radius:8px; border:1px solid var(--border); background:var(--bg); font-size:.95rem; }
.login-error{ color:var(--danger); font-size:.85rem; margin:0 0 14px; }
.login-error[hidden]{ display:none; }
.login-tabs{ display:flex; gap:6px; background:var(--surface-2); border-radius:10px; padding:4px; margin-bottom:20px; }
.login-tab{ flex:1; border:none; background:transparent; padding:9px 0; border-radius:7px; font-weight:700; font-size:.82rem; color:var(--muted); cursor:pointer; }
.login-tab.active{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow); }
.login-form[hidden]{ display:none; }

.patient-select{
  padding:8px 12px; border-radius:8px; border:1px solid var(--border); background:var(--surface);
  color:var(--ink); font-size:.85rem; font-weight:600; max-width:180px;
}

.patients-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.patient-row{ background:var(--surface-2); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:8px; }
.patient-row.inactive{ opacity:.55; }
.patient-row-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.patient-row-name{ font-weight:700; }
.patient-row-meta{ font-size:.75rem; color:var(--muted); }
.patient-code{ font-family:var(--font-mono); font-weight:700; letter-spacing:.05em; background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:4px 8px; }
.patient-row-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.patients-add{ display:flex; gap:8px; padding-top:16px; border-top:1px solid var(--border); }
.patients-add input{ flex:1; }
#newPatientResult{ margin-top:14px; background:var(--surface-2); border-radius:10px; padding:14px; }
#newPatientResult[hidden]{ display:none; }

.pending-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:20px; }
.pending-item{ background:var(--surface-2); border-radius:10px; padding:12px 14px; }
.pending-item-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.pending-title{ font-weight:700; }
.pending-notes{ display:block; font-size:.82rem; color:var(--muted); margin-top:2px; }
.pending-meta{ display:block; font-size:.72rem; color:var(--muted); margin-top:4px; }
.pending-meta.psicologa{ color:var(--psico-ink); font-weight:600; }
.pending-actions{ display:flex; gap:6px; flex:0 0 auto; }
.schedule-form{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); align-items:flex-end; }
.schedule-form label{ display:flex; flex-direction:column; gap:4px; font-size:.75rem; color:var(--muted); }
.schedule-form input{ padding:7px 9px; font-size:.85rem; }

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:20; background:var(--surface); border-bottom:1px solid var(--border);
  padding:16px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.brand{ display:flex; align-items:baseline; gap:10px; }
.brand h1{ font-size:1.15rem; font-weight:800; letter-spacing:-.01em; }
.role-badge{ font-size:.72rem; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--surface-2); color:var(--muted); }
.role-badge.psicologa{ background:rgba(11,110,110,.12); color:var(--accent); }
.header-controls{ display:flex; align-items:center; gap:10px; }

.segmented{ display:inline-flex; background:var(--surface-2); border-radius:999px; padding:3px; }
.seg-btn{ border:none; background:transparent; padding:8px 18px; border-radius:999px; font-weight:600; font-size:.85rem; color:var(--muted); cursor:pointer; }
.seg-btn.active{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow); }

.icon-btn{
  width:36px;height:36px; border-radius:8px; border:1px solid var(--border);
  background:var(--surface); color:var(--ink); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.icon-btn:hover{ border-color:var(--accent); }
.icon-btn.small{ width:28px; height:28px; }
.icon-btn.text{ width:auto; padding:0 12px; font-size:.8rem; font-weight:700; gap:6px; }

main{ max-width:980px; margin:0 auto; padding:0 20px 60px; }

.view-nav{ display:flex; align-items:center; gap:12px; padding:22px 0 10px; }
.view-nav h2{ flex:1; font-size:1.15rem; font-weight:700; }
.nav-btn{ width:34px;height:34px; border-radius:8px; border:1px solid var(--border); background:var(--surface); cursor:pointer; font-size:1.15rem; color:var(--ink); display:flex; align-items:center; justify-content:center; }
.nav-btn:hover{ border-color:var(--accent); }
.today-btn{ border:1px solid var(--border); background:transparent; padding:7px 14px; border-radius:8px; font-size:.8rem; font-weight:600; cursor:pointer; color:var(--muted); }
.today-btn:hover{ border-color:var(--accent); color:var(--ink); }

.weekday-row{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; margin-bottom:8px; }
.weekday-row span{ text-align:center; font-size:.75rem; color:var(--muted); font-weight:600; }

.month-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.day-cell{
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  min-height:76px; padding:10px; display:flex; flex-direction:column; justify-content:space-between;
  align-items:flex-start; cursor:pointer; text-align:left; position:relative;
}
.day-cell:hover{ border-color:var(--accent); }
.day-cell.today{ border:2px solid var(--accent); }
.day-cell.outside{ opacity:.45; }
.day-num{ font-weight:700; font-size:.95rem; color:var(--ink); }
.day-count{ font-family:var(--font-mono); font-size:.7rem; color:var(--muted); }
.day-count.complete{ color:var(--good); }

.week-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:10px; }
.week-card{
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:16px 8px; display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; position:relative;
}
.week-card:hover{ border-color:var(--accent); }
.week-card.today{ border:2px solid var(--accent); }
.week-day-name{ font-size:.75rem; color:var(--muted); font-weight:600; }
.week-day-num{ font-family:var(--font-mono); font-size:1.5rem; font-weight:600; color:var(--ink); }
.week-count{ font-family:var(--font-mono); font-size:.72rem; color:var(--muted); }
.week-progress{ width:100%; height:4px; background:var(--border); border-radius:2px; overflow:hidden; }
.week-progress > span{ display:block; height:100%; background:var(--accent); }

@media (max-width:640px){
  .week-grid{ display:flex; overflow-x:auto; gap:10px; scroll-snap-type:x mandatory; margin:0 -20px; padding:0 20px 4px; }
  .week-card{ flex:0 0 100px; scroll-snap-align:start; }
}

/* ---------- Drawer / overlay ---------- */
.overlay{ position:fixed; inset:0; z-index:50; display:flex; justify-content:flex-end; }
.overlay-backdrop{ position:absolute; inset:0; background:rgba(10,14,16,.45); }
.drawer{
  position:relative; width:440px; max-width:100%; height:100%; background:var(--surface);
  box-shadow:-10px 0 30px rgba(0,0,0,.15); display:flex; flex-direction:column; padding:22px 22px 0; overflow-y:auto;
}
@media (max-width:640px){
  .overlay{ align-items:flex-end; }
  .drawer{ width:100%; height:92%; border-radius:18px 18px 0 0; padding:18px 18px 0; }
}
.drawer-header{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.drawer-header h2{ font-size:1.05rem; font-weight:700; line-height:1.35; }
.drawer-progress-text{ margin:4px 0 0; font-size:.82rem; color:var(--muted); }
.drawer-header-actions{ display:flex; gap:8px; flex:0 0 auto; }
.popover-wrap{ position:relative; }
.popover{
  position:absolute; top:calc(100% + 6px); right:0; z-index:5; background:var(--surface); border:1px solid var(--border);
  border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.16); min-width:230px; padding:6px; display:flex; flex-direction:column;
}
.popover-item{ text-align:left; background:transparent; border:none; padding:10px; border-radius:7px; cursor:pointer; font-size:.85rem; color:var(--ink); }
.popover-item:hover{ background:var(--surface-2); }

.progress-track{ width:100%; height:5px; background:var(--surface-2); border-radius:3px; margin:14px 0 18px; overflow:hidden; }
.progress-fill{ display:block; height:100%; background:var(--good); width:0%; }

.toast{ background:var(--surface-2); color:var(--ink); font-size:.82rem; padding:9px 12px; border-radius:8px; margin:0 0 12px; }

/* Comentários do dia */
.day-comments{ margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.day-comments h3, .comments-section h3{ font-size:.82rem; color:var(--muted); font-weight:700; margin-bottom:8px; }
.comment-item{ padding:8px 0; border-bottom:1px dashed var(--border); font-size:.85rem; }
.comment-item:last-child{ border-bottom:none; }
.comment-author{ font-weight:700; margin-right:6px; }
.comment-time{ font-family:var(--font-mono); font-size:.7rem; color:var(--muted); }
.comment-text{ display:block; margin-top:2px; }
.comment-add{ display:flex; gap:8px; margin-top:10px; }
.comment-add textarea{ flex:1; resize:vertical; padding:8px 10px; border-radius:8px; border:1px solid var(--border); background:var(--bg); font-size:.85rem; }
.comment-add button{ align-self:flex-end; }
.comments-empty{ color:var(--muted); font-size:.82rem; }

/* Lista de tarefas */
.task-list{ list-style:none; margin:0; padding:0; }
.task-row{ display:flex; align-items:flex-start; gap:12px; padding:12px 0; border-bottom:1px solid var(--border); border-left:3px solid transparent; }
.task-row.by-psicologa{ border-left-color:var(--psico-ink); background:linear-gradient(90deg, var(--psico-bg), transparent 40%); }
.task-row.done .task-title{ text-decoration:line-through; color:var(--muted); }
.pending-tag{ display:inline-block; font-size:.68rem; font-weight:700; color:var(--warn); border:1px solid var(--warn); border-radius:999px; padding:1px 7px; margin-left:6px; vertical-align:middle; }
.check{
  width:24px; height:24px; border-radius:7px; border:1px solid var(--border); background:var(--surface);
  flex:0 0 auto; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--accent-ink); margin-top:1px;
}
.task-row.done .check{ background:var(--good); border-color:var(--good); }
.task-info{ flex:1; min-width:0; cursor:pointer; }
.task-time{ display:block; font-family:var(--font-mono); font-size:.8rem; font-weight:600; color:var(--accent); }
.task-title{ display:block; font-weight:600; margin-top:2px; word-break:break-word; }
.task-notes{ display:block; font-size:.8rem; color:var(--muted); margin-top:3px; word-break:break-word; }
.task-meta{ display:block; font-size:.72rem; color:var(--muted); margin-top:3px; }
.task-actions{ display:flex; gap:4px; flex:0 0 auto; }
.empty-state{ padding:18px 0; color:var(--muted); font-size:.9rem; }

.inline-edit-form{ flex:1; display:flex; flex-direction:column; gap:8px; }
.inline-edit-form input, .inline-edit-form textarea{ width:100%; }
.edit-actions{ display:flex; align-items:center; gap:10px; }
.autosave-status{ font-size:.78rem; color:var(--muted); min-height:1em; }
.repeat-row{ display:flex; flex-direction:column; gap:4px; margin-top:2px; }
.link-btn{ background:none; border:none; color:var(--accent); font-size:.8rem; font-weight:600; cursor:pointer; text-align:left; padding:2px 0; }
.link-btn:hover{ text-decoration:underline; }
.comments-section{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--border); }

.task-form{ padding:20px 0 26px; display:flex; flex-direction:column; gap:12px; border-top:1px solid var(--border); margin-top:6px; }
.task-form h3{ font-size:.9rem; color:var(--muted); font-weight:700; }
.form-row label{ display:flex; flex-direction:column; gap:5px; font-size:.82rem; color:var(--muted); font-weight:600; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
input, textarea{ font-size:.95rem; padding:9px 11px; border-radius:8px; border:1px solid var(--border); background:var(--bg); resize:vertical; }
input:focus, textarea:focus, .seg-btn:focus-visible, button:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.form-error{ color:var(--danger); font-size:.82rem; margin:0; }

.primary-btn{ background:var(--accent); color:var(--accent-ink); border:none; padding:11px 18px; border-radius:8px; font-weight:700; cursor:pointer; font-size:.9rem; }
.primary-btn.small{ padding:8px 14px; font-size:.85rem; }
.ghost-btn{ background:transparent; border:1px solid var(--border); color:var(--ink); padding:11px 18px; border-radius:8px; cursor:pointer; font-size:.9rem; font-weight:600; }
.ghost-btn.small{ padding:8px 14px; font-size:.85rem; }

.fab{
  position:fixed; bottom:26px; right:26px; width:52px; height:52px; border-radius:50%;
  background:var(--accent); color:var(--accent-ink); border:none; font-size:1.7rem; font-weight:700;
  cursor:pointer; line-height:1; box-shadow:0 8px 18px rgba(0,0,0,.22);
  display:flex; align-items:center; justify-content:center; z-index:60;
}

/* Painel de Orientações gerais */
/* Chat */
.chat-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:16px; min-height:200px; }
.msg-bubble{ max-width:80%; padding:9px 13px; border-radius:14px; font-size:.88rem; line-height:1.4; }
.msg-bubble .msg-time{ display:block; font-family:var(--font-mono); font-size:.68rem; margin-top:4px; opacity:.75; }
.msg-bubble.mine{ align-self:flex-end; background:var(--accent); color:var(--accent-ink); border-bottom-right-radius:4px; }
.msg-bubble.theirs{ align-self:flex-start; background:var(--psico-bg); color:var(--psico-ink); border-bottom-left-radius:4px; }
.chat-input-row{ display:flex; gap:8px; align-items:flex-end; padding-top:14px; border-top:1px solid var(--border); position:sticky; bottom:0; background:var(--surface); }
.chat-input-row textarea{ flex:1; resize:none; max-height:100px; }
.send-btn{ width:40px; height:40px; border-radius:50%; border:none; background:var(--accent); color:var(--accent-ink); cursor:pointer; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }

/* Notificação (sino + bolinha vermelha) */
.chat-icon-wrap{ position:relative; display:flex; }
.notif-dot{ position:absolute; top:-3px; right:-3px; width:10px; height:10px; border-radius:50%; background:#E23D3D; border:2px solid var(--surface); }
.notif-dot[hidden]{ display:none; }

.notif-popover{ width:300px; max-height:360px; overflow-y:auto; padding:4px; }
.notif-item{ display:block; width:100%; text-align:left; background:transparent; border:none; padding:10px; border-radius:8px; cursor:pointer; border-bottom:1px solid var(--border); }
.notif-item:last-child{ border-bottom:none; }
.notif-item:hover{ background:var(--surface-2); }
.notif-item .notif-who{ font-weight:700; font-size:.82rem; color:var(--psico-ink); }
.notif-item .notif-where{ font-size:.75rem; color:var(--muted); margin-left:4px; }
.notif-item .notif-text{ display:block; font-size:.82rem; margin-top:2px; color:var(--ink); }
.notif-item .notif-when{ display:block; font-family:var(--font-mono); font-size:.68rem; color:var(--muted); margin-top:3px; }
.notif-empty{ padding:16px; text-align:center; color:var(--muted); font-size:.85rem; }

/* Bolinha de novidade direto no quadradinho do dia */
.cell-notif-dot{ position:absolute; top:6px; right:6px; width:8px; height:8px; border-radius:50%; background:#E23D3D; }
.week-card .cell-notif-dot{ top:8px; right:8px; }

/* Bolinha de chat flutuante (estilo WhatsApp) */
.chat-fab{
  position:fixed; bottom:24px; right:24px; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#ffffff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,.25); z-index:55;
}
.chat-fab:hover{ filter:brightness(1.05); }
.chat-fab[hidden]{ display:none; }
.chat-fab .notif-dot{ top:0; right:0; width:12px; height:12px; }

/* Autor psicóloga em destaque, pra não confundir com o próprio paciente */
.comment-author.psicologa{ color:var(--psico-ink); }

@media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; } }

/* Pendências e autoria, inclusive no celular. */
.calendar-pending{font-size:.65rem;font-weight:700;color:var(--warn);white-space:nowrap;}
.pending-item.by-psicologa{border-left:3px solid var(--psico-ink);background:var(--psico-bg);}
.task-meta.psicologa{color:var(--psico-ink);font-weight:700;}
.task-form small{display:block;color:var(--muted);margin-top:5px;}
.header-controls{flex-wrap:wrap;}
.pending-title,.pending-notes{overflow-wrap:anywhere;}
@media(max-width:480px){.month-grid,.weekday-row{gap:4px;}.day-cell{padding:6px;min-height:82px;}.pending-item-top{flex-wrap:wrap;}.header-controls{gap:6px;}.seg-btn{padding:8px 12px;}}

/* Novas ferramentas apenas na área do paciente. */
.patient-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:18px;}
#replicationStatus{font-size:.8rem;color:var(--muted);flex-basis:100%;}
.patient-area .month-grid{grid-template-columns:28px repeat(7,minmax(0,1fr));}
.patient-area .weekday-row{padding-left:36px;}
.week-number{border:0;background:transparent;color:var(--muted);font-size:.7rem;padding:0;cursor:pointer;align-self:stretch;}
.week-number:hover{color:var(--accent);background:var(--surface-2);border-radius:6px;}
.past{background:transparent;border-color:transparent;box-shadow:none;}
.past .day-num,.past .week-day-num{font-weight:400;color:var(--muted);}
.past .day-count,.past .calendar-pending,.past .week-count{color:var(--muted);font-weight:400;}
.past .week-progress{opacity:.3;}
.past:hover{border-color:var(--border);}
.replication-dialog{width:min(440px,calc(100% - 24px));padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--ink);max-height:90vh;overflow:auto;}
.replication-dialog::backdrop{background:rgba(10,14,16,.45);}
.replication-dialog h2{font-size:1.1rem;}
.replication-dialog form{display:flex;flex-direction:column;gap:14px;}
.replication-dialog label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;}
.replication-dialog select{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--ink);}
.replication-dialog p{margin:0;font-size:.8rem;color:var(--muted);line-height:1.5;}
.bulk-hint{color:var(--muted);font-size:.75rem;}
button:disabled{opacity:.5;cursor:default;}
@media(max-width:480px){.patient-area .month-grid{grid-template-columns:22px repeat(7,minmax(0,1fr));}.patient-area .weekday-row{padding-left:26px;}.patient-area .day-cell{padding:4px;}.patient-area .calendar-pending{font-size:.59rem;}.patient-area .view-nav{flex-wrap:wrap;}.patient-area .view-nav h2{font-size:.92rem;}}
/* V3: calendário legível, ferramentas concentradas e acompanhamento permanente. */
:root{--task-bg:#e7f4eb;--task-ink:#226440;--past-bg:#edf0ee;--past-border:#dfe5e1;--selected-bg:#fff1c7;--selected-border:#c47700;}
:root[data-theme="dark"]{--task-bg:#193829;--task-ink:#a2dfb5;--past-bg:#28333b;--past-border:#48555f;--selected-bg:#4a3615;--selected-border:#ffbd52;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--task-bg:#193829;--task-ink:#a2dfb5;--past-bg:#28333b;--past-border:#48555f;--selected-bg:#4a3615;--selected-border:#ffbd52;}}
.brand h1{font-size:1.1rem;}.header-controls{gap:8px;}.small-badge{font-size:.65rem;background:var(--psico-bg);color:var(--psico-ink);border-radius:20px;padding:2px 6px;white-space:nowrap;}
.guidance-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--psico-ink);border-radius:10px;padding:14px 16px;margin-top:20px;}
.eyebrow{font-size:.65rem;font-weight:800;letter-spacing:.1em;color:var(--psico-ink);}
.guidance-strip p{margin:5px 0 0;font-size:.85rem;overflow-wrap:anywhere;}.guidance-strip .link-btn{white-space:nowrap;font-size:.8rem;}
.calendar-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;}.weekly-summary{font-size:.8rem;color:var(--muted);margin:0;}.calendar-actions{display:flex;gap:8px;}
#replicationStatus:empty{display:none;}#replicationStatus{margin:10px 0;font-size:.8rem;color:var(--muted);}
.patient-area #weekRepeatWrap{display:none!important;}.patient-area .weekday-row{padding-left:36px;}
.week-number{display:flex;align-items:center;justify-content:center;cursor:default;}.week-number:hover{background:transparent;color:var(--muted);}
.day-cell{min-height:126px;gap:5px;justify-content:flex-start;}.day-count{margin-top:auto;}.day-num{font-size:.9rem;}
.day-cell.past,.patient-area .day-cell.outside,.day-cell.outside,.week-card.past{background:var(--past-bg);border:1px solid var(--past-border);opacity:1;}
.past .day-num,.day-cell.outside .day-num{color:var(--muted);font-weight:500;}
.patient-area .day-cell.today{border:2px solid var(--accent);background:var(--surface);}
.cell-tasks{display:flex;flex-direction:column;gap:3px;width:100%;min-width:0;text-align:left;}.cell-tasks:empty{display:none;}
.task-chip{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--task-bg);color:var(--task-ink);padding:3px 5px;border-radius:4px;font-size:.7rem;font-weight:650;line-height:1.35;}
.task-chip.completed{text-decoration:line-through;font-weight:500;}.task-chip.by-psicologa{border-left:2px solid var(--psico-ink);}
.more-tasks{font-size:.62rem;color:var(--muted);}.week-card{min-width:0;}
.task-row,.task-row.by-psicologa{background:var(--task-bg);border-radius:9px;padding:12px 10px;margin:8px 0;border-bottom:0;border-left:3px solid var(--good);}
.task-row.by-psicologa{border-left-color:var(--psico-ink);}.task-title,.task-time{color:var(--task-ink);}.task-row.done{opacity:.8;}
.task-meta.psicologa{font-size:.7rem;}.task-list{margin-bottom:20px;}
.day-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 12px;}
.danger-link{color:var(--danger);font-size:.8rem;border:0;background:none;cursor:pointer;padding:5px;}
.danger-btn{background:var(--danger);color:#fff;border:0;border-radius:7px;padding:8px 12px;font-weight:700;cursor:pointer;}
.selection-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:12px;background:var(--surface-2);border-radius:9px;font-size:.82rem;}
.selection-bar span{flex:1;}.day-cell.selected,.week-card.selected,.day-cell.past.selected,.patient-area .day-cell.outside.selected{outline:3px solid var(--selected-border);outline-offset:-3px;background:var(--selected-bg);}
#selectDaysBtn[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);}
.day-comments{margin-top:20px;border-top:1px solid var(--border);padding-top:16px;border-bottom:0;}
.comment-delete{border:0;background:transparent;color:inherit;opacity:.7;cursor:pointer;float:right;padding:3px;margin-left:8px;}.comment-delete:hover{opacity:1;color:var(--danger);}
.chat-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:.82rem;font-weight:700;color:var(--muted);}.chat-delete{display:block;margin:5px 0 0 auto;border:0;background:transparent;color:inherit;opacity:.75;font-size:.68rem;text-decoration:underline;cursor:pointer}.chat-delete:hover{opacity:1}.msg-bubble.mine .chat-delete{color:var(--accent-ink)}
.comment-text,.msg-bubble{white-space:pre-wrap;overflow-wrap:anywhere;}
.guidance-dialog{width:min(600px,calc(100% - 24px));max-height:90vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:16px;padding:24px;}
.guidance-dialog::backdrop{background:rgba(10,14,16,.45);}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;}.dialog-heading h2{font-size:1.15rem;margin-top:4px;}.dialog-subtitle{font-size:.85rem;color:var(--muted);line-height:1.5;}
.guidance-card{border:1px solid var(--border);border-left:3px solid var(--psico-ink);border-radius:10px;padding:16px;margin:12px 0;}.guidance-meta{font-size:.7rem;color:var(--psico-ink);margin-bottom:8px;}.guidance-card h3{font-size:.98rem;overflow-wrap:anywhere;}.guidance-card p{font-size:.9rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;}
.guidance-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}.read-status{font-size:.75rem;color:var(--muted);}.guidance-actions .read-status{flex:1;}
#guidanceForm label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;color:var(--muted);}
#guidanceFeedback{font-size:.82rem;color:var(--accent);}.undo-link{border-top:1px solid var(--border);padding-top:14px;margin-top:4px;color:var(--muted);}
.replication-example{font-weight:700!important;color:var(--ink)!important;background:var(--surface-2);padding:10px;border-radius:7px;}
.replication-dialog input{width:100%;min-width:0;}.replication-dialog .two-col:has(label[hidden]):has(#replicationTargetYearLabel[hidden]){display:none;}
@media(max-width:640px){header{padding:14px;gap:12px;}main{padding-left:12px;padding-right:12px;}.header-controls{gap:6px;}.guidance-strip{align-items:flex-start;padding:12px;gap:10px;}.guidance-strip .link-btn{white-space:normal;max-width:100px;}.calendar-tools{align-items:flex-start;flex-direction:column;gap:10px;}.calendar-actions{width:100%;}.calendar-actions button{flex:1;}.weekly-summary{font-size:.75rem;}.day-cell{min-height:115px;padding:5px;}.task-chip{font-size:.61rem;padding:3px 2px;}.more-tasks{font-size:.58rem;}.view-nav{padding-top:18px;}.guidance-dialog{padding:18px;}}
@media(max-width:480px){.patient-area .month-grid{grid-template-columns:18px repeat(7,minmax(0,1fr));gap:3px;}.patient-area .weekday-row{padding-left:21px;gap:3px;}.patient-area .day-cell{padding:4px 3px;}.day-num{font-size:.82rem;}.day-count{font-size:.6rem;}.weekday-row span{font-size:.68rem;}.cell-notif-dot{width:6px;height:6px;top:4px;right:3px;}.day-toolbar .primary-btn{padding:9px;font-size:.8rem;}.guidance-strip p{font-size:.8rem;}.header-controls .seg-btn{padding:7px 11px;}}

.day-cell{min-height:108px;}
@media(max-width:640px){.day-cell{min-height:96px;}.guidance-strip .link-btn{max-width:115px;}.view-nav{gap:9px;}}

.my-agenda-link{text-decoration:none;color:#3559c7;border-color:#bdcaf5;background:#eef2ff;}
.weekday-picker{border:1px solid var(--border);border-radius:9px;padding:12px;margin:0;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.weekday-picker legend{font-size:.8rem;color:var(--muted);padding:0 5px;}
.weekday-picker label{display:flex!important;align-items:center;justify-content:center;gap:4px;padding:7px 3px;border-radius:7px;background:var(--surface-2);color:var(--ink)!important;font-size:.75rem!important;cursor:pointer;}
.weekday-picker input{width:auto!important;margin:0;}
.weekday-picker label:has(input:disabled){opacity:.45;cursor:default;text-decoration:line-through;}
#replicationDayFields,#replicationWeekFields{display:flex;flex-direction:column;gap:14px;}
#replicationDayFields[hidden],#replicationWeekFields[hidden]{display:none!important;}
@media(max-width:480px){.weekday-picker{grid-template-columns:repeat(4,1fr);}.weekday-picker label{padding:8px 4px;}}

/* V4.2: calendário responsivo para celular, tablet e notebook. */
.cell-compact{display:none;align-items:center;gap:4px;min-height:9px;max-width:100%;}
.task-dots{display:flex;align-items:center;gap:3px;min-width:0;}
.task-dot{display:block;width:7px;height:7px;border-radius:999px;background:var(--good);box-shadow:0 0 0 1px color-mix(in srgb,var(--good) 60%,transparent);}
.task-dot.by-psicologa{background:var(--psico-ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--psico-ink) 60%,transparent);}
.task-dot.completed{opacity:.35;}
.cell-compact b{font-size:.58rem;color:var(--muted);font-weight:700;}

@media(max-width:900px){
  main{max-width:100%;padding-left:16px;padding-right:16px;}
  .month-grid,.weekday-row{gap:5px;}
  .patient-area .month-grid{grid-template-columns:24px repeat(7,minmax(0,1fr));}
  .patient-area .weekday-row{padding-left:29px;}
  .day-cell{min-width:0;min-height:86px;padding:7px;gap:5px;}
  .cell-tasks{display:none;}
  .cell-compact{display:flex;}
  .calendar-pending{overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .week-card .cell-compact{justify-content:center;}
}

@media(max-width:640px){
  html,body{max-width:100%;overflow-x:hidden;}
  header{padding:9px 12px 10px;gap:7px;}
  header .brand{display:none;}
  .header-controls{width:100%;display:flex;align-items:center;gap:4px;}
  .header-controls .my-agenda-link,.header-controls .patient-select{flex:1 1 calc(50% - 2px);width:calc(50% - 2px);max-width:none;height:40px;justify-content:center;}
  .header-controls .patient-select{padding:7px 9px;}
  .header-controls .segmented{flex:0 0 112px;width:112px;min-width:0;height:34px;}
  .header-controls .seg-btn{flex:1;min-width:0;padding:7px 3px;font-size:.7rem;}
  .header-controls #notifBtn,.header-controls #guidanceBtn,.header-controls #pendingBtn,.header-controls #managePatientsBtn,.header-controls #settingsBtn,.header-controls #themeBtn,.header-controls #logoutBtn{position:relative;flex:0 0 32px;width:32px;height:32px;padding:0;border-radius:9px;}
  .header-controls .control-label{display:none;}
  .header-controls .small-badge{position:absolute;right:-3px;top:-5px;font-size:0;width:8px;height:8px;padding:0;background:var(--danger);}
  main{padding:0 10px 70px;}
  .guidance-strip{display:none;}
  .calendar-tools{margin-top:10px;display:flex;flex-direction:row;align-items:center;gap:8px;}
  .weekly-summary{flex:1;min-width:0;font-size:.69rem;line-height:1.3;}
  .calendar-actions{width:auto;flex:0 0 auto;gap:5px;}
  .calendar-actions .ghost-btn{padding:7px 8px;font-size:.7rem;}
  .view-nav{display:grid;grid-template-columns:32px minmax(0,1fr) 32px auto;gap:7px;padding:12px 0 8px;}
  .view-nav h2{min-width:0;font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .nav-btn{width:32px;height:32px;}
  .today-btn{padding:6px 9px;}
  .patient-area .month-grid{grid-template-columns:18px repeat(7,minmax(0,1fr));gap:3px;}
  .patient-area .weekday-row{padding-left:21px;gap:3px;margin-bottom:5px;}
  .weekday-row span{font-size:.64rem;}
  .day-cell{min-height:66px;padding:5px 4px;border-radius:8px;gap:3px;}
  .day-num{font-size:.78rem;line-height:1;}
  .day-count{font-size:.56rem;line-height:1;margin-top:auto;}
  .week-number{font-size:.58rem;}
  .task-dots{gap:2px;flex-wrap:wrap;}
  .task-dot{width:5px;height:5px;}
  .cell-compact{gap:2px;}
  .calendar-pending{position:absolute;right:4px;bottom:4px;width:6px;height:6px;max-width:none;border-radius:50%;background:var(--warn);font-size:0;}
  .cell-notif-dot{width:6px;height:6px;top:4px;right:4px;}
  .selection-bar{margin-top:8px;padding:9px;gap:6px;}
  .chat-fab{width:52px;height:52px;right:14px;bottom:14px;}
}

@media(min-width:641px) and (max-width:900px){
  header{padding:12px 16px;}
  .header-controls{gap:6px;}
  .icon-btn.text{padding:0 10px;}
  .day-cell{min-height:82px;}
  .task-dot{width:7px;height:7px;}
}

.undo-top{color:var(--accent);flex:0 0 auto;}
.inline-date-add{display:flex;align-items:center;gap:8px;}
.inline-date-add input{flex:1;}
.selected-date-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.date-chip{border:1px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:6px 9px;font-size:.75rem;cursor:pointer;}
.date-chip:hover{border-color:var(--danger);color:var(--danger);}
@media(max-width:480px){.inline-date-add{align-items:stretch;flex-direction:column;}.selected-date-list{max-height:110px;overflow:auto;}}

/* V6: replicação direta, sem números de semana ou formulários técnicos. */
.quick-replication{width:min(520px,calc(100% - 20px));}
.replication-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;}
.choice-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:76px;padding:14px;text-align:left;border:1px solid var(--border);border-radius:11px;background:var(--surface-2);color:var(--ink);cursor:pointer;}
.choice-card:hover,.choice-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent);}
.choice-card b{font-size:.88rem;}.choice-card span{font-size:.72rem;line-height:1.35;color:var(--muted);}
.weekend-option{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;border-radius:9px;background:var(--surface-2);color:var(--ink)!important;}
.weekend-option input{width:auto!important;margin:0;}
@media(max-width:480px){.replication-choice-grid{grid-template-columns:1fr;}.choice-card{min-height:64px;padding:12px;}.quick-replication{padding:18px;}}
