/* Planta Viva V7 — tema sem “ilhas” claras/escuras + biblioteca de 500 plantas */
:root,
html[data-theme="light"]{
  color-scheme:light;
  --v7-bg:#f2f0e8;
  --v7-surface:#fffefa;
  --v7-surface-2:#f8f7f1;
  --v7-surface-3:#edf3e8;
  --v7-text:#17231c;
  --v7-muted:#66746b;
  --v7-border:rgba(22,54,37,.12);
  --v7-primary:#153f2c;
  --v7-primary-hover:#0f5237;
  --v7-on-primary:#ffffff;
  --v7-accent:#1f7a55;
  --v7-accent-soft:#e4f1e7;
  --v7-danger-bg:#f3e5df;
  --v7-danger-text:#754b3d;
  --v7-overlay:rgba(7,25,16,.48);
  --v7-shadow:0 18px 55px rgba(20,43,29,.10);

  /* Faz o CSS antigo herdar o mesmo sistema semântico. */
  --cream:var(--v7-bg);
  --paper:var(--v7-surface);
  --ink:var(--v7-text);
  --muted:var(--v7-muted);
  --line:var(--v7-border);
  --forest:var(--v7-primary);
  --forest2:#1c4935;
  --sage2:var(--v7-accent-soft);
  --jc-bg:var(--v7-bg);
  --jc-paper:var(--v7-surface);
  --jc-ink:var(--v7-text);
  --jc-muted:var(--v7-muted);
  --jc-line:var(--v7-border);
  --pv6-surface:var(--v7-surface);
  --pv6-surface-2:var(--v7-surface-2);
  --pv6-surface-3:var(--v7-surface-3);
  --pv6-text:var(--v7-text);
  --pv6-muted:var(--v7-muted);
  --pv6-border:var(--v7-border);
  --pv6-accent:var(--v7-primary);
  --pv6-accent-soft:var(--v7-accent-soft);
}

html[data-theme="dark"]{
  color-scheme:dark;
  --v7-bg:#0d1510;
  --v7-surface:#141e17;
  --v7-surface-2:#101812;
  --v7-surface-3:#1d2a21;
  --v7-text:#edf4ef;
  --v7-muted:#9aa99f;
  --v7-border:rgba(235,246,238,.10);
  --v7-primary:#22885d;
  --v7-primary-hover:#2a9b6b;
  --v7-on-primary:#f8fffb;
  --v7-accent:#63c18d;
  --v7-accent-soft:#1d3327;
  --v7-danger-bg:#30231f;
  --v7-danger-text:#ddb9aa;
  --v7-overlay:rgba(0,6,3,.68);
  --v7-shadow:0 18px 55px rgba(0,0,0,.24);

  --cream:var(--v7-bg);
  --paper:var(--v7-surface);
  --ink:var(--v7-text);
  --muted:var(--v7-muted);
  --line:var(--v7-border);
  --forest:var(--v7-primary);
  --forest2:#236b4c;
  --sage2:var(--v7-accent-soft);
  --jc-bg:var(--v7-bg);
  --jc-paper:var(--v7-surface);
  --jc-ink:var(--v7-text);
  --jc-muted:var(--v7-muted);
  --jc-line:var(--v7-border);
  --pv6-surface:var(--v7-surface);
  --pv6-surface-2:var(--v7-surface-2);
  --pv6-surface-3:var(--v7-surface-3);
  --pv6-text:var(--v7-text);
  --pv6-muted:var(--v7-muted);
  --pv6-border:var(--v7-border);
  --pv6-accent:var(--v7-primary);
  --pv6-accent-soft:var(--v7-accent-soft);
}

html,body{background:var(--v7-bg)!important;color:var(--v7-text)!important}
body,.desktop-layout,.app-shell,.page{color:var(--v7-text)}
body{transition:background-color .18s ease,color .18s ease}

/* Topo / campos / pesquisa */
.topbar{background:linear-gradient(180deg,var(--v7-bg) 76%,rgba(0,0,0,0))!important}
.search,.field input,.field select,.field textarea,
.library-search input{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
  caret-color:var(--v7-accent);
}
.search::placeholder,.field input::placeholder,.field textarea::placeholder,.library-search input::placeholder{color:var(--v7-muted)!important;opacity:.76}
.search:focus,.field input:focus,.field select:focus,.field textarea:focus,.library-search:focus-within{
  border-color:color-mix(in srgb,var(--v7-accent) 44%,transparent)!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--v7-accent) 12%,transparent)!important;
}
.field label,.eyebrow,.section-head p,.scientific{color:var(--v7-muted)!important}

/* Superfícies: tudo que parece card passa pela mesma paleta. */
.collection-card,.tool-card,.plant-card,.crop-card,.planner,.season-panel,.sos-card,.more-card,
.card,.agenda-task,.activity-item,.week-day,.pulse-mini,.pro-action,.mini-result,.propagation-card,
.season-now-card,.toggle-row,.pro-summary-card,.garden-pulse-card,.profile-card,.today-panel,
.space-mode-panel,.space-mode-summary,.planner-context,.add-space-preview,.calc-output,
.pro-fact-grid>div,.space-guide-grid>div,.signal-box,.hero-stat,.detail-section{
  background:var(--v7-surface)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
.collection-card small,.tool-card small,.plant-body p,.crop-body p,.more-card small,.card p,
.agenda-task p,.activity-item p,.pro-action small,.pulse-mini small,.planner-context p,.space-mode-copy p,
.space-mode-summary p,.space-guide-grid small,.pro-fact-grid small,.detail-row p,.detail-section p,.signal-box p,
.timeline-item div,.hero-stat small,.season-chip small,.last-care,.empty{
  color:var(--v7-muted)!important;
}

/* Componentes auxiliares */
.filter,.detail-tabs button,.species-actions button,.season-chip,.kpi,.mini-badge,.tag,
.recent-search,.menu-btn,.round-action,.icon-btn,.avatar-btn{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
.filter:hover,.detail-tabs button:hover,.species-actions button:hover,.season-chip:hover,.menu-btn:hover{
  background:var(--v7-surface-3)!important;
}
.filter.active,.detail-tabs button.active{
  background:var(--v7-primary)!important;
  color:var(--v7-on-primary)!important;
  border-color:var(--v7-primary)!important;
}
.tag,.mini-badge,.kpi{background:var(--v7-accent-soft)!important;color:var(--v7-text)!important}

/* Botões: nenhuma barra branca aleatória no dark. */
.btn{
  background:var(--v7-primary)!important;
  color:var(--v7-on-primary)!important;
  border:1px solid var(--v7-primary)!important;
  transition:.16s ease!important;
}
.btn:hover:not(:disabled){background:var(--v7-primary-hover)!important;border-color:var(--v7-primary-hover)!important;transform:translateY(-1px)}
.btn.soft,.btn.light{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border:1px solid var(--v7-border)!important;
}
.btn.soft:hover:not(:disabled),.btn.light:hover:not(:disabled){background:var(--v7-surface-3)!important}
.btn.danger{background:#7b4337!important;color:#fff!important;border-color:#7b4337!important}
.btn:disabled,.btn[disabled]{
  background:var(--v7-surface-3)!important;
  color:var(--v7-muted)!important;
  border-color:var(--v7-border)!important;
  opacity:.72!important;
  cursor:not-allowed!important;
  transform:none!important;
}

/* Modal inteiro acompanha tema: fundo, sticky header, tabs, cards e ações. */
.modal{background:var(--v7-overlay)!important}
.modal-sheet{
  background:var(--v7-bg)!important;
  color:var(--v7-text)!important;
  border:1px solid var(--v7-border)!important;
  box-shadow:0 -20px 70px rgba(0,0,0,.22)!important;
  scrollbar-color:color-mix(in srgb,var(--v7-muted) 48%,transparent) var(--v7-bg);
}
.modal-head{
  background:color-mix(in srgb,var(--v7-bg) 94%,transparent)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
.modal-title,.detail-section h3,.detail-section h2,.detail-section b,.hero-stat b,.check-item,.timeline-item,
.section-inline h3,.space-guide-grid b,.pro-fact-grid b{color:var(--v7-text)!important}
.detail-row,.care-plan-row{border-color:var(--v7-border)!important}
.detail-row b{color:var(--v7-muted)!important}
.detail-tabs{background:linear-gradient(180deg,var(--v7-bg) 78%,rgba(0,0,0,0))!important}
.detail-actions{
  background:linear-gradient(180deg,rgba(0,0,0,0),var(--v7-bg) 30%)!important;
  border-color:var(--v7-border)!important;
}
.modal-sheet .detail-actions .btn,
.modal-sheet .detail-actions .btn.soft,
.modal-sheet .detail-actions .btn.light{min-height:43px}
.timeline-item span,.card-icon,.collection-card>span,.tool-card>span,.pro-action>span,.activity-item>span,
.profile-timeline>div>span,.sos-card .bigicon,.more-card>span{background:var(--v7-accent-soft)!important;color:var(--v7-text)!important}
.danger-note{background:var(--v7-danger-bg)!important;color:var(--v7-danger-text)!important}

/* Ambiente apartamento/casa também respeita o mesmo sistema. */
.space-mode-controls button,.space-segment button{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
.space-mode-controls button>span{background:var(--v7-surface-3)!important}
.space-mode-controls button small{color:var(--v7-muted)!important}
.space-mode-controls button.active,.space-segment button.active{
  background:var(--v7-primary)!important;
  color:var(--v7-on-primary)!important;
  border-color:var(--v7-primary)!important;
}
.space-mode-controls button.active small{color:color-mix(in srgb,var(--v7-on-primary) 72%,transparent)!important}
.space-mode-controls button.active>span{background:color-mix(in srgb,var(--v7-on-primary) 13%,transparent)!important}
.space-fit-badge,.space-score{background:var(--v7-accent-soft)!important;color:var(--v7-accent)!important}
.space-fit-badge.warn{background:color-mix(in srgb,#b58a3b 16%,var(--v7-surface))!important;color:color-mix(in srgb,#b58a3b 76%,var(--v7-text))!important}

/* Cards/ilustrações no dark não ficam com fundos claros herdados. */
html[data-theme="dark"] .plant-cover,
html[data-theme="dark"] .crop-cover,
html[data-theme="dark"] .detail-cover{background:#18261d!important}
html[data-theme="dark"] .page-hero{color:var(--v7-text)!important;border:1px solid var(--v7-border)!important}
html[data-theme="dark"] .library-hero{background:linear-gradient(135deg,#1c261b,#172219)!important}
html[data-theme="dark"] .horta-hero{background:linear-gradient(135deg,#1a2a1e,#142019)!important}
html[data-theme="dark"] .sos-hero{background:linear-gradient(135deg,#2b201c,#171d18)!important}
html[data-theme="dark"] .my-hero{background:linear-gradient(135deg,#1b291f,#141f18)!important}
html[data-theme="dark"] .more-hero{background:linear-gradient(135deg,#22232a,#151b18)!important}
html[data-theme="dark"] .page-hero p{color:var(--v7-muted)!important}

/* Bottom nav/drawer */
.bottom-nav{background:color-mix(in srgb,var(--v7-bg) 94%,transparent)!important;border-color:var(--v7-border)!important}
.nav-item{color:var(--v7-muted)!important}
.nav-item.active{background:var(--v7-primary)!important;color:var(--v7-on-primary)!important}
.drawer-panel{background:var(--v7-bg)!important;color:var(--v7-text)!important}

/* Biblioteca V7 — 500 fichas sem renderizar 500 cards de uma vez. */
.library-catalog-section{margin-top:18px!important}
.library-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:center;margin-bottom:12px}
.library-search{height:48px;position:relative;display:flex;align-items:center;border:1px solid var(--v7-border);border-radius:14px;background:var(--v7-surface-2);transition:.16s ease;overflow:hidden}
.library-search>span{width:42px;display:grid;place-items:center;color:var(--v7-muted);font-size:20px;flex:0 0 auto}
.library-search input{border:0!important;border-radius:0!important;box-shadow:none!important;height:100%;padding:0 13px 0 0!important;outline:none!important;font-size:13px;width:100%}
.catalog-result-count{font:700 10px/1.25 "JetBrains Mono",monospace;letter-spacing:.02em;color:var(--v7-muted);white-space:nowrap;padding:0 3px}
.catalog-result-count b{font-size:14px;color:var(--v7-text)}
.catalog-result-count span{color:var(--v7-muted)}
.catalog-more{grid-column:1/-1;min-height:72px;border:1px dashed color-mix(in srgb,var(--v7-accent) 38%,var(--v7-border));border-radius:18px;background:var(--v7-surface-2);color:var(--v7-text);display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;gap:2px 10px;align-items:center;text-align:left;padding:12px 14px}
.catalog-more>span{grid-row:1/3;width:44px;height:44px;border-radius:13px;background:var(--v7-accent-soft);color:var(--v7-accent);display:grid;place-items:center;font:800 10px/1 "JetBrains Mono",monospace}
.catalog-more>b{font-size:13px}.catalog-more>small{font-size:10px;color:var(--v7-muted)}
.catalog-more:hover{border-style:solid;background:var(--v7-surface-3)}
.catalog-empty{grid-column:1/-1}

/* Conserta textos inline antigos que tinham cor fixa de tema claro. */
html[data-theme="dark"] [style*="color:#52695d"],
html[data-theme="dark"] [style*="color:#536b5e"],
html[data-theme="dark"] [style*="color:#455d51"],
html[data-theme="dark"] [style*="color:#60766b"]{color:var(--v7-muted)!important}

@media(max-width:760px){
  .library-toolbar{grid-template-columns:1fr;gap:8px}
  .catalog-result-count{white-space:normal;padding-left:2px}
  .library-search{height:46px}
  .modal-sheet{border-left:0!important;border-right:0!important;border-bottom:0!important}
  .detail-actions{padding-bottom:max(0px,env(safe-area-inset-bottom))}
}

/* Overrides finais com especificidade suficiente para vencer regras V6 marcadas !important. */
html[data-theme="dark"] .modal-sheet .btn:not(.soft):not(.light):not(.danger),
html[data-theme="dark"] .modal-sheet .detail-actions .btn:not(.soft):not(.light):not(.danger){
  background:var(--v7-primary)!important;
  color:var(--v7-on-primary)!important;
  border-color:var(--v7-primary)!important;
}
html[data-theme="dark"] .modal-sheet .btn.soft,
html[data-theme="dark"] .modal-sheet .btn.light,
html[data-theme="dark"] .modal-sheet .detail-actions .btn.soft,
html[data-theme="dark"] .modal-sheet .detail-actions .btn.light{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
html[data-theme="dark"] .modal-sheet .btn:disabled,
html[data-theme="dark"] .modal-sheet .btn[disabled]{
  background:var(--v7-surface-3)!important;
  color:var(--v7-muted)!important;
  border-color:var(--v7-border)!important;
  opacity:.72!important;
}
html[data-theme="dark"] .detail-tabs button.active,
html[data-theme="dark"] .space-mode-controls button.active,
html[data-theme="dark"] .space-segment button.active,
html[data-theme="dark"] .nav-item.active{
  background:var(--v7-primary)!important;
  color:var(--v7-on-primary)!important;
  border-color:var(--v7-primary)!important;
}
html[data-theme="dark"] .space-mode-controls button.active>span{background:rgba(255,255,255,.12)!important}
html[data-theme="dark"] .space-mode-controls button.active small{color:rgba(255,255,255,.72)!important}

/* V7 dark: camada final única. Regras antigas V5/V6 tinham vários hex diferentes;
   este bloco força todos os componentes estruturais a voltar para os tokens V7. */
html[data-theme="dark"] body,
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .desktop-layout{background:var(--v7-bg)!important;color:var(--v7-text)!important}
html[data-theme="dark"] .topbar{background:linear-gradient(180deg,var(--v7-bg) 78%,rgba(13,21,16,0))!important}
html[data-theme="dark"] .search,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .avatar-btn,
html[data-theme="dark"] .live-search-panel,
html[data-theme="dark"] .collection-card,
html[data-theme="dark"] .tool-card,
html[data-theme="dark"] .plant-card,
html[data-theme="dark"] .crop-card,
html[data-theme="dark"] .planner,
html[data-theme="dark"] .season-panel,
html[data-theme="dark"] .sos-card,
html[data-theme="dark"] .more-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .pro-summary-card,
html[data-theme="dark"] .agenda-task,
html[data-theme="dark"] .activity-item,
html[data-theme="dark"] .week-day,
html[data-theme="dark"] .pulse-mini,
html[data-theme="dark"] .pro-action,
html[data-theme="dark"] .mini-result,
html[data-theme="dark"] .propagation-card,
html[data-theme="dark"] .season-now-card,
html[data-theme="dark"] .toggle-row,
html[data-theme="dark"] .detail-section,
html[data-theme="dark"] .hero-stat,
html[data-theme="dark"] .pro-species,
html[data-theme="dark"] .add-space-preview,
html[data-theme="dark"] .space-mode-panel,
html[data-theme="dark"] .space-mode-summary,
html[data-theme="dark"] .planner-context{
  background:var(--v7-surface)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
html[data-theme="dark"] .modal-sheet{background:var(--v7-bg)!important;color:var(--v7-text)!important;border-color:var(--v7-border)!important}
html[data-theme="dark"] .modal-head{background:rgba(13,21,16,.96)!important;color:var(--v7-text)!important;border-color:var(--v7-border)!important}
html[data-theme="dark"] .detail-tabs{background:linear-gradient(180deg,var(--v7-bg) 78%,rgba(13,21,16,0))!important}
html[data-theme="dark"] .detail-tabs button,
html[data-theme="dark"] .species-actions button,
html[data-theme="dark"] .filter,
html[data-theme="dark"] .season-chip,
html[data-theme="dark"] .kpi,
html[data-theme="dark"] .mini-badge{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
html[data-theme="dark"] .detail-actions{background:linear-gradient(180deg,rgba(13,21,16,0),var(--v7-bg) 30%)!important}
html[data-theme="dark"] .field input,
html[data-theme="dark"] .field select,
html[data-theme="dark"] .field textarea,
html[data-theme="dark"] .library-search input{background:var(--v7-surface-2)!important;color:var(--v7-text)!important;border-color:var(--v7-border)!important}
html[data-theme="dark"] .pro-fact-grid>div,
html[data-theme="dark"] .space-guide-grid>div,
html[data-theme="dark"] .signal-box,
html[data-theme="dark"] .calc-output,
html[data-theme="dark"] .timeline-item span,
html[data-theme="dark"] .card-icon{
  background:var(--v7-surface-2)!important;
  color:var(--v7-text)!important;
  border-color:var(--v7-border)!important;
}
html[data-theme="dark"] .tag{background:var(--v7-accent-soft)!important;color:var(--v7-accent)!important}
html[data-theme="dark"] .danger-note{background:var(--v7-danger-bg)!important;color:var(--v7-danger-text)!important}
html[data-theme="dark"] .bottom-nav{background:rgba(13,21,16,.95)!important;border-color:var(--v7-border)!important}
html[data-theme="dark"] .drawer-panel{background:var(--v7-bg)!important;color:var(--v7-text)!important}
html[data-theme="dark"] .plant-cover,
html[data-theme="dark"] .crop-cover,
html[data-theme="dark"] .detail-cover{background:#18261d!important}
