/* Home Manager semantic design system. Components use roles, never palette literals. */
:root{
  color-scheme:light dark;
  --background:#F2F2F7;--surface-primary:#FFFFFF;--surface-secondary:#F2F2F7;--surface-tertiary:#FFFFFF;
  --text-primary:#000000;--text-secondary:#3C3C43;--text-tertiary:#6E6E73;--text-disabled:#8E8E93;
  --separator:#C6C6C8;--border:#D1D1D6;--border-strong:#AEAEB2;
  --accent:#0A7A5C;--accent-foreground:#0A7A5C;--accent-hover:#0C8F6B;--accent-pressed:#086349;--accent-subtle:#DFF3EA;--selection:#DFF3EA;--focus:#0A7A5C;
  --status-success:#34C759;--status-success-foreground:#167A3E;--status-success-subtle:#DDF6E5;--status-warning:#FF9500;--status-warning-foreground:#8A4B00;--status-warning-subtle:#FFF0D6;
  --status-danger:#FF3B30;--status-danger-foreground:#B42318;--status-danger-subtle:#FFE3E0;--status-info:#007AFF;--status-info-foreground:#005EA8;--status-info-subtle:#DCEEFF;
  --action-primary:var(--accent);--action-destructive:#B42318;--ai-accent:#5856D6;--ai-accent-subtle:#E6E5FF;
  --on-accent:#FFFFFF;--on-status:#111111;--scrim:rgba(0,0,0,.48);--shadow:0 8px 24px rgba(0,0,0,.12);
}

/* Contrast invariant: a light surface always receives a dark foreground.
   Component-specific styles may change a background only when they also set
   a readable foreground; this guard wins over inherited button/link colors. */
:root{color-scheme:light}
#app .surface-light,#app .money-page,#app .money-page :is(article,button,section,div,dl,dt,dd,strong,span,b,small,time,p,h2,h3){--surface-foreground:#102a43}
#app .money-transaction,#app .money-transaction[role="button"]{background:#fff!important;color:#102a43!important}
#app .money-transaction :is(strong,b){color:#102a43!important}
#app .money-transaction :is(time,span,small){color:#526273!important}
@media(prefers-color-scheme:dark){:root{
  --background:#000000;--surface-primary:#1C1C1E;--surface-secondary:#2C2C2E;--surface-tertiary:#3A3A3C;
  --text-primary:#FFFFFF;--text-secondary:#EBEBF5;--text-tertiary:#AEAEB2;--text-disabled:#636366;
  --separator:#38383A;--border:#48484A;--border-strong:#636366;
  --accent:#37C58F;--accent-foreground:#37C58F;--accent-hover:#4FD8A2;--accent-pressed:#2AAB79;--accent-subtle:#0F3A2D;--selection:#0F3A2D;--focus:#37C58F;
  --status-success:#30D158;--status-success-foreground:#6DEB8A;--status-success-subtle:#123D23;--status-warning:#FF9F0A;--status-warning-foreground:#FFC162;--status-warning-subtle:#4A2B00;
  --status-danger:#FF453A;--status-danger-foreground:#FF8A84;--status-danger-subtle:#4A1512;--status-info:#0A84FF;--status-info-foreground:#64AEFF;--status-info-subtle:#003A70;
  --action-primary:var(--accent);--action-destructive:var(--status-danger);--ai-accent:#5E5CE6;--ai-accent-subtle:#2B2A63;
  --on-accent:#FFFFFF;--on-status:#FFFFFF;--scrim:rgba(0,0,0,.7);--shadow:0 10px 28px rgba(0,0,0,.42);
}}

*{box-sizing:border-box}body{background:var(--background);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}a{color:var(--accent);text-underline-offset:.18em}button,input,select,textarea{font:inherit}button{border:0;background:var(--action-primary);color:var(--on-accent);cursor:pointer}button:hover{background:var(--accent-hover)}button:active{background:var(--accent-pressed)}button:disabled,input:disabled,select:disabled,textarea:disabled{color:var(--text-disabled);opacity:.64;cursor:not-allowed}input,select,textarea{color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border)}input::placeholder,textarea::placeholder{color:var(--text-disabled)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}input[type="checkbox"],input[type="radio"]{accent-color:var(--accent)}

h2{color:var(--text-primary)}.task-heading p,#app[data-view]>p,.buy-card>p,.buy-verdict>p{color:var(--text-secondary)}.app-tabbar button:hover{background:var(--surface-secondary)}

details,form>label,li,.task-tools,.change-card,.plant-card,.plant-profile,.task-profile,.buy-card,.buy-verdict{background:var(--surface-primary);border-color:var(--border)}.plant-name,.compact-task-main,.inventory-product{color:var(--text-primary)}.plant-name small,.inventory-product small,.task-profile-meta,.plant-botanical,.task-facts small,.project-list small,.project-list p,.task-section-title>span,.compact-task-main small{color:var(--text-secondary)}.photo-viewer,.task-reschedule-dialog{background:var(--scrim)}.photo-viewer button{background:var(--surface-tertiary);color:var(--text-primary)}

.task-page{--task-green:var(--accent);--task-muted:var(--text-secondary);--task-line:var(--separator)}.task-heading h2,#app[data-view="tasks"]>h2,#app[data-view="landscape"]>h2,#app[data-view="changes"]>h2,.care-guide h2,.task-profile-header h2,.plant-profile-header h2{color:var(--text-primary)}.planner-controls,.task-filters{background:var(--surface-secondary)}.planner-controls label{background:var(--surface-primary);color:var(--text-secondary)}.planner-controls select{color:var(--text-primary)}.attention-panel>h3,.task-section-title h3,.task-profile-kicker,.task-dialog-kicker,#app[data-view]>h3{color:var(--text-secondary)}.attention-card{background:var(--surface-primary);color:var(--text-primary);border-left-color:var(--separator)}.attention-card.red{border-left-color:var(--status-danger)}.attention-card.amber{border-left-color:var(--status-warning)}.attention-card span{color:var(--text-secondary)}.compact-task-list,.compact-task,.task-tools,.task-facts>div,.reschedule-checklist,.task-reschedule-dialog form,.task-reschedule-dialog>section{background:var(--surface-primary)}.task-rank,.tasks-heading>span,.task-restore{background:var(--status-info-subtle);color:var(--status-info)}.schedule-badge{background:var(--status-info-subtle);border-color:var(--status-info);color:var(--status-info)}.schedule-badge.unscheduled{background:var(--surface-secondary);border-color:var(--border);color:var(--text-secondary)}.task-add>summary,.task-primary,.plant-primary,.inventory-add,.buy-cost button,.buy-continue,.buy-restart{background:var(--action-primary);color:var(--on-accent)}.task-add>summary:hover,.task-primary:hover,.plant-primary:hover,.inventory-add:hover,.buy-cost button:hover,.buy-continue:hover,.buy-restart:hover{background:var(--accent-hover)}.task-row-more[open],.task-reschedule-dialog .unscheduled-choice{background:var(--surface-secondary)}.task-row-more>button,.task-reschedule-dialog .dialog-cancel,.product-archive,.inventory-archived,.change-retention button{background:var(--surface-tertiary);color:var(--text-primary)}.task-complete{background:var(--status-success-subtle);color:var(--status-success);border:1px solid var(--status-success)}.task-complete:hover{background:var(--status-success-subtle)}.task-empty{color:var(--text-secondary)}.task-filter-sheet summary,.task-sort-sheet summary{background:var(--surface-primary);border-color:var(--border);color:var(--accent)}.task-filter-sheet>div,.task-sort-sheet>select{background:var(--surface-primary);border-color:var(--border);box-shadow:var(--shadow)}.task-filter-sheet label{color:var(--text-primary)}.project-list{border-top-color:var(--separator)}.project-list button{background:var(--surface-secondary);color:var(--accent)}.task-notice{background:var(--surface-tertiary);color:var(--text-primary);box-shadow:var(--shadow)}.clear-task-date,.task-list-actions button,.today-text-links button{background:transparent;color:var(--accent)}

.task-profile,.plant-profile{background:var(--surface-primary);border-color:var(--border);box-shadow:var(--shadow)}.task-secondary,.plant-secondary{background:var(--surface-secondary);color:var(--text-primary)}.task-secondary:hover,.plant-secondary:hover{background:var(--surface-tertiary)}.task-facts{background:var(--separator);border-color:var(--separator)}.task-notes,.task-prerequisites,.plant-description,.plant-profile .plant-links{border-top-color:var(--separator)}.task-prerequisites li{background:var(--surface-secondary);border-color:var(--border)}.plant-profile-hero,.plant-profile-hero .plant-thumb{background:var(--surface-secondary)}.plant-profile-meta{color:var(--text-secondary)}.plant-status{background:var(--status-success-subtle);color:var(--status-success);border:1px solid var(--status-success)}.plant-status-monitor{background:var(--status-warning-subtle);color:var(--status-warning);border-color:var(--status-warning)}.plant-status-treatment{background:var(--status-danger-subtle);color:var(--status-danger);border-color:var(--status-danger)}.plant-status-inactive{background:var(--surface-secondary);color:var(--text-secondary);border-color:var(--border)}.plant-description h3,.care-guide h3,.task-notes h3,.task-prerequisites h3{color:var(--text-primary)}.plant-description p,.care-guide p{color:var(--text-primary)}.plant-links button{background:transparent;color:var(--accent)}.plant-links button:hover{background:transparent;color:var(--accent-hover)}

.product-delete{background:var(--action-destructive);color:var(--on-accent)}.product-delete:hover{background:var(--status-danger)}.archived-product{background:var(--surface-primary);border-color:var(--border)}.archived-product b{color:var(--text-secondary)}.inventory-product b{color:var(--status-success)}.inventory-product:hover{color:var(--accent)}

.buy-shell{color:var(--text-primary)}.buy-masthead p,.buy-step,.buy-options span{color:var(--text-secondary)}.buy-masthead h2,.buy-card h3,.buy-verdict h3{color:var(--text-primary)}.buy-progress{background:var(--surface-tertiary)}.buy-progress i{background:var(--accent)}.buy-card,.buy-verdict{background:var(--surface-primary);border-color:var(--border);box-shadow:var(--shadow)}.buy-options button,.buy-checks label{background:var(--surface-primary);color:var(--text-primary);border-color:var(--border)}.buy-options button:hover{background:var(--accent-subtle);border-color:var(--accent)}.buy-back{background:transparent;color:var(--accent);border-color:transparent}.buy-back:hover{background:var(--accent-subtle)}.buy-verdict{border-left-color:var(--status-info)}.buy-verdict.go h3{color:var(--status-success)}.buy-verdict.pending{border-left-color:var(--status-warning)}.buy-verdict.pending h3{color:var(--status-warning)}.buy-verdict.no-go{border-left-color:var(--status-danger)}.buy-verdict.no-go h3{color:var(--status-danger)}.buy-verdict ul{color:var(--text-secondary);border-top-color:var(--separator)}.buy-verdict li{background:var(--surface-secondary);border-color:var(--border)}.buy-verdict li::before{color:var(--accent)}.app-footer a,.buy-text-link,.buy-queue-link a{color:var(--accent)}

#app[data-view="tasks"]>#details-form,#app[data-view="landscape"]>#plant-details,#app[data-view="changes"]>#change-form,#app[data-view="landscape"]>details,#app[data-view="landscape"]>#product-details{background:var(--surface-primary);border-color:var(--border)}#app[data-view="tasks"]>#details-form fieldset,#app[data-view="landscape"]>#plant-details fieldset,#app[data-view="tasks"] .task-add fieldset{background:var(--surface-secondary);border-color:var(--border)}#app[data-view="tasks"]>#details-form fieldset legend,#app[data-view="tasks"] .task-add fieldset legend{color:var(--text-secondary)}#app[data-view="tasks"]>#details-form fieldset label,#app[data-view="tasks"] .task-add fieldset label{background:var(--surface-primary);border-color:var(--border)}#app[data-view="landscape"]>details>summary,.change-card>p:first-of-type,.change-card details>summary{color:var(--text-secondary)}.change-retention{border-top-color:var(--separator)}

/* Foreground variants keep small status labels readable against subtle fills. */
a,.app-footer a,.buy-text-link,.buy-queue-link a{color:var(--accent-foreground)}
.app-tabbar button.active,.app-tabbar [aria-current="page"]{color:var(--accent-foreground)}
.task-page{--task-green:var(--accent-foreground)}.task-rank,.tasks-heading>span,.task-restore,.schedule-badge{color:var(--status-info-foreground)}
.task-filter-sheet summary,.task-sort-sheet summary,.project-list button,.clear-task-date,.task-list-actions button,.today-text-links button,.plant-links button{color:var(--accent-foreground)}
.task-complete,.plant-status,.inventory-product b,.buy-verdict.go h3{color:var(--status-success-foreground)}
.plant-status-monitor,.buy-verdict.pending h3{color:var(--status-warning-foreground)}
.plant-status-treatment,.buy-verdict.no-go h3{color:var(--status-danger-foreground)}
.today-text-links .today-add-task,.dashed-add-control{display:flex;align-items:center;gap:.55rem;width:100%;margin:.75rem 0;background:transparent;color:var(--text-secondary);border:1.5px dashed var(--border-strong);border-radius:.9rem;padding:.85rem 1rem;font-weight:600;text-align:left}.today-text-links .today-add-task:hover,.dashed-add-control:hover{background:var(--surface-secondary);border-color:var(--accent)}.today-text-links .today-add-task::before,.dashed-add-control::before{content:'+';display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--accent-subtle);color:var(--accent-foreground);font-weight:800;font-size:.95rem;flex:0 0 auto}.critical-task-field{align-items:center;grid-auto-flow:column;justify-content:start;gap:.55rem}.critical-task-field input{width:1.1rem;height:1.1rem;margin:0}
.task-empty{padding:2.3rem 1.4rem;text-align:center;border:1.5px dashed var(--border-strong);border-radius:1.1rem;background:transparent}.task-empty-icon{display:block;margin:0 auto .5rem;font-size:1.6rem;opacity:.6}.task-empty strong{display:block;color:var(--text-primary);font-size:1.05rem;margin-bottom:.35rem}.task-empty p{margin:0 auto 1.1rem;max-width:26rem;line-height:1.5;color:var(--text-secondary)}.task-empty-action{background:transparent;border:1px solid var(--border-strong);color:var(--accent-foreground);padding:.6rem 1.1rem;border-radius:.75rem;font-weight:650}.task-empty-action:hover{background:var(--surface-secondary);border-color:var(--accent)}
.today-text-links{display:flex;flex-direction:column;gap:.6rem;margin:.15rem 0 1.1rem}.today-quick-links{display:flex;gap:.5rem}.today-quick-links button{background:var(--surface-secondary);color:var(--text-secondary);font-weight:650;font-size:.82rem;padding:.4rem .9rem;border-radius:99px}.today-quick-links button:hover{background:var(--surface-tertiary)}.today-quick-links button.active,.today-quick-links [aria-current="page"]{background:var(--accent-subtle);color:var(--accent-foreground)}
.budget-watch{margin:1.35rem 0}.budget-watch h3{margin:0 0 .55rem;color:var(--accent-foreground);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.budget-watch-list{overflow:hidden;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-primary)}.budget-watch-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem .9rem;border-bottom:1px solid var(--border)}.budget-watch-row:last-child{border-bottom:0}.budget-watch-row strong{min-width:0;overflow-wrap:anywhere;color:var(--text-primary)}.budget-watch-row span{flex:0 0 auto;color:var(--text-secondary);font-size:.9rem;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:600px){.task-page,.buy-shell{width:100%}.attention-card{background:var(--surface-primary)}.task-reschedule-dialog{background:var(--scrim)}}

/* Round-2 visual sweep: extend the dashed-add / thin-border / de-emphasized-metadata
   vocabulary established for Today/Landscape/Money/Wish List/Buy to the rest of the app. */
.task-add>summary{display:flex;align-items:center;gap:.55rem;background:transparent;color:var(--text-secondary);border:1.5px dashed var(--border-strong);border-radius:.9rem;padding:.85rem 1rem;font-weight:600}
.task-add>summary::before{content:'+';display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--accent-subtle);color:var(--accent-foreground);font-weight:800;font-size:.95rem;flex:0 0 auto}
.task-add>summary:hover{background:var(--surface-secondary);border-color:var(--accent);color:var(--text-primary)}

.money-link{background:transparent;color:var(--accent-foreground);border:0;font-weight:600;padding:.35rem 0;margin:0}
.money-link:hover{background:transparent;color:var(--accent-hover);text-decoration:underline}
.money-hub-links{display:block;margin:1.1rem 0;border:1px solid var(--border);border-radius:.9rem;overflow:hidden;background:var(--surface-primary)}
.money-hub-links .money-link{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;padding:.9rem 1.05rem;background:transparent;color:var(--text-primary);border:0;border-bottom:1px solid var(--border);border-radius:0;font-weight:500;text-align:left;text-decoration:none}
.money-hub-links .money-link:last-child{border-bottom:0}
.money-hub-links .money-link::after{content:'›';color:var(--text-tertiary);font-weight:700}
.money-hub-links .money-link:hover{color:var(--accent-foreground);background:var(--surface-secondary)}
.money-hub-note{color:var(--text-secondary);font-size:.82rem;line-height:1.5;margin:.2rem 0}
.money-hub-menu{margin:1.1rem 0}
.money-hub-menu>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:.9rem 1.05rem;border:1px solid var(--border);border-radius:.9rem;background:var(--surface-primary);color:var(--text-primary);font-weight:600}
.money-hub-menu>summary::-webkit-details-marker{display:none}
.money-hub-menu>summary::after{content:'⌄';color:var(--text-tertiary);font-weight:700}
.money-hub-menu[open]>summary{border-radius:.9rem .9rem 0 0;border-bottom:0}
.money-hub-menu[open]>summary::after{content:'⌃'}
.money-hub-menu>summary:hover{background:var(--surface-secondary)}
.money-hub-menu .money-hub-links{margin:0;border-top:0;border-radius:0 0 .9rem .9rem}
.money-review-button{width:100%;margin:0 0 1rem;padding:.9rem 1.05rem;border:1px solid var(--border)!important;border-radius:.9rem;background:var(--surface-primary)!important;color:var(--text-primary)!important;font-weight:500;display:flex;align-items:center;justify-content:space-between}
.money-review-button::after{content:'›';color:var(--text-tertiary);font-weight:700}
.money-review-button:hover{border-color:var(--accent);background:var(--surface-primary)!important}
.queue-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .9rem}
.queue-tool{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:.7rem;padding:.55rem .9rem;font-weight:600;margin:0}
.queue-tool:hover{background:var(--surface-tertiary);border-color:var(--accent);color:var(--accent-foreground)}
