/* One semantic control palette shared by all three visual themes. */
:root {
  --button-primary-bg:var(--action-fill,#287be6);
  --button-primary-hover:var(--action-hover,#206bce);
  --button-primary-fg:#fff;
  --button-secondary-bg:var(--surface,#fff);
  --button-secondary-hover:var(--control-bg,#f5f8fc);
  --button-secondary-fg:var(--ink);
  --button-secondary-edge:var(--line);
  --add-control-bg:var(--action-fill,#287be6);
  --add-control-hover:var(--action-hover,#206bce);
  --add-control-fg:#fff;
}
:root[data-theme="bright"] {
  --button-primary-bg:#1768d5;
  --button-primary-hover:#105ab9;
  --add-control-bg:#1768d5;
  --add-control-hover:#105ab9;
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --button-primary-bg:#2f72d1;
  --button-primary-hover:#3d82e3;
  --button-secondary-bg:#1e3050;
  --button-secondary-hover:#294264;
  --button-secondary-fg:#edf3ff;
  --button-secondary-edge:#40577a;
  --add-control-bg:#4388e8;
  --add-control-hover:#5a9af0;
  --add-control-fg:#071426;
}

.primary-button {
  background:var(--button-primary-bg);
  border-color:var(--button-primary-bg);
  color:var(--button-primary-fg);
}
.primary-button:hover:not(:disabled) { background:var(--button-primary-hover);border-color:var(--button-primary-hover) }
.secondary-button {
  background:var(--button-secondary-bg);
  border-color:var(--button-secondary-edge);
  color:var(--button-secondary-fg);
}
.secondary-button:hover:not(:disabled) { background:var(--button-secondary-hover) }
.primary-button>.icon,.secondary-button>.icon { color:inherit;stroke:currentColor }

/* Every create/add affordance uses an explicit, high-contrast plus. */
.desktop-add,
.today-actions [data-flow="today-add"],
.rail-heading [data-flow="linked-add"],
.rail-heading [data-flow="day-add"] {
  background:var(--add-control-bg);
  border-color:var(--add-control-bg);
  color:var(--add-control-fg);
}
.desktop-add:hover:not(:disabled),
.today-actions [data-flow="today-add"]:hover:not(:disabled),
.rail-heading [data-flow="linked-add"]:hover:not(:disabled),
.rail-heading [data-flow="day-add"]:hover:not(:disabled) {
  background:var(--add-control-hover);
  border-color:var(--add-control-hover);
  color:var(--add-control-fg);
}
.desktop-add>.icon,
.today-actions [data-flow="today-add"]>.icon,
.rail-heading [data-flow="linked-add"]>.icon,
.rail-heading [data-flow="day-add"]>.icon { color:inherit;stroke:currentColor;stroke-width:2.1 }
.category-quick-add { display:inline-flex;align-items:center;gap:6px;color:var(--blue) }
.category-quick-add .icon { width:16px;height:16px;stroke-width:2.1 }
.mobile-nav .add-icon {
  border-color:var(--add-control-bg);
  background:var(--add-control-bg);
  color:var(--add-control-fg);
  box-shadow:0 4px 13px color-mix(in srgb,var(--add-control-bg) 28%,transparent);
}
.mobile-nav button[data-flow="add"]:hover .add-icon { background:var(--add-control-hover);border-color:var(--add-control-hover) }
.mobile-nav .add-icon .icon { color:inherit;stroke:currentColor;stroke-width:2.2 }

/* The approved books are the same artwork, exported with transparency. */
.reference-books { width:100%;height:100%;object-fit:contain;object-position:center;filter:none;background-image:none }

.dashboard-priority-action {
  background:linear-gradient(110deg,#3079f0,#347bef);
  border-color:#2e74e7;
  color:#fff;
}

/* Form labels share one baseline; optional explanations stay out of the layout. */
.field-label {
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  line-height:1.35;
}
.field-label-text { min-width:0 }
.field-help {
  position:relative;
  display:inline-grid;
  place-items:center;
  flex:0 0 20px;
  width:20px;
  height:20px;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--control-bg);
  color:var(--blue);
  font-size:12px;
  font-weight:800;
  line-height:1;
  cursor:help;
  user-select:none;
}
.field-help::before { content:"";position:absolute;inset:-11px;border-radius:50% }
.field-help:hover { border-color:var(--blue-edge);background:var(--selection-bg) }
.field-help:focus-visible { outline:2px solid var(--blue);outline-offset:2px }
.field-help-popover {
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:20;
  display:none;
  width:min(230px,calc(100vw - 64px));
  padding:10px 12px;
  border:1px solid #40577a;
  border-radius:10px;
  background:#13233c;
  color:#f7f9ff;
  box-shadow:0 12px 30px rgb(7 20 38 / 24%);
  font-size:12px;
  font-weight:400;
  line-height:1.45;
  text-align:left;
  pointer-events:none;
}
.field-help:hover + .field-help-popover,
.field-help:focus + .field-help-popover,
.field-help[aria-expanded="true"] + .field-help-popover { display:block }
.repeat-title,
.linked-reminders h3:has(.field-help),
.flow-check:has(.field-help) { position:relative }
.repeat-title,
.linked-reminders h3:has(.field-help) { display:flex;align-items:center;gap:6px }
.flow-check .field-help { margin-left:2px }
.flow-check .field-help-popover,
.linked-reminders h3 .field-help-popover,
.repeat-title .field-help-popover { top:calc(100% + 7px) }
@media (min-width:761px) {
  .editor .form-grid>.field:not(.full)>.field-label { min-height:36px;align-items:flex-start;padding-top:2px }
}
@media (max-width:760px) {
  .field-help-popover { width:min(270px,calc(100vw - 64px)) }
}

:root[data-theme="dark"] {
  & .dashboard-priority {
    border-color:#365170;
    background:linear-gradient(110deg,#1d3353 0%,#1d2f4b 56%,#193b3a 100%);
  }
  & .dashboard-priority-marker:after { box-shadow:0 0 0 6px #1d2f4b }
  & .dashboard-priority-action {
    background:linear-gradient(110deg,#2f72d1,#3f86eb);
    border-color:#5794ec;
    color:#fff;
  }
  & .dashboard-event.is-next { background:var(--selection-bg);color:var(--ink) }
  & .dashboard-event.is-next .dashboard-event-line:after { border-color:var(--selection-bg) }
  & .dashboard-family-signals button { background:#482d3d;color:var(--ink) }
  & .dashboard-family-signals button+button { background:#203f68;color:var(--ink) }
  & .dashboard-feed-status.coral { background:#482d3d;color:var(--ink) }
  & .dashboard-feed-status.blue { background:#203f68;color:var(--ink) }
  & .dashboard-feed-status.green { background:#1d4739;color:var(--ink) }
  & .dashboard-feed-status.yellow { background:#4b4324;color:var(--ink) }
  & .dashboard-feed-status.violet { background:#3a315c;color:var(--ink) }
  & .dashboard-group-card {
    border-color:var(--line);
    background:linear-gradient(145deg,var(--control-bg),var(--surface));
    color:var(--ink);
  }
  & .dashboard-group-card i { background:#2a3b58 }
  & .dashboard-goal-path>span.is-current { box-shadow:0 0 0 5px var(--selection-bg) }
  & .rules-empty { background:var(--control-bg);color:var(--muted) }
  & .request-actions button { background:#193f34;border-color:#398d6c;color:#7ee0b3 }
  & .request-actions button.decline { background:#482a38;border-color:#955066;color:#ffabc0 }
}
