/* ============================================================
   Nossa Bússola — CSS do app, direto do design system (Claude Design, 17/09/2026).
   Tokens copiados de tokens/*.css; componentes traduzidos de components/core/*.jsx.
   Mobile-first: largura de projeto 390, fluido 360–430; em tela grande centraliza.
   ============================================================ */
@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&display=swap");

:root {
  --nb-blue-900:#0F3A57; --nb-blue-700:#154B70; --nb-blue-600:#1B5E8C; --nb-blue-400:#4F8DB8; --nb-blue-300:#6FA8D4; --nb-blue-100:#E3EEF6;
  --nb-coral-600:#C24F2C; --nb-coral-500:#D9603B; --nb-coral-100:#FBE9E2;
  --nb-sand-50:#FBFAF7; --nb-sand-100:#F6F3EE; --nb-sand-200:#EFEAE2; --nb-sand-300:#E2DCD2; --nb-sand-400:#CFC7BA;
  --nb-ink-900:#1E2126; --nb-ink-700:#3A3F47; --nb-ink-500:#5B6068; --nb-ink-300:#8A9099; --nb-white:#FFFFFF;

  --nb-primary:var(--nb-blue-600); --nb-primary-strong:var(--nb-blue-700); --nb-primary-soft:var(--nb-blue-100); --nb-on-primary:var(--nb-white);
  --nb-accent:var(--nb-coral-500); --nb-accent-strong:var(--nb-coral-600); --nb-accent-soft:var(--nb-coral-100); --nb-on-accent:var(--nb-white);
  --nb-bg:var(--nb-sand-100); --nb-surface:var(--nb-white); --nb-surface-2:var(--nb-sand-200); --nb-surface-raised:var(--nb-white);
  --nb-border:var(--nb-sand-300); --nb-border-strong:var(--nb-sand-400);
  --nb-text:var(--nb-ink-900); --nb-text-2:var(--nb-ink-500); --nb-text-3:var(--nb-ink-300); --nb-text-inverse:var(--nb-sand-50);
  --nb-overlay:rgba(30,33,38,0.48);
  --nb-success:#2F8F6B; --nb-success-soft:#E1F2EA; --nb-warning:#C98A1B; --nb-warning-soft:#FBF0D9; --nb-danger:#C6453A; --nb-danger-soft:#FAE3E0;
  --nb-info:var(--nb-blue-600); --nb-info-soft:var(--nb-blue-100);

  /* cor de cada módulo (do DS) + as três que o app tem a mais, no mesmo espírito */
  --nb-mod-saude:#2F8F6B; --nb-mod-saude-soft:#E1F2EA;
  --nb-mod-financas:#1B5E8C; --nb-mod-financas-soft:#E3EEF6;
  --nb-mod-agenda:#7A4FB3; --nb-mod-agenda-soft:#EEE7F7;
  --nb-mod-documentos:#B07A2A; --nb-mod-documentos-soft:#F8EDDA;
  --nb-mod-metas:#D9603B; --nb-mod-metas-soft:#FBE9E2;
  --nb-mod-listas:#2A8FA0; --nb-mod-listas-soft:#E0F1F4;
  --nb-mod-projetos:#5D6B7A; --nb-mod-projetos-soft:#E8ECF0;
  --nb-mod-casa:#5D6B7A; --nb-mod-casa-soft:#E8ECF0;
  --nb-mod-filhos:#B3487F; --nb-mod-filhos-soft:#F7E4EE;
  --nb-mod-cofre:#3A3F47; --nb-mod-cofre-soft:#E8E9EC;
  --nb-mod-familia:#1B5E8C; --nb-mod-familia-soft:#E3EEF6;

  --nb-font-ui:"Outfit",system-ui,-apple-system,sans-serif; --nb-font-display:"Newsreader",Georgia,serif;
  --nb-text-xs:12px; --nb-text-sm:13px; --nb-text-base:15px; --nb-text-md:17px; --nb-text-lg:20px; --nb-text-xl:24px; --nb-text-2xl:32px; --nb-text-3xl:40px;
  --nb-tracking-caps:0.08em; --nb-tracking-tight:-0.01em;
  --nb-space-1:4px; --nb-space-2:8px; --nb-space-3:12px; --nb-space-4:16px; --nb-space-5:20px; --nb-space-6:24px; --nb-space-7:32px; --nb-space-8:40px;
  --nb-radius-xs:6px; --nb-radius-sm:10px; --nb-radius-md:16px; --nb-radius-lg:24px; --nb-radius-full:999px;
  --nb-screen-pad:20px; --nb-tabbar-h:64px; --nb-touch:44px; --nb-control-h:48px; --nb-control-h-sm:36px;
  --nb-shadow-card:0 1px 2px rgba(30,33,38,0.05),0 4px 14px rgba(30,33,38,0.06);
  --nb-shadow-raised:0 2px 6px rgba(30,33,38,0.08),0 12px 32px rgba(30,33,38,0.12);
  --nb-shadow-sheet:0 -8px 40px rgba(30,33,38,0.18);
  --nb-ease:cubic-bezier(0.2,0.8,0.2,1); --nb-dur-fast:120ms; --nb-dur:200ms; --nb-dur-slow:320ms;
  --nb-blur-bar:saturate(1.4) blur(16px);
  color-scheme:light;
}
[data-theme="dark"] {
  --nb-primary:var(--nb-blue-300); --nb-primary-strong:var(--nb-blue-400); --nb-primary-soft:rgba(111,168,212,0.16); --nb-on-primary:var(--nb-blue-900);
  --nb-accent:#E8795A; --nb-accent-strong:var(--nb-coral-500); --nb-accent-soft:rgba(232,121,90,0.16); --nb-on-accent:#2A140C;
  --nb-bg:#12151A; --nb-surface:#1B1F26; --nb-surface-2:#242932; --nb-surface-raised:#242932; --nb-border:#303641; --nb-border-strong:#3E4552;
  --nb-text:#F2EFE9; --nb-text-2:#A9AEB7; --nb-text-3:#737983; --nb-text-inverse:var(--nb-ink-900); --nb-overlay:rgba(0,0,0,0.6);
  --nb-success:#4FB08C; --nb-success-soft:rgba(79,176,140,0.16); --nb-warning:#E0A53A; --nb-warning-soft:rgba(224,165,58,0.16); --nb-danger:#E2675C; --nb-danger-soft:rgba(226,103,92,0.16);
  --nb-info:var(--nb-blue-300); --nb-info-soft:rgba(111,168,212,0.16);
  --nb-mod-saude:#4FB08C; --nb-mod-saude-soft:rgba(79,176,140,0.16); --nb-mod-financas:#6FA8D4; --nb-mod-financas-soft:rgba(111,168,212,0.16);
  --nb-mod-agenda:#A88AD6; --nb-mod-agenda-soft:rgba(168,138,214,0.16); --nb-mod-documentos:#D2A25A; --nb-mod-documentos-soft:rgba(210,162,90,0.16);
  --nb-mod-metas:#E8795A; --nb-mod-metas-soft:rgba(232,121,90,0.16); --nb-mod-listas:#5BB6C6; --nb-mod-listas-soft:rgba(91,182,198,0.16);
  --nb-mod-projetos:#98A4B2; --nb-mod-projetos-soft:rgba(152,164,178,0.16); --nb-mod-casa:#98A4B2; --nb-mod-casa-soft:rgba(152,164,178,0.16);
  --nb-mod-filhos:#D98AB5; --nb-mod-filhos-soft:rgba(217,138,181,0.16); --nb-mod-cofre:#A9AEB7; --nb-mod-cofre-soft:rgba(169,174,183,0.16); --nb-mod-familia:#6FA8D4; --nb-mod-familia-soft:rgba(111,168,212,0.16);
  --nb-shadow-card:0 1px 2px rgba(0,0,0,0.3),0 4px 14px rgba(0,0,0,0.3); --nb-shadow-raised:0 2px 6px rgba(0,0,0,0.4),0 12px 32px rgba(0,0,0,0.5); --nb-shadow-sheet:0 -8px 40px rgba(0,0,0,0.6);
  color-scheme:dark;
}

/* ---- base ---- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;overflow-x:clip;background:var(--nb-bg);color:var(--nb-text);font-family:var(--nb-font-ui);font-size:var(--nb-text-base);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100%}
body{overscroll-behavior-y:none}
/* iPhone: campo com fonte menor que 16px faz o Safari dar zoom ao focar e a barra fixa sai do lugar. Vale pra todo campo, dentro ou fora de .campo */
input,select,textarea{font-size:16px} input[type=checkbox],input[type=radio]{font-size:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
h1,h2,h3{margin:0;font-weight:600}
.display{font-family:var(--nb-font-display);font-weight:500;letter-spacing:var(--nb-tracking-tight);line-height:1.15}
.caps{font-size:var(--nb-text-xs);font-weight:600;letter-spacing:var(--nb-tracking-caps);text-transform:uppercase;color:var(--nb-text-2)}
.num{font-variant-numeric:tabular-nums}
.t2{color:var(--nb-text-2)} .t3{color:var(--nb-text-3)} .sm{font-size:var(--nb-text-sm)}
svg.lucide{width:20px;height:20px;stroke-width:1.75}
.caixa:not(.campo .caixa):not(.sd-chat-form .caixa){display:inline-flex;align-items:center;gap:6px;border-radius:var(--nb-radius-sm);background:var(--nb-surface);border:1.5px solid var(--nb-border);flex:none}
.caixa:not(.campo .caixa):not(.sd-chat-form .caixa) input{flex:1;min-width:0;width:0;border:0;outline:0;background:transparent;font-size:16px;height:100%;text-align:right}
.caixa:not(.campo .caixa):not(.sd-chat-form .caixa) .fixo{color:var(--nb-text-3);font-size:var(--nb-text-xs);flex:none}
.caixa:not(.campo .caixa):not(.sd-chat-form .caixa):focus-within{border-color:var(--nb-primary)}
.col-cab{display:flex;justify-content:space-between;padding:0 8px 6px} .col-cab span:last-child{text-align:right}
.card .linha.plano-item,.linha.plano-item{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:12px 0;text-align:left}
.plano-item .cab{display:flex;align-items:center;gap:12px;width:100%} .plano-item .cab .txt{flex:1;min-width:0} .plano-item .cab .val{display:flex;align-items:baseline;gap:3px;flex:none} .plano-item .cab .val b{font-size:18px;font-weight:600}
[hidden]{display:none!important}
.plano-item .ops{margin-top:10px;display:flex;flex-direction:column;gap:12px;width:100%} .plano-item .ops .op{display:block;font-size:var(--nb-text-sm);color:var(--nb-text-2);line-height:1.45;white-space:normal} .plano-item .ops .op .n{color:var(--nb-mod-saude);font-weight:700;margin-right:2px} .plano-item .ops .op.evitar{color:#8A5A0A;background:var(--nb-warning-soft);border-left:3px solid var(--nb-warning);padding:6px 10px;border-radius:0 8px 8px 0;margin-top:2px}
/* agenda */
.ag-faixa{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.ag-dia{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;border-radius:14px;color:var(--nb-text-2);background:transparent}
.ag-dia small{font-size:11px;text-transform:lowercase} .ag-dia b{font-size:18px;font-weight:600;color:var(--nb-text);line-height:1.2}
.ag-dia.hoje b{color:var(--nb-accent)} .ag-dia.on{background:var(--nb-primary);color:var(--nb-on-primary)} .ag-dia.on b,.ag-dia.on.hoje b{color:var(--nb-on-primary)}
.pts{display:flex;gap:3px;height:5px;margin-top:2px} .pts i{width:5px;height:5px;border-radius:50%;display:block;background:var(--nb-primary)} .ag-dia.on .pts i{background:var(--nb-on-primary)}
.ag-item{padding-left:0;padding-right:2px} .ag-item .ag-hora{width:60px;margin-right:-10px;flex:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:var(--nb-text-sm);color:var(--nb-text-2);line-height:1.15} .ag-item .ag-hora small{font-size:var(--nb-text-sm);text-transform:lowercase} .ag-item .ag-cor{width:4px;align-self:stretch;border-radius:2px;flex:none;min-height:32px}
.ag-check{width:24px;height:24px;accent-color:var(--nb-success);flex:none;margin:0;border-radius:7px}
.ag-item.feita .txt b{text-decoration:line-through;color:var(--nb-text-3)} .ag-item.feita .ag-cor{opacity:.35}
.ag-item.atrasada .txt small{color:var(--nb-warning)}
.ag-grade{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center} .ag-grade small{padding:4px 0} .ag-cel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:46px;border-radius:12px;color:var(--nb-text)} .ag-cel b{font-weight:500} .ag-cel.hoje b{color:var(--nb-accent);font-weight:700} .ag-cel.on{background:var(--nb-primary-soft)}
.gd-fase{text-align:center;font-size:var(--nb-text-sm);font-weight:600;letter-spacing:var(--nb-tracking-caps);text-transform:uppercase;margin-top:8px}
.gd-cont{text-align:center;font-size:72px;line-height:1;margin-top:4px}
.gd-video{width:100%;aspect-ratio:16/9;border-radius:16px;background:#000;display:block;object-fit:cover}
.gd-fotos{display:grid;grid-template-columns:1fr 1fr;gap:8px} .gd-fotos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px;background:var(--nb-surface-2)}
.gd-nome{text-align:center;font-size:var(--nb-text-xl);margin-top:14px;text-wrap:balance}
.gd-meta{text-align:center;color:var(--nb-text-2);font-size:var(--nb-text-sm);margin-top:4px} .gd-meta b{color:var(--nb-text)}
.gd-dots{display:flex;justify-content:center;gap:8px;margin-top:10px} .gd-dots i{width:10px;height:10px;border-radius:50%;background:var(--nb-border);display:block} .gd-dots i.on{background:var(--nb-accent);transform:scale(1.25)} .gd-dots i.ok{background:var(--nb-success)}
.gd-acoes{display:flex;gap:10px;margin-top:18px} .gd-acoes>.btn{flex:1} .gd-acoes.sec{margin-top:10px;justify-content:center} .gd-acoes.sec>.btn{flex:none}
.prog{height:8px;border-radius:var(--nb-radius-full);background:var(--nb-border);overflow:hidden}.prog>i{display:block;height:100%;width:0;background:var(--nb-primary);border-radius:var(--nb-radius-full);transition:width .25s linear}
.spin{width:28px;height:28px;border:3px solid var(--nb-border);border-top-color:var(--nb-primary);border-radius:50%;animation:g .8s linear infinite;margin:40px auto}
@keyframes g{to{transform:rotate(360deg)}}
.carregando{min-height:100dvh;display:grid;place-items:center}

/* ---- shell: appbar + conteúdo + tabbar ---- */
.app{max-width:430px;margin:0 auto;min-height:100dvh;position:relative;background:var(--nb-bg)}
@media (min-width:431px){.app{box-shadow:0 0 0 1px var(--nb-border)}}
.tela{padding:0 var(--nb-screen-pad) calc(var(--nb-tabbar-h) + 40px + env(safe-area-inset-bottom,0px));min-height:100dvh}
.tela.sem-tab{padding-bottom:40px}
.appbar{display:flex;align-items:center;gap:12px;min-height:56px;padding:calc(8px + env(safe-area-inset-top,0px)) 0 8px;position:sticky;top:0;z-index:5;background:var(--nb-bg);box-shadow:calc(-1 * var(--nb-screen-pad)) 0 0 var(--nb-bg), var(--nb-screen-pad) 0 0 var(--nb-bg)} /* duas sombras sólidas deslocadas pros lados cobrem só as margens laterais (sem spread, pra não invadir o que vem abaixo): barras de chips que sangram até a borda passam por baixo */ /* fixa no topo: conteúdo rola por baixo, não por cima do relógio */
.appbar .miolo{flex:1;min-width:0}
.appbar .sub{font-size:var(--nb-text-sm);color:var(--nb-text-2)}
.appbar .tit{font-size:var(--nb-text-md);font-weight:600}
.appbar.grande{padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:16px}
.appbar.grande .tit{font-family:var(--nb-font-display);font-size:var(--nb-text-2xl);font-weight:500;line-height:1.15;letter-spacing:var(--nb-tracking-tight)}
.tabbar{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:430px;height:calc(var(--nb-tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);display:flex;justify-content:space-around;align-items:stretch;background:color-mix(in srgb,var(--nb-surface) 86%,transparent);backdrop-filter:var(--nb-blur-bar);-webkit-backdrop-filter:var(--nb-blur-bar);border-top:1px solid var(--nb-border);z-index:10}
.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--nb-text-3)}
.tabbar button.on{color:var(--nb-primary)}
.tabbar .pill{display:grid;place-items:center;width:48px;height:28px;border-radius:var(--nb-radius-full);transition:background var(--nb-dur)}
.tabbar button.on .pill{background:var(--nb-primary-soft)}
.tabbar .lucide{width:22px;height:22px}
.tabbar span.rot{font-size:11px;font-weight:500} .tabbar button.on span.rot{font-weight:600}

/* ---- componentes ---- */
.card{border-radius:var(--nb-radius-md);padding:16px;background:var(--nb-surface);box-shadow:var(--nb-shadow-card)}
.card.lista{padding:4px 16px}
.card.tinted{background:var(--nb-surface-2);box-shadow:none}
.card.outlined{box-shadow:none;border:1px solid var(--nb-border)}
.card.primary{background:var(--nb-primary);color:var(--nb-on-primary);box-shadow:none}
[data-theme="dark"] .card{box-shadow:none;border:1px solid var(--nb-border)} [data-theme="dark"] .card.primary{border:0}
.card.toque{cursor:pointer;transition:transform var(--nb-dur-fast) var(--nb-ease),filter var(--nb-dur-fast)} .card.toque:active{transform:scale(.98);filter:brightness(.96)}
.secao{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:24px 0 10px}
.secao h2{font-size:var(--nb-text-lg);font-weight:600;letter-spacing:var(--nb-tracking-tight)}
.secao button{color:var(--nb-primary);font-size:var(--nb-text-sm);font-weight:600}
.grade2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px} .grade2>*{min-width:0}
.campo{min-width:0} .campo .caixa{min-width:0;max-width:100%} .campo input,.campo select,.campo textarea{width:100%}
.campo .caixa{overflow:hidden} .campo input[type=date],.campo input[type=time],.campo input[type=datetime-local]{-webkit-appearance:none;appearance:none;min-width:0;width:100%;text-align:left;display:flex;align-items:center;height:100%;padding:0;white-space:nowrap;overflow:hidden} /* iOS: o campo de data tem largura própria e vazava */
.campo input::-webkit-date-and-time-value{text-align:left;margin:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile{border-radius:var(--nb-radius-md);background:var(--nb-surface);box-shadow:var(--nb-shadow-card);padding:14px;display:flex;flex-direction:column;gap:12px;min-height:116px;text-align:left;color:var(--nb-text);width:100%;transition:transform var(--nb-dur-fast) var(--nb-ease),filter var(--nb-dur-fast)}
[data-theme="dark"] .tile{box-shadow:none;border:1px solid var(--nb-border)}
.tile:active{transform:scale(.97);filter:brightness(.94)}
.tile.breve{opacity:.55}
.tile b{font-size:var(--nb-text-base);font-weight:600;display:block}
.tile small{font-size:var(--nb-text-sm);color:var(--nb-text-2);display:block;margin-top:2px;text-wrap:pretty}
.icone-mod{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--soft,var(--nb-surface-2));color:var(--cor,var(--nb-text-2))}
.linha{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 0;border-bottom:1px solid var(--nb-border);width:100%;text-align:left;color:var(--nb-text)}
.linha:last-child{border-bottom:0}
.linha .txt{flex:1;min-width:0}
.linha .txt b{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.linha .txt small{display:block;font-size:var(--nb-text-sm);color:var(--nb-text-2);margin-top:2px}
.linha .val{font-weight:600;font-variant-numeric:tabular-nums}
.linha .chev{color:var(--nb-text-3)} .linha .chev .lucide{width:18px;height:18px}
.badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--nb-radius-full);font-size:var(--nb-text-xs);font-weight:600;white-space:nowrap;background:var(--nb-surface-2);color:var(--nb-text-2)}
.badge.success{background:var(--nb-success-soft);color:var(--nb-success)} .badge.warning{background:var(--nb-warning-soft);color:#8A5A0A} .badge.danger{background:var(--nb-danger-soft);color:var(--nb-danger)} .badge.info{background:var(--nb-info-soft);color:var(--nb-info)} .badge.accent{background:var(--nb-accent-soft);color:var(--nb-accent-strong)}
.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--nb-radius-full);font-size:var(--nb-text-sm);font-weight:500;white-space:nowrap;border:1.5px solid var(--nb-border);background:var(--nb-surface);color:var(--nb-text);transition:all var(--nb-dur-fast)}
.chip.on{border-color:var(--nb-primary);background:var(--nb-primary);color:var(--nb-on-primary)}
.avatar{border-radius:var(--nb-radius-full);flex:none;display:inline-grid;place-items:center;color:#fff;font-family:var(--nb-font-display);font-weight:500;width:40px;height:40px;font-size:17px;overflow:hidden;position:relative}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.avatar.g{width:72px;height:72px;font-size:30px} .avatar.p{width:32px;height:32px;font-size:13px}
.avatar.foto{background:var(--nb-surface-2);overflow:hidden} .avatar.foto img{width:100%;height:100%;object-fit:cover;display:block}
.recorte{position:relative;border-radius:var(--nb-radius-md);overflow:hidden;touch-action:none;background:#000;user-select:none;-webkit-user-select:none}
.recorte canvas{display:block}
.recorte-mascara{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle closest-side at center, transparent 99%, rgba(0,0,0,.55) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
input[type=range]{accent-color:var(--nb-primary);height:32px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--nb-control-h);padding:0 20px;border-radius:var(--nb-radius-sm);border:1.5px solid transparent;background:var(--nb-primary);color:var(--nb-on-primary);font-weight:600;transition:transform var(--nb-dur-fast) var(--nb-ease),filter var(--nb-dur-fast)}
.btn:active{transform:scale(.97);filter:brightness(.94)} .btn:disabled{opacity:.45}
.btn.cheio{width:100%} .btn.pq{height:var(--nb-control-h-sm);padding:0 14px;font-size:var(--nb-text-sm)}
.btn.accent{background:var(--nb-accent);color:var(--nb-on-accent)} .btn.secundario{background:var(--nb-primary-soft);color:var(--nb-primary-strong)} .btn.outline{background:transparent;color:var(--nb-text);border-color:var(--nb-border-strong)} .btn.ghost{background:transparent;color:var(--nb-primary)} .btn.danger{background:var(--nb-danger-soft);color:var(--nb-danger)}
.btn .lucide{width:18px;height:18px}
.ibtn{width:44px;height:44px;border-radius:var(--nb-radius-full);display:inline-grid;place-items:center;background:var(--nb-surface-2);color:var(--nb-text);flex:none}
.ibtn.primary{background:var(--nb-primary);color:#fff;box-shadow:var(--nb-shadow-raised)} .ibtn.accent{background:var(--nb-accent);color:#fff;box-shadow:var(--nb-shadow-raised)} .ibtn.plano{background:transparent}
.fab{position:fixed;right:max(20px,calc(50% - 215px + 20px));bottom:calc(var(--nb-tabbar-h) + 16px + env(safe-area-inset-bottom,0px));width:56px;height:56px;z-index:9}
.fab .lucide{width:26px;height:26px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo>span{font-size:var(--nb-text-sm);font-weight:500;color:var(--nb-text-2)}
.campo .caixa{display:flex;align-items:center;gap:10px;height:var(--nb-control-h);padding:0 14px;border-radius:var(--nb-radius-sm);background:var(--nb-surface);border:1.5px solid var(--nb-border);transition:box-shadow var(--nb-dur)}
.campo .caixa:focus-within{border-color:var(--nb-primary);box-shadow:0 0 0 3px var(--nb-primary-soft)}
.campo .caixa.erro{border-color:var(--nb-danger)}
.campo input,.campo select{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;height:100%} /* 16px: abaixo disso o Safari do iPhone dá zoom ao focar */
.campo .fixo{color:var(--nb-text-2);font-size:var(--nb-text-sm)}
.campo input.pin{letter-spacing:.45em;text-align:center;font-family:var(--nb-font-display);font-size:26px}
.campo .dica{font-size:var(--nb-text-xs);color:var(--nb-text-3)} .campo .dica.erro{color:var(--nb-danger)}
.switch{width:50px;height:30px;border-radius:var(--nb-radius-full);flex:none;position:relative;background:var(--nb-border-strong);transition:background var(--nb-dur)}
.switch.on{background:var(--nb-primary)}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left var(--nb-dur) var(--nb-ease)}
.switch.on::after{left:23px}
.vazio{text-align:center;padding:40px 24px;display:flex;flex-direction:column;align-items:center;gap:8px}
.vazio .ic{width:56px;height:56px;border-radius:18px;background:var(--nb-surface-2);color:var(--nb-text-2);display:grid;place-items:center;margin-bottom:6px} .vazio .ic .lucide{width:26px;height:26px}
.vazio h3{font-family:var(--nb-font-display);font-size:var(--nb-text-xl);font-weight:500}
.vazio p{margin:0;color:var(--nb-text-2);max-width:260px;text-wrap:pretty}
.sd-ex summary::-webkit-details-marker{display:none} .sd-ex[open] summary .chev{color:var(--nb-primary)}
.campo .caixa:has(textarea){height:auto;align-items:stretch;padding:0 14px} .campo textarea{font-family:inherit;color:inherit;border:0;outline:0;background:transparent;font-size:16px;padding:12px 0;resize:none;line-height:1.4;-webkit-appearance:none;appearance:none;border-radius:0}
.dc-fotos{display:grid;gap:10px} .dc-fotos.lado{grid-template-columns:1fr 1fr} .dc-fotos img{width:100%;height:auto;border-radius:12px;background:var(--nb-surface-2);display:block}
.linha .txt small.op,.pp-item .op{display:block;white-space:normal;margin-top:8px;line-height:1.45} .linha .txt small.op:first-of-type{margin-top:6px}
.op .n{display:inline;font-weight:700;color:var(--nb-mod-saude);margin-right:2px} .op.evitar{color:var(--nb-danger);margin-top:10px}
.pp-item .op{font-size:var(--nb-text-sm)}
.sd-grupo{border:1px solid var(--nb-border);border-radius:12px;padding:10px 12px} .sd-grupo summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer} .sd-grupo summary::-webkit-details-marker{display:none}
.sd-grupo summary b{font-weight:600} .sd-grupo summary small{flex:1;color:var(--nb-text-3);font-size:var(--nb-text-xs)} .sd-grupo summary .lucide{transition:transform var(--nb-dur)} .sd-grupo[open] summary .lucide{transform:rotate(180deg)}
.sd-grupo .campo>span:first-child{font-size:var(--nb-text-xs)}
.val .est{text-decoration:underline dotted;text-decoration-color:var(--nb-text-3);cursor:pointer}
.ex-thumb{width:56px;height:44px;border-radius:10px;background:var(--nb-surface-2) center/cover no-repeat;flex:none;position:relative;overflow:hidden}
.ex-thumb .play{position:absolute;right:4px;bottom:4px;width:16px;height:16px;border-radius:50%;background:var(--nb-mod-saude);display:block} .ex-thumb .play::after{content:"";position:absolute;left:6px;top:4px;border-style:solid;border-width:4px 0 4px 6px;border-color:transparent transparent transparent #fff}
.ex-midia video{width:100%;aspect-ratio:16/9;border-radius:12px;background:#000;display:block}
.ex-fotos{display:grid;grid-template-columns:1fr 1fr;gap:8px} .ex-fotos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--nb-surface-2)}
.ex-lista{margin:6px 0 0;padding-left:20px;color:var(--nb-text-2);font-size:var(--nb-text-sm);line-height:1.5} .ex-lista li{margin-bottom:4px}
.ex-sug{position:absolute;left:0;right:52px;top:100%;z-index:30;background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:10px;box-shadow:var(--nb-shadow-raised);overflow:hidden} .ex-sug button{display:block;width:100%;text-align:left;padding:10px 12px;border-bottom:1px solid var(--nb-border);font-size:var(--nb-text-sm);color:var(--nb-text)} .ex-sug button small{color:var(--nb-text-3)} .ex-sug button:last-child{border-bottom:0}
.opcao{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border-radius:12px;border:1.5px solid var(--nb-border);background:var(--nb-surface);color:var(--nb-text);font-size:var(--nb-text-sm);line-height:1.4}
.opcao b{color:var(--nb-mod-saude);font-size:var(--nb-text-xs);text-transform:uppercase;letter-spacing:.06em} .opcao.on{border-color:var(--nb-mod-saude);background:var(--nb-mod-saude-soft)}
.sd-chat{display:flex;flex-direction:column;gap:10px;padding-bottom:80px}
.bolha{max-width:88%;padding:10px 14px;border-radius:18px;font-size:var(--nb-text-base);line-height:1.45;word-wrap:break-word}
.bolha.eu{align-self:flex-end;background:var(--nb-primary);color:var(--nb-on-primary);border-bottom-right-radius:6px}
.bolha.ia{align-self:flex-start;background:var(--nb-surface);box-shadow:var(--nb-shadow-card);border-bottom-left-radius:6px}
[data-theme="dark"] .bolha.ia{box-shadow:none;border:1px solid var(--nb-border)}
.bolha.pensando{color:var(--nb-text-3);font-style:italic}
.plano-prop{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--nb-mod-saude-soft);font-size:var(--nb-text-sm)}
.pp-item{padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)} .pp-item:last-of-type{border-bottom:0} .pp-item b{display:block;color:var(--nb-mod-saude)}
.sd-chat-form .caixa{flex:1;display:flex;align-items:center;min-width:0;height:46px;padding:0 16px;border-radius:23px;background:var(--nb-surface);border:1.5px solid var(--nb-border);transition:box-shadow var(--nb-dur)} .sd-chat-form .caixa:focus-within{border-color:var(--nb-primary);box-shadow:0 0 0 3px var(--nb-primary-soft)}
.sd-chat-form input{flex:1;min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:16px;color:var(--nb-text)} .sd-chat-form input::placeholder{color:var(--nb-text-3)}
.sd-chat-form .ibtn{width:46px;height:46px}
.sd-chat-form{position:fixed;left:0;right:0;bottom:calc(var(--nb-tabbar-h) + env(safe-area-inset-bottom,0px));margin:0 auto;max-width:430px;display:flex;gap:8px;align-items:center;padding:8px var(--nb-screen-pad);background:color-mix(in srgb,var(--nb-bg) 92%,transparent);backdrop-filter:var(--nb-blur-bar);-webkit-backdrop-filter:var(--nb-blur-bar);z-index:9}
.progresso{height:6px;border-radius:3px;background:var(--nb-surface-2);overflow:hidden} .progresso i{display:block;height:100%;border-radius:3px;background:var(--nb-primary);transition:width var(--nb-dur-slow) var(--nb-ease)}
.stat .valor{display:flex;align-items:baseline;gap:6px;margin-top:6px} .stat .valor b{font-family:var(--nb-font-display);font-size:32px;font-weight:500;line-height:1.1;letter-spacing:-.01em}
.stat .delta{margin-left:auto;font-size:var(--nb-text-sm);font-weight:600;color:var(--nb-success)} .stat .delta.ruim{color:var(--nb-danger)}

/* ---- sheet (bottom sheet) ---- */
.sheet-fundo{position:fixed;inset:0;background:var(--nb-overlay);display:flex;align-items:flex-end;justify-content:center;z-index:20;animation:fade var(--nb-dur) var(--nb-ease)}
.sheet{width:100%;max-width:430px;background:var(--nb-surface);border-radius:var(--nb-radius-lg) var(--nb-radius-lg) 0 0;box-shadow:var(--nb-shadow-sheet);padding:8px var(--nb-screen-pad) calc(20px + env(safe-area-inset-bottom,0px));max-height:92dvh;overflow:auto;animation:sobe var(--nb-dur-slow) var(--nb-ease)}
.sheet .alca{width:40px;height:4px;border-radius:2px;background:var(--nb-border-strong);margin:0 auto 14px}
.sheet h3{font-size:var(--nb-text-lg);font-weight:600;margin-bottom:14px}
.sheet .corpo{display:flex;flex-direction:column;gap:14px}
.sheet .rodape{margin-top:20px;display:flex;gap:10px}
@keyframes sobe{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- entrada (perfis) ---- */
.perfis{padding:calc(60px + env(safe-area-inset-top,0px)) var(--nb-screen-pad) 40px;min-height:100dvh;display:flex;flex-direction:column;align-items:center;text-align:center}
.perfis .logo{width:56px;height:56px}
.perfis h1{font-family:var(--nb-font-display);font-size:32px;font-weight:500;line-height:1.15;margin-top:24px}
.perfis p{color:var(--nb-text-2);margin:6px 0 0}
.perfis .grade{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px;width:100%}
.perfil{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 12px;border-radius:var(--nb-radius-md);background:var(--nb-surface);box-shadow:var(--nb-shadow-card);color:var(--nb-text);transition:transform var(--nb-dur-fast) var(--nb-ease)}
.perfil:active{transform:scale(.97)}
.perfil b{font-weight:600;font-size:var(--nb-text-md)} .perfil small{font-size:var(--nb-text-sm);color:var(--nb-text-2)}
[data-theme="dark"] .perfil{box-shadow:none;border:1px solid var(--nb-border)}
.toast{position:fixed;left:50%;bottom:calc(var(--nb-tabbar-h) + 20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--nb-ink-900);color:var(--nb-sand-50);padding:10px 16px;border-radius:var(--nb-radius-sm);font-size:var(--nb-text-sm);box-shadow:var(--nb-shadow-raised);z-index:50;max-width:calc(100% - 40px);text-align:center}
.toast.erro{background:var(--nb-danger)} .toast.ok{background:var(--nb-success)}
.mini-lista{display:flex;flex-direction:column} .norte{display:flex;align-items:center;gap:14px}
.norte .ic{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.16);display:grid;place-items:center;flex:none}
.norte .caps{color:inherit;opacity:.8} .norte b{display:block;font-size:var(--nb-text-md);font-weight:600;margin-top:2px} .norte small{display:block;font-size:var(--nb-text-sm);opacity:.85;margin-top:2px}

/* central de notificações */
.sino{position:relative} .sino-n{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--nb-danger,#dc2626);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}
.notif{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--nb-outline,rgba(0,0,0,.08));align-items:flex-start} .notif:last-child{border-bottom:0} .notif .pt{width:10px;height:10px;border-radius:50%;background:var(--nb-primary);flex:none;margin-top:6px} .notif.lida .pt{background:transparent;border:2px solid var(--nb-outline,rgba(0,0,0,.15))} .notif .tx{flex:1;min-width:0} .notif b{display:block;font-size:var(--nb-text-md,15px)} .notif.lida b{font-weight:500;color:var(--nb-text-2)} .notif small{display:block;color:var(--nb-text-2);white-space:pre-wrap} .notif .qd{font-size:var(--nb-text-xs,12px);color:var(--nb-text-3);margin-top:2px} .notif .acs{display:flex;gap:4px;flex:none}

.campo .caixa:has(.dc-limpar) input[type=date]{width:auto;flex:1;min-width:0} .dc-limpar{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--nb-text-3);background:var(--nb-surface-2)} .dc-limpar .lucide{width:14px;height:14px} .campo input[type=date]:placeholder-shown + .dc-limpar, .campo input[type=date][value='']:not(:focus) + .dc-limpar{opacity:.5}

.avatar.m{width:40px;height:40px;font-size:15px}

/* ícone dentro do texto pequeno das linhas (link, olho): do tamanho da letra, alinhado à linha */
.linha .txt small .lucide,.linha .txt b .lucide{width:1em;height:1em;vertical-align:-0.15em;margin-right:1px}

/* botão de ação da seção com ícone (Família: + Adicionar) */
.secao button{display:inline-flex;align-items:center;gap:4px}.secao button .lucide{width:1em;height:1em}

/* puxar pra atualizar */
#nb-puxar{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 8px);transform:translate(-50%,-140%) scale(.9);display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--nb-surface);color:var(--nb-text-2);box-shadow:var(--nb-shadow-md, 0 6px 20px rgba(0,0,0,.12));font-size:var(--nb-text-sm);font-weight:600;z-index:1900;opacity:0;pointer-events:none;transition:transform .15s,opacity .15s}
#nb-puxar.ativo{opacity:1;transform:translate(-50%,calc(-120% + var(--p,0) * 130%)) scale(calc(.9 + var(--p,0) * .1))}
#nb-puxar .lucide{width:18px;height:18px;transition:transform .15s;transform:rotate(calc(var(--p,0) * 180deg))}
#nb-puxar.pronto{color:var(--nb-primary)}

/* módulos: chavinha no canto do cartão; desligado fica opaco */
.tile{position:relative} .tile .switch.pq{position:absolute;top:12px;right:12px;width:40px;height:24px} .tile .switch.pq::after{width:18px;height:18px;top:3px;left:3px} .tile .switch.pq.on::after{left:19px}
.tile.desligado{opacity:.55} .tile.desligado .switch.pq{opacity:1}

/* corpo da notificação respeita quebras de linha (resumo do dia, um tópico por linha) */
.notif .tx small{white-space:pre-line}

/* treino guiado: prévia do próximo exercício, discreta */
.gd-prox{display:flex;align-items:center;gap:12px;margin:14px auto 0;padding:10px 12px;border-radius:14px;background:var(--nb-surface-2);opacity:.85;max-width:420px}
.gd-prox-midia{width:72px;height:48px;border-radius:10px;overflow:hidden;background:#000;flex:none;display:grid;place-items:center}
.gd-prox-midia video,.gd-prox-midia img{width:100%;height:100%;object-fit:cover;display:block}
.gd-prox .txt{min-width:0;flex:1} .gd-prox .txt b{display:block;font-size:var(--nb-text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .gd-prox .txt small{display:block;color:var(--nb-text-2);font-size:var(--nb-text-xs)} .gd-prox .txt small.caps{margin-bottom:2px}
/* editor de treino: cartões numerados (22/09) */
#tr-ex{counter-reset:ex} .sd-exrow{counter-increment:ex} .ex-num{width:26px;height:26px;border-radius:50%;background:var(--nb-primary-soft);color:var(--nb-primary-strong);display:inline-flex;align-items:center;justify-content:center;font-size:var(--nb-text-xs);font-weight:700;flex:none} .ex-num::before{content:counter(ex)}
/* treino guiado compacto: cabe numa tela sem rolar (22/09) */
.gd-fase{margin-top:0} .gd-cont{font-size:clamp(44px,8vh,64px)}
.gd-video,.gd-fotos{max-height:28vh} .gd-video{aspect-ratio:auto;height:28vh;object-fit:contain;background:var(--nb-surface)} .gd-fotos img{aspect-ratio:auto;height:28vh;object-fit:contain}
.gd-nome{font-size:var(--nb-text-lg);margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}
.gd-meta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 4px}
.gd-edit{display:inline-flex;align-items:center;gap:3px;color:inherit;padding:2px 2px;border-radius:6px;font:inherit}
.gd-edit svg{width:13px;height:13px;opacity:.55} .gd-edit.rec b{color:var(--nb-success)} .gd-edit.rec svg:first-child{opacity:1;color:var(--nb-success)}
.gd-edit:active{background:var(--nb-surface-2)}
.gd-dots{margin-top:8px} .gd-como{text-align:center;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-prox{margin-top:10px;max-width:none;padding:8px;gap:14px}
.gd-prox-midia{width:34%;max-width:140px;height:auto;aspect-ratio:1;background:var(--nb-surface)}
.gd-prox .txt b{font-size:var(--nb-text-md);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gd-prox-det{font-size:var(--nb-text-sm)!important;margin-top:2px}
.gd-acoes{margin-top:12px} .gd-acoes.sec{margin-top:4px}
/* Ajuda e sugestões (suporte.js) */
.sup-atalhos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.sup-atalho{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border-radius:var(--nb-radius-lg);background:var(--nb-surface);border:1px solid var(--nb-border);text-align:left;min-width:0}
.sup-atalho .ic{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--soft);color:var(--cor);margin-bottom:4px}
.sup-atalho .ic svg,.sup-atalho .ic i{width:18px;height:18px}
.sup-atalho b{font-size:var(--nb-text-sm);line-height:1.25} .sup-atalho small{font-size:var(--nb-text-xs);color:var(--nb-text-3);line-height:1.3}
@media (max-width:380px){.sup-atalho small{display:none}}
.sup-chat{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.sup-msg{display:flex;flex-direction:column;gap:4px;max-width:88%} .sup-msg.eu{align-self:flex-end;align-items:flex-end} .sup-msg.eq{align-self:flex-start}
.sup-msg .bolha{max-width:100%;white-space:normal} .sup-msg .quem{display:flex;align-items:center;gap:5px;font-size:var(--nb-text-xs);color:var(--nb-text-3);padding:0 6px}
.sup-msg .quem svg,.sup-msg .quem i{width:13px;height:13px;color:var(--nb-primary)}
.sup-resp{display:flex;flex-direction:column;gap:12px} .sup-resp textarea{resize:vertical;min-height:72px}

/* ---------- Conversas (27/09): grupo da família + a dois, com foto e áudio ---------- */
:root{--nb-mod-chat:#4A5BC4;--nb-mod-chat-soft:#E6E9F8}
[data-theme="dark"]{--nb-mod-chat:#8C9AE8;--nb-mod-chat-soft:rgba(140,154,232,0.16)}
.tabbar .pill{position:relative} .tab-n{position:absolute;top:-4px;right:2px;min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--nb-accent);color:#fff;font-size:10.5px;font-weight:700;display:grid;place-items:center;line-height:1;box-sizing:border-box} .tab-n[hidden]{display:none}
.cv-av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#fff;font-weight:600;font-size:15px;flex:none} .cv-av.pq{width:36px;height:36px;font-size:13px} .cv-av.grupo{background:var(--nb-mod-chat-soft);color:var(--nb-mod-chat)} .cv-av .lucide{width:20px;height:20px} .cv-av.pq .lucide{width:17px;height:17px}
.appbar .cv-av{margin-right:2px}
.cv-conv{min-height:68px;gap:12px} .cv-conv .txt{min-width:0} .cv-conv .txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-dir{flex:none;text-align:right;font-size:11.5px;color:var(--nb-text-3);display:flex;flex-direction:column;align-items:flex-end;gap:5px} .cv-dir.on{color:var(--nb-mod-chat);font-weight:600}
.cv-n{min-width:20px;height:20px;border-radius:10px;background:var(--nb-mod-chat);color:#fff;font-size:11.5px;font-weight:700;display:grid;place-items:center;padding:0 6px;box-sizing:border-box}
.cv-aviso{display:flex;gap:6px;align-items:flex-start;margin:14px 4px 0} .cv-aviso .lucide{width:15px;height:15px;flex:none;margin-top:1px}
.cv-tela{padding-bottom:0}
.cv-msgs{display:flex;flex-direction:column;padding:6px 0 90px}
.cv-antes{align-self:center;margin:4px 0 8px} .cv-vazio{margin-top:24px}
.cv-dia{align-self:center;font-size:11.5px;color:var(--nb-text-3);background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:10px;padding:2px 10px;margin:12px 0 6px}
.cv-linha{display:flex;flex-direction:column;align-items:flex-start;margin-top:3px} .cv-linha.eu{align-items:flex-end} .cv-linha.novo-autor{margin-top:9px}
.cv-m{max-width:80%;padding:7px 11px 6px;border-radius:18px;font-size:15px;line-height:1.4;overflow-wrap:anywhere;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-sizing:border-box}
.cv-linha.ele .cv-m{background:var(--nb-surface);border:1px solid var(--nb-border);border-bottom-left-radius:6px}
.cv-linha.eu .cv-m{background:var(--nb-primary);color:var(--nb-on-primary);border-bottom-right-radius:6px}
.cv-m .quem{display:block;font-size:12.5px;font-weight:600;margin-bottom:1px}
.cv-m .h{float:right;font-size:10.5px;opacity:.7;margin:7px 0 -3px 10px;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;line-height:1} .cv-m .h .lucide{width:14px;height:14px} .cv-m .h.visto{opacity:1}
.cv-m.emoji{background:none!important;border:0!important;padding:0 2px;font-size:40px;line-height:1.15} .cv-m.emoji .h{float:none;display:flex;justify-content:flex-end;color:var(--nb-text-3);opacity:1;margin:2px 0 0}
.cv-m.foto{padding:4px} .cv-foto{display:block;border-radius:14px;overflow:hidden;width:240px;max-width:100%} .cv-foto img{display:block;width:100%;max-height:320px;object-fit:cover;min-height:90px;background:var(--nb-surface-2)} .cv-m.foto .cap{padding:5px 7px 0} .cv-m.foto .h{margin-right:6px;margin-bottom:0} .cv-m.foto .quem{padding:3px 7px 2px}
.cv-aud{display:flex;align-items:center;gap:8px;width:230px;max-width:100%} .cv-play{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,currentColor 15%,transparent);color:inherit;flex:none}
.cv-play>span{display:grid;place-items:center} .cv-play .lucide{width:17px;height:17px} .cv-play .i-pause,.cv-aud.tocando .i-play{display:none} .cv-aud.tocando .i-pause{display:grid}
.cv-onda{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;height:28px} .cv-onda i{display:block;width:3px;border-radius:2px;background:currentColor;opacity:.38} .cv-onda i.ja{opacity:1}
.cv-aud small{font-size:11.5px;opacity:.8;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}
.cv-expirou,.cv-apagada{display:flex;align-items:center;gap:6px;font-style:italic;opacity:.72;font-size:14px} .cv-expirou .lucide,.cv-apagada .lucide{width:16px;height:16px;flex:none}
.cv-reac{display:flex;gap:3px;margin:-6px 8px 0;position:relative} .cv-reac button{font-size:12.5px;background:var(--nb-surface-2);border:1px solid var(--nb-border);border-radius:11px;padding:1px 7px;color:var(--nb-text)} .cv-reac button.on{border-color:var(--nb-mod-chat);background:var(--nb-mod-chat-soft)}
.cv-rodape{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:430px;z-index:9;background:var(--nb-bg);border-top:1px solid var(--nb-border);padding-bottom:env(safe-area-inset-bottom,0px)}
.cv-compor{display:flex;gap:6px;align-items:flex-end;padding:8px 10px}
.cv-caixa{flex:1;min-width:0;display:flex;align-items:flex-end;gap:2px;min-height:44px;padding:0 4px 0 14px;border-radius:22px;background:var(--nb-surface);border:1.5px solid var(--nb-border);box-sizing:border-box} .cv-caixa:focus-within{border-color:var(--nb-primary)}
.cv-caixa textarea{flex:1;min-width:0;border:0;outline:0;background:transparent;resize:none;font:inherit;font-size:16px;line-height:1.35;color:var(--nb-text);padding:10px 0;max-height:132px;display:block} .cv-caixa textarea::placeholder{color:var(--nb-text-3)}
.cv-ic{width:36px;height:42px;display:grid;place-items:center;color:var(--nb-text-2);flex:none} .cv-ic.on{color:var(--nb-primary)} .cv-ic .lucide{width:22px;height:22px}
.cv-acao{width:44px;height:44px;flex:none}
.cv-grav{flex:1;min-width:0;height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:22px;background:var(--nb-surface);border:1.5px solid var(--nb-danger);font-variant-numeric:tabular-nums;box-sizing:border-box}
.cv-grav .ponto{width:10px;height:10px;border-radius:50%;background:var(--nb-danger);animation:cvPisca 1s infinite} .cv-grav small{margin-left:auto;color:var(--nb-text-3);font-size:12px}
@keyframes cvPisca{50%{opacity:.25}} @media (prefers-reduced-motion:reduce){.cv-grav .ponto{animation:none}}
.cv-lixo{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--nb-danger);border:1.5px solid var(--nb-border);flex:none}
.cv-emojis{height:260px;overflow-y:auto;padding:0 10px 8px;border-bottom:1px solid var(--nb-border);background:var(--nb-surface);box-sizing:border-box} .cv-emojis[hidden]{display:none}
.cv-emojis .cats{display:flex;gap:4px;position:sticky;top:0;background:var(--nb-surface);padding:6px 0;overflow-x:auto;z-index:1} .cv-emojis .cats button{font-size:19px;min-width:38px;height:32px;border-radius:8px}
.cv-emojis .t{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--nb-text-3);font-weight:700;margin:8px 2px 2px;scroll-margin-top:44px}
.cv-emojis .g{display:grid;grid-template-columns:repeat(8,1fr)} .cv-emojis .g button{font-size:25px;height:42px;border-radius:8px} .cv-emojis .g button:active{background:var(--nb-surface-2)}
.cv-menu-reac{display:flex;justify-content:space-between;gap:4px;margin-bottom:14px} .cv-menu-reac button{font-size:27px;width:48px;height:48px;border-radius:50%;background:var(--nb-surface-2)} .cv-menu-reac button.on{outline:2px solid var(--nb-mod-chat)}
@media (min-width:600px) and (orientation:portrait){.cv-rodape{max-width:none}.cv-m{max-width:70%}}
.cv-desl{display:flex;gap:8px;align-items:flex-start;margin:6px 0 4px;padding:10px 12px;border-radius:12px;background:var(--nb-warning-soft,var(--nb-surface));border:1px solid var(--nb-warning);font-size:13px;color:var(--nb-text)} .cv-desl .lucide{width:17px;height:17px;flex:none;color:var(--nb-warning);margin-top:1px} .cv-conv small .lucide{width:13px;height:13px;vertical-align:-2px}

/* ---------- Localização (27/09): mapa da família ---------- */
:root{--nb-mod-local:#2E9E8F;--nb-mod-local-soft:#DDF2EF}
[data-theme="dark"]{--nb-mod-local:#4FC1B1;--nb-mod-local-soft:rgba(79,193,177,0.16)}
.lc-mapa{height:min(46vh,380px);border-radius:var(--nb-radius-lg,18px);overflow:hidden;border:1px solid var(--nb-border);background:var(--nb-surface-2);position:relative;z-index:0}
[data-theme="dark"] .lc-mapa .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.6)} /* mapa escuro no tema escuro */
.lc-mapa .leaflet-control-attribution{font-size:9px;background:color-mix(in srgb,var(--nb-bg) 75%,transparent);color:var(--nb-text-3)} .lc-mapa .leaflet-control-attribution a{color:var(--nb-text-2)}
.lc-pin-wrap{background:none;border:0}
.lc-pin{position:relative;display:grid;justify-items:center;width:44px}
.lc-pin .lc-av{width:38px;height:38px;border:3px solid #fff;font-size:14px;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.45)} .lc-pin i.ponta{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #fff;margin-top:-2px}
.lc-pin.velho .lc-av{opacity:.62;filter:saturate(.35)}
.lc-pin .onda{position:absolute;top:22px;left:50%;width:74px;height:74px;margin:-37px 0 0 -37px;border-radius:50%;background:color-mix(in srgb,var(--nb-mod-local) 28%,transparent);border:1.5px solid var(--nb-mod-local);z-index:-1;animation:lcOnda 2s ease-out infinite}
@keyframes lcOnda{0%{transform:scale(.55);opacity:1}100%{transform:scale(1.1);opacity:.35}} @media (prefers-reduced-motion:reduce){.lc-pin .onda{animation:none}}
.lc-av{width:42px;height:42px;border-radius:50%;display:inline-grid;place-items:center;background:var(--c);color:#fff;font-weight:600;font-size:15px;flex:none;box-sizing:border-box;vertical-align:middle} .lc-av.pq{width:30px;height:30px;font-size:12px;margin-right:4px} .lc-av.g{width:50px;height:50px;font-size:18px}
#lc-corpo{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.lc-pes{min-height:62px;gap:12px} .lc-pes .txt{min-width:0} .lc-pes .txt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .lc-pes small.vivo{color:var(--nb-mod-local);font-weight:600} .lc-pes small.velho{color:var(--nb-text-3)}
.lc-pedir{height:34px;padding:0 11px;border-radius:17px;border:1px solid var(--nb-border-strong);display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--nb-text);flex:none} .lc-pedir .lucide{width:15px;height:15px} .lc-pedir.esperando{border-color:var(--nb-warning);color:var(--nb-warning)}
.lc-acoes{display:flex;gap:8px} .lc-acoes .btn{flex:1}
.lc-faixa{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--nb-mod-local-soft);border:1px solid var(--nb-mod-local);font-size:13px} .lc-faixa>.lucide{color:var(--nb-mod-local);flex:none} .lc-faixa b{display:block} .lc-faixa small{color:var(--nb-text-2);font-size:11.5px} .lc-faixa .btn{margin-left:auto;flex:none}
.lc-nota{display:flex;gap:6px;align-items:flex-start;margin:2px 4px 0} .lc-nota .lucide{width:15px;height:15px;flex:none;margin-top:1px}
.lc-info{min-height:54px;gap:10px} .lc-info>.lucide{color:var(--nb-text-3);flex:none}
.lc-opc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px} .lc-opc button{border:1.5px solid var(--nb-border);border-radius:14px;padding:14px 6px;display:grid;gap:2px;justify-items:center;color:var(--nb-text)} .lc-opc button b{font-size:16px} .lc-opc button small{font-size:11.5px;color:var(--nb-text-3)} .lc-opc button:active{border-color:var(--nb-mod-local);background:var(--nb-mod-local-soft)}
.lc-rota{padding:12px;border-radius:16px;background:var(--nb-surface);border:1.5px solid var(--nb-mod-local);display:flex;flex-direction:column;gap:10px} .lc-rota .cab{display:flex;align-items:center;gap:10px} .lc-rota .tx{flex:1;min-width:0} .lc-rota .tx b{display:block;font-size:18px;font-variant-numeric:tabular-nums} .lc-rota .tx small{color:var(--nb-text-2);font-size:12px} .lc-rota .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.lc-acoes .btn{white-space:nowrap;min-width:0;padding-left:12px;padding-right:12px} /* os dois botões numa linha só no celular (27/09) */

/* ---------- Lugares da família (27/09) ---------- */
.lc-lug{width:40px;height:40px;border-radius:12px;display:inline-grid;place-items:center;background:var(--c);color:#fff;flex:none;vertical-align:middle} .lc-lug .lucide{width:19px;height:19px} .lc-lug.pq{width:30px;height:30px;border-radius:9px;margin-right:4px} .lc-lug.pq .lucide{width:16px;height:16px}
.lc-lug-pin .lc-lug{width:30px;height:30px;border-radius:9px;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.4);box-sizing:border-box} .lc-lug-pin .lucide{width:16px;height:16px}
.lc-lug-cab{display:flex;align-items:center;justify-content:space-between;margin:6px 2px -2px} .lc-lug-cab span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--nb-mod-local);font-weight:700} .lc-lug-cab .lk{display:inline-flex;align-items:center;gap:4px;font-weight:600} .lc-lug-cab .lk .lucide{width:15px;height:15px}
.lc-dist{flex:none;font-size:12px;color:var(--nb-text-3);font-variant-numeric:tabular-nums}
.lc-lug-vazio{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;border-style:dashed} .lc-lug-vazio>.lucide{color:var(--nb-mod-local);flex:none;width:22px;height:22px;margin-top:2px} .lc-lug-vazio b{display:block} .lc-lug-vazio small{color:var(--nb-text-2);font-size:12.5px;line-height:1.45}
.lc-obs{font-size:14px;line-height:1.45} .lc-obs a{color:var(--nb-primary);font-weight:600}
.lc-rot{font-size:12.5px;color:var(--nb-text-2);font-weight:600;margin:12px 0 6px}
.lc-tipos{display:flex;flex-wrap:wrap;gap:6px} .lc-tipos button{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 11px;border-radius:17px;border:1px solid var(--nb-border);font-size:13px;color:var(--nb-text)} .lc-tipos .lucide{width:15px;height:15px;color:var(--c)} .lc-tipos button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent);font-weight:600}
.lc-busca{display:flex;align-items:center;gap:8px;height:46px;padding:0 12px;border-radius:var(--nb-radius-sm);border:1.5px solid var(--nb-border);background:var(--nb-surface)} .lc-busca:focus-within{border-color:var(--nb-primary)} .lc-busca .lucide{width:18px;height:18px;color:var(--nb-text-3);flex:none} .lc-busca input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;color:var(--nb-text)}
.lc-res{display:flex;flex-direction:column} .lc-res button{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:9px 4px;border-bottom:1px solid var(--nb-border);color:var(--nb-text)} .lc-res .lucide{width:16px;height:16px;color:var(--nb-text-3);flex:none;margin-top:2px} .lc-res b{display:block;font-size:14px} .lc-res small{color:var(--nb-text-2);font-size:12px}
.lc-duas{display:flex;gap:8px;margin-top:8px} .lc-duas button{flex:1;height:40px;border-radius:12px;border:1px solid var(--nb-border-strong);display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;color:var(--nb-text);white-space:nowrap} .lc-duas .lucide{width:16px;height:16px}
.lc-mini{height:130px;border-radius:12px;overflow:hidden;margin-top:10px;border:1px solid var(--nb-border);position:relative;z-index:0} .lc-mini[hidden]{display:none} [data-theme="dark"] .lc-mini .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.6)}
#lc-marcar{position:fixed;inset:0;z-index:300;background:var(--nb-bg);display:flex;flex-direction:column} #lm-mapa{flex:1;min-height:0} [data-theme="dark"] #lm-mapa .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.6)}
.lm-dica{position:absolute;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));z-index:500;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--nb-bg) 90%,transparent);border:1px solid var(--nb-border);font-size:13px;text-align:center}
.lm-mira{position:absolute;left:50%;top:calc((100% - 150px) / 2);transform:translate(-50%,-100%);z-index:500;display:grid;justify-items:center;pointer-events:none} .lm-mira .lc-lug{width:36px;height:36px;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.5)} .lm-mira i{width:2px;height:12px;background:#fff}
.lm-pe{padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--nb-border);display:flex;flex-direction:column;gap:10px;min-height:150px;box-sizing:border-box;justify-content:flex-end;height:150px} .lm-end{display:flex;gap:8px;align-items:flex-start;font-size:14px} .lm-end .lucide{width:18px;height:18px;color:var(--nb-text-3);flex:none}
@media (min-width:1000px) and (orientation:landscape){#lc-marcar{left:232px}}
.lc-em{display:inline-flex;align-items:center;gap:3px;vertical-align:-2px} .lc-em .lucide{width:13px;height:13px}
a.btn{text-decoration:none} /* botão que é link (Google Maps) sem sublinhado */

/* ---------- Receitas (27/09) ---------- */
:root{--nb-mod-receitas:#C8692A;--nb-mod-receitas-soft:#F8E8DC}
[data-theme="dark"]{--nb-mod-receitas:#E0823D;--nb-mod-receitas-soft:rgba(224,130,61,0.16)}
.rc-busca{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border-radius:var(--nb-radius-sm);border:1.5px solid var(--nb-border);background:var(--nb-surface);margin-bottom:10px} .rc-busca:focus-within{border-color:var(--nb-primary)} .rc-busca .lucide{width:18px;height:18px;color:var(--nb-text-3);flex:none} .rc-busca input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;color:var(--nb-text)}
.rc-chips{display:flex;gap:6px;overflow-x:auto;padding:0 0 12px;scrollbar-width:none} .rc-chips::-webkit-scrollbar{display:none} .rc-chips .chip{flex:none}
.rc-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rc-card{display:flex;flex-direction:column;text-align:left;border-radius:16px;overflow:hidden;background:var(--nb-surface);border:1px solid var(--nb-border);color:var(--nb-text);min-width:0}
.rc-card .ft{position:relative;aspect-ratio:4/3;display:block;background:var(--nb-surface-2)} .rc-card .ft img,.rc-card .ft .rc-sem-foto{width:100%;height:100%;object-fit:cover;display:grid}
.rc-card .fav{position:absolute;right:7px;top:7px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.45);display:grid;place-items:center;color:#fff} .rc-card .fav .lucide{width:15px;height:15px;fill:#fff}
.rc-card .tx{padding:8px 10px 10px;display:flex;flex-direction:column;gap:3px;min-width:0} .rc-card b{font-size:14px;line-height:1.25} .rc-card small{font-size:11.5px;color:var(--nb-text-3);display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .rc-card small .lucide{width:12px;height:12px;flex:none}
.rc-card small.orig{color:var(--nb-mod-receitas);font-weight:600} .rc-card small.gost{color:#e0566f}
.rc-sem-foto{display:grid;place-items:center;background:linear-gradient(140deg,color-mix(in srgb,var(--c) 70%,#000),var(--c) 60%,color-mix(in srgb,var(--c) 55%,#fff));color:rgba(255,255,255,.9)} .rc-sem-foto .lucide{width:34px;height:34px}
.rc-hero{border-radius:var(--nb-radius-lg,18px);overflow:hidden;aspect-ratio:16/10;max-height:300px;width:100%;background:var(--nb-surface-2)} .rc-hero img,.rc-hero .rc-sem-foto{width:100%;height:100%;object-fit:cover;display:grid}
.rc-orig{display:flex;gap:6px;align-items:center;color:var(--nb-mod-receitas);font-weight:600;font-size:13px;margin:10px 2px 0} .rc-orig .lucide{width:15px;height:15px;flex:none}
.rc-meta{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin:10px 0} .rc-meta>div{border:1px solid var(--nb-border);border-radius:14px;padding:8px 12px;background:var(--nb-surface)} .rc-meta small{display:block;font-size:11.5px;color:var(--nb-text-3)} .rc-meta b{font-size:17px}
.rc-step{display:flex;align-items:center;gap:10px} .rc-step button{width:32px;height:32px;border-radius:10px;border:1px solid var(--nb-border-strong);font-size:18px;color:var(--nb-text);display:grid;place-items:center} .rc-step b{min-width:36px;text-align:center;font-variant-numeric:tabular-nums}
.rc-fam{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:14px;background:var(--nb-surface);border:1px solid var(--nb-border);color:var(--nb-text-2);font-size:13px;text-align:left} .rc-fam .avs{display:flex;flex:none} .rc-fam .avs:empty{display:none}
.rc-fam .avs i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-style:normal;font-size:10.5px;font-weight:700;border:2px solid var(--nb-surface);margin-left:-7px} .rc-fam .avs i:first-child{margin-left:0} .rc-fam .tx{flex:1;min-width:0}
.rc-fam .cor{flex:none;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 11px;border-radius:16px;border:1px solid var(--nb-border-strong);font-weight:700;color:var(--nb-text)} .rc-fam .cor .lucide{width:15px;height:15px;color:#e0566f}
.rc-fam.on .cor{background:rgba(224,86,111,.14);border-color:#e0566f;color:#e0566f} .rc-fam.on .cor .lucide{fill:#e0566f}
.rc-cab{display:flex;align-items:center;justify-content:space-between;margin:16px 2px 6px} .rc-cab>span:first-child{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--nb-mod-receitas);font-weight:700}
.rc-ing{min-height:44px;gap:10px;text-align:left} .rc-ing .ck{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--nb-border-strong);display:grid;place-items:center;flex:none;color:transparent} .rc-ing .ck .lucide{width:14px;height:14px}
.rc-ing .txt{font-size:15px} .rc-ing .q{font-weight:700} .rc-ing.ok .txt{color:var(--nb-text-3);text-decoration:line-through} .rc-ing.ok .ck{background:var(--nb-mod-receitas);border-color:var(--nb-mod-receitas);color:#1a1106}
.rc-acoes{display:flex;gap:8px;margin-top:10px} .rc-acoes .btn{flex:1;white-space:nowrap;padding-left:10px;padding-right:10px}
.rc-passos{margin:0;padding:0;list-style:none;counter-reset:p;display:flex;flex-direction:column;gap:10px} .rc-passos li{counter-increment:p;position:relative;padding:12px 12px 12px 46px;border-radius:14px;background:var(--nb-surface);border:1px solid var(--nb-border);font-size:15px;line-height:1.5}
.rc-passos li::before{content:counter(p);position:absolute;left:12px;top:12px;width:24px;height:24px;border-radius:8px;background:var(--nb-mod-receitas-soft);color:var(--nb-mod-receitas);font-weight:700;font-size:13px;display:grid;place-items:center}
.rc-tt{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;color:var(--nb-mod-receitas);white-space:nowrap} .rc-tt .lucide{width:13px;height:13px}
.rc-fonte{display:inline-flex;align-items:center;gap:6px;margin:14px 2px 0;font-size:13px;color:var(--nb-text-2)} .rc-fonte .lucide{width:15px;height:15px}
.rc-rodape{position:sticky;bottom:calc(var(--nb-tabbar-h) + env(safe-area-inset-bottom,0px) + 8px);margin-top:16px;z-index:3} .rc-cozinhar{background:var(--nb-mod-receitas)!important;color:#1a1106!important;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.25)}
#rc-cozinha{position:fixed;inset:0;z-index:300;background:var(--nb-bg);display:flex;flex-direction:column;padding:calc(14px + env(safe-area-inset-top,0px)) 20px calc(16px + env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow-y:auto}
.cz-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--nb-text-2)} .cz-barra{height:5px;border-radius:3px;background:var(--nb-surface-2);margin:12px 0 18px;overflow:hidden;flex:none} .cz-barra i{display:block;height:100%;background:var(--nb-mod-receitas);transition:width .3s}
.cz-outros{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 12px} .cz-outros button{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:15px;background:var(--nb-mod-receitas-soft);color:var(--nb-mod-receitas);font-weight:700;font-size:12.5px;font-variant-numeric:tabular-nums} .cz-outros .lucide{width:14px;height:14px}
.cz-num{font-size:13px;color:var(--nb-mod-receitas);font-weight:700;letter-spacing:.06em;text-transform:uppercase} .cz-passo{font-size:clamp(22px,6.4vw,34px);line-height:1.38;font-weight:600;margin:8px 0 20px;overflow-wrap:anywhere}
.cz-timer{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:var(--nb-mod-receitas-soft);border:1.5px solid var(--nb-mod-receitas)} .cz-timer b{font-size:38px;font-variant-numeric:tabular-nums;line-height:1} .cz-timer small{display:block;color:var(--nb-text-2);font-size:12.5px;margin-top:4px}
.cz-timer button{margin-left:auto;height:46px;padding:0 18px;border-radius:23px;background:var(--nb-mod-receitas);color:#1a1106;font-weight:700;display:inline-flex;align-items:center;gap:6px} .cz-timer button .lucide{width:18px;height:18px}
.cz-timer.fim{animation:czPisca 1s infinite} @keyframes czPisca{50%{background:color-mix(in srgb,var(--nb-mod-receitas) 40%,transparent)}} @media (prefers-reduced-motion:reduce){.cz-timer.fim{animation:none}}
.cz-nav{margin-top:auto;padding-top:20px;display:flex;gap:10px} .cz-nav .btn{flex:1;height:58px;font-size:17px} .cz-nav .btn:last-child{flex:1.6}
.cz-aceso{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--nb-text-3);margin-top:10px;text-align:center} .cz-aceso .lucide{width:14px;height:14px;flex:none}
.rc-op{min-height:62px;gap:12px} .rc-op .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--nb-mod-receitas-soft);color:var(--nb-mod-receitas);flex:none}
.rc-ia{font-size:10px;font-weight:700;color:#8f74e8;border:1px solid #8f74e8;border-radius:6px;padding:0 5px;vertical-align:1px}
.rc-lida{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px dashed var(--nb-border-strong);font-size:13px;color:var(--nb-text-2);margin-bottom:12px} .rc-lida .lucide{width:17px;height:17px;color:#8f74e8;flex:none;margin-top:1px} .rc-lida b{color:var(--nb-text)}
.rc-f-foto{margin-bottom:12px} .rc-f-foto img{width:100%;max-height:200px;object-fit:cover;border-radius:14px;display:block;margin-bottom:8px}
.rc-f-semfoto{display:flex;align-items:center;gap:10px;width:100%;height:64px;padding:0 14px;border-radius:14px;border:1.5px dashed var(--nb-border-strong);color:var(--nb-text-2);font-size:14px} .rc-f-semfoto .lucide{color:var(--nb-mod-receitas)}
.rc-f-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.rc-f-rende{display:flex;gap:6px;align-items:center;width:100%} .rc-f-rende input{width:56px;flex:none;padding-left:8px;padding-right:4px} .rc-f-rende select{flex:1;min-width:0}
.rc-pl{padding:0 10px} .rc-pl .linha{gap:10px;min-height:48px} .rc-pl input{width:20px;height:20px;flex:none;accent-color:var(--nb-mod-receitas)} .rc-pl small{display:block;color:var(--nb-text-3)}
.rc-sw{display:flex;align-items:center;gap:10px;font-size:14px;margin-top:6px} .rc-sw input{width:20px;height:20px;accent-color:var(--nb-mod-receitas)}
@media (min-width:600px){.rc-grade{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px) and (orientation:landscape){.rc-grade{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))} #rc-cozinha{left:232px;padding-left:10%;padding-right:10%} .rc-rodape{bottom:16px}}
.linha .txt:has(> .nb-uma-linha){min-width:0} .nb-uma-linha{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} /* "+" do Início: uma linha embaixo do nome (27/09) */
/* iPhone iOS 26.0: o que fica preso embaixo volta pra borda quando a área visível desalinha (ver _nbBarraIos no app.js, 27/09) */
.tabbar,.fab,.sd-chat-form,.cv-rodape,.toast{translate:0 calc(var(--nb-vv-off, 0px) * -1)}
/* Conversas: aviso de segurança da conta de criança (27/09) */
.cv-seguro{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin-bottom:12px;border:1px solid color-mix(in srgb,var(--nb-primary) 35%,transparent);background:color-mix(in srgb,var(--nb-primary) 8%,var(--nb-surface))} .cv-seguro>.lucide{flex:none;width:22px;height:22px;color:var(--nb-primary);margin-top:2px} .cv-seguro b{display:block} .cv-seguro small{display:block;color:var(--nb-text-2);margin-top:2px;line-height:1.45} .cv-seguro small b{display:inline}
/* Localização: criança com localização desligada (27/09) */
.lc-desligada{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;margin:12px 0} .lc-desligada>.lucide{flex:none;width:22px;height:22px;color:var(--nb-text-3);margin-top:2px} .lc-desligada b{display:block} .lc-desligada small{display:block;color:var(--nb-text-2);margin-top:2px} .lc-info .btn.pq{flex:none}
/* Saúde da criança (27/09) */
.sdc-agua{display:flex;flex-direction:column;gap:12px;padding:16px 18px} .sdc-agua .num{font-size:34px;line-height:1} .sdc-copos{display:flex;flex-wrap:wrap;gap:6px} .sdc-copos span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--nb-surface-2);color:var(--nb-text-3)} .sdc-copos span.on{background:color-mix(in srgb,var(--nb-mod-saude) 18%,transparent);color:var(--nb-mod-saude)} .sdc-copos .lucide{width:18px;height:18px}
/* Filhos · calendário da escola (28/09) */
.fl-cal-up{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:14px;border:1.5px dashed color-mix(in srgb,var(--nb-primary) 45%,transparent);background:color-mix(in srgb,var(--nb-primary) 6%,var(--nb-surface));border-radius:16px;color:var(--nb-text)}
.fl-cal-up .ic{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--nb-primary) 14%,transparent);color:var(--nb-primary);display:grid;place-items:center;flex:none}
.fl-cal-up b{display:block} .fl-cal-up small{display:block;color:var(--nb-text-2);margin-top:2px}
.fl-cal-pend{width:100%;margin-bottom:10px;padding:10px 12px;border-color:color-mix(in srgb,var(--nb-warning) 55%,transparent)}
.fl-dia{width:42px;flex:none;text-align:center;line-height:1.05;margin-right:4px} .fl-dia b{display:block;font-size:17px;font-variant-numeric:tabular-nums} .fl-dia small{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--nb-text-3)}
.fl-tg{flex:none;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:8px;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.fl-cal-dono{display:flex;gap:6px;align-items:center;padding:8px 12px;border-radius:12px;background:var(--nb-surface-2);font-size:13px} .fl-cal-dono .lucide{width:16px;height:16px;color:var(--nb-text-2)}
.fl-cal-it + .fl-cal-it{border-top:1px solid var(--nb-border)} .fl-cal-it .linha{border:0} .fl-cal-it.off .txt,.fl-cal-it.off .fl-dia,.fl-cal-it.off .fl-tg{opacity:.45}
.fl-cal-ed{display:none;padding:0 4px 12px} .fl-cal-it.ed .fl-cal-ed{display:grid}
/* Filhos · para quem aparece a escola (28/09) */
.fl-ve{width:100%;margin:0 0 12px;padding:10px 14px;gap:12px} .fl-ve>.lucide{color:var(--nb-text-2);flex:none} .fl-ve .txt small{display:block;color:var(--nb-text-2)} .fl-ve .txt b{display:block} .fl-ve-mudar{flex:none;color:var(--nb-primary);font-weight:600;font-size:var(--nb-text-sm)}
/* Saúde · treino: escolher a ordem (28/09) */
.gd-ordem{display:flex;gap:8px;margin:0 0 14px} .gd-ordem button{flex:1;text-align:left;border:1.5px solid var(--nb-border);border-radius:14px;padding:10px 12px;background:var(--nb-surface);color:var(--nb-text)} .gd-ordem button b{display:block;font-size:var(--nb-text-sm)} .gd-ordem button small{display:block;color:var(--nb-text-2);font-size:12px;margin-top:2px;line-height:1.35} .gd-ordem button.on{border-color:var(--nb-primary);background:color-mix(in srgb,var(--nb-primary) 7%,var(--nb-surface))}
/* Saúde · editar treino (28/09): lista igual à da frente + canetinha que abre embaixo */
.te-cab{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer} .te-cab b{display:block;font-size:var(--nb-text-md,16px)} .te-cab small{display:block;color:var(--nb-text-2);font-size:13px;margin-top:2px}
.te-cab-ed{display:flex;flex-direction:column;gap:12px;padding:14px}
.te-lk{color:var(--nb-primary);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:none;border:0;padding:4px 0;display:inline-flex;align-items:center;gap:6px}
.te-ln{min-height:60px;cursor:pointer} .te-ln .txt b{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
.te-pen{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--nb-text-2);background:none;border:0;flex:none} .te-pen.on{background:var(--nb-primary);color:#fff}
.te-ed{background:color-mix(in srgb,var(--nb-primary) 5%,var(--nb-surface));border-top:1px solid var(--nb-border);border-bottom:1px solid var(--nb-border);margin:0 -4px;padding:10px 10px 12px}
.te-g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.te-cel{background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:12px;padding:5px 2px 4px;text-align:center;min-width:0} .te-cel small{display:block;font-size:10px;color:var(--nb-text-3);text-transform:uppercase;letter-spacing:.05em}
.te-st{display:flex;align-items:center} .te-st button{width:24px;height:30px;border:0;background:none;color:var(--nb-text-2);font-size:18px;flex:none;padding:0} .te-st input{flex:1;min-width:0;width:100%;border:0;background:none;text-align:center;font-weight:700;font-size:15px;color:var(--nb-text);font-variant-numeric:tabular-nums;padding:4px 0;outline:none}
.te-acs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap} .te-acs .te-tirar{color:var(--nb-danger)}
.te-busca-cab{display:flex;align-items:center;gap:8px;margin:-4px 0 10px} .te-busca-cab b{font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.caixa.te-cx{display:flex;width:100%;box-sizing:border-box;height:42px;padding:0 12px;color:var(--nb-text-3)} .caixa.te-cx input{text-align:left;font-size:15px;color:var(--nb-text)} .te-res .linha .txt b{white-space:normal;line-height:1.25}
/* Saúde · Ciclo (28/09) */
:root{--cy-mens:#C2415D;--cy-mens-soft:#F6D5DC;--cy-fert:#2A8F8F;--cy-fert-soft:#CFEAE8;--cy-sint:#8E3B8A;--cy-sint-soft:#F3E3F2}
[data-theme="dark"]{--cy-mens:#E06A83;--cy-mens-soft:#4A2530;--cy-fert:#4FB8B0;--cy-fert-soft:#1D3B3A;--cy-sint:#C98AC5;--cy-sint-soft:#3A2539}
.cy-ic{--cor:var(--cy-mens);--soft:var(--cy-mens-soft)} .cy-btn{background:var(--cy-mens)!important;border-color:var(--cy-mens)!important;color:#fff!important}
.cy-lista{margin:6px 0 0;padding-left:18px;line-height:1.55} .cy-lista li{margin:2px 0}
.cy-seg{display:flex;gap:6px;margin:0 0 12px;overflow-x:auto} .cy-seg button{flex:1;white-space:nowrap;font-size:13px;padding:7px 10px;border-radius:16px;border:1px solid var(--nb-border);background:var(--nb-surface);color:var(--nb-text)} .cy-seg button.on{background:var(--cy-mens);border-color:var(--cy-mens);color:#fff;font-weight:600}
.cy-sem{display:flex;justify-content:space-between} .cy-sem>div{text-align:center;font-size:11px;color:var(--nb-text-3);width:40px} .cy-sem b{display:grid;place-items:center;width:34px;height:34px;margin:3px auto 0;border-radius:50%;font-size:13px;color:var(--nb-text);font-weight:600}
.cy-sem .m b{background:var(--cy-mens);color:#fff} .cy-sem .p b{border:1.5px dashed var(--cy-mens);color:var(--cy-mens)} .cy-sem .h b{box-shadow:0 0 0 2px var(--nb-text)}
.cy-hero{text-align:center;padding:14px 0 10px} .cy-hero small{color:var(--nb-text-2);font-size:13px} .cy-hero .big{font-family:var(--nb-font-display);font-size:30px;line-height:1.12;margin:2px 0;text-wrap:balance} .cy-hero .sub{font-size:13px;color:var(--cy-mens);font-weight:600}
.cy-troca{display:flex;gap:8px} .cy-troca .mais{flex:1;background:var(--cy-mens);color:#fff;border:0;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;font-weight:700;font-size:17px;gap:2px;min-height:78px} .cy-troca .mais small{font-weight:500;font-size:12px;opacity:.9}
.cy-troca .n{width:96px;background:var(--cy-mens-soft);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center} .cy-troca .n b{font-size:32px;line-height:1;color:var(--cy-mens);font-variant-numeric:tabular-nums} .cy-troca .n small{font-size:11px;color:var(--cy-mens)}
.cy-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px} .cy-chips button{font-size:12.5px;padding:6px 11px;border-radius:15px;border:1px solid var(--nb-border);background:var(--nb-surface);color:var(--nb-text)} .cy-chips button.on{border-color:var(--cy-mens);color:var(--cy-mens);background:color-mix(in srgb,var(--cy-mens) 9%,var(--nb-surface));font-weight:600}
.cy-per{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px} .cy-per div{text-align:center;background:var(--nb-surface-2);border-radius:10px;padding:6px 2px;font-size:11px;color:var(--nb-text-2)} .cy-per b{display:block;font-size:18px;color:var(--nb-text);font-variant-numeric:tabular-nums}
.cy-log{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px} .cy-log span{font-size:12px;padding:4px 9px;border-radius:12px;background:var(--nb-surface);border:1px solid var(--nb-border);color:var(--nb-text-2);cursor:pointer;font-variant-numeric:tabular-nums} .cy-log b{color:var(--nb-text);font-weight:600} .cy-log .add{color:var(--cy-mens);border-style:dashed;display:inline-flex;align-items:center;gap:4px} .cy-log .add .lucide{width:14px;height:14px}
.cy-fl{display:grid;grid-template-columns:repeat(4,1fr);gap:6px} .cy-fl button{border:1.5px solid var(--nb-border);border-radius:12px;text-align:center;padding:8px 2px 6px;font-size:11px;color:var(--nb-text-2);background:var(--nb-surface)} .cy-fl button span{display:block;color:var(--cy-mens);font-size:13px;letter-spacing:-2px;margin-bottom:2px} .cy-fl button.on{border-color:var(--cy-mens);background:color-mix(in srgb,var(--cy-mens) 9%,var(--nb-surface));color:var(--cy-mens);font-weight:700}
.cy-sint{display:grid;grid-template-columns:repeat(5,1fr);gap:8px 4px} .cy-sint button{background:none;border:0;text-align:center;font-size:10.5px;color:var(--nb-text-2);padding:0;line-height:1.2} .cy-sint .ic{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 4px;border-radius:50%;background:var(--nb-surface-2);color:var(--nb-text-2)} .cy-sint .on{color:var(--cy-sint);font-weight:600} .cy-sint .on .ic{background:var(--cy-sint-soft);color:var(--cy-sint);box-shadow:0 0 0 2px var(--cy-sint)}
.cy-mes{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center;font-size:13px} .cy-mes .h{font-size:10.5px;color:var(--nb-text-3);height:18px} .cy-mes .d{height:38px;border-radius:10px;border:0;background:none;color:var(--nb-text);position:relative;font-variant-numeric:tabular-nums} .cy-mes .d i{position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--cy-sint)}
.cy-mes .m{background:var(--cy-mens);color:#fff;font-weight:600} .cy-mes .m i{background:#fff} .cy-mes .pm{box-shadow:inset 0 0 0 1.5px var(--cy-mens);color:var(--cy-mens);background:repeating-linear-gradient(135deg,transparent 0 4px,color-mix(in srgb,var(--cy-mens) 8%,transparent) 4px 8px)} .cy-mes .f{background:var(--cy-fert-soft);color:var(--nb-text)} .cy-mes .o{background:var(--cy-fert);color:#fff;font-weight:700} .cy-mes .hj{box-shadow:inset 0 0 0 2px var(--nb-text)} .cy-mes .fut{opacity:.8}
.cy-lg{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--nb-text-2);margin-top:10px} .cy-lg span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;background:var(--c);border:var(--b,0)}
.cy-prev b{font-size:16px;display:block} .cy-prev small{font-size:12.5px;color:var(--nb-text-2);display:block;margin-top:3px;line-height:1.45}
.cy-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px} .cy-kpi div{background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:12px;padding:8px 10px;font-size:11px;color:var(--nb-text-2)} .cy-kpi b{display:block;font-size:19px;color:var(--nb-text);margin-top:2px} .cy-kpi .al b{color:#B7791F}
.cy-tab{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums} .cy-tab th{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--nb-text-3);font-weight:700;padding:3px 0;text-align:center} .cy-tab td{text-align:center;padding:6px 0;border-top:1px solid var(--nb-border)} .cy-tab td:first-child,.cy-tab th:first-child{text-align:left;white-space:nowrap} .cy-tab .t{font-weight:700;color:var(--cy-mens)} .cy-g{color:var(--cy-mens);letter-spacing:-2px}
.cy-pad{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--nb-border);font-size:13px;line-height:1.4} .cy-pad:first-child{border-top:0;padding-top:0} .cy-pad .ic{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--cy-sint-soft);color:var(--cy-sint)} .cy-pad small{display:block;color:var(--nb-text-2);font-size:12px}
.cy-quem{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--nb-border)} .cy-quem .av{width:32px;height:32px;border-radius:50%;background:var(--nb-surface-2);display:grid;place-items:center;font-size:13px;font-weight:700} .cy-quem small{display:block;font-size:11.5px;color:var(--nb-text-2)} .cy-quem .switch.on{background:var(--cy-mens)}
.cy-parc{border-left:4px solid var(--cy-mens)} .cy-parc b{display:block;font-size:14.5px} .cy-parc small{display:block;font-size:12.5px;color:var(--nb-text-2);margin-top:3px;line-height:1.45}
.cy-dk{max-width:760px}
/* Saúde · Números › Semana (29/09) */
.sm-vista{display:flex;gap:4px;background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:12px;padding:3px;margin:0 0 12px;width:max-content;max-width:100%} .sm-vista button{border:0;background:none;padding:6px 14px;border-radius:9px;font-size:13px;color:var(--nb-text-2)} .sm-vista .on{background:var(--nb-bg);color:var(--nb-text);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sm-nav{display:flex;align-items:center;gap:8px;background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:12px;padding:4px 6px;margin-bottom:12px} .sm-nav b{flex:1;text-align:center;font-size:14.5px} .sm-nav small{color:var(--nb-text-2);font-size:12px;margin-right:4px}
.sm-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px} .sm-kpi{background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:14px;padding:10px 12px;min-width:0} .sm-kpi .r{font-size:11.5px;color:var(--nb-text-2);display:flex;justify-content:space-between;align-items:center;gap:6px} .sm-kpi .r .lucide{width:15px;height:15px}
.sm-kpi .v{font-size:21px;font-weight:700;margin:3px 0 1px;font-variant-numeric:tabular-nums} .sm-kpi .v em{font-size:12px;font-style:normal;color:var(--nb-text-2);font-weight:500} .sm-kpi small{font-size:11.5px;color:var(--nb-text-2);display:block;line-height:1.35}
#sd-sem .ok{color:var(--nb-success)} #sd-sem .ruim{color:#b7791f} #sd-sem .mal{color:var(--nb-danger)}
.sm-ref{display:inline-flex;align-items:center;font-size:11.5px;padding:2px 8px;border-radius:10px;margin:2px 3px 2px 0;border:1px solid var(--nb-border);color:var(--nb-text-2);white-space:nowrap} .sm-ref.f{background:color-mix(in srgb,var(--nb-success) 13%,var(--nb-surface));border-color:transparent;color:var(--nb-success)} .sm-ref.n{border-style:dashed;color:var(--nb-text-3);text-decoration:line-through} .sm-ref.p{border-style:dashed;color:var(--nb-text-3)} .sm-ref.x{background:color-mix(in srgb,#d9822b 14%,var(--nb-surface));border-color:transparent;color:#a0601a}
.sm-bar{height:6px;border-radius:3px;background:var(--nb-surface-2);margin-top:5px;overflow:hidden} .sm-bar i{display:block;height:100%;border-radius:3px;background:var(--nb-mod-saude)} .sm-bar.acima i{background:#d9822b} .sm-bar.agua i{background:#3b8ec7}
.sm-cd{padding:11px 13px;margin-bottom:8px;cursor:pointer} .sm-cd .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px} .sm-cd .top b{font-size:14px} .sm-cd .refs{margin-top:6px} .sm-cd .l{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--nb-text-2);margin-top:6px} .sm-cd .l b{color:var(--nb-text)}
.sm-tab{padding:0;overflow:hidden;margin-bottom:6px} .sm-tab table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums} .sm-tab th{text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--nb-text-3);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--nb-border)} .sm-tab td{padding:9px 12px;border-bottom:1px solid var(--nb-border);vertical-align:middle} .sm-tab tr:last-child td{border-bottom:0}
.sm-tab tbody tr{cursor:pointer} .sm-tab tbody tr.fut{cursor:default;opacity:.55} .sm-tab td b{font-weight:600} .sm-tab td small{display:block;font-size:11.5px;color:var(--nb-text-2)} .sm-tab tr.aberto>td{background:color-mix(in srgb,var(--nb-primary) 5%,var(--nb-surface))} .sm-tr b{display:block;font-size:12.5px}
.sm-det{display:grid;grid-template-columns:1fr;gap:12px;padding:8px 2px 4px;font-size:12.5px;cursor:default} .sm-tab .sm-det{padding:6px 14px 14px;grid-template-columns:1fr 1fr;gap:20px} .sm-det h4{margin:6px 0 6px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--nb-text-3)} .sm-det ul{margin:0;padding:0} .sm-det li{list-style:none;display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px dashed var(--nb-border)} .sm-det li b{white-space:nowrap;font-variant-numeric:tabular-nums}
.sm-h2{font-size:17px;margin:22px 2px 10px;display:flex;align-items:center;gap:8px} .sm-kpis.seis{grid-template-columns:repeat(2,minmax(0,1fr))}
.sm-grid{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.sm-mus{padding:13px 15px} .sm-mus h3{margin:0 0 8px;font-size:13.5px} .sm-mus h3 .t3{font-weight:400} .sm-mus .l{display:grid;grid-template-columns:92px 1fr 30px;gap:10px;align-items:center;font-size:12.5px;margin:6px 0} .sm-mus .b{height:10px;border-radius:5px;background:var(--nb-surface-2);overflow:hidden} .sm-mus .b i{display:block;height:100%;background:var(--nb-mod-saude);border-radius:5px} .sm-mus .l.pouco .b i{background:#d9a441} .sm-mus .n{text-align:right;font-weight:600;font-variant-numeric:tabular-nums} .sm-mus .nota{font-size:11.5px;color:var(--nb-text-2);margin-top:8px;padding-top:8px;border-top:1px solid var(--nb-border)}
.sm-ses{padding:2px 0;overflow:hidden} .sm-ses .sl{display:grid;grid-template-columns:52px minmax(0,1fr) 78px 56px 18px;gap:8px;align-items:center;padding:10px 13px;border-top:1px solid var(--nb-border);font-size:13px;cursor:pointer} .sm-ses .sl:first-child{border-top:0} .sm-ses .sl small{display:block;font-size:11.5px;color:var(--nb-text-2)} .sm-ses .sl .t{font-variant-numeric:tabular-nums} .sm-ses .sl .t small{display:inline} .sm-ses .sl .lucide{width:16px;height:16px;color:var(--nb-text-3)} .sm-ses .aberta,.sm-ses .ex{background:color-mix(in srgb,var(--nb-primary) 5%,var(--nb-surface))}
.sm-ses .ex{padding:2px 13px 12px;overflow-x:auto} .sm-ses .ex table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums} .sm-ses .ex th{text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--nb-text-3);padding:6px 5px} .sm-ses .ex td{padding:6px 5px;border-top:1px dashed var(--nb-border)} .sm-ses .ex td:first-child{min-width:130px}
.sm-ch{display:inline-flex;font-size:11px;padding:2px 7px;border-radius:10px;font-weight:700;white-space:nowrap} .sm-ch.up{background:color-mix(in srgb,var(--nb-success) 15%,transparent);color:var(--nb-success)} .sm-ch.dn{background:color-mix(in srgb,#d9822b 17%,transparent);color:#a0601a} .sm-ch.eq{background:var(--nb-surface-2);color:var(--nb-text-2);font-weight:600} .sm-ch.nv{background:color-mix(in srgb,var(--nb-primary) 12%,transparent);color:var(--nb-primary)}
.sm-obs{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px} .sm-obs .card{padding:12px 14px;font-size:13px;line-height:1.5} .sm-obs h3{margin:0 0 6px;font-size:13.5px;display:flex;gap:6px;align-items:center} .sm-obs h3 .lucide{width:16px;height:16px} .sm-obs ul{margin:0;padding-left:18px} .sm-obs li{margin:3px 0}
@media (min-width: 1000px) and (orientation: landscape) {
  .sm-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px} .sm-kpis.seis{grid-template-columns:repeat(6,minmax(0,1fr))} .sm-kpi{padding:12px 14px} .sm-kpi .v{font-size:24px}
  .sm-nav{display:inline-flex;min-width:420px} .sm-grid{grid-template-columns:minmax(300px,1fr) minmax(0,1.7fr);gap:14px}
  .sm-ses .sl{grid-template-columns:64px minmax(0,1fr) 110px 90px 100px 22px;padding:10px 16px} .sm-ses .ex{padding:2px 16px 14px 90px}
  .sm-obs{grid-template-columns:repeat(3,minmax(0,1fr))} .sm-obs.dois{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Gráficos no celular (29/09, maquete aprovada): toque escolhe a coluna, o detalhe aparece embaixo; barras deitadas em HTML */
.gx{position:relative;width:100%} .gx svg{display:block;overflow:visible} .gx svg text{font-family:var(--nb-font-ui);font-variant-numeric:tabular-nums}
.gx-rolo{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch} .gx-rolo::-webkit-scrollbar{display:none}
.gx-dica{font-size:11px;color:var(--nb-text-3);text-align:center;margin-top:2px}
.gx-lgd{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--nb-text-2);margin-top:6px} .gx-lgd i{display:inline-block;width:10px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.gx-det{background:color-mix(in srgb,var(--nb-primary) 6%,var(--nb-surface));border:1.5px solid color-mix(in srgb,var(--nb-primary) 35%,var(--nb-border));border-radius:14px;padding:9px 11px;margin-top:8px;font-size:12.5px}
.gx-det .h{display:flex;justify-content:space-between;gap:8px;font-weight:700;font-size:13.5px;margin-bottom:5px} .gx-det .l{display:flex;justify-content:space-between;gap:12px;margin:3px 0;font-variant-numeric:tabular-nums} .gx-det .l span{color:var(--nb-text-2);white-space:pre;flex:none} .gx-det .l b{text-align:right;min-width:0} .gx-det i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}
.gx-abrir{display:block;margin:4px 0 0 auto;border:0;background:none;color:var(--nb-primary);font-weight:700;font-size:12.5px;padding:4px 0}
.card.gx-cc{padding:12px 12px 10px;margin-bottom:10px} .gx-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px} .gx-t b{font-size:14.5px} .gx-t span{font-size:11.5px;color:var(--nb-text-2);text-align:right}
.gx-ok{color:var(--nb-success)} .gx-ruim{color:#b7791f} .gx-mal{color:var(--nb-danger)}
.gx-hb>div{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12.5px;padding:4px 0} .gx-hb>div[role=button]{cursor:pointer}
.gx-hb .r{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600} .gx-hb .n{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;min-width:54px} .gx-hb small{grid-column:2/-1;font-size:11px;color:var(--nb-text-2);margin-top:-3px}
.gx-hb .b{height:13px;border-radius:7px;background:var(--nb-surface-2);position:relative;display:block} .gx-hb .b>i{display:block;height:100%;border-radius:7px} .gx-hb .b u{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--nb-text-2);border-radius:1px}
.gx-hb .b.p{background:none} .gx-hb .b.p>span{display:flex;height:100%;border-radius:7px;overflow:hidden;min-width:4px} .gx-hb .b.p i{display:block;height:100%}
.gx-hb>div.on{background:color-mix(in srgb,var(--nb-primary) 7%,transparent);border-radius:8px;box-shadow:0 0 0 2px var(--nb-primary) inset;padding-left:6px;padding-right:6px;margin:0 -6px}
.gx-mais{display:block;width:100%;border:0;background:none;color:var(--nb-primary);font-weight:700;font-size:12.5px;padding:8px 0 2px}
.gx-sem>div{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12.5px;padding:6px 0;border-top:1px dashed var(--nb-border)} .gx-sem>div:first-child{border-top:0} .gx-sem .n{text-align:right;font-weight:700;font-variant-numeric:tabular-nums} .gx-sem small{grid-column:2/-1;font-size:11px;color:var(--nb-text-2);margin-top:-2px}
.gx-dots{display:flex;gap:4px;flex-wrap:wrap} .gx-dots i{width:14px;height:14px;border-radius:4px;background:var(--nb-surface-2);border:1px solid var(--nb-border)} .gx-dots i.f{background:var(--nb-success);border-color:var(--nb-success)}
.gx-meta>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;font-size:12.5px;padding:8px 0;border-top:1px dashed var(--nb-border)} .gx-meta>div:first-child{border-top:0} .gx-meta b{font-variant-numeric:tabular-nums} .gx-meta small{grid-column:1/-1;font-size:11.5px;color:var(--nb-text-2)}
.gx-meta .b{grid-column:1/-1;height:10px;border-radius:5px;background:var(--nb-surface-2);overflow:hidden;position:relative} .gx-meta .b i{position:absolute;left:0;top:0;bottom:0;border-radius:5px} .gx-meta .b i.pr{opacity:.35}
.gx-cat>div{display:grid;grid-template-columns:minmax(0,1fr) auto 46px;gap:6px;font-size:12.5px;padding:6px 6px 2px;border-radius:8px;cursor:pointer} .gx-cat>div>b:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .gx-cat .n{text-align:right;font-weight:700;font-variant-numeric:tabular-nums} .gx-cat .v{text-align:right;font-weight:700;font-size:11.5px}
.gx-cat .b{grid-column:1/-1;height:8px;border-radius:4px;background:var(--nb-surface-2);overflow:hidden;margin-bottom:4px} .gx-cat .b i{display:block;height:100%;background:var(--nb-mod-financas);border-radius:4px} .gx-cat>div.on{box-shadow:0 0 0 2px var(--nb-primary) inset;background:color-mix(in srgb,var(--nb-primary) 5%,transparent)}
/* Finanças › Importar (30/09, maquete aprovada): mandar extrato/fatura e conferir antes de lançar */
.fbi-drop{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;border:2px dashed color-mix(in srgb,var(--nb-primary) 40%,var(--nb-border));border-radius:16px;padding:20px 14px;background:color-mix(in srgb,var(--nb-primary) 4%,var(--nb-surface));cursor:pointer;margin-bottom:10px}
.fbi-drop.on{background:color-mix(in srgb,var(--nb-primary) 12%,var(--nb-surface));border-style:solid}
.fbi-drop .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--nb-primary) 12%,transparent);color:var(--nb-primary);margin-bottom:6px} .fbi-drop .ic .lucide{width:22px;height:22px}
.fbi-drop b{font-size:15.5px} .fbi-drop small{font-size:12.5px;color:var(--nb-text-2)} .fbi-drop .fmts{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:8px} .fbi-drop .fmts i{font-style:normal;font-size:11.5px;padding:2px 9px;border-radius:10px;background:var(--nb-surface);border:1px solid var(--nb-border);color:var(--nb-text-2)}
.fbi-tipos{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:6px} .fbi-tipos>div{background:var(--nb-surface);border:1px solid var(--nb-border);border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--nb-text-2);line-height:1.4} .fbi-tipos b{display:flex;gap:6px;align-items:center;color:var(--nb-text);font-size:13.5px;margin-bottom:3px} .fbi-tipos .lucide{width:15px;height:15px}
.fbi-fila{display:flex;gap:12px;align-items:center;background:color-mix(in srgb,var(--nb-primary) 6%,var(--nb-surface));border:1px solid color-mix(in srgb,var(--nb-primary) 25%,var(--nb-border));border-radius:14px;padding:12px 14px;margin-bottom:10px;font-size:13px} .fbi-fila>div{flex:1} .fbi-fila b{font-size:21px} .fbi-fila small{display:block;color:var(--nb-text-2);font-size:12px}
.fbi-ch{display:inline-flex;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700;white-space:nowrap} .fbi-ch svg{width:12px;height:12px;margin-right:4px;flex:none;align-self:center} .fbi-ch.nova{background:color-mix(in srgb,var(--nb-primary) 12%,transparent);color:var(--nb-primary)} .fbi-ch.casou{background:color-mix(in srgb,var(--nb-success) 15%,transparent);color:var(--nb-success)} .fbi-ch.rep{background:var(--nb-surface-2);color:var(--nb-text-2)} .fbi-ch.fora{background:color-mix(in srgb,#d9822b 15%,transparent);color:#a0601a}
.fbi-sel{display:grid;grid-template-columns:1fr 1fr;gap:8px} .fbi-sel label{font-size:11.5px;color:var(--nb-text-2);display:flex;flex-direction:column;gap:4px} .fbi-sel select{font:inherit;font-size:13.5px;width:100%}
.fbi-kp{display:grid;grid-template-columns:1fr 1fr;gap:8px} .fbi-kp>div{border:1px solid var(--nb-border);border-radius:12px;padding:8px 10px} .fbi-kp small{display:block;font-size:11px;color:var(--nb-text-2)} .fbi-kp b{display:block;font-size:19px;font-variant-numeric:tabular-nums}
.fbi-aviso{display:flex;gap:8px;align-items:flex-start;background:#fff7ea;border:1px solid #f1d3a3;border-radius:12px;padding:9px 11px;font-size:12.5px;color:#7a4a0c;line-height:1.4} .fbi-aviso .lucide{width:16px;height:16px;flex:none;margin-top:1px}
.fbi-aviso.ok{background:color-mix(in srgb,var(--nb-success) 8%,var(--nb-surface));border-color:color-mix(in srgb,var(--nb-success) 30%,var(--nb-border));color:var(--nb-text)}
[data-theme="dark"] .fbi-aviso:not(.ok){background:#3a2c14;border-color:#6b5020;color:#f3d9a8}
.fbi-tab{max-height:52vh;overflow:auto} #fbi{display:flex;flex-direction:column;gap:12px}
.fbi-spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--nb-surface-2);border-top-color:var(--nb-primary);animation:fbi-gira .9s linear infinite} @keyframes fbi-gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.fbi-spin{animation-duration:3s}}
/* Importar em segundo plano (30/09): grupos da conferência e a lista de enviados */
.fbi-grupo{border:1px solid var(--nb-border);border-radius:14px;overflow:hidden;margin-bottom:10px;background:var(--nb-surface)} .fbi-grupo>summary{list-style:none;cursor:pointer;padding:10px 14px;display:flex;flex-direction:column;gap:1px;background:var(--nb-surface-2)} .fbi-grupo>summary::-webkit-details-marker{display:none}
.fbi-grupo>summary b{font-size:14px} .fbi-grupo>summary small{font-size:12px;color:var(--nb-text-2)} .fbi-grupo .card{border:0;border-radius:0;margin:0} .fbi-grupo .dk-tab{margin:0}
.fbi-descartar{border:0;background:none;color:var(--nb-text-3);font:inherit;font-size:12.5px;text-decoration:underline;align-self:flex-start;padding:2px 0;cursor:pointer}
.fbi-spin.pq{display:inline-block;width:11px;height:11px;border-width:2px;margin-right:5px;vertical-align:-1px}
.fbi-and .btn.pq{white-space:nowrap} .fbi-lk{cursor:pointer} .fbi-lk:hover{background:color-mix(in srgb,var(--nb-primary) 4%,transparent)} span.fbi-ch.fbi-lk:hover,span.fbi-ch[role=button]:hover{filter:brightness(.95);text-decoration:underline} span.fbi-ch[role=button]{cursor:pointer} .fbi-kp > .fbi-lk{border-radius:10px;transition:background .15s} .fbi-kp > .fbi-lk.on{background:color-mix(in srgb,var(--nb-primary) 8%,transparent)} .fbi-and + .fbi-tipos{margin-top:14px}
