/* ============================================================
   FICHA PROFISSIONAL (02/out/2026) · sete abas, subabas,
   Acompanhamento, Visão geral, régua e marcos.
   Painel Clínico: palco claro, cartões brancos, Mirante nos
   títulos, dourado só como acento. Sem vermelho, sem urgência.
   ============================================================ */

/* ── subabas (o mesmo traço do prontuário: sublinhado dourado) ── */
.fi-tabsbar .v2fi-tabs { width: 100%; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 2px; }
.fi-tabsbar .v2fi-tabs::-webkit-scrollbar { display: none; }
.fi-tabsbar .v2fi-tab { padding: 8px 10px; flex: none; }
@media (max-width: 1500px) and (min-width: 721px) { .fi-tabsbar .v2fi-tab { padding: 8px 8px; font-size: 11.5px; } }
.fi-subbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(46,42,38,.08); margin-top: -4px; min-height: 30px; }
.fi-subbar .v2save { margin-bottom: 8px; }
.fi-subtabs { display: flex; gap: 22px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 0 2px; min-width: 0; flex: 0 1 auto; }
.fi-subtabs::-webkit-scrollbar { display: none; }
.fi-subbar .v2save { flex: 1 1 0; justify-content: flex-end; }
.fi-subtab { background: transparent; border: none; cursor: pointer; font-family: inherit; font-size: 12.5px; color: #8D7B6A; padding: 0 0 11px; margin-bottom: -1px; border-bottom: 2px solid transparent; white-space: nowrap; text-transform: none; letter-spacing: 0; }
.fi-subtab:hover { color: #241F1B; }
.fi-subtab.on { font-weight: 700; color: #241F1B; border-bottom-color: #CAA967; }
.fi-tabsbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* ── base dos cartões ── */
.fi-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fi-card { background: #FFFFFF; border: 1px solid rgba(46,42,38,.08); border-radius: 16px; padding: 20px 24px; box-shadow: 0 1px 2px rgba(46,42,38,.04); min-width: 0; }
.fi-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.fi-card-tit { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: #241F1B; }
.fi-sub { font-size: 11.5px; color: #8D7B6A; line-height: 1.45; }
.fi-note { font-size: 10.5px; color: #A99B8C; line-height: 1.5; margin-top: 12px; }
.fi-eyebrow { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: #9B7B3E; font-weight: 700; margin-bottom: 6px; }
.fi-vazio { font-size: 12.5px; color: #8D7B6A; padding: 8px 0; line-height: 1.55; }
.fi-link { background: none; border: none; padding: 0; font-family: inherit; font-size: 11.5px; font-weight: 600; color: #A5654E; cursor: pointer; text-decoration: none; }
.fi-link:hover { text-decoration: underline; }
.fi-tag { display: inline-flex; margin-left: 8px; font-size: 9.5px; font-weight: 600; letter-spacing: .04em; color: #7A6E63; background: #F4EFE7; border-radius: 20px; padding: 2px 8px; vertical-align: 1px; }
details.fi-card > summary, .fi-mes > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
details.fi-card > summary::-webkit-details-marker, .fi-mes > summary::-webkit-details-marker { display: none; }
.fi-caret { margin-left: auto; width: 8px; height: 8px; border-right: 1.5px solid #A99B8C; border-bottom: 1.5px solid #A99B8C; transform: rotate(45deg); transition: transform .15s; align-self: center; }
details[open] > summary .fi-caret { transform: rotate(225deg); }

/* ── topo do Acompanhamento ── */
.fi-topo { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 0 2px; }
.fi-onb-barra { flex: 0 0 90px; height: 3px; background: rgba(46,42,38,.1); border-radius: 3px; overflow: hidden; align-self: center; }
.fi-onb-barra span { display: block; height: 100%; background: #CAA967; }

/* ── contrato ── */
.fi-contrato { background: #FFFFFF; border: 1px solid rgba(46,42,38,.08); border-radius: 16px; padding: 20px 24px 14px; box-shadow: 0 1px 2px rgba(46,42,38,.04); min-width: 0; }
.fi-contrato.is-antigo { background: #FCFAF6; }
.fi-contrato.is-cancelado, .fi-contrato.is-concluido { background: #FCFAF6; }
.fi-ct-head { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid rgba(46,42,38,.07); }
.fi-ct-grupo { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: #9B7B3E; font-weight: 700; }
.fi-ct-nome { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: #241F1B; margin: 4px 0 3px; line-height: 1.25; }
.fi-ct-meta { font-size: 11.5px; color: #7A6E63; }
.fi-ct-dir { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.fi-status { font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 9px; border-radius: 4px; color: #4E5A40; background: rgba(95,107,78,.12); }
.fi-status.s-pausado { color: #8A6E38; background: rgba(202,169,103,.16); }
.fi-status.s-concluido, .fi-status.s-cancelado { color: #7A6E63; background: #F1EBE0; }
.fi-onde { font-size: 11.5px; color: #241F1B; font-weight: 600; }
.fi-ct-nota { font-size: 12px; color: #5A5049; background: #FBF8F2; border-radius: 10px; padding: 10px 13px; margin-top: 10px; }
.fi-ct-pe { display: flex; justify-content: flex-end; margin-top: 8px; }

/* ── entregáveis ── */
.fi-ents { display: flex; flex-direction: column; }
.fi-ent { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, auto) auto; gap: 6px 18px; align-items: center; padding: 13px 0; border-bottom: 1px dashed rgba(46,42,38,.09); }
.fi-ent:last-child { border-bottom: none; }
.fi-ent-nome { font-size: 13px; font-weight: 600; color: #241F1B; }
.fi-ent-regra { font-size: 11px; color: #8D7B6A; margin-top: 2px; }
.fi-ent-num { text-align: right; }
.fi-ent-conta { font-family: var(--font-display); font-size: 14px; font-weight: 600; color: #241F1B; }
.fi-ent.ok .fi-ent-conta { color: #4E5A40; }
.fi-ent-det { font-size: 11px; color: #8D7B6A; margin-top: 1px; }
.fi-ent-acoes { display: flex; gap: 6px; justify-content: flex-end; }
.fi-mini { border: 1px solid rgba(46,42,38,.12); background: #FFF; border-radius: 20px; padding: 4px 10px; font-family: inherit; font-size: 10.5px; font-weight: 600; color: #5A5049; cursor: pointer; white-space: nowrap; }
.fi-mini:hover { border-color: rgba(202,169,103,.6); background: #FBF9F5; }
.fi-ent-regs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fi-reg { font-size: 10.5px; color: #7A6E63; background: #F7F3EC; border-radius: 6px; padding: 2px 8px; }
.fi-x { background: none; border: none; padding: 0 0 0 4px; font-family: inherit; font-size: 10.5px; color: #A5654E; cursor: pointer; }
.fi-dots { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; margin-top: 6px; max-width: 260px; margin-left: auto; }
.fi-dot { width: 8px; height: 8px; border-radius: 50%; border: 1.25px solid rgba(46,42,38,.22); background: transparent; }
.fi-dot.on { background: #CAA967; border-color: #CAA967; }
.fi-dot.extra { border-style: dashed; border-color: #9B7B3E; }

/* ── onboarding ── */
.fi-onb-lista { display: flex; flex-direction: column; margin-top: 12px; }
.fi-onb-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 0; border-top: 1px dashed rgba(46,42,38,.08); }
.fi-onb-tit { font-size: 12.5px; font-weight: 600; color: #241F1B; }
.fi-onb-item.ok .fi-onb-tit { color: #7A6E63; }
.fi-check { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid rgba(46,42,38,.25); background: #FFF; cursor: pointer; position: relative; padding: 0; flex: none; }
.fi-check[aria-pressed="true"] { background: #211D18; border-color: #211D18; }
.fi-check[aria-pressed="true"]::after { content: ''; position: absolute; left: 6px; top: 2.5px; width: 5px; height: 9px; border: solid #F6F2EE; border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }
.fi-check:disabled { cursor: default; opacity: .7; }
.fi-dono { font-size: 10.5px; color: #7A6E63; background: #F4EFE7; border-radius: 20px; padding: 3px 9px; white-space: nowrap; }

/* ── marcos ── */
.fi-marcos { display: flex; align-items: flex-start; overflow-x: auto; padding: 6px 2px 4px; scrollbar-width: thin; }
.fi-marco { flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; width: 62px; text-align: center; }
.fi-marco-no { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid rgba(46,42,38,.2); background: #FFF; display: grid; place-items: center; color: #211D18; }
.fi-marco.feito .fi-marco-no { background: #CAA967; border-color: #CAA967; }
.fi-marco.prox .fi-marco-no { border-color: #211D18; box-shadow: 0 0 0 4px rgba(33,29,24,.07); }
.fi-marco-tit { font-size: 11px; font-weight: 600; color: #241F1B; line-height: 1.2; max-width: 62px; }
.fi-marco:not(.feito):not(.prox) .fi-marco-tit { color: #8D7B6A; font-weight: 500; }
.fi-marco-data { font-size: 10px; color: #A99B8C; }
.fi-marco-fio { flex: 1 1 8px; min-width: 6px; height: 1.5px; background: rgba(46,42,38,.12); margin-top: 11px; }
.fi-marco-fio.feito { background: #CAA967; }

/* ── linha do tempo ── */
.fi-linha { display: flex; flex-direction: column; gap: 4px; }
.fi-mes { border-top: 1px solid rgba(46,42,38,.07); padding: 10px 0 4px; }
.fi-mes:first-child { border-top: none; padding-top: 0; }
.fi-mes-nome { font-family: var(--font-display); font-size: 14px; font-weight: 600; color: #241F1B; }
.fi-itens { list-style: none; margin: 8px 0 4px; padding: 0; display: flex; flex-direction: column; }
.fi-item { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 10px; padding: 5px 0; font-size: 12.5px; color: #2E2A26; position: relative; }
.fi-item-dia { font-size: 11px; color: #8D7B6A; font-variant-numeric: tabular-nums; padding-top: 1px; }
.fi-item-txt { min-width: 0; }
.fi-tipo { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #CFC6B8; margin-right: 9px; vertical-align: 2px; }
.t-consulta .fi-tipo { background: #241F1B; }
.t-bio .fi-tipo { background: #5F6B4E; }
.t-aplic .fi-tipo { background: #A5654E; }
.t-proc .fi-tipo { background: #6B5E8C; }
.t-exame .fi-tipo { background: #4F6F7A; }
.t-plano .fi-tipo, .t-onb .fi-tipo { background: #CAA967; }
.t-marco .fi-tipo { background: transparent; border: 1.5px solid #CAA967; width: 7px; height: 7px; }
.t-extra .fi-tipo { background: transparent; border: 1.25px dashed #9B7B3E; }
.fi-item.t-marco .fi-item-txt { color: #8A6E38; font-weight: 600; }
.fi-item.t-plano .fi-item-txt { font-weight: 600; }

/* ── a jornada inteira (03/out): relação com a Dra. e os ciclos em sequência ── */
.fi-topo-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fi-juntas { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: #241F1B; }
.fi-juntas .fi-sub { font-family: inherit; font-size: 12px; font-weight: 500; }
.fi-ciclo { color: #9B7B3E; font-weight: 600; }
.fi-jcs { list-style: none; margin: 4px 0 0; padding: 0; position: relative; }
.fi-jc { position: relative; padding: 0 0 18px 26px; min-width: 0; }
.fi-jc:last-child { padding-bottom: 2px; }
.fi-jc::before { content: ''; position: absolute; left: 5px; top: 7px; width: 9px; height: 9px; border-radius: 50%; background: #FFF; border: 1.5px solid #CAA967; box-sizing: border-box; }
.fi-jc::after { content: ''; position: absolute; left: 9px; top: 20px; bottom: 0; width: 1.5px; background: rgba(202,169,103,.45); }
.fi-jc:last-child::after { display: none; }
.fi-jc.is-feito::before { background: #CAA967; }
.fi-jc.is-agora::before { background: #211D18; border-color: #211D18; box-shadow: 0 0 0 4px rgba(33,29,24,.07); }
.fi-jc.is-antes::before { border-color: #CFC6B8; }
.fi-jc-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 4px 14px; flex-wrap: wrap; }
.fi-jc-nome { font-family: var(--font-display); font-size: 14.5px; font-weight: 600; color: #241F1B; }
.fi-jc-datas { font-size: 11.5px; color: #8D7B6A; font-variant-numeric: tabular-nums; }
.fi-jc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 5px 0 6px; }
.fi-jc-n, .fi-jc-tag { font-size: 10.5px; color: #7A6E63; border: 1px solid rgba(46,42,38,.1); border-radius: 999px; padding: 2px 9px; line-height: 1.4; }
.fi-jc-n { color: #9B7B3E; border-color: rgba(202,169,103,.5); font-weight: 600; }
.fi-jc-tag.on { color: #241F1B; border-color: rgba(33,29,24,.28); font-weight: 600; }
.fi-jc-res { font-size: 12.5px; color: #2E2A26; line-height: 1.5; }
.fi-jc.is-agora .fi-jc-res { color: #241F1B; }
.fi-jc-det { margin-top: 4px; }
.fi-jc-det > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 600; color: #A5654E; }
.fi-jc-det > summary::-webkit-details-marker { display: none; }
.fi-jc-det > summary .fi-caret { margin-left: 0; width: 6px; height: 6px; }

/* ── visão geral ── */
.fi-olhar { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 0; padding: 0; overflow: hidden; }
.fi-olhar-col { padding: 18px 22px; border-left: 1px solid rgba(46,42,38,.07); min-width: 0; }
.fi-olhar-col:first-child { border-left: none; }
.fi-prod { display: flex; flex-direction: column; padding: 4px 0 6px; }
.fi-prod-nome { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: #241F1B; line-height: 1.25; }
.fi-grande { font-family: var(--font-display); font-size: 17px; font-weight: 600; color: #241F1B; line-height: 1.25; margin-bottom: 2px; }
.fi-mini-ents { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.fi-mini-ent { display: flex; flex-direction: column; gap: 2px; }
.fi-mini-ent .fi-dots { justify-content: flex-start; margin-left: 0; }
.fi-mini-num { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: #241F1B; }
.fi-atalhos { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
/* 03/out · Bella "odeio esses espaços vazios": Wellness Place vira faixa fina e
   "Ir direto" ocupa a largura toda (antes os dois dividiam a linha e o curto deixava buraco) */
.fi-wp-faixa { display: flex; align-items: center; gap: 10px 22px; flex-wrap: wrap; padding-top: 14px; padding-bottom: 14px; }
.fi-wp-acoes { display: flex; flex-wrap: wrap; gap: 6px 22px; list-style: none; margin: 0; padding: 0; font-size: 12.5px; color: #2E2A26; }
.fi-wp-acoes li { display: inline-flex; gap: 8px; align-items: baseline; }
.fi-atalho { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left; background: #FBF8F2; border: 1px solid rgba(46,42,38,.06); border-radius: 11px; padding: 10px 12px; cursor: pointer; font-family: inherit; }
.fi-atalho:hover { border-color: rgba(202,169,103,.55); background: #FFF; }
.fi-atalho-tit { font-size: 12.5px; font-weight: 600; color: #241F1B; }

/* ── modais (contrato, régua, marcos) ── */
.fi-ct-modal { max-width: 600px; }
.fi-rg-modal { max-width: 760px; }
.fi-ops { display: flex; flex-wrap: wrap; gap: 14px 22px; margin: 4px 0 12px; }
.fi-op { display: flex; flex-direction: column; gap: 6px; }
.fi-op-rot { font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: #A99B8C; font-weight: 700; }
.fi-seg { display: inline-flex; background: #EDE7DE; border-radius: 9px; padding: 3px; gap: 2px; }
.fi-seg-b { border: none; background: transparent; border-radius: 7px; padding: 6px 13px; font-family: inherit; font-size: 12px; font-weight: 600; color: #7A6E63; cursor: pointer; }
.fi-seg-b[aria-pressed="true"] { background: #FFF; color: #241F1B; box-shadow: 0 1px 3px rgba(46,42,38,.1); }
.fi-chk { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #2E2A26; margin: 6px 0 12px; cursor: pointer; }
.fi-chk input { margin: 0; accent-color: #211D18; }
.fi-ajuste { background: #FBF8F2; border-radius: 12px; padding: 12px 14px 4px; margin: 6px 0 12px; }
.fi-rg-lista, .fi-mk-lista { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.fi-rg-item, .fi-mk-item { border: 1px solid rgba(46,42,38,.1); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; background: #FFF; }
.fi-rg-l1, .fi-mk-l1 { display: grid; grid-template-columns: minmax(0, 1fr) 170px auto; gap: 8px; align-items: center; }
.fi-mk-l1 { grid-template-columns: 90px 70px minmax(0, 1fr) auto; }
.fi-rg-l2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: #5A5049; }
.fi-rg-l2 .v2s-in { flex: 1 1 180px; min-width: 0; }
.fi-rg-l2 select.v2s-in:first-child { flex: 2 1 280px; }
.inj-field label .fi-sub { text-transform: none; letter-spacing: 0; font-weight: 400; }
.fi-rg-l2 .fi-num, .fi-num { flex: 0 0 64px !important; width: 64px; text-align: center; }
.fi-rg-ord { display: flex; gap: 10px; justify-content: flex-end; white-space: nowrap; }
.fi-mk-item textarea { width: 100%; resize: vertical; font-family: inherit; }

/* ── onboarding inteligente (03/out): o que o sistema provou ── */
.fi-check.is-sis { display: inline-block; cursor: default; background: #F4EFE7; border-color: #CAA967; }
.fi-check.is-sis::after { content: ''; position: absolute; left: 6px; top: 2.5px; width: 5px; height: 9px; border: solid #9B7B3E; border-width: 0 1.8px 1.8px 0; transform: rotate(45deg); }
.fi-dono.is-sis { color: #8A6E38; background: rgba(202,169,103,.14); }

/* ── capa: programa antigo como histórico discreto ── */
.v2fi-mini-row .v.v2fi-antigo { color: var(--v2-ter); font-weight: 500; }

/* ── medicamentos e injetáveis (03/out) ── */
.fj-secao { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fj-card { padding: 20px 24px; }
.fj-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px 18px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--v2-line); }
.fj-nome { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--v2-ink); margin: 2px 0 3px; line-height: 1.25; }
.fj-head-dir { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; text-align: right; }
.fj-conta { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: var(--v2-ink); }
.fj-sec { min-width: 0; padding-top: 14px; }
.fj-grade { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 28px; align-items: start; }
.fj-grade > :only-child { grid-column: 1 / -1; }
/* a escada: degraus que sobem com a dose, o atual em dourado, o próximo tracejado */
.fj-escada { display: flex; align-items: flex-end; gap: 8px; height: 156px; padding: 4px 0 0; overflow-x: auto; scrollbar-width: thin; }
.fj-degrau { flex: 1 1 0; min-width: 96px; max-width: 150px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; }
.fj-degrau-dose { font-family: var(--font-display); font-size: 15px; font-weight: 600; color: var(--v2-ink); }
.fj-degrau-barra { height: calc(var(--fj-h) - 64px); min-height: 14px; border-radius: 8px 8px 3px 3px; background: #EDE6DA; }
.fj-degrau.atual .fj-degrau-barra { background: var(--v2-gold); }
.fj-degrau.futura .fj-degrau-barra { background: transparent; border: 1.5px dashed rgba(155,123,62,.55); }
.fj-degrau.futura .fj-degrau-dose { color: #8A6E38; }
.fj-degrau-pe { font-size: 11px; color: var(--v2-ink); line-height: 1.3; }
.fj-degrau-data { font-size: 10.5px; color: var(--v2-ter); min-height: 13px; }
.fj-linha { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; }
.fj-ap { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; padding: 8px 0; border-top: 1px dashed var(--v2-line); }
.fj-ap:first-child { border-top: none; }
.fj-ap.fut { opacity: .78; }
.fj-ap-dia { font-size: 11.5px; color: var(--v2-sub); font-variant-numeric: tabular-nums; padding-top: 1px; }
.fj-ap-c { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 12.5px; color: var(--v2-ink); }
.fj-ap-c b { font-weight: 600; }
.fj-ap-l1 { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.fj-st { font-size: 10px; font-weight: 600; letter-spacing: .04em; color: #7A6E63; background: #F4EFE7; border-radius: 20px; padding: 1px 8px; }
.fj-st.ok { color: #4E5A40; background: rgba(95,107,78,.12); }
.fj-mais > summary { cursor: pointer; font-size: 11.5px; font-weight: 600; color: var(--v2-link); padding: 6px 0; list-style: none; }
.fj-mais > summary::-webkit-details-marker { display: none; }
.fj-diz { padding: 14px 0 0 18px; border-left: 1px solid var(--v2-line); margin-top: 14px; min-width: 0; }
.fj-diz-p { font-size: 12.5px; line-height: 1.55; color: #3A332C; margin: 6px 0 10px; }
.fj-diz-de { display: block; font-size: 10.5px; color: var(--v2-sub); margin-bottom: 1px; }
.fj-trilha { display: flex; align-items: center; padding: 14px 2px 2px; }
.fj-no { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid rgba(46,42,38,.22); background: #FFF; flex: none; }
.fj-no.ok { background: var(--v2-gold); border-color: var(--v2-gold); }
.fj-no.prox { border-color: var(--v2-ink); box-shadow: 0 0 0 4px rgba(33,29,24,.07); }
.fj-fio { flex: 1 1 10px; height: 1.5px; background: rgba(46,42,38,.12); min-width: 6px; }

/* ── agenda (Acompanhamento › Agenda e registros) ── */
.ag-lista { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; }
.ag-ev { padding: 12px 0; border-top: 1px solid var(--v2-line); }
.ag-ev:first-child { border-top: none; }
.ag-ev-l { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.ag-dia { width: 48px; text-align: center; border-radius: 11px; padding: 6px 0; background: #FBF8F2; border: 1px solid var(--v2-line); }
.ag-dia b { display: block; font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--v2-ink); line-height: 1; }
.ag-dia span { font-size: 10px; color: var(--v2-sub); text-transform: lowercase; }
.ag-ev.passado .ag-dia { background: transparent; }
.ag-c { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ag-tit { font-family: inherit; font-size: 13.5px; font-weight: 600; color: var(--v2-ink); background: none; border: none; padding: 0; text-align: left; cursor: pointer; }
span.ag-tit { cursor: default; }
button.ag-tit:hover { text-decoration: underline; text-decoration-color: rgba(202,169,103,.7); text-underline-offset: 3px; }
.ag-st-w { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.ag-st { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 4px; color: #7A6E63; background: #F1EBE0; white-space: nowrap; }
.ag-st.s-confirmado, .ag-st.s-feito { color: #4E5A40; background: rgba(95,107,78,.12); }
.ag-st.s-agendado { color: #8A6E38; background: rgba(202,169,103,.16); }
.ag-or { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 10px 0 0 62px; padding: 8px 12px; border-radius: 10px; background: #FBF8F2; }
.ag-or-ic { width: 16px; height: 16px; flex: none; fill: none; stroke: #9B7B3E; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ag-or-t { flex: 1 1 200px; font-size: 12px; color: var(--v2-ink); min-width: 0; }
.ag-passados { margin-top: 10px; border-top: 1px solid var(--v2-line); padding-top: 8px; }
.ag-passados > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 10px; font-size: 12.5px; font-weight: 600; color: var(--v2-ink); padding: 4px 0; }
.ag-passados > summary::-webkit-details-marker { display: none; }
.ag-antigo > summary { align-items: baseline; }

/* ── orientações de preparo (editor e modal) ── */
.or-secao { display: flex; flex-direction: column; gap: 14px; }
.or-msg { display: flex; flex-direction: column; gap: 5px; }
.or-k { font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--v2-ter); font-weight: 700; white-space: nowrap; }
.or-secao { container-type: inline-size; }
.or-lista { display: flex; flex-direction: column; gap: 12px; }
.or-corpo { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 14px 22px; align-items: start; }
@container (max-width: 760px) { .or-corpo { grid-template-columns: minmax(0, 1fr); } }
.or-item { border: 1px solid var(--v2-line-strong); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: #FFF; min-width: 0; }
.or-item.off { background: #FBF8F2; }
.or-item.off .or-texto { opacity: .6; }
.or-item-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.or-item .or-tit { flex: 1 1 180px; min-width: 0; width: auto; font-family: var(--font-display); font-size: 15px; font-weight: 600; }
.or-liga { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--v2-sub); cursor: pointer; }
.or-ord { display: inline-flex; gap: 10px; }
.or-texto { width: 100%; resize: vertical; min-height: 96px; font-family: inherit; font-size: 12.5px; line-height: 1.55; }
.or-regra { display: flex; flex-direction: column; gap: 10px; }
.or-regra-l { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; }
.or-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: #3A332C; border: 1px solid var(--v2-line-strong); border-radius: 20px; padding: 3px 10px 3px 7px; cursor: pointer; background: #FFF; }
.or-chip input { margin: 0; width: 13px; height: 13px; }
.or-chip:has(input:checked) { border-color: rgba(202,169,103,.7); background: rgba(202,169,103,.1); }
.or-regra-g { display: grid; grid-template-columns: minmax(0, 1fr) 150px auto; gap: 8px 12px; align-items: end; }
.or-cel { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.or-cel .v2s-in { width: 100%; min-width: 0; }
.or-regra-g .or-rem { padding-bottom: 9px; }
@media (max-width: 560px) { .or-regra-g { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .or-regra-g .or-rem { grid-column: 1 / -1; justify-self: end; padding-bottom: 0; } }
.or-pe { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.or-modal { max-width: 560px; }
.or-m-texto { background: #FBF8F2; border-radius: 12px; padding: 12px 16px; margin-bottom: 14px; }
.or-m-texto p { margin: 6px 0; font-size: 13px; line-height: 1.55; color: #2E2A26; }
.or-m-acoes { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
#or-m-msg, #or-m-texto { width: 100%; resize: vertical; font-family: inherit; font-size: 12.5px; line-height: 1.5; }

/* ── CUIDADO (03/out): faixas que fecham juntas, sem buraco ── */
.cu-wrap { container-type: inline-size; container-name: cuidado; min-width: 0; }
.cu-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: stretch; }
.cu-metas, .cu-tarefas, .cu-largo { grid-column: 1 / -1; }
.cu-card { background: #FFF; border: 1px solid var(--v2-line); border-radius: 16px; padding: 20px 22px; box-shadow: var(--v2-shadow); min-width: 0; display: flex; flex-direction: column; }
.cu-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px 14px; flex-wrap: wrap; margin-bottom: 12px; }
.cu-eyebrow { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: #9B7B3E; font-weight: 700; margin-bottom: 3px; }
.cu-tit { font-family: var(--font-display); font-size: 17px; font-weight: 600; color: var(--v2-ink); margin: 0; line-height: 1.2; }
.cu-nota { font-size: 11.5px; color: var(--v2-sub); line-height: 1.45; margin: 0; }
p.cu-nota { margin: -4px 0 12px; }
.cu-dica { font-size: 11px; color: var(--v2-ter); line-height: 1.45; }
.cu-rot { font-size: 11.5px; font-weight: 600; color: #3A332C; }
.cu-vazio { font-size: 12.5px; color: var(--v2-sub); padding: 6px 0; }
.cu-campo { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.cu-ta { width: 100%; min-height: 58px; resize: vertical; border: 1px solid var(--v2-line-strong); border-radius: 12px; padding: 10px 12px; font-family: inherit; font-size: 13px; line-height: 1.5; color: var(--v2-ink); background: #FFF; overflow: hidden; }
.cu-ta:focus { outline: none; border-color: var(--v2-gold); }
.cu-porques { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 18px; }
.cu-evol { display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 10px 14px; margin-bottom: 14px; border-radius: 12px; background: #FBF8F2; }
.cu-evol-i { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.cu-evol-i b { font-family: var(--font-display); font-size: 16px; font-weight: 600; color: var(--v2-ink); }
.cu-ia { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--v2-line); }
.cu-ia-acoes { margin-top: 10px; padding: 10px 14px; border-radius: 10px; background: rgba(202,169,103,.12); align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12px; color: #8A6E38; }
.cu-btn { border: none; border-radius: 11px; padding: 8px 14px; font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer; background: #211D18; color: #F6F2EE; white-space: nowrap; }
.cu-btn:hover { background: #3A332C; }
.cu-btn-ghost { border: 1px solid var(--v2-line-strong); border-radius: 11px; padding: 7px 13px; font-family: inherit; font-size: 12px; font-weight: 600; cursor: pointer; background: #FFF; color: var(--v2-ink); white-space: nowrap; }
.cu-btn-ghost:hover { border-color: rgba(202,169,103,.6); background: #FBF9F5; }
.cu-link { background: none; border: none; padding: 0; font-family: inherit; font-size: 11.5px; font-weight: 600; color: var(--v2-link); cursor: pointer; text-decoration: none; }
.cu-link:hover { text-decoration: underline; }
.cu-link-sub { color: var(--v2-ter); }
.cu-pill { font-size: 10px; font-weight: 600; letter-spacing: .04em; color: #7A6E63; background: #F4EFE7; border-radius: 20px; padding: 2px 9px; white-space: nowrap; align-self: start; }
.cu-pill.ok { color: #4E5A40; background: rgba(95,107,78,.12); }
.cu-mais { margin-top: 6px; }
.cu-mais > summary { cursor: pointer; font-size: 11.5px; font-weight: 600; color: var(--v2-link); padding: 6px 0; list-style: none; }
.cu-mais > summary::-webkit-details-marker { display: none; }
.cu-pe { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 12px; }
.cu-sel { font-family: inherit; font-size: 12px; padding: 7px 9px; border: 1px solid var(--v2-line-strong); border-radius: 10px; background: #FFF; color: var(--v2-ink); max-width: 240px; min-width: 0; }
/* Diálogo: o que ela lê, em destaque */
.cu-dialogo { border-color: rgba(202,169,103,.45); background: linear-gradient(180deg, #FFFDF8, #FFF 140px); box-shadow: 0 1px 2px rgba(46,42,38,.04), inset 3px 0 0 var(--v2-gold); }
.cu-carta { padding: 12px 0; border-top: 1px dashed var(--v2-line); }
.cu-carta:first-of-type { border-top: none; padding-top: 2px; }
.cu-carta-topo { display: flex; align-items: center; gap: 8px; }
.cu-carta-txt { font-family: var(--font-display); font-style: italic; font-size: 14.5px; line-height: 1.6; color: #2E2A26; white-space: pre-wrap; margin: 4px 0 8px; }
.cu-carta-pe { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.cu-acoes { display: inline-flex; gap: 12px; }
.cu-medica .cu-citacao { flex: 1 1 auto; min-height: 96px; font-family: var(--font-display); font-style: italic; font-size: 14.5px; background: #FBF8F2; border-color: transparent; }
/* Metas diárias: uma linha por meta, o interruptor e o alvo juntos */
.cu-diarias-grade { display: flex; flex-direction: column; }
.cu-diaria { display: flex; align-items: center; justify-content: space-between; gap: 10px 14px; padding: 9px 2px; border-top: 1px solid var(--v2-line); min-width: 0; flex-wrap: wrap; }
.cu-diaria:first-child { border-top: none; }
.cu-switch { position: relative; display: flex; align-items: center; gap: 11px; cursor: pointer; min-width: 0; flex: 1 1 160px; } /* 03/out: sem o relative a caixinha invisível ficava lá embaixo da página e o clique rolava a tela pro vazio */
.cu-switch input { position: absolute; left: 0; top: 50%; opacity: 0; width: 1px; height: 1px; margin: 0; }
.cu-switch-t { width: 30px; height: 18px; border-radius: 20px; background: rgba(46,42,38,.18); position: relative; flex: none; transition: background .15s; }
.cu-switch-t::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #FFF; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .15s; }
.cu-switch input:checked + .cu-switch-t { background: #211D18; }
.cu-switch input:checked + .cu-switch-t::after { transform: translateX(12px); }
.cu-switch input:focus-visible + .cu-switch-t { outline: 2px solid var(--v2-gold); outline-offset: 2px; }
.cu-diaria-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.cu-diaria-nome { font-size: 13px; font-weight: 600; color: var(--v2-ink); }
.cu-diaria:not(.on) .cu-diaria-nome { color: var(--v2-sub); font-weight: 500; }
.cu-meta { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--v2-sub); flex: none; }
.cu-meta input { width: 78px; flex: none; border: 1px solid var(--v2-line-strong); border-radius: 9px; padding: 6px 9px; font-family: inherit; font-size: 13px; color: var(--v2-ink); background: #FFF; text-align: right; }
.cu-meta input:focus { outline: none; border-color: var(--v2-gold); }
.cu-meta span { width: 64px; }
.cu-diaria:not(.on) .cu-meta { opacity: .55; }
.cu-rodape { margin: 0; padding-top: 10px; }
/* Hábitos */
.cu-hab-lista { display: flex; flex-direction: column; gap: 4px; }
.cu-habito { display: grid; grid-template-columns: 40px minmax(0, 1fr) 42px 28px; gap: 4px 8px; align-items: center; padding: 6px 0; }
.cu-hab-ic { width: 40px; height: 34px; text-align: center; border: 1px solid var(--v2-line-strong); border-radius: 9px; font-size: 15px; background: #FFF; }
.cu-hab-t { width: 100%; min-width: 0; height: 34px; border: 1px solid var(--v2-line-strong); border-radius: 9px; padding: 0 10px; font-family: inherit; font-size: 13px; color: var(--v2-ink); background: #FFF; }
.cu-hab-ic:focus, .cu-hab-t:focus { outline: none; border-color: var(--v2-gold); }
.cu-hab-pct { font-size: 12px; font-weight: 600; color: var(--v2-ink); text-align: right; font-variant-numeric: tabular-nums; }
.cu-x { width: 28px; height: 28px; border-radius: 8px; border: none; background: transparent; cursor: pointer; display: grid; place-items: center; }
.cu-x svg { width: 11px; height: 11px; stroke: var(--v2-ter); stroke-width: 1.6; stroke-linecap: round; }
.cu-x:hover { background: #F4EFE7; }
.cu-hab-barra { grid-column: 2 / 4; height: 3px; border-radius: 3px; background: #EFEAE2; overflow: hidden; }
.cu-hab-barra span { display: block; height: 100%; background: var(--v2-gold); }
/* Tarefas (largura toda: duas colunas de tarefas quando cabe) */
.cu-tarefas-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 0 28px; }
.cu-tarefa { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 0; border-top: 1px dashed var(--v2-line); align-content: start; }
.cu-tarefa.feita .cu-tarefa-t { text-decoration: line-through; color: var(--v2-sub); }
.cu-tarefa-c { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cu-tarefa-t { font-size: 13.5px; font-weight: 600; color: var(--v2-ink); }
.cu-tarefa .cu-acoes { grid-column: 1 / -1; }
.cu-resp { margin: 6px 0 0; padding: 7px 11px; border-left: 2px solid var(--v2-verde); background: rgba(95,107,78,.06); font-size: 12px; font-style: italic; color: #4E5A40; border-radius: 0 6px 6px 0; }
/* ficha estreita (tablet, celular): uma coluna, na mesma ordem */
@container cuidado (max-width: 720px) {
  .cu-grade { grid-template-columns: minmax(0, 1fr); }
}
@container cuidado (max-width: 460px) {
  .cu-card { padding: 16px; border-radius: 14px; }
  .cu-habito { grid-template-columns: 38px minmax(0, 1fr) 28px; }
  .cu-hab-pct { grid-column: 2; grid-row: 2; text-align: left; font-size: 11px; color: var(--v2-sub); }
  .cu-hab-barra { grid-column: 2 / 4; }
  .cu-x { grid-column: 3; grid-row: 1; }
  .cu-meta span { width: auto; }
}

/* ── celular ── */
@media (max-width: 720px) {
  .fi-card, .fi-contrato { padding: 16px 16px 12px; border-radius: 14px; }
  .fi-ent { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .fi-ent-num { text-align: left; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
  .fi-ent-num .fi-dots { flex-basis: 100%; justify-content: flex-start; margin: 2px 0 0; max-width: none; }
  .fi-ent-acoes { justify-content: flex-start; }
  .fi-ent > span:empty { display: none; }
  .fi-olhar { grid-template-columns: 1fr; }
  .fi-olhar-col { border-left: none; border-top: 1px solid rgba(46,42,38,.07); padding: 14px 16px; }
  .fi-olhar-col:first-child { border-top: none; }
  .fi-ct-dir { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 10px; }
  .fi-rg-l1 { grid-template-columns: 1fr; }
  .fi-mk-l1 { grid-template-columns: 90px 70px minmax(0, 1fr); }
  .fi-mk-l1 .fi-link { grid-column: 1 / -1; justify-self: end; }
  .fi-subtabs { gap: 16px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .fi-subbar { flex-direction: column; align-items: stretch; }
  .fi-subbar .v2save { margin: 0 0 6px; justify-content: flex-end; }
  .fi-subtabs::-webkit-scrollbar { display: none; }
  .fj-card { padding: 16px; }
  .fj-head-dir { align-items: flex-start; text-align: left; }
  .fj-grade { grid-template-columns: minmax(0, 1fr); }
  .fj-diz { border-left: none; padding-left: 0; border-top: 1px solid var(--v2-line); }
  .fj-escada { height: 150px; }
  .fj-degrau { min-width: 84px; }
  .ag-ev-l { grid-template-columns: 44px minmax(0, 1fr); }
  .ag-st-w { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 6px 8px; }
  .ag-or { margin-left: 0; }
}

/* ── Desde o início (03/out) · a jornada inteira numa linha só ── */
.fi-desde .fi-di-topo { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 18px; }
.fi-di-grande { font-family: var(--font-display, 'Mirante', serif); font-size: 22px; font-weight: 500; color: #241F1B; line-height: 1.2; }
.fi-di-trilho { position: relative; height: 34px; margin: 0 6px; }
.fi-di-fundo { position: absolute; left: 0; right: 0; top: 14px; height: 6px; border-radius: 99px; background: rgba(46,42,38,.08); }
.fi-di-seg { position: absolute; top: 14px; height: 6px; border-radius: 99px; background: #D9C69A; box-shadow: 0 0 0 2px #FFFFFF; }
.fi-di-seg.feito { background: #CAA967; }
.fi-di-seg.outro { background: #E6D9BC; }
.fi-di-seg.agora { background: #8A6B26; }
.fi-di-seg.futuro { background: transparent; box-shadow: inset 0 0 0 1px #CAA967, 0 0 0 2px #FFFFFF; }
.fi-di-marco { position: absolute; top: 11px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1.5px #CAA967; z-index: 2; }
.fi-di-marco.vivido { background: #CAA967; box-shadow: 0 0 0 2px #FFFFFF; }
.fi-di-marco.prox { box-shadow: inset 0 0 0 2px #8A6B26, 0 0 0 4px rgba(202,169,103,.25); }
.fi-di-hoje { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1.5px solid #241F1B; z-index: 3; }
.fi-di-hoje i { position: absolute; top: -16px; left: 50%; transform: translateX(-50%); font-style: normal; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #241F1B; font-weight: 700; white-space: nowrap; }
.fi-di-pontas { display: flex; justify-content: space-between; font-size: 11.5px; color: #8D7B6A; margin: 2px 6px 0; }
.fi-di-lista { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.fi-di-lista li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: #FBF9F5; border: 1px solid rgba(46,42,38,.06); }
.fi-di-lista li.agora { background: #FBF6EA; border-color: rgba(138,107,38,.35); }
.fi-di-pt { width: 10px; height: 10px; border-radius: 50%; background: #CAA967; margin-top: 5px; flex: none; }
.fi-di-lista li.agora .fi-di-pt { background: #8A6B26; box-shadow: 0 0 0 3px rgba(202,169,103,.3); }
.fi-di-lista li.futuro .fi-di-pt { background: #FFFFFF; box-shadow: inset 0 0 0 1.5px #CAA967; }
.fi-di-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fi-di-txt b { font-size: 14px; font-weight: 600; color: #241F1B; }
.fi-di-res { font-size: 12px; color: #5E534A; line-height: 1.45; margin-top: 3px; }
@media (max-width: 640px) { .fi-di-grande { font-size: 19px; } .fi-di-lista { grid-template-columns: 1fr; } }
