/* Text follows its actual surface, including independent user canvas/card colors. */
:root{--surface-accent:#2869c1;--control-ink:#10194b;--control-muted:#526783;--danger-text:#ad3d4e;--surface-ink:#10194b;--surface-muted:#526783;--canvas-ink:#10194b;--canvas-muted:#526783;--canvas-accent:#2869c1;--success-bg:#e9f8ee;--success-ink:#246d46;--danger-bg:#fff0f0;--danger-ink:#ad3d4e}
:root[data-theme="dark"]{--surface-accent:#87b8ff;--control-ink:#edf3ff;--control-muted:#a4b6d3;--danger-text:#ffbdc9;--surface-ink:#edf3ff;--surface-muted:#a4b6d3;--canvas-ink:#edf3ff;--canvas-muted:#a4b6d3;--canvas-accent:#87b8ff;--success-bg:#173f32;--success-ink:#a6eac5;--danger-bg:#482835;--danger-ink:#ffbdc9}
.proposal-tabs button[aria-selected="true"]{background:var(--selection-bg);color:var(--selection-ink)}
.proposal-tabs button span{color:var(--surface-ink)}
.proposal-participant:is([data-response="yes"],[data-response="no"]) .proposal-participant-name{color:inherit}
.rules-empty{background:var(--control-bg)}
:root[data-custom-theme="true"]{
  --button-primary-bg:var(--action-fill);--button-primary-hover:var(--action-hover);--button-primary-fg:var(--action-ink);
  --button-secondary-bg:var(--surface);--button-secondary-hover:var(--control-bg);--button-secondary-fg:var(--surface-ink);--button-secondary-edge:var(--line);
  --add-control-bg:var(--action-fill);--add-control-hover:var(--action-hover);--add-control-fg:var(--action-ink);
}
:root[data-custom-theme="true"] body{color:var(--canvas-ink)}
:root[data-custom-theme="true"] :is(.section-page,.calendar-sidebar,.context-rail,.dashboard,.dashboard-page){--ink:var(--canvas-ink);--muted:var(--canvas-muted);--blue:var(--canvas-accent)}
:root[data-custom-theme="true"] :is(.app-header,.mobile-date-header,.mobile-nav,.week-head,.rail-card,.list-card,.page-request,.editor,.picker-panel,.icon-picker-list,.goal-card,.proposal-filters select,.sidebar-month-jump,.calendar-zoom,.theme-option,.dashboard-priority,.dashboard-event,.dashboard-goal,.dashboard-group-card){--ink:var(--surface-ink);--muted:var(--surface-muted);--blue:var(--surface-accent);color:var(--surface-ink);background:var(--surface)}
:root[data-custom-theme="true"] :is(.field input,.field select,.field textarea){color:var(--surface-ink);background:var(--surface)}
:root[data-custom-theme="true"] :is(input,textarea)::placeholder{color:var(--surface-muted);opacity:1}
:root[data-custom-theme="true"] :is(.dashboard-event.is-next,.dashboard-family-signals button,.dashboard-feed-status,.status-label,.vote-summary){background:var(--control-bg);color:var(--control-ink)}
:root[data-custom-theme="true"] .dashboard-priority{background:var(--surface);color:var(--surface-ink);border-color:var(--line)}
:root[data-custom-theme="true"] .dashboard-priority-action{background:var(--action-fill);color:var(--action-ink);border-color:var(--action-fill)}
:root[data-custom-theme="true"] :is(.roles button.active,.theme-option:has(input:checked),.dashboard-event.is-next,.proposal-tabs button[aria-selected="true"]){background:var(--selection-bg);color:var(--selection-ink)}
:root[data-custom-theme="true"] :is(.primary-button,.desktop-add,.mobile-nav .add-icon,.mini-grid button.selected,.date-cell.selected strong){background:var(--action-fill);color:var(--action-ink);border-color:var(--action-fill)}
:root[data-custom-theme="true"] .primary-button:hover:not(:disabled){background:var(--action-hover)}
:root[data-custom-theme="true"] :is(.form-error,.text-limit-hint.is-error){color:var(--danger-text)}
:root[data-custom-theme="true"] .danger-button{background:var(--danger-bg)}

.proposal-participant[data-response="waiting"] .proposal-participant-name{color:var(--control-ink)}
.proposal-participant[data-response="waiting"] .proposal-participant-status{color:var(--control-muted)}
:root[data-custom-theme="true"] .secondary-button:hover:not(:disabled){color:var(--control-ink)}
:root[data-custom-theme="true"] .danger-button{color:var(--danger-ink)}

/* Picker selections use paired interface colors, never event-card colors. */
.icon-picker-list{background:var(--surface);color:var(--surface-ink)}
.icon-picker-list .icon-picker-search{background:var(--control-bg);border-color:var(--line)}
.icon-picker-list .icon-picker-search:focus-within{background:var(--surface);border-color:var(--surface-accent)}
.icon-picker-list .icon-picker-search input{background:transparent;color:var(--control-ink)}
.icon-picker-list .icon-picker-search input::placeholder,
.icon-picker-list .icon-picker-search>.icon{color:var(--control-muted);opacity:1}
.icon-picker-list .icon-picker-groups button{color:var(--surface-ink)}
.icon-picker-list .icon-picker-subgroups button{background:var(--surface);border-color:var(--line);color:var(--surface-muted)}
.icon-picker-list .icon-picker-count{color:var(--surface-muted)}
.icon-picker-list .icon-picker-groups button[aria-pressed=true],
.icon-picker-list .icon-picker-subgroups button[aria-pressed=true],
.icon-picker-list .icon-picker-grid button[aria-pressed=true],
.icon-picker-list .icon-picker-more{background:var(--selection-bg);color:var(--selection-ink);border-color:var(--surface-accent);box-shadow:inset 0 0 0 1px var(--surface-accent)}
@media(hover:hover){
  .icon-picker-list .icon-picker-groups button:not([aria-pressed=true]):hover,
  .icon-picker-list .icon-picker-subgroups button:not([aria-pressed=true]):hover,
  .icon-picker-list .icon-picker-grid button:not([aria-pressed=true]):hover{background:var(--control-bg);color:var(--control-ink)}
}

/* Weekday labels are interface colors, independent of event-card palettes. */
:root{--saturday-fill:#e7f9ef;--sunday-fill:#fff0f2;--weekend-ink:#10194b;--weekend-muted:#526783}
:root[data-theme="dark"]{--saturday-fill:#1b403c;--sunday-fill:#432b44;--weekend-ink:#edf3ff;--weekend-muted:#a4b6d3}
.week-head .saturday:not(.selected)>span,.date-cell.saturday:not(.selected){background:var(--saturday-fill);color:var(--weekend-ink)}
.week-head .sunday:not(.selected)>span,.date-cell.sunday:not(.selected){background:var(--sunday-fill);color:var(--weekend-ink)}
.date-cell:is(.saturday,.sunday):not(.selected) span{color:var(--weekend-muted)}

/* These panels sit on a separately configurable canvas. Scope text to the panel. */
:root[data-custom-theme="true"] :is(.dashboard-workspace>section,.dashboard-insights>section,.proposal-action,.mobile-family-sticky,.mobile-family-member>header,.mobile-family-sticky-head){--ink:var(--surface-ink);--muted:var(--surface-muted);--blue:var(--surface-accent);color:var(--surface-ink)}
:root[data-custom-theme="true"] .space-member-access{color:var(--canvas-accent)}
.space-members-hint{color:var(--muted)!important}
.date-cell:not(.selected):not(.saturday):not(.sunday) span{color:var(--surface-muted)}
:root[data-custom-theme="true"] .settings-profile>button{color:var(--control-ink)}
:root[data-custom-theme="true"] .dashboard-goal-path>span.is-current{background:var(--action-fill);color:var(--action-ink)}
:root[data-custom-theme="true"] :is(.request-actions button,.request-actions button.decline){background:var(--danger-bg);color:var(--danger-ink);border-color:var(--danger-ink)}
:root[data-custom-theme="true"] .request-actions button:not(.decline){background:var(--success-bg);color:var(--success-ink);border-color:var(--success-ink)}
:root[data-custom-theme="true"] .calendar-tabs{--ink:var(--canvas-ink);--muted:var(--canvas-muted);--blue:var(--canvas-accent)}
:root[data-custom-theme="true"] .mobile-date-header .calendar-tabs{--ink:var(--surface-ink);--muted:var(--surface-muted);--blue:var(--surface-accent)}
:root[data-custom-theme="true"] .calendar-tabs button[role="tab"].active{color:var(--selection-ink)}
:root[data-custom-theme="true"] .calendar-family-edit{color:var(--surface-ink)}
:root[data-custom-theme="true"] :is(.date-cell.selected span,.family-week-day-head.selected>button,.family-week-day-head.selected>button strong,.family-week-day-head.selected>button span,.day-bell.has-reminders){color:var(--selection-ink)}
.time-axis .hour-label{color:var(--surface-muted)}
:root[data-custom-theme="true"] .mobile-time-axis time{color:var(--canvas-muted)}
:is(.mobile-now-line,.week-now-line,.family-now-line) span{color:#fff}
