/* ============================================================
   EDUCARE — Internal screen styles (lista, formulário,
   prontuário/abas, timeline, charts)
   ============================================================ */

/* avatar color variants */
.avatar.a { background: linear-gradient(135deg,#0F766E,#14B8A6); }
.avatar.b { background: linear-gradient(135deg,#7C3AED,#A78BFA); }
.avatar.c { background: linear-gradient(135deg,#FB923C,#FBBF24); color:#3a1d02; }
.avatar.d { background: linear-gradient(135deg,#2563EB,#38BDF8); }
.avatar.e { background: linear-gradient(135deg,#DB2777,#FB7185); }

/* ============================================================
   MODO CLÍNICA — seletor de profissional + equipe
   ============================================================ */
.prof-switch { position: relative; }
.prof-switch .ps-trigger { display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: 12px; border: none; background: none; width: 100%; text-align: left; }
.prof-switch .ps-trigger:hover { background: var(--surface-2); }
.prof-switch .ps-trigger .pmeta { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; flex: 1; }
.prof-switch .ps-trigger .pmeta b { font-size: 13.5px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.prof-switch .ps-trigger .pmeta span { font-size: 11px; color: var(--text-3); }
.prof-switch .ps-trigger .chev { color: var(--text-3); flex: none; }

.ps-pop { position: absolute; bottom: calc(100% + 8px); left: 0; right: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 8px; z-index: 30; animation: rise .18s ease both; }
.ps-pop .ps-label { font-size: 10px; font-weight: 800; letter-spacing: .1em; color: var(--text-3); padding: 6px 10px 4px; }
.ps-opt { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; border: none; background: none; width: 100%; text-align: left; }
.ps-opt:hover { background: var(--surface-2); }
.ps-opt.on { background: var(--primary-soft); }
.ps-opt .pmeta { flex: 1; min-width: 0; }
.ps-opt .pmeta b { font-size: 13px; font-weight: 800; display: block; }
.ps-opt .pmeta span { font-size: 11px; color: var(--text-3); }
.ps-opt .ck { color: var(--primary); flex: none; }
.ps-opt .clinic-ic { width: 32px; height: 32px; border-radius: 9px; background: linear-gradient(135deg, var(--primary), var(--accent)); color: #fff; display: grid; place-items: center; flex: none; }
.ps-pop .ps-sep { height: 1px; background: var(--border); margin: 6px 4px; }
.ps-manage { display: flex; align-items: center; gap: 9px; width: 100%; padding: 9px 10px; border: none; background: none; color: var(--text-2); font-weight: 700; font-size: 13px; border-radius: 10px; }
.ps-manage:hover { background: var(--surface-2); color: var(--primary); }

/* notifications dropdown */
.notif { position: relative; flex: none; }
.notif-backdrop { position: fixed; inset: 0; z-index: 40; }
.notif-pop { position: absolute; top: calc(100% + 10px); right: 0; width: 340px; max-width: calc(100vw - 32px); background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-lg); z-index: 41; overflow: hidden; animation: rise .18s ease both; }
.notif-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.notif-head b { font-size: 15px; font-weight: 800; display: flex; align-items: center; gap: 8px; }
.notif-count { font-size: 11px; font-weight: 800; color: var(--on-primary); background: var(--primary); border-radius: 99px; min-width: 18px; height: 18px; padding: 0 6px; display: inline-grid; place-items: center; }
.notif-head .link { font-size: 12.5px; }
.notif-list { max-height: min(60vh, 420px); overflow-y: auto; padding: 6px; }
.notif-empty { text-align: center; color: var(--text-3); font-size: 14px; font-weight: 700; padding: 28px 16px; }
.notif-item { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; border: none; background: none; padding: 11px 12px; border-radius: 12px; position: relative; transition: background .14s; }
.notif-item:hover { background: var(--surface-2); }
.notif-item.unread { background: var(--primary-soft); }
.notif-item.unread:hover { background: var(--primary-soft-2); }
.ni-ic { width: 36px; height: 36px; border-radius: 11px; flex: none; display: grid; place-items: center; }
.ni-ic.info { background: var(--primary-soft); color: var(--primary); }
.ni-ic.warn { background: var(--accent-soft); color: var(--accent-strong); }
.ni-ic.danger { background: rgba(239,68,68,.12); color: #EF4444; }
.ni-ic.accent { background: var(--accent-soft); color: var(--accent-strong); }
.ni-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.ni-body b { font-size: 13.5px; font-weight: 800; }
.ni-body span { font-size: 12.5px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ni-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--primary); flex: none; }

/* ===== Teste de Hayling Infantil ===== */
.hay-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.hay-stepper { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.hay-stepper .hs { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--text-3); background: var(--surface-2); border: 1px solid var(--border); padding: 8px 13px; border-radius: 99px; cursor: pointer; font-family: inherit; transition: background .14s, color .14s, border-color .14s; }
.hay-stepper .hs:hover { border-color: var(--primary); color: var(--text); }
.hay-stepper .hs-n { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-3); color: var(--text-2); font-size: 12px; font-weight: 800; }
.hay-stepper .hs.on { color: var(--on-primary); background: var(--primary); border-color: var(--primary); }
.hay-stepper .hs.on .hs-n { background: rgba(255,255,255,.25); color: #fff; }
.hay-stepper .hs.done { color: var(--primary); border-color: var(--primary-soft-2); background: var(--primary-soft); }
.hay-stepper .hs.done .hs-n { background: var(--primary); color: var(--on-primary); }

.hay-instruction { display: flex; gap: 10px; align-items: flex-start; background: var(--accent-soft); color: var(--text); border-radius: var(--radius-sm); padding: 12px 14px; font-size: 13.5px; font-weight: 600; line-height: 1.5; margin-bottom: 14px; }
.hay-instruction svg { color: var(--accent-strong); flex: none; margin-top: 1px; }
.hay-examples { background: var(--surface-2); border: 1px dashed var(--border-2); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 16px; }
.hay-examples > b { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 8px; }
.hay-ex { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--text-2); padding: 3px 0; }

.hay-item { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 10px; background: var(--surface); }
.hi-sentence { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 700; margin-bottom: 10px; }
.hi-n { width: 24px; height: 24px; border-radius: 7px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; font-size: 12.5px; font-weight: 800; flex: none; }
.hi-n.ex { background: var(--accent-soft); color: var(--accent-strong); border-radius: 50%; }
.hi-gap { color: var(--text-3); font-style: normal; letter-spacing: 2px; }
.hi-fields { display: grid; grid-template-columns: 1.5fr 1.1fr 0.8fr 0.7fr; gap: 10px; }
.hi-fields .fld { margin-bottom: 0; }
.hi-fields .fld > label { font-size: 11px; }

.sw { display: flex; gap: 6px; align-items: stretch; }
.sw-in { width: 100%; min-width: 0; }
.sw-btn { border: 1.5px solid var(--primary); background: var(--primary-soft); color: var(--primary); font-weight: 800; font-size: 12.5px; border-radius: var(--radius-sm); padding: 0 12px; flex: none; white-space: nowrap; }
.sw-btn.on { background: #EF4444; border-color: #EF4444; color: #fff; }

.pont-box { min-height: 46px; display: grid; place-items: center; background: var(--primary-soft); border: 1.5px solid var(--border); border-radius: var(--radius-sm); color: var(--primary); font-size: 19px; font-weight: 900; }
/* legenda dos tipos (referência rápida, neutra) */
.hay-legend { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 16px; }
.hay-legend > b { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 10px; }
.hl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.hl-grid.rail-legend { grid-template-columns: 1fr; padding: 14px; }
.hl-card { display: flex; gap: 10px; align-items: flex-start; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 9px 11px; }
.hl-code { flex: none; min-width: 34px; height: 26px; padding: 0 8px; border-radius: 7px; display: grid; place-items: center; background: var(--surface-3); color: var(--text); font-weight: 800; font-size: 13px; }
.hl-body { display: flex; flex-direction: column; min-width: 0; }
.hl-body b { font-size: 12.5px; font-weight: 800; color: var(--text-2); }
.hl-body span { font-size: 12px; color: var(--text-3); line-height: 1.35; }

/* editor de tipos por parte */
.tipo-grid2 { display: grid; grid-template-columns: 0.9fr 0.6fr 0.5fr 2fr 32px; gap: 6px; align-items: center; margin-bottom: 6px; }
.tipo-grid2.tipo-head2 { font-size: 10.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.tipo-grid2 .ctrl { padding: 8px; font-size: 13px; }
.tipo-chk { display: grid; place-items: center; }
.tipo-chk input { width: 18px; height: 18px; accent-color: var(--primary); }
@media (max-width: 720px) { .tipo-grid2 { grid-template-columns: 1fr 1fr; } .tipo-grid2.tipo-head2 { display: none; } }

.tipo-grid { display: flex; flex-direction: column; gap: 8px; }
.tipo-head { display: grid; grid-template-columns: 1fr 1fr 40px; gap: 8px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); }
.tipo-row { display: grid; grid-template-columns: 1fr 1fr 40px; gap: 8px; align-items: center; }

.seg2 { display: flex; gap: 6px; }
.seg2 button { flex: 1; border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text-2); font-weight: 700; font-size: 13px; border-radius: var(--radius-sm); padding: 11px 4px; }
.seg2 button.on.ok { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.seg2 button.on.err { background: #EF4444; border-color: #EF4444; color: #fff; }

.hay-foot { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); }
.hay-foot .stat { flex: 1; min-width: 110px; background: var(--surface-2); border-radius: var(--radius-sm); padding: 10px 12px; }
.hay-foot .stat span { display: block; font-size: 11.5px; color: var(--text-3); font-weight: 700; }
.hay-foot .stat b { font-size: 19px; font-weight: 800; color: var(--primary); }

.hay-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.hsc { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px; box-shadow: var(--shadow-sm); }
.hsc span { font-size: 12px; font-weight: 700; color: var(--text-3); }
.hsc b { display: block; font-size: 26px; font-weight: 900; color: var(--primary); letter-spacing: -.02em; margin: 2px 0; }
.hsc i { font-style: normal; font-size: 11.5px; color: var(--text-3); }

.hay-nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }

/* Teste ABC — estímulos (palavras a ler) */
.abc-stim { background: var(--surface-2); border: 1px dashed var(--border-2); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px; }
.abc-stim > b { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 9px; }
.abc-stim-list { display: flex; flex-wrap: wrap; gap: 8px; }
.abc-stim-chip { background: var(--surface); border: 1px solid var(--border); border-radius: 99px; padding: 7px 14px; font-size: 14px; font-weight: 800; color: var(--text); letter-spacing: .02em; }

.abc-note { background: var(--surface-2); border-left: 3px solid var(--border-2); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 10px 14px; margin-bottom: 14px; }
.abc-note > b { display: block; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.abc-note p { margin: 0; font-size: 13px; color: var(--text-2); line-height: 1.5; }

/* IAR — registro das 13 áreas (cores oficiais azul/verde/vermelho) */
.iar-legend { display: flex; flex-direction: column; gap: 7px; background: var(--surface-2); border: 1px dashed var(--border-2); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 16px; }
.iar-leg { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--text-2); flex-wrap: wrap; }
.iar-leg i { width: 14px; height: 14px; border-radius: 4px; flex: none; }
.iar-leg b { font-weight: 800; color: var(--text); }
.iar-area { display: grid; grid-template-columns: 1.3fr auto 1fr; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--border); }
.iar-area:last-of-type { border-bottom: none; }
.iar-name { display: flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 700; }
.iar-colors { display: flex; gap: 6px; }
.iar-cbtn { border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text-2); font-weight: 800; font-size: 12.5px; border-radius: 99px; padding: 8px 14px; cursor: pointer; font-family: inherit; transition: all .14s; }
.iar-cbtn:hover { border-color: var(--ic); color: var(--ic); }
.iar-cbtn.on { background: var(--ic); border-color: var(--ic); color: #fff; }
.iar-obs { padding: 9px 12px; font-size: 13px; }
@media (max-width: 860px) { .iar-area { grid-template-columns: 1fr; gap: 8px; } }

.iar-sheet { display: flex; flex-direction: column; }
.iar-row { display: grid; grid-template-columns: 44px 1.4fr 1fr; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.iar-row:last-child { border-bottom: none; }
.iar-rn { font-weight: 800; font-size: 13.5px; color: var(--text-2); text-align: center; background: var(--surface-2); border-radius: 8px; padding: 5px 0; }
.iar-rname { font-size: 14px; font-weight: 700; }
.iar-robs { font-style: normal; font-weight: 600; font-size: 12.5px; color: var(--text-3); }
.iar-rbar { height: 20px; border-radius: 6px; display: grid; place-items: center; color: var(--text-3); font-size: 12px; font-weight: 700; }
.iar-summary { display: flex; gap: 18px; flex-wrap: wrap; padding: 14px 0 6px; }
.iar-sum { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--text-2); }
.iar-sum i { width: 14px; height: 14px; border-radius: 4px; }
.iar-sum b { font-size: 17px; font-weight: 900; color: var(--text); }

/* Anamnese — registro de atendimentos */
.anam-sess { display: grid; grid-template-columns: 180px 1fr 32px; gap: 8px; align-items: center; margin-bottom: 8px; }
@media (max-width: 640px) { .anam-sess { grid-template-columns: 1fr 1fr 32px; } }

/* ASRS-18 */
.asrs-blist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.asrs-blist li { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 13.5px; color: var(--text-2); }
.asrs-bans { margin-left: auto; font-size: 12px; font-weight: 800; color: var(--accent-strong); background: var(--accent-soft); padding: 3px 10px; border-radius: 99px; }
.asrs-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.asrs-actions .btn { width: 100%; padding: 15px; font-size: 15px; }
.asrs-menu { display: flex; flex-direction: column; gap: 12px; margin-top: 6px; }
.asrs-q { padding: 12px 0; border-bottom: 1px solid var(--border); }
.asrs-q:last-child { border-bottom: none; }
.asrs-qt { display: flex; gap: 9px; align-items: flex-start; font-size: 14.5px; font-weight: 600; margin-bottom: 10px; }
.asrs-levels { display: flex; gap: 6px; flex-wrap: wrap; }
.asrs-lv { flex: 1; min-width: 90px; border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text-2); font-weight: 700; font-size: 12.5px; border-radius: var(--radius-sm); padding: 9px 6px; cursor: pointer; font-family: inherit; }
.asrs-lv:hover { border-color: var(--border-2); }
.asrs-lv.on { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.asrs-hint { font-size: 11.5px; color: var(--text-3); margin-top: 6px; }
.asrs-warn { display: flex; gap: 10px; align-items: flex-start; background: #fdf3f3; border: 1px solid #e7b9b9; color: #8a2b2b; border-radius: var(--radius-sm); padding: 12px 14px; font-size: 13px; font-weight: 600; line-height: 1.5; margin: 14px 0; }
[data-theme="dark"] .asrs-warn { background: rgba(239,68,68,.12); border-color: rgba(239,68,68,.4); color: #fca5a5; }
.asrs-warn svg { flex: none; margin-top: 1px; }
.asrs-crit { display: flex; gap: 9px; align-items: flex-start; font-size: 13.5px; color: var(--text-2); padding: 7px 0; cursor: pointer; }
.asrs-crit input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--primary); flex: none; }

/* TFV — cronômetro e blocos */
.tfv-timer { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: var(--surface-2); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px; }
.tfv-clock b { font-size: 30px; font-weight: 900; color: var(--primary); letter-spacing: -.02em; }
.tfv-clock span { font-size: 14px; color: var(--text-3); font-weight: 700; margin-left: 6px; }
.tfv-ctrls { display: flex; gap: 8px; flex-wrap: wrap; }
.tfv-inc { width: 100%; border: none; border-radius: var(--radius-sm); background: var(--primary); color: var(--on-primary); font-weight: 900; font-size: 18px; padding: 16px; cursor: pointer; box-shadow: var(--shadow-primary); }
.tfv-inc span { font-size: 13px; font-weight: 700; opacity: .85; }
.tfv-inc:active { transform: translateY(1px); }
.tfv-blocks { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.tfv-block { flex: 1; min-width: 120px; border: 1.5px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; }
.tfv-block.on { border-color: var(--primary); background: var(--primary-soft); }
.tfv-block .tb-label { display: block; font-size: 11.5px; font-weight: 800; color: var(--text-3); margin-bottom: 6px; }
.tfv-block.total { background: var(--surface-2); }
.tfv-block .tb-total { font-size: 22px; font-weight: 900; color: var(--primary); }

/* TFV — pontuação assistida */
.tfv-score-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.tfv-breakdown { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.tfv-bd-block > b { display: block; font-size: 12.5px; font-weight: 800; color: var(--text-2); margin-bottom: 6px; }
.tfv-bd-items { display: flex; flex-wrap: wrap; gap: 6px; }
.tfv-word { display: inline-flex; align-items: center; gap: 6px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 99px; padding: 4px 6px 4px 12px; font-size: 13.5px; font-weight: 700; color: var(--text); }
.tfv-word.zero { background: var(--surface); color: var(--text-3); text-decoration: line-through; opacity: .8; }
.tfv-word input { width: 38px; border: 1px solid var(--border); border-radius: 99px; padding: 3px 4px; text-align: center; font-weight: 800; font-size: 12.5px; color: var(--primary); background: var(--surface); }

/* Teste ABC — figuras-modelo (movimentos) */
.abc-figs { display: flex; flex-wrap: wrap; gap: 14px; }
.abc-fig { margin: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 14px; text-align: center; }
.abc-fig svg { width: 130px; height: auto; display: block; }
.abc-fig figcaption { font-size: 12px; font-style: italic; color: var(--text-3); margin-top: 6px; }

/* Teste ABC — seletor 0–3 com critérios */
.abc-levels { display: flex; flex-direction: column; gap: 8px; }
.abc-lv { display: flex; align-items: flex-start; gap: 11px; text-align: left; width: 100%; border: 1.5px solid var(--border); background: var(--surface); border-radius: var(--radius-sm); padding: 11px 13px; font-family: inherit; cursor: pointer; transition: border-color .14s, background .14s; }
.abc-lv:hover { border-color: var(--border-2); background: var(--surface-2); }
.abc-lv.on { border-color: var(--primary); background: var(--primary-soft); }
.abc-lv-n { flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: var(--surface-3); color: var(--text); font-weight: 800; font-size: 13.5px; }
.abc-lv.on .abc-lv-n { background: var(--primary); color: var(--on-primary); }
.abc-lv-t { font-size: 13.5px; color: var(--text-2); line-height: 1.4; }
.abc-lv.on .abc-lv-t { color: var(--text); }

/* Folha de Registro (resultado) */
.hay-sheet-id { display: flex; flex-wrap: wrap; gap: 8px 22px; background: var(--surface-2); border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px; font-size: 13.5px; color: var(--text-2); }
.hay-sheet-id b { color: var(--text); }
table.hay-sheet { width: 100%; border-collapse: collapse; }
table.hay-sheet th, table.hay-sheet td { border: 1px solid var(--border); padding: 9px 11px; text-align: left; font-size: 13.5px; }
table.hay-sheet th { background: var(--surface-2); font-size: 11.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--text-3); }
table.hay-sheet td.c { text-align: center; font-weight: 700; }
table.hay-sheet .muted-cell { color: var(--text-3); font-style: italic; }
.anchor-ref { display: inline-block; margin-left: 6px; font-size: 11px; font-weight: 600; color: var(--text-3); }

/* editor de âncoras */
.anchor-grid { display: grid; grid-template-columns: 1.6fr repeat(5, 1fr); gap: 6px; align-items: center; margin-bottom: 6px; }
.anchor-grid.anchor-head { font-size: 10.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.anchor-grid .an-label { font-size: 13px; font-weight: 700; color: var(--text-2); }
.anchor-grid .ctrl { padding: 8px; font-size: 13px; text-align: center; }
@media (max-width: 720px) { .anchor-grid { grid-template-columns: 1fr 1fr 1fr; } .anchor-grid.anchor-head { display: none; } .anchor-grid .an-label { grid-column: 1 / -1; } }

/* Editor de tabelas normativas */
.norm-grid { display: grid; grid-template-columns: 0.8fr 0.8fr 1fr 1fr 0.8fr 0.8fr 0.8fr 32px; gap: 6px; align-items: center; margin-bottom: 6px; }
.norm-grid.norm-head { font-size: 10.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.norm-grid .ctrl { padding: 8px 8px; font-size: 13px; }
@media (max-width: 820px) { .norm-grid { grid-template-columns: 1fr 1fr; } .norm-grid.norm-head { display: none; } }

@media (max-width: 720px) {
  .hi-fields { grid-template-columns: 1fr; }
}

/* confirmação de salvamento (planejamento) */
.save-ok { display: flex; align-items: center; gap: 12px; background: var(--primary-soft); border: 1px solid var(--primary-soft-2); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 12px; animation: rise .2s ease both; }
.save-ok .so-ic { width: 36px; height: 36px; border-radius: 11px; background: var(--primary); color: var(--on-primary); display: grid; place-items: center; flex: none; }
.save-ok b { display: block; font-size: 14px; font-weight: 800; }
.save-ok span:last-child { font-size: 12.5px; color: var(--text-2); }

/* seletor de paciente com busca */
.patient-picker { position: relative; }
.patient-picker .pp-backdrop { position: fixed; inset: 0; z-index: 20; }
.patient-picker .filter-search { position: relative; z-index: 21; }
.pp-clear { border: none; background: none; color: var(--text-3); display: grid; place-items: center; padding: 4px; border-radius: 8px; flex: none; }
.pp-clear:hover { color: var(--text); background: var(--surface-2); }
.pp-pop { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 6px; z-index: 22; max-height: 280px; overflow-y: auto; animation: rise .16s ease both; }
.pp-opt { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; border: none; background: none; padding: 9px 10px; border-radius: 10px; transition: background .14s; }
.pp-opt:hover { background: var(--surface-2); }
.pp-opt.on { background: var(--primary-soft); }
.pp-opt .pp-meta { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.pp-opt .pp-meta b { font-size: 13.5px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-opt .pp-meta span { font-size: 11.5px; color: var(--text-3); font-weight: 600; }
.pp-opt .ck { color: var(--primary); flex: none; }
.pp-empty { text-align: center; color: var(--text-3); font-size: 13.5px; font-weight: 700; padding: 18px; }

/* rail — próximas sessões */
.rail-sessions { display: flex; flex-direction: column; gap: 6px; }
.rail-sess { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; border: none; background: none; padding: 8px; border-radius: 12px; transition: background .14s; }
.rail-sess:hover { background: var(--surface-2); }
.rs-when { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 38px; flex: none; line-height: 1; }
.rs-when b { font-size: 16px; font-weight: 800; color: var(--primary); }
.rs-when span { font-size: 10px; font-weight: 700; color: var(--text-3); text-transform: uppercase; }
.rs-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.rs-info b { font-size: 13px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rs-info span { font-size: 11.5px; color: var(--text-3); font-weight: 600; }

/* scope chip on lists */
.scope-chip { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--text-2); background: var(--surface-2); border: 1px solid var(--border); padding: 5px 11px; border-radius: 99px; }
.scope-chip .clinic-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--primary); }

/* modal */
.modal-scrim { position: fixed; inset: 0; background: rgba(10,20,18,.5); z-index: 80; display: grid; place-items: center; padding: 20px; animation: rise .18s ease both; }
.modal { width: 100%; max-width: 520px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); max-height: 86vh; overflow: hidden; display: flex; flex-direction: column; }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px; border-bottom: 1px solid var(--border); }
.modal-head h3 { font-size: 18px; font-weight: 800; margin: 0; }
.modal-head p { font-size: 12.5px; color: var(--text-3); margin: 3px 0 0; }
.modal-body { padding: 16px 22px 22px; overflow-y: auto; }
.team-row { display: flex; align-items: center; gap: 13px; padding: 13px 0; border-bottom: 1px solid var(--border); }
.team-row:last-child { border-bottom: none; }
.team-row .tr-info { flex: 1; min-width: 0; }
.team-row .tr-info b { font-size: 14.5px; font-weight: 800; display: flex; align-items: center; gap: 8px; }
.team-row .tr-info span { font-size: 12.5px; color: var(--text-3); }
.owner-tag { font-size: 9.5px; font-weight: 800; color: var(--primary); background: var(--primary-soft); padding: 2px 7px; border-radius: 99px; letter-spacing: .03em; }
.team-count { font-size: 12px; color: var(--text-3); font-weight: 700; }

.btn-sm { padding: 9px 14px; font-size: 13.5px; border-radius: 11px; }
.btn-xs { padding: 7px 11px; font-size: 12.5px; border-radius: 10px; gap: 6px; }

/* status tag + chips */
.tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 99px; }
.tag .d { width: 7px; height: 7px; border-radius: 50%; }
.tag.ok    { background: var(--primary-soft); color: var(--primary); }
.tag.ok .d { background: var(--primary); }
.tag.warn  { background: var(--accent-soft); color: var(--accent-strong); }
.tag.warn .d { background: var(--accent); }
.tag.muted { background: var(--surface-3); color: var(--text-3); }
.tag.muted .d { background: var(--text-3); }
.tag.danger { background: rgba(239,68,68,.12); color: #ef4444; }
.tag.danger .d { background: #ef4444; }

/* ---- Atendimentos (lista profissional) ---- */
.at-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 1000px) { .at-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .at-stats { grid-template-columns: 1fr; } }
.at-stat { display: flex; align-items: center; gap: 11px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow-sm); }
.at-stat .as-ic { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font-size: 20px; flex: none; }
.at-stat b { font-size: 20px; font-weight: 900; display: block; line-height: 1.1; }
.at-stat span { font-size: 12px; color: var(--text-3); font-weight: 700; }

.at-card { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 16px; box-shadow: var(--shadow-sm); }
.at-card:hover { border-color: var(--border-2); }
.at-card .at-main { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; background: none; border: none; text-align: left; cursor: pointer; font-family: inherit; padding: 0; }
.at-focus { font-size: 15px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.at-meta { font-size: 12.5px; color: var(--text-3); font-weight: 600; margin-top: 2px; }
.at-card .at-mood { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 800; color: var(--text-2); flex: none; }
.at-act { position: relative; flex: none; }
.at-kebab { width: 32px; height: 32px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text-2); font-size: 18px; font-weight: 900; line-height: 1; cursor: pointer; }
.at-kebab:hover { background: var(--surface-3); color: var(--text); }
.at-back { position: fixed; inset: 0; z-index: 28; }
.at-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 29; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-lg); padding: 6px; min-width: 200px; animation: rise .16s ease both; }
.at-mlabel { font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text-3); padding: 6px 10px 4px; }
.at-mopt { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; border: none; background: none; padding: 8px 10px; border-radius: 9px; font-size: 13.5px; font-weight: 700; color: var(--text); cursor: pointer; }
.at-mopt:hover { background: var(--surface-2); }
.at-mopt.on { background: var(--primary-soft); color: var(--primary); }
.at-mopt .d { width: 8px; height: 8px; border-radius: 50%; }
.at-mopt .d.ok { background: var(--primary); } .at-mopt .d.warn { background: var(--accent); } .at-mopt .d.muted { background: var(--text-3); } .at-mopt .d.danger { background: #ef4444; }
.at-msep { height: 1px; background: var(--border); margin: 6px 4px; }
@media (max-width: 640px) { .at-card .at-mood { display: none; } }

.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; padding: 4px 9px; border-radius: 8px; background: var(--surface-2); color: var(--text-2); border: 1px solid var(--border); }

/* ---- toolbar / filters ---- */
.toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.filter-search { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--border); border-radius: 13px; padding: 0 14px; box-shadow: var(--shadow-sm); }
.filter-search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px var(--primary-soft); }
.filter-search svg { color: var(--text-3); }
.filter-search input { border: none; background: none; outline: none; color: var(--text); font-size: 14px; padding: 11px 0; width: 100%; }
.seg { display: inline-flex; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 4px; gap: 3px; box-shadow: var(--shadow-sm); }
.seg button { border: none; background: none; color: var(--text-2); font-weight: 700; font-size: 13px; padding: 7px 13px; border-radius: 9px; }
.seg button.on { background: var(--primary); color: var(--on-primary); }

/* ---- patient list ---- */
.plist { display: flex; flex-direction: column; gap: 10px; }
.prow { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1fr auto; align-items: center; gap: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 18px; box-shadow: var(--shadow-sm); cursor: pointer; transition: transform .12s, box-shadow .2s, border-color .14s; text-align: left; width: 100%; font: inherit; color: inherit; }
.prow:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: var(--border-2); }
.prow .who { display: flex; align-items: center; gap: 13px; min-width: 0; }
.prow .who b { font-size: 15px; font-weight: 800; display: block; }
.prow .who span { font-size: 12.5px; color: var(--text-3); }
.col-label { font-size: 11px; font-weight: 800; letter-spacing: .04em; color: var(--text-3); text-transform: uppercase; margin-bottom: 2px; }
.col-val { font-size: 13.5px; font-weight: 600; color: var(--text); }
.prow .chev { color: var(--text-3); }
.list-head { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1fr auto; gap: 16px; padding: 4px 18px 0; }
.list-head span { font-size: 11px; font-weight: 800; letter-spacing: .05em; color: var(--text-3); text-transform: uppercase; }

/* ---- forms ---- */
.form-wrap { max-width: 880px; }
.form-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 22px 24px; margin-bottom: 16px; }
.sec-head { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 800; margin-bottom: 18px; }
.sec-head .si { width: 32px; height: 32px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.fld { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
.fld:last-child { margin-bottom: 0; }
.fld label { font-size: 13px; font-weight: 800; color: var(--text-2); }
.fld label .req { color: var(--accent-strong); }
.ctrl { background: var(--surface-2); border: 1.5px solid var(--border); border-radius: 12px; padding: 12px 14px; font-size: 14.5px; color: var(--text); outline: none; transition: border-color .14s, box-shadow .14s, background .14s; width: 100%; }
.ctrl::placeholder { color: var(--text-3); }
.ctrl:focus { border-color: var(--primary); background: var(--surface); box-shadow: 0 0 0 4px var(--primary-soft); }
select.ctrl { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%237C928D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 40px; }
textarea.ctrl { resize: vertical; min-height: 92px; line-height: 1.5; }
.help-text { font-size: 12px; color: var(--text-3); margin-top: 6px; }

/* phone with DDI */
.phone-row { display: grid; grid-template-columns: 96px 1fr; gap: 10px; }

/* avatar upload */
.id-row { display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: start; }
.avatar-up { width: 96px; height: 96px; border-radius: 18px; background: var(--surface-2); border: 2px dashed var(--border-2); display: grid; place-items: center; color: var(--text-3); position: relative; }
.avatar-up .cam { position: absolute; right: -6px; bottom: -6px; width: 32px; height: 32px; border-radius: 10px; background: var(--primary); color: #fff; display: grid; place-items: center; box-shadow: var(--shadow); border: 3px solid var(--surface); }

/* import ficha highlight */
.import-card { display: flex; align-items: center; gap: 18px; background: linear-gradient(120deg, var(--primary-soft), var(--accent-soft)); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 22px; margin-bottom: 16px; }
.import-card .ii { width: 52px; height: 52px; border-radius: 15px; background: var(--surface); color: var(--primary); display: grid; place-items: center; flex: none; box-shadow: var(--shadow-sm); }
.import-card h3 { font-size: 16.5px; font-weight: 800; margin: 0 0 3px; }
.import-card p { font-size: 13.5px; color: var(--text-2); margin: 0 0 10px; }
.import-card .note { font-size: 12px; color: var(--text-3); margin: 0; }

/* LGPD consent */
.lgpd { display: flex; gap: 13px; align-items: flex-start; background: color-mix(in oklab, var(--st-confirmado) 8%, var(--surface)); border: 1px solid color-mix(in oklab, var(--st-confirmado) 26%, var(--border)); border-radius: var(--radius); padding: 16px 18px; }
.lgpd .shield { color: var(--primary); flex: none; margin-top: 2px; }
.lgpd .ltext b { font-size: 14px; }
.lgpd .ltext p { font-size: 12.8px; color: var(--text-2); margin: 4px 0 0; line-height: 1.5; }
.check { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--border-2); background: var(--surface); display: grid; place-items: center; flex: none; cursor: pointer; margin-top: 1px; transition: background .14s, border-color .14s; }
.check.on { background: var(--primary); border-color: var(--primary); color: #fff; }

/* sticky form actions */
.form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 4px; padding-bottom: 8px; }

/* ============================================================
   PRONTUÁRIO
   ============================================================ */
.pt-back { display: inline-flex; align-items: center; gap: 7px; color: var(--text-2); font-weight: 700; font-size: 13.5px; background: none; border: none; margin-bottom: 14px; }
.pt-back:hover { color: var(--primary); }

.pt-header { display: flex; align-items: center; gap: 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px 22px; box-shadow: var(--shadow-sm); margin-bottom: 18px; flex-wrap: wrap; }
.pt-id { display: flex; align-items: center; gap: 16px; flex: 1; min-width: 240px; }
.pt-id .avatar { width: 62px; height: 62px; border-radius: 18px; font-size: 22px; }
.pt-id h1 { font-size: 23px; font-weight: 800; margin: 0 0 4px; letter-spacing: -0.02em; }
.pt-id .meta { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 13px; color: var(--text-2); }
.pt-id .meta span { display: inline-flex; align-items: center; gap: 5px; }
.pt-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* tabs */
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 22px; overflow-x: auto; }
.tab { border: none; background: none; color: var(--text-2); font-weight: 800; font-size: 14px; padding: 12px 14px; position: relative; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.tab:hover { color: var(--text); }
.tab.active { color: var(--primary); }
.tab.active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--primary); }
.tab .tcount { font-size: 11px; font-weight: 800; background: var(--surface-3); color: var(--text-3); border-radius: 99px; padding: 1px 7px; }
.tab.active .tcount { background: var(--primary-soft); color: var(--primary); }

/* key-value */
.kv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; }
.kv .k { font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.kv .v { font-size: 14.5px; color: var(--text); font-weight: 600; }

/* generic section title in panels */
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.panel-head h3 { font-size: 17px; font-weight: 800; margin: 0; }
.panel-head .ph-sub { font-size: 13px; color: var(--text-3); margin: 2px 0 0; }

/* timeline */
.timeline { position: relative; padding-left: 30px; }
.timeline::before { content: ""; position: absolute; left: 9px; top: 6px; bottom: 6px; width: 2px; background: var(--border); }
.tl-item { position: relative; margin-bottom: 14px; }
.tl-dot { position: absolute; left: -30px; top: 16px; width: 20px; height: 20px; border-radius: 50%; background: var(--surface); border: 3px solid var(--primary); display: grid; place-items: center; }
.tl-dot i { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.tl-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); }
.tl-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.tl-top .date { font-size: 13px; font-weight: 800; }
.tl-focus { font-size: 14.5px; font-weight: 800; margin: 0 0 8px; }
.tl-row { font-size: 13.2px; color: var(--text-2); line-height: 1.5; margin: 0 0 6px; }
.tl-row b { color: var(--text); font-weight: 800; }
.mood-emoji { font-size: 18px; }

/* mini cards grid (assessments / plans) */
.mcard { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-sm); }
.mcard.row { display: flex; align-items: center; gap: 16px; }
.mcard .mi { width: 44px; height: 44px; border-radius: 13px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.mcard h4 { font-size: 15px; font-weight: 800; margin: 0 0 3px; }
.mcard p { font-size: 12.8px; color: var(--text-2); margin: 0; }
.mstack { display: flex; flex-direction: column; gap: 10px; }

/* progress bar */
.pbar { height: 7px; border-radius: 99px; background: var(--surface-3); overflow: hidden; }
.pbar > i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--primary), var(--primary-light)); }

/* evolução charts */
.charts-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; }
.chart-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); }
.chart-card h4 { font-size: 14.5px; font-weight: 800; margin: 0 0 2px; }
.chart-card .csub { font-size: 12px; color: var(--text-3); margin: 0 0 14px; }
.stat-big { font-size: 38px; font-weight: 900; letter-spacing: -0.02em; line-height: 1; }
.stat-big .u { font-size: 18px; color: var(--text-3); font-weight: 800; }
.stat-row { display: flex; gap: 20px; flex-wrap: wrap; }
.stat-mini b { font-size: 24px; font-weight: 900; display: block; }
.stat-mini span { font-size: 12px; color: var(--text-3); font-weight: 700; }

/* anamnese status banner */
.an-status { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: var(--radius); margin-bottom: 16px; }
.an-status.done { background: var(--primary-soft); }
.an-status.todo { background: var(--accent-soft); }
.an-status .ai { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; flex: none; background: var(--surface); }
.an-status.done .ai { color: var(--primary); }
.an-status.todo .ai { color: var(--accent-strong); }
.an-status b { font-size: 15.5px; font-weight: 800; display: block; }
.an-status span { font-size: 13px; color: var(--text-2); }

@media (max-width: 760px) {
  .grid-2, .grid-3, .kv-grid, .charts-grid { grid-template-columns: 1fr; }
  .prow, .list-head { grid-template-columns: 1.4fr auto; }
  .prow .hide-sm, .list-head .hide-sm { display: none; }
}

/* ============================================================
   AGENDA
   ============================================================ */
.agenda-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.date-nav { display: flex; align-items: center; gap: 10px; }
.date-nav .rangelbl { font-size: 16px; font-weight: 800; min-width: 180px; text-align: center; }
.date-nav .nav { width: 38px; height: 38px; border-radius: 11px; border: 1px solid var(--border); background: var(--surface); color: var(--text-2); display: grid; place-items: center; box-shadow: var(--shadow-sm); }
.date-nav .nav:hover { background: var(--surface-2); color: var(--text); }
.today-btn { border: 1px solid var(--border); background: var(--surface); color: var(--text-2); font-weight: 800; font-size: 13px; padding: 8px 14px; border-radius: 11px; box-shadow: var(--shadow-sm); }
.today-btn:hover { color: var(--primary); }

/* event chip colors */
.ev { --c: var(--st-agendado); display: flex; align-items: center; gap: 8px; min-width: 0; border-radius: 9px; padding: 7px 10px; font-size: 12.5px; font-weight: 700; background: color-mix(in oklab, var(--c) 13%, var(--surface)); color: var(--text); border-left: 3px solid var(--c); width: 100%; text-align: left; }
.ev .et { font-size: 11px; color: var(--text-3); font-weight: 800; }
.ev.agendado    { --c: var(--st-agendado); }
.ev.confirmado  { --c: var(--st-confirmado); }
.ev.compromisso { --c: var(--st-compromisso); }
.ev.bloqueado   { --c: var(--st-bloqueado); }
.ev.aniversario { --c: var(--st-aniversario); }
.ev.feriado     { --c: var(--st-feriado); }
.ev.realizado   { --c: var(--st-realizado); }
.ev.falta       { --c: var(--st-falta); }
.ev:hover { filter: brightness(0.98); }

/* dia view */
.day-grid { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden; }
.hour-row { display: grid; grid-template-columns: 64px 1fr; border-top: 1px solid var(--border); min-height: 58px; }
.hour-row:first-child { border-top: none; }
.hour-lbl { font-size: 12px; font-weight: 800; color: var(--text-3); padding: 8px 12px; text-align: right; border-right: 1px solid var(--border); }
.hour-cell { padding: 7px 10px; display: flex; flex-direction: column; gap: 6px; }

/* week view */
.week-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.week-col { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); min-height: 220px; display: flex; flex-direction: column; overflow: hidden; }
.week-col .wc-head { text-align: center; padding: 10px 6px; border-bottom: 1px solid var(--border); }
.week-col .wc-head .dow { font-size: 10.5px; font-weight: 800; color: var(--text-3); letter-spacing: .05em; }
.week-col .wc-head .num { font-size: 18px; font-weight: 800; margin-top: 2px; }
.week-col.is-today .wc-head { background: var(--primary-soft); }
.week-col.is-today .wc-head .num { color: var(--primary); }
.week-col .wc-body { padding: 8px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.wc-empty { color: var(--text-3); font-size: 11.5px; text-align: center; margin: auto 0; }

/* month view */
.month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.month-dow { text-align: center; font-size: 11px; font-weight: 800; color: var(--text-3); padding: 2px 0 4px; }
.mcell { background: var(--surface); border: 1px solid var(--border); border-radius: 13px; box-shadow: var(--shadow-sm); min-height: 96px; min-width: 0; padding: 8px; display: flex; flex-direction: column; gap: 4px; cursor: pointer; transition: border-color .14s, transform .12s; }
.mcell:hover { border-color: var(--border-2); transform: translateY(-1px); }
.mcell.muted { opacity: .5; }
.mcell.is-today { border-color: var(--primary); background: var(--primary-soft); }
.mcell .mnum { font-size: 13px; font-weight: 800; }
.mcell.is-today .mnum { color: var(--primary); }
.ev-mini { font-size: 10.5px; font-weight: 700; padding: 3px 6px; border-radius: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: color-mix(in oklab, var(--c) 16%, var(--surface)); color: var(--text); border-left: 2px solid var(--c); --c: var(--st-agendado); }
.ev-mini.agendado{--c:var(--st-agendado);} .ev-mini.confirmado{--c:var(--st-confirmado);} .ev-mini.compromisso{--c:var(--st-compromisso);}
.ev-mini.bloqueado{--c:var(--st-bloqueado);} .ev-mini.aniversario{--c:var(--st-aniversario);} .ev-mini.feriado{--c:var(--st-feriado);}
.ev-mini.realizado{--c:var(--st-realizado);} .ev-mini.falta{--c:var(--st-falta);}
.ev-more { font-size: 10.5px; font-weight: 800; color: var(--text-3); padding-left: 2px; }

/* ============================================================
   ATENDIMENTOS (registro de sessão)
   ============================================================ */
.dur-opts { display: flex; gap: 9px; flex-wrap: wrap; }
.dur-opt { border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text-2); font-weight: 800; font-size: 13.5px; padding: 11px 16px; border-radius: 12px; min-width: 64px; transition: all .14s; }
.dur-opt:hover { border-color: var(--border-2); }
.dur-opt.on { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }

.mood-opts { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.mood-opt { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 8px; border-radius: 14px; border: 1.5px solid var(--border); background: var(--surface-2); transition: all .14s; }
.mood-opt:hover { border-color: var(--border-2); transform: translateY(-2px); }
.mood-opt .emo { font-size: 30px; line-height: 1; filter: grayscale(.3); transition: filter .14s, transform .14s; }
.mood-opt .ml { font-size: 12.5px; font-weight: 800; color: var(--text-2); }
.mood-opt.on { border-color: var(--primary); background: var(--primary-soft); }
.mood-opt.on .emo { filter: none; transform: scale(1.12); }
.mood-opt.on .ml { color: var(--primary); }

.label-inline { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.label-inline label { font-size: 13px; font-weight: 800; color: var(--text-2); }
.mini-link { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-weight: 800; font-size: 12.5px; background: none; border: none; }
.mini-link:hover { text-decoration: underline; }

/* big sticky save bar */
.save-bar { position: sticky; bottom: 0; margin: 8px -26px 0; padding: 16px 26px; background: linear-gradient(to top, var(--bg) 70%, transparent); }
.save-bar .btn { width: 100%; font-size: 15.5px; padding: 16px; }

/* atendimento list rows */
.at-row { display: flex; align-items: center; gap: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 18px; box-shadow: var(--shadow-sm); }
.at-row .at-focus { font-size: 14.5px; font-weight: 800; }
.at-row .at-meta { font-size: 12.5px; color: var(--text-3); }

@media (max-width: 980px) {
  .week-grid { grid-template-columns: repeat(7, minmax(120px, 1fr)); overflow-x: auto; }
}
@media (max-width: 680px) {
  .mood-opts { grid-template-columns: repeat(5, 1fr); gap: 6px; }
  .mood-opt { padding: 10px 4px; }
  .mood-opt .emo { font-size: 24px; }
  .mood-opt .ml { font-size: 10.5px; }
}

/* ============================================================
   PLANEJAMENTOS (IA)
   ============================================================ */
.nivel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.nivel-card { text-align: left; border: 1.5px solid var(--border); background: var(--surface-2); border-radius: 14px; padding: 16px; transition: all .14s; }
.nivel-card:hover { border-color: var(--border-2); transform: translateY(-2px); }
.nivel-card b { font-size: 14.5px; font-weight: 800; display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.nivel-card p { font-size: 12.2px; color: var(--text-2); margin: 0; line-height: 1.45; }
.nivel-card .rb { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--border-2); display: inline-grid; place-items: center; flex: none; }
.nivel-card.on { border-color: var(--primary); background: var(--primary-soft); }
.nivel-card.on .rb { border-color: var(--primary); background: var(--primary); }
.nivel-card.on .rb::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; }

/* stepper */
.stepper { display: inline-flex; align-items: center; gap: 14px; }
.stepper button { width: 44px; height: 44px; border-radius: 12px; border: 1.5px solid var(--border); background: var(--surface-2); color: var(--primary); display: grid; place-items: center; transition: all .14s; }
.stepper button:hover:not(:disabled) { border-color: var(--primary); background: var(--primary-soft); }
.stepper button:disabled { opacity: .4; cursor: not-allowed; }
.stepper .val { font-size: 26px; font-weight: 900; min-width: 36px; text-align: center; }
.stepper .hint { font-size: 12.5px; color: var(--text-3); font-weight: 700; }

/* char counter */
.charcount { font-size: 11.5px; color: var(--text-3); text-align: right; margin-top: 6px; }

/* multi-select chips */
.chips-select { display: flex; flex-wrap: wrap; gap: 9px; }
.chip-sel { display: inline-flex; align-items: center; gap: 7px; border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text-2); font-weight: 700; font-size: 13px; padding: 8px 14px; border-radius: 99px; transition: all .14s; }
.chip-sel:hover { border-color: var(--border-2); }
.chip-sel .ck { width: 16px; height: 16px; border-radius: 5px; border: 2px solid var(--border-2); display: grid; place-items: center; }
.chip-sel.on { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); }
.chip-sel.on .ck { background: var(--primary); border-color: var(--primary); color: #fff; }

/* IA loading */
.gen-loading { display: grid; place-items: center; min-height: 60vh; text-align: center; }
.gen-loading .orb { width: 84px; height: 84px; border-radius: 26px; background: linear-gradient(135deg, var(--primary), var(--primary-light)); display: grid; place-items: center; color: #fff; box-shadow: var(--shadow-primary); margin-bottom: 22px; animation: pulse 1.4s ease-in-out infinite; }
@keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.07); } }
.gen-loading h2 { font-size: 22px; font-weight: 800; margin: 0 0 8px; }
.gen-loading p { color: var(--text-2); font-size: 14.5px; margin: 0 0 20px; }
.gen-steps { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; max-width: 340px; }
.gen-step { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 700; color: var(--text-3); }
.gen-step.done { color: var(--text); }
.gen-step .gi { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-3); color: var(--text-3); flex: none; }
.gen-step.done .gi { background: var(--primary); color: #fff; }
.spin { width: 16px; height: 16px; border: 2.5px solid var(--primary-soft-2); border-top-color: var(--primary); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* plan result */
.plan-hero { background: linear-gradient(135deg, var(--primary), var(--primary-strong)); color: #fff; border-radius: var(--radius-lg); padding: 24px 26px; margin-bottom: 18px; box-shadow: var(--shadow-primary); }
.plan-hero .ai-badge { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; background: rgba(255,255,255,.2); padding: 4px 11px; border-radius: 99px; margin-bottom: 12px; }
.plan-hero h1 { font-size: 24px; font-weight: 800; margin: 0 0 12px; letter-spacing: -0.02em; }
.plan-hero .ph-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; opacity: .95; }
.plan-hero .ph-meta span { display: inline-flex; align-items: center; gap: 6px; }
.plan-goal { background: var(--surface); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: var(--radius); padding: 16px 20px; margin-bottom: 18px; }
.plan-goal .k { font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--accent-strong); margin-bottom: 5px; }
.plan-goal p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--text); }

.sess-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); margin-bottom: 12px; }
.sess-card .sc-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.sess-num { width: 38px; height: 38px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); font-weight: 900; font-size: 15px; display: grid; place-items: center; flex: none; }
.sess-card .sc-title b { font-size: 15px; font-weight: 800; display: block; }
.sess-card .sc-title span { font-size: 12.5px; color: var(--text-3); }
.sc-block { margin-bottom: 10px; }
.sc-block:last-child { margin-bottom: 0; }
.sc-block .lbl { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--text-3); margin-bottom: 5px; }
.sc-list { margin: 0; padding-left: 18px; }
.sc-list li { font-size: 13.5px; color: var(--text); line-height: 1.55; margin-bottom: 3px; }
.sc-mat { display: flex; flex-wrap: wrap; gap: 6px; }

@media (max-width: 680px) {
  .nivel-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   AVALIAÇÕES
   ============================================================ */
.plan-banner { display: flex; align-items: center; gap: 16px; background: linear-gradient(120deg, var(--primary), var(--primary-strong)); color: #fff; border-radius: var(--radius); padding: 16px 22px; margin-bottom: 22px; box-shadow: var(--shadow-primary); flex-wrap: wrap; }
.plan-banner .pb-info b { font-size: 15px; font-weight: 800; }
.plan-banner .pb-info p { margin: 4px 0 0; font-size: 13px; opacity: .92; }
.plan-banner .limits { display: flex; gap: 18px; flex-wrap: wrap; }
.plan-banner .lim { text-align: center; }
.plan-banner .lim b { font-size: 18px; font-weight: 900; display: block; }
.plan-banner .lim span { font-size: 11px; opacity: .9; font-weight: 700; }
.plan-banner .up { margin-left: auto; background: #fff; color: var(--primary); border: none; font-weight: 800; font-size: 13.5px; padding: 10px 16px; border-radius: 11px; display: inline-flex; align-items: center; gap: 7px; }
.plan-banner .up:hover { filter: brightness(.97); }

.section-label { font-size: 11.5px; font-weight: 800; letter-spacing: .1em; color: var(--text-3); margin: 0 0 14px; }

.instr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.instr-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; transition: transform .14s, box-shadow .2s, border-color .14s; }
.instr-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--border-2); }
.instr-card.soon { opacity: .62; }
.instr-card .ic-head { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 12px; }
.instr-card .ic-icon { width: 44px; height: 44px; border-radius: 13px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.instr-card.soon .ic-icon { background: var(--surface-3); color: var(--text-3); }
.instr-card h4 { font-size: 15.5px; font-weight: 800; margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.instr-card .desc { font-size: 13px; color: var(--text-2); line-height: 1.5; margin: 0 0 16px; flex: 1; }
.badge-new { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 99px; background: var(--accent-soft); color: var(--accent-strong); letter-spacing: .02em; }
.badge-soon { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 99px; background: var(--surface-3); color: var(--text-3); }
.instr-actions { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.uses-pill { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--text-3); }

@media (max-width: 760px) {
  .instr-grid { grid-template-columns: 1fr; }
  .plan-banner .up { margin-left: 0; }
}

/* ============================================================
   BIBLIOTECA
   ============================================================ */
.view-toggle { display: inline-flex; gap: 4px; background: var(--surface); border: 1px solid var(--border); border-radius: 11px; padding: 3px; box-shadow: var(--shadow-sm); }
.view-toggle button { width: 34px; height: 34px; border-radius: 8px; border: none; background: none; color: var(--text-3); display: grid; place-items: center; }
.view-toggle button.on { background: var(--primary-soft); color: var(--primary); }

.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; }
.res-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; transition: transform .14s, box-shadow .2s, border-color .14s; display: flex; flex-direction: column; }
.res-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: var(--border-2); }
.res-cover { aspect-ratio: 4 / 5; position: relative; display: grid; place-items: center; padding: 18px; text-align: center; overflow: hidden; --c1: var(--primary); --c2: var(--primary-light); background: linear-gradient(150deg, var(--c1), var(--c2)); }
.res-cover::before { content: ""; position: absolute; inset: 0; background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.07) 0 12px, transparent 12px 24px); }
.res-cover .rc-kicker { position: absolute; top: 12px; left: 0; right: 0; font-size: 9px; letter-spacing: .28em; font-weight: 800; color: rgba(255,255,255,.7); }
.res-cover .rc-title { position: relative; color: #fff; font-size: 19px; font-weight: 900; line-height: 1.15; letter-spacing: -0.01em; text-shadow: 0 1px 8px rgba(0,0,0,.18); }
.res-cover .rc-sub { position: relative; color: rgba(255,255,255,.92); font-size: 12px; font-weight: 700; margin-top: 6px; }
.res-cover .rc-brand { position: absolute; bottom: 12px; left: 0; right: 0; font-size: 9px; letter-spacing: .3em; font-weight: 800; color: rgba(255,255,255,.65); }
.res-lock { position: absolute; inset: 0; background: rgba(8,20,18,.34); display: grid; place-items: center; opacity: 0; transition: opacity .16s; }
.res-card:hover .res-lock { opacity: 1; }
.res-lock .ll { width: 42px; height: 42px; border-radius: 13px; background: rgba(255,255,255,.92); color: var(--primary); display: grid; place-items: center; }
.res-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.res-body .rb-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.res-body h4 { font-size: 14px; font-weight: 800; margin: 0; line-height: 1.3; }
.res-pro { font-size: 10px; font-weight: 800; color: var(--accent-strong); background: var(--accent-soft); padding: 2px 8px; border-radius: 99px; flex: none; }
.res-cat { font-size: 11px; font-weight: 700; color: var(--text-3); }
.res-body .btn { margin-top: auto; }

/* ============================================================
   FLASHCARDS
   ============================================================ */
.fc-tip { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-3); margin: 0 0 18px; }
.fc-controls { display: flex; gap: 22px; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 20px; box-shadow: var(--shadow-sm); margin-bottom: 20px; }
.fc-controls .fld { margin-bottom: 0; min-width: 180px; }
.fc-controls .fld label { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }

.fc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.fc-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.fc-card .fc-bar { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; border-bottom: 1px solid var(--border); }
.fc-card .fc-bar span { font-size: 11.5px; font-weight: 700; color: var(--text-3); display: inline-flex; align-items: center; gap: 6px; }
.fc-card .fc-bar button { border: none; background: none; color: var(--text-3); font-size: 11.5px; font-weight: 700; display: inline-flex; align-items: center; gap: 5px; padding: 3px 6px; border-radius: 7px; }
.fc-card .fc-bar button:hover { color: var(--st-feriado); background: color-mix(in oklab, var(--st-feriado) 12%, var(--surface)); }
.fc-card image-slot { display: block; width: 100%; height: 150px; }
.fc-card .fc-word { display: flex; align-items: center; gap: 8px; padding: 12px; }
.fc-card .fc-word input { border: none; background: none; outline: none; width: 100%; font-size: 15px; font-weight: 800; text-align: center; color: var(--text); }
.fc-card .fc-word input::placeholder { color: var(--text-3); font-weight: 700; }
.fc-add { border: 2px dashed var(--border-2); border-radius: var(--radius); background: var(--surface-2); color: var(--text-3); display: grid; place-items: center; min-height: 200px; gap: 8px; font-weight: 800; font-size: 13.5px; transition: all .14s; }
.fc-add:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-soft); }
.fc-add .fa-ic { width: 40px; height: 40px; border-radius: 12px; background: var(--surface-3); display: grid; place-items: center; }
.fc-add:hover .fa-ic { background: var(--primary-soft); }

/* ============================================================
   FINANCEIRO
   ============================================================ */
.fin-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 18px; }
@media (max-width: 1100px) { .fin-summary { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .fin-summary { grid-template-columns: 1fr; } }
.fin-card .fv .fsub { font-size: 12px; font-weight: 700; color: var(--text-3); }
.fin-card.pos .fv { color: var(--primary); }
.fin-card.neg .fv { color: #EF4444; }

/* gráficos */
.fin-charts { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 14px; margin-bottom: 22px; }
@media (max-width: 1000px) { .fin-charts { grid-template-columns: 1fr; } }
.chart-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); }
.chart-card .ch-title { display: flex; align-items: baseline; gap: 8px; margin-bottom: 14px; }
.chart-card .ch-title b { font-size: 14.5px; font-weight: 800; }
.chart-card .ch-title span { font-size: 11.5px; color: var(--text-3); font-weight: 600; }
.mchart { display: flex; align-items: flex-end; gap: 6px; height: 150px; }
.mcol { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.mbars { display: flex; gap: 4px; align-items: flex-end; height: 130px; }
.mb { width: 15px; border-radius: 5px 5px 0 0; min-height: 2px; transition: height .3s; }
.mb.r { background: var(--primary); }
.mb.d { background: var(--accent); }
.mlbl { font-size: 11.5px; color: var(--text-3); font-weight: 700; }
.mlegend { display: flex; gap: 16px; margin-top: 12px; font-size: 12px; color: var(--text-2); font-weight: 600; }
.mlegend span { display: flex; align-items: center; gap: 6px; }
.mlegend .ld { width: 10px; height: 10px; border-radius: 3px; }
.mlegend .ld.r { background: var(--primary); }
.mlegend .ld.d { background: var(--accent); }
.hbars { display: flex; flex-direction: column; gap: 10px; }
.hbar { display: grid; grid-template-columns: 96px 1fr auto; gap: 10px; align-items: center; }
.hb-l { font-size: 13px; font-weight: 700; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hb-track { height: 10px; background: var(--surface-2); border-radius: 99px; overflow: hidden; }
.hb-track i { display: block; height: 100%; border-radius: 99px; min-width: 4px; transition: width .3s; }
.hb-v { font-size: 12.5px; font-weight: 800; color: var(--text); white-space: nowrap; }
.pay-row.desp { grid-template-columns: 1.6fr 1fr 1fr auto; }
.pay-row.lanc { grid-template-columns: 1.6fr 1.2fr 0.9fr auto; }
.pay-row .pval.out { color: #EF4444; }
.cat-chip { display: inline-block; font-size: 12px; font-weight: 700; color: var(--text-2); background: var(--surface-2); border: 1px solid var(--border); padding: 3px 10px; border-radius: 99px; }

.fin-summary-old { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 22px; }
.fin-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow-sm); }
.fin-card .fl { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--text-3); margin-bottom: 10px; }
.fin-card .fl .fi { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; }
.fin-card .fv { font-size: 25px; font-weight: 900; letter-spacing: -0.02em; }
.fin-card .fv small { font-size: 14px; font-weight: 800; color: var(--text-3); }
.fin-card.accent { background: linear-gradient(135deg, var(--primary), var(--primary-strong)); color: #fff; border: none; box-shadow: var(--shadow-primary); }
.fin-card.accent .fl { color: rgba(255,255,255,.85); }
.fin-card.accent .fl .fi { background: rgba(255,255,255,.2); }

.pay-table { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.pay-row { display: grid; grid-template-columns: 1.4fr 1.6fr 1fr 0.9fr auto; align-items: center; gap: 14px; padding: 13px 18px; border-top: 1px solid var(--border); }
.pay-row.head { border-top: none; background: var(--surface-2); }
.pay-row.head span { font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--text-3); }
.pay-row .pp { display: flex; align-items: center; gap: 11px; }
.pay-row .pp b { font-size: 14px; font-weight: 800; }
.pay-row .pdesc { font-size: 13.5px; color: var(--text); }
.pay-row .pdate { font-size: 12.5px; color: var(--text-3); font-weight: 600; }
.pay-row .pval { font-size: 15px; font-weight: 800; text-align: right; }

.fin-foot { display: flex; gap: 6px; align-items: center; }

/* ============================================================
   WHATSAPP
   ============================================================ */
.wa-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; align-items: start; }
.wa-auto { display: flex; flex-direction: column; gap: 12px; }
.wa-item { display: flex; align-items: center; gap: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); }
.wa-item .wi { width: 42px; height: 42px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; flex: none; }
.wa-item .wt { flex: 1; min-width: 0; }
.wa-item .wt b { font-size: 14.5px; font-weight: 800; display: block; }
.wa-item .wt p { font-size: 12.5px; color: var(--text-2); margin: 2px 0 0; line-height: 1.4; }
.wa-item .wwhen { font-size: 11px; font-weight: 800; color: var(--text-3); background: var(--surface-2); padding: 3px 9px; border-radius: 99px; }

/* toggle switch */
.switch { width: 44px; height: 26px; border-radius: 99px; background: var(--surface-3); border: none; position: relative; flex: none; transition: background .16s; }
.switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: transform .16s; }
.switch.on { background: var(--primary); }
.switch.on::after { transform: translateX(18px); }

.wa-phone { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; }
.wa-head { display: flex; align-items: center; gap: 11px; padding: 14px 16px; background: var(--primary); color: #fff; }
.wa-head .avatar { width: 38px; height: 38px; }
.wa-head b { font-size: 14.5px; font-weight: 800; }
.wa-head span { font-size: 11.5px; opacity: .85; }
.wa-body { padding: 18px 16px; display: flex; flex-direction: column; gap: 10px; background:
  linear-gradient(var(--surface-2), var(--surface-2)); min-height: 320px; }
.bubble { max-width: 78%; padding: 10px 13px; border-radius: 14px; font-size: 13px; line-height: 1.45; box-shadow: var(--shadow-sm); position: relative; }
.bubble .bmeta { display: block; font-size: 10px; margin-top: 5px; opacity: .7; font-weight: 700; }
.bubble.out { align-self: flex-end; background: color-mix(in oklab, var(--primary) 18%, var(--surface)); border-bottom-right-radius: 4px; }
.bubble.in { align-self: flex-start; background: var(--surface); border-bottom-left-radius: 4px; }
.wa-compose { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--border); }
.wa-compose .ci { flex: 1; background: var(--surface-2); border: 1px solid var(--border); border-radius: 99px; padding: 10px 14px; font-size: 13px; color: var(--text-3); }
.wa-compose .send { width: 40px; height: 40px; border-radius: 50%; background: var(--primary); color: #fff; border: none; display: grid; place-items: center; flex: none; }

@media (max-width: 980px) {
  .fin-summary { grid-template-columns: 1fr 1fr; }
  .wa-layout { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .pay-row { grid-template-columns: 1.4fr auto; }
  .pay-row .hide-sm { display: none; }
}

/* ============================================================
   RELATÓRIO (pais / escola) — layout A4 imprimível
   ============================================================ */
.report-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.report-toolbar .rt-seg { display: inline-flex; gap: 4px; }
.report-stage { background: var(--surface-2); border-radius: var(--radius-lg); padding: 28px; display: flex; justify-content: center; }
.report-page { width: 760px; max-width: 100%; background: #fff; color: #15201e; border-radius: 6px; box-shadow: var(--shadow-lg); padding: 56px 56px 40px; font-size: 13.5px; line-height: 1.6; }
.report-page * { color-scheme: light; }

.rep-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 2px solid #e4ece9; padding-bottom: 18px; margin-bottom: 24px; }
.rep-brand { display: flex; align-items: center; gap: 11px; }
.rep-brand .bk b { font-size: 17px; font-weight: 900; color: #0F766E; letter-spacing: -0.01em; display: block; }
.rep-brand .bk span { font-size: 10.5px; color: #6b817d; font-weight: 700; letter-spacing: .04em; }
.rep-head .rep-doc { text-align: right; font-size: 11px; color: #6b817d; }
.rep-head .rep-doc b { display: block; font-size: 12px; color: #15201e; }

.rep-title { font-size: 21px; font-weight: 900; letter-spacing: -0.02em; margin: 0 0 4px; color: #0c2622; }
.rep-subtitle { font-size: 12.5px; color: #6b817d; margin: 0 0 22px; }

.rep-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; background: #f4f8f7; border: 1px solid #e4ece9; border-radius: 12px; padding: 16px 18px; margin-bottom: 24px; }
.rep-meta .rm { font-size: 12.5px; }
.rep-meta .rm b { color: #6b817d; font-weight: 800; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; display: block; margin-bottom: 2px; }

.rep-sec { margin-bottom: 22px; }
.rep-sec h3 { font-size: 13.5px; font-weight: 900; color: #0F766E; text-transform: uppercase; letter-spacing: .05em; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.rep-sec h3::before { content: ""; width: 4px; height: 16px; border-radius: 3px; background: #FB923C; }
.rep-sec p { margin: 0 0 10px; }
.rep-sec ul { margin: 0; padding-left: 20px; }
.rep-sec li { margin-bottom: 6px; }

.rep-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.rep-stat { background: #f4f8f7; border: 1px solid #e4ece9; border-radius: 12px; padding: 14px 16px; text-align: center; }
.rep-stat b { font-size: 24px; font-weight: 900; color: #0F766E; display: block; }
.rep-stat span { font-size: 11px; color: #6b817d; font-weight: 700; }

.rep-twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.rep-callout { background: #fff7ef; border: 1px solid #fde3c8; border-left: 4px solid #FB923C; border-radius: 10px; padding: 14px 16px; }
.rep-callout b { color: #b5650f; }

.rep-foot { margin-top: 30px; padding-top: 18px; border-top: 1px solid #e4ece9; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.rep-sign { text-align: center; flex: 1; }
.rep-sign .line { border-top: 1px solid #15201e; margin: 36px 20px 6px; }
.rep-sign span { font-size: 11.5px; color: #15201e; font-weight: 700; }
.rep-sign small { font-size: 10px; color: #6b817d; }
.rep-disclaimer { font-size: 9.5px; color: #94a59f; max-width: 240px; line-height: 1.4; }

@media print {
  body { background: #fff; }
  .sidebar, .scrim, .topbar, .rail, .report-toolbar, .banner { display: none !important; }
  .app-grid { display: block !important; height: auto !important; }
  .main-col, .main-scroll { display: block !important; overflow: visible !important; height: auto !important; padding: 0 !important; }
  .report-stage { background: #fff !important; padding: 0 !important; }
  .report-page { box-shadow: none !important; width: 100% !important; max-width: none !important; padding: 0 !important; border-radius: 0 !important; }
  @page { size: A4; margin: 16mm; }
}

@media (max-width: 720px) {
  .report-page { padding: 32px 24px; }
  .rep-meta, .rep-twocol, .rep-stats { grid-template-columns: 1fr; }
}

/* ============================================================
   DASHBOARD (estado ativo / preenchido)
   ============================================================ */
/* ---- Dashboard premium ---- */
.dash-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  background:
    radial-gradient(120% 120% at 100% 0%, rgba(255,255,255,.14), transparent 55%),
    linear-gradient(135deg, var(--primary), var(--primary-strong));
  color: #fff; border-radius: var(--radius-lg); padding: 24px 26px; margin-bottom: 18px; box-shadow: var(--shadow-primary); }
.dash-hero .dh-eyebrow { font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.dash-hero h1 { font-size: 27px; font-weight: 900; letter-spacing: -.02em; margin: 6px 0 4px; }
.dash-hero p { margin: 0; color: rgba(255,255,255,.9); font-size: 14.5px; }
.dash-hero p b { color: #fff; }
.dash-hero .dh-cta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 16px; }
.dash-hero .dh-cta .btn-primary { background: #fff; color: var(--primary-strong); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.dash-hero .dh-cta .btn-primary:hover { background: #f3fbf9; }
.dash-hero .dh-link { background: none; border: none; color: rgba(255,255,255,.92); font-weight: 800; font-size: 13.5px; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.dash-hero .dh-link:hover { color: #fff; text-decoration: underline; }
.dash-hero .dh-pills { display: flex; gap: 10px; flex-wrap: wrap; }
.dash-hero .dh-pill { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); border-radius: 14px; padding: 10px 16px; text-align: center; font-size: 12px; font-weight: 700; color: rgba(255,255,255,.85); }
.dash-hero .dh-pill span { display: block; font-size: 20px; font-weight: 900; color: #fff; letter-spacing: -.02em; }

.dash-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
@media (max-width: 1000px) { .dash-kpis { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .dash-kpis { grid-template-columns: 1fr; } }
.kpi { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
.kpi:hover { border-color: var(--border-2); box-shadow: var(--shadow); }
.kpi .kpi-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.kpi .kpi-ic { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; }
.kpi .kpi-delta { font-size: 11.5px; font-weight: 800; padding: 3px 8px; border-radius: 99px; }
.kpi .kpi-delta.up { color: var(--primary); background: var(--primary-soft); }
.kpi .kpi-delta.down { color: #ef4444; background: rgba(239,68,68,.1); }
.kpi .kpi-val { font-size: 24px; font-weight: 900; letter-spacing: -.02em; }
.kpi .kpi-lbl { font-size: 12.5px; color: var(--text-3); font-weight: 700; margin-top: 2px; }
.kpi .spark { display: block; margin-top: 8px; width: 100%; height: 30px; }

.dash-charts { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; margin-bottom: 18px; align-items: start; }
@media (max-width: 900px) { .dash-charts { grid-template-columns: 1fr; } }
.dbars { display: flex; align-items: flex-end; gap: 10px; height: 150px; padding: 0 18px 16px; }
.dbar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; height: 100%; justify-content: flex-end; }
.dbar-track { width: 100%; max-width: 34px; height: 120px; background: var(--surface-2); border-radius: 8px; display: flex; align-items: flex-end; overflow: hidden; }
.dbar-track i { width: 100%; background: linear-gradient(180deg, var(--primary-light), var(--primary)); border-radius: 8px 8px 0 0; min-height: 3px; transition: height .35s; }
.dbar-col span { font-size: 11.5px; color: var(--text-3); font-weight: 700; }
.dmood { display: flex; align-items: center; gap: 18px; padding: 4px 18px 18px; }
.dmood-ring { position: relative; flex: none; }
.dmood-ring .dmood-c { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.dmood-ring .dmood-c b { font-size: 26px; }
.dmood-ring .dmood-c span { font-size: 12px; font-weight: 800; color: var(--text-2); }
.dmood-bars { flex: 1; display: flex; flex-direction: column; gap: 7px; }
.dmood-row { display: grid; grid-template-columns: 24px 1fr 22px; gap: 9px; align-items: center; }
.dm-emo { font-size: 17px; }
.dm-track { height: 9px; background: var(--surface-2); border-radius: 99px; overflow: hidden; }
.dm-track i { display: block; height: 100%; background: var(--primary); border-radius: 99px; min-width: 3px; transition: width .35s; }
.dm-n { font-size: 12.5px; font-weight: 800; color: var(--text-2); text-align: right; }

.dash-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.dash-head h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 3px; }
.dash-head .dh-sub { color: var(--text-2); font-size: 14px; margin: 0; }
.dash-head .dh-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.dstat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow-sm); transition: transform .14s, box-shadow .2s; }
.dstat:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.dstat .ds-ic { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; margin-bottom: 12px; }
.dstat .ds-val { font-size: 26px; font-weight: 900; letter-spacing: -0.02em; line-height: 1; }
.dstat .ds-lbl { font-size: 12.5px; color: var(--text-3); font-weight: 700; margin-top: 5px; }

.dash-cols { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; align-items: start; }
.dash-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.dash-card .dc-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 12px; }
.dash-card .dc-head b { font-size: 15.5px; font-weight: 800; display: inline-flex; align-items: center; gap: 9px; }
.dash-card .dc-head b svg { color: var(--primary); }

.sess-row { display: flex; align-items: center; gap: 13px; padding: 12px 18px; border-top: 1px solid var(--border); cursor: pointer; transition: background .12s; width: 100%; text-align: left; background: none; }
.sess-row:hover { background: var(--surface-2); }
.sess-row .sr-when { text-align: center; flex: none; width: 52px; }
.sess-row .sr-when b { font-size: 15px; font-weight: 900; display: block; line-height: 1; }
.sess-row .sr-when span { font-size: 10.5px; color: var(--text-3); font-weight: 700; }
.sess-row .sr-info { flex: 1; min-width: 0; }
.sess-row .sr-info b { font-size: 14px; font-weight: 800; display: block; }
.sess-row .sr-info span { font-size: 12px; color: var(--text-3); }

.shortcut-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.shortcut { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; text-align: left; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow-sm); transition: transform .14s, box-shadow .2s, border-color .14s; }
.shortcut:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--primary); }
.shortcut .sc-ic { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; }
.shortcut b { font-size: 13.5px; font-weight: 800; }

.act-row { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--border); }
.act-row .ar-info { flex: 1; min-width: 0; }
.act-row .ar-info b { font-size: 13.5px; font-weight: 800; display: block; }
.act-row .ar-info span { font-size: 12px; color: var(--text-3); }

@media (max-width: 1000px) {
  .dash-stats { grid-template-columns: 1fr 1fr; }
  .dash-cols { grid-template-columns: 1fr; }
}

/* ---------------- Vitrine de planos (app/assinatura-planos.jsx) ---------------- */
.pl-wrap { max-width: 1080px; }

.pl-teste { display: flex; flex-direction: column; gap: 3px; align-items: center; text-align: center; background: var(--primary-soft); border: 1px solid var(--primary-soft-2); border-radius: var(--radius); padding: 16px 20px; margin-bottom: 18px; }
.pl-teste b { font-size: 15.5px; font-weight: 800; color: var(--text); }
.pl-teste span { font-size: 13px; color: var(--text-2); font-weight: 600; }

.pl-ciclo { display: flex; flex-direction: column; align-items: center; gap: 9px; margin-bottom: 22px; }
.pl-economia { font-size: 12.5px; font-weight: 800; color: var(--primary); }

.pl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }

.pl-card { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: 24px 22px; }
.pl-card.rec { border: 2px solid var(--primary); box-shadow: var(--shadow); }
.pl-card.atual { border-color: var(--primary-light); }
.pl-card h3 { margin: 0; font-size: 19px; font-weight: 800; color: var(--text); }

.pl-selo { position: absolute; top: -12px; left: 22px; background: var(--accent); color: #3A2005; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; }

.pl-preco { display: flex; align-items: baseline; gap: 6px; margin: 14px 0 0; }
.pl-preco b { font-size: 32px; font-weight: 800; letter-spacing: -.02em; color: var(--text); }
.pl-preco span { font-size: 13px; font-weight: 700; color: var(--text-3); }
.pl-mes { min-height: 18px; margin: 4px 0 0; font-size: 12px; font-weight: 700; color: var(--primary); }

.pl-feats { list-style: none; margin: 18px 0 0; padding: 18px 0 0; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 10px; }
.pl-feats li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; line-height: 1.45; color: var(--text-2); }
.pl-feats li.forte { color: var(--text); font-weight: 800; }
.pl-feats li svg { flex: none; margin-top: 2px; color: var(--primary); }

.pl-foot { margin-top: auto; padding-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.pl-cta { width: 100%; justify-content: center; }
.pl-atual { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 11px 14px; border-radius: var(--radius-sm); background: var(--primary-soft); color: var(--primary); font-size: 13.5px; font-weight: 800; }
.pl-espera { margin: 0; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--surface-2); color: var(--text-2); font-size: 13px; font-weight: 700; line-height: 1.5; text-align: center; }
.pl-espera a { color: var(--primary); font-weight: 800; }
.pl-nota { margin: 0; font-size: 12px; font-weight: 700; color: var(--text-3); text-align: center; }

.pl-explica { margin-top: 26px; background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 22px; }
.pl-explica p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.6; color: var(--text-2); }
.pl-explica p:last-child { margin-bottom: 0; }
.pl-explica b { color: var(--text); font-weight: 800; }

@media (max-width: 900px) {
  .pl-grid { grid-template-columns: 1fr; }
  .pl-card.rec { order: -1; }
}

/* ---------------- Faixa de assinatura (app/assinatura-faixas.jsx) ---------------- */
.fx { display: flex; align-items: center; gap: 13px; padding: 12px 22px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.fx-ic { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: none; border-radius: 11px; }
.fx-txt { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 2px; }
.fx-txt b { font-size: 13.5px; font-weight: 800; }
.fx-txt span { font-size: 12.5px; line-height: 1.45; opacity: .92; }
.fx-acoes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fx-btn { background: #fff; color: var(--primary); border: none; font-weight: 800; }
.fx-btn-ghost { background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.35); font-weight: 800; }
.fx-btn-ghost:hover { background: rgba(255,255,255,.26); }

.fx-neutro { background: var(--primary-soft); color: var(--text); }
.fx-neutro .fx-ic { background: var(--primary-soft-2); color: var(--primary); }
.fx-neutro .fx-btn-ghost { background: none; color: var(--primary); border-color: var(--primary); }
.fx-neutro .fx-btn-ghost:hover { background: var(--primary-soft-2); }

.fx-urgente { background: linear-gradient(120deg, var(--accent-strong), #D9660F); color: #fff; border-bottom-color: transparent; }
.fx-urgente .fx-ic { background: rgba(255,255,255,.2); color: #fff; }
.fx-urgente .fx-btn { color: #B4530C; }

.fx-leitura { background: linear-gradient(120deg, var(--primary), var(--primary-strong)); color: #fff; border-bottom-color: transparent; }
.fx-leitura .fx-ic { background: rgba(255,255,255,.2); color: #fff; }

@media (max-width: 700px) {
  .fx { padding: 11px 14px; gap: 10px; }
  .fx-acoes { width: 100%; }
  .fx-acoes > * { flex: 1; justify-content: center; }
}

/* ---------------- Arquivar paciente e teto do plano (app/pacientes.jsx) ---------------- */
.prow-wrap { display: flex; align-items: stretch; gap: 8px; }
.prow-wrap .prow { flex: 1; min-width: 0; }
.prow.arquivado { opacity: .68; }
.prow.arquivado .who b { text-decoration: line-through; text-decoration-color: var(--text-3); }
.prow-arq { flex: none; align-self: stretch; padding: 0 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--text-2); font-size: 12.5px; font-weight: 800; box-shadow: var(--shadow-sm); }
.prow-arq:hover { color: var(--primary); border-color: var(--primary); }

.teto { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: var(--accent-soft); border: 1px solid rgba(251,146,60,.35); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 16px; }
.teto-ic { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: 12px; background: rgba(251,146,60,.22); color: var(--accent-strong); }
.teto-txt { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 3px; }
.teto-txt b { font-size: 14.5px; font-weight: 800; color: var(--text); }
.teto-txt span { font-size: 12.5px; line-height: 1.5; color: var(--text-2); }
.teto-acoes { display: flex; gap: 8px; flex-wrap: wrap; }

@media (max-width: 700px) {
  .prow-arq { padding: 0 10px; font-size: 12px; }
}
.modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 0 22px 20px; }

/* ---------------- Configurações › Assinatura (app/assinatura-config.jsx) ---------------- */
.as-linha { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px dashed var(--border); }
.as-linha:last-of-type { border-bottom: none; }
.as-rot { font-size: 12.5px; font-weight: 700; color: var(--text-3); }
.as-val { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: 14.5px; font-weight: 800; color: var(--text); text-align: right; }
.as-val em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--text-3); }
.as-acoes { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
