/* =========================================================
   PDiary Theme Contract Hardening v75.83
   Purpose: one visual contract for dropdown pages, modals,
   popup pickers, buttons and fields across themes/skins.
   Logic-free CSS only.
   ========================================================= */

:root,
body{
  --pdiary-surface: var(--card, var(--bg-card, #181a34));
  --pdiary-surface-2: var(--card-2, color-mix(in srgb, var(--pdiary-surface) 88%, var(--text, #fff) 12%));
  --pdiary-page-bg: var(--bg, #05070b);
  --pdiary-text: var(--text, #f8fafc);
  --pdiary-muted: var(--muted, var(--sub, #9aa4b8));
  --pdiary-border: var(--border, rgba(255,255,255,.14));
  --pdiary-accent: var(--accent, #8b7cf6);
  --pdiary-field-bg: var(--field-bg, color-mix(in srgb, var(--pdiary-surface) 92%, #000 8%));
  --pdiary-field-fg: var(--field-fg, var(--pdiary-text));
  --pdiary-field-placeholder: var(--field-placeholder, color-mix(in srgb, var(--pdiary-text) 48%, transparent));
  --pdiary-shadow: var(--shadow-panel, 0 20px 60px rgba(0,0,0,.42));
}

body.light{
  --pdiary-surface: var(--card, var(--bg-card, #ffffff));
  --pdiary-surface-2: var(--card-2, #f3f4f8);
  --pdiary-page-bg: var(--bg, #f8fafc);
  --pdiary-text: var(--text, #1e1e1e);
  --pdiary-muted: var(--muted, #64748b);
  --pdiary-border: var(--border, #e5e7eb);
  --pdiary-field-bg: var(--field-bg, var(--pdiary-surface));
  --pdiary-field-fg: var(--field-fg, var(--pdiary-text));
  --pdiary-field-placeholder: var(--field-placeholder, #64748b);
  color-scheme: light;
}

body.dark,
body.dark-theme{
  --pdiary-surface: var(--card, var(--bg-card, #181a34));
  --pdiary-surface-2: var(--card-2, #1d2740);
  --pdiary-page-bg: var(--bg, #05070b);
  --pdiary-text: var(--text, #f8fafc);
  --pdiary-muted: var(--muted, #9aa4b8);
  --pdiary-border: var(--border, rgba(255,255,255,.14));
  --pdiary-field-bg: var(--field-bg, color-mix(in srgb, var(--pdiary-surface) 90%, #000 10%));
  --pdiary-field-fg: var(--field-fg, var(--pdiary-text));
  --pdiary-field-placeholder: var(--field-placeholder, color-mix(in srgb, var(--pdiary-text) 46%, transparent));
  color-scheme: dark;
}

/* Shared action colors. Keep page-specific layouts, unify the visual contract. */
:root,
body{
  --pdiary-action: color-mix(in srgb, var(--pdiary-accent) 82%, #38bdf8 18%);
  --pdiary-action-text: #ffffff;
  --pdiary-secretary: var(--secretary-color, #ef3f68);
  --pdiary-secretary-2: color-mix(in srgb, var(--pdiary-secretary) 78%, #7f1d1d 22%);
}

/* Keep standard pages on the same contract without flattening their own layouts. */
body:not(.calendar-page){
  background:var(--pdiary-page-bg) !important;
  color:var(--pdiary-text) !important;
}

/* Common surfaces used by menu pages. */
body:not(.calendar-page) .container,
body:not(.calendar-page) .form-container,
body:not(.calendar-page) .section-card,
body:not(.calendar-page) .card,
body:not(.calendar-page) .panel,
body:not(.calendar-page) .table-wrapper,
body:not(.calendar-page) .table-container,
body:not(.calendar-page) .modal-content,
body:not(.calendar-page) .dialog,
body:not(.calendar-page) .drawer,
body:not(.calendar-page) .sheet{
  color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
}

body:not(.calendar-page) .section-card,
body:not(.calendar-page) .card,
body:not(.calendar-page) .panel,
body:not(.calendar-page) .table-wrapper,
body:not(.calendar-page) .table-container,
body:not(.calendar-page) .modal-content,
body:not(.calendar-page) .dialog,
body:not(.calendar-page) .drawer,
body:not(.calendar-page) .sheet{
  background:var(--pdiary-surface) !important;
}

body:not(.calendar-page) h1,
body:not(.calendar-page) h2,
body:not(.calendar-page) h3,
body:not(.calendar-page) h4,
body:not(.calendar-page) label,
body:not(.calendar-page) p,
body:not(.calendar-page) td,
body:not(.calendar-page) th,
body:not(.calendar-page) .title,
body:not(.calendar-page) .modal-title,
body:not(.calendar-page) .section-title{
  color:var(--pdiary-text) !important;
}

body:not(.calendar-page) .muted,
body:not(.calendar-page) .hint,
body:not(.calendar-page) .subtle,
body:not(.calendar-page) .subtitle,
body:not(.calendar-page) small{
  color:var(--pdiary-muted) !important;
}

/* Fields: the most common source of white-on-white / black-on-dark anomalies. */
body input[type="text"],
body input[type="number"],
body input[type="tel"],
body input[type="date"],
body input[type="search"],
body input[type="email"],
body input[type="password"],
body input[type="time"],
body select,
body textarea{
  background:var(--pdiary-field-bg) !important;
  color:var(--pdiary-field-fg) !important;
  -webkit-text-fill-color:var(--pdiary-field-fg) !important;
  caret-color:var(--pdiary-field-fg) !important;
  border-color:var(--pdiary-border) !important;
}

body input::placeholder,
body textarea::placeholder{
  color:var(--pdiary-field-placeholder) !important;
  -webkit-text-fill-color:var(--pdiary-field-placeholder) !important;
  opacity:1 !important;
}

body input:focus,
body select:focus,
body textarea:focus{
  border-color:var(--pdiary-accent) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--pdiary-accent) 24%, transparent) !important;
}

body option{
  background:var(--pdiary-surface) !important;
  color:var(--pdiary-text) !important;
}

/* Buttons must never become invisible on light skins or dark popups. */
body:not(.calendar-page) button:not(.back-button),
body:not(.calendar-page) .btn,
body:not(.calendar-page) .btn-secondary,
body:not(.calendar-page) .btn-ghost,
body:not(.calendar-page) .small-button,
body:not(.calendar-page) .menu-button{
  color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
}

body:not(.calendar-page) button:not(.back-button):not(.btn-primary):not(.btn-accent):not(.primary-btn):not(.btn-danger),
body:not(.calendar-page) .btn:not(.btn-primary):not(.btn-accent):not(.primary-btn):not(.btn-danger),
body:not(.calendar-page) .btn-secondary,
body:not(.calendar-page) .btn-ghost,
body:not(.calendar-page) .small-button,
body:not(.calendar-page) .menu-button{
  background:color-mix(in srgb, var(--pdiary-surface) 88%, var(--pdiary-accent) 12%) !important;
}

body:not(.calendar-page) .btn-primary,
body:not(.calendar-page) .btn-accent,
body:not(.calendar-page) .primary-btn,
body:not(.calendar-page) button.primary,
body:not(.calendar-page) button.save,
body:not(.calendar-page) button[type="submit"]{
  background:linear-gradient(135deg, var(--pdiary-action), color-mix(in srgb, var(--pdiary-action) 72%, #2563eb 28%)) !important;
  border-color:transparent !important;
  color:var(--pdiary-action-text) !important;
  -webkit-text-fill-color:var(--pdiary-action-text) !important;
}

.secretary-layer button,
.secretary-card button,
.secretary-panel button,
[data-secretary-action],
.secretary-action{
  background:linear-gradient(135deg, var(--pdiary-secretary), var(--pdiary-secretary-2)) !important;
  border-color:color-mix(in srgb, var(--pdiary-secretary) 70%, white 12%) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

@media (max-width: 720px){
  body:not(.calendar-page) h1{ font-size:1.35rem !important; line-height:1.15 !important; }
  body:not(.calendar-page) h2{ font-size:1.12rem !important; line-height:1.18 !important; }
  body:not(.calendar-page) .page-title,
  body:not(.calendar-page) .hero-title,
  body:not(.calendar-page) .screen-title{
    font-size:1.35rem !important;
    line-height:1.15 !important;
  }
  body:not(.calendar-page) button,
  body:not(.calendar-page) .btn{
    min-height:42px;
  }
}

body:not(.calendar-page) button:disabled,
body:not(.calendar-page) .btn:disabled{
  opacity:.58 !important;
  cursor:not-allowed !important;
}

/* Tables/list rows. */
body:not(.calendar-page) table,
body:not(.calendar-page) thead,
body:not(.calendar-page) tbody,
body:not(.calendar-page) tr,
body:not(.calendar-page) td,
body:not(.calendar-page) th{
  color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
}
body:not(.calendar-page) thead th{
  background:color-mix(in srgb, var(--pdiary-surface) 86%, var(--pdiary-accent) 14%) !important;
}
body:not(.calendar-page) tr:hover td{
  background:color-mix(in srgb, var(--pdiary-surface) 84%, var(--pdiary-accent) 16%) !important;
}

/* Calendar appointment editor group picker — screenshot bug. */
.gmodal{
  background:rgba(0,0,0,.62) !important;
  backdrop-filter:blur(2px) !important;
}
.gcard{
  background:var(--pdiary-surface) !important;
  color:var(--pdiary-text) !important;
  border:1px solid var(--pdiary-border) !important;
  box-shadow:var(--pdiary-shadow) !important;
}
.gcard h3,
.gcard .gname,
.gcard .gpick,
.gcard .gpick *,
.gcard .glist,
.gcard label{
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}
.grow input,
#gpSearch{
  background:var(--pdiary-field-bg) !important;
  color:var(--pdiary-field-fg) !important;
  -webkit-text-fill-color:var(--pdiary-field-fg) !important;
  border:1px solid var(--pdiary-border) !important;
  box-shadow:none !important;
}
#gpSearch::placeholder{
  color:var(--pdiary-field-placeholder) !important;
  -webkit-text-fill-color:var(--pdiary-field-placeholder) !important;
  opacity:1 !important;
}
.gpick,
.gitem,
.gchip{
  background:color-mix(in srgb, var(--pdiary-surface) 88%, var(--pdiary-accent) 8%) !important;
  color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
}
.gbtn{
  background:color-mix(in srgb, var(--pdiary-surface) 82%, var(--pdiary-accent) 18%) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
}
.gbtn:disabled{
  opacity:.58 !important;
}
#gpDone,
.gpick .gbtn:not(:disabled){
  background:var(--pdiary-accent) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:transparent !important;
}

/* Appointment side panel group block. */
#editor-panel .group-list,
#editor-panel .gitem,
#editor-panel .gchip,
#editor-panel .gbtn{
  color:var(--pdiary-text) !important;
}


/* =========================================================
   V75.84 surgical exceptions: contract must not repaint native
   icon/navigation controls. These controls already have their
   own canonical CSS in backbutton.css/header.css/calendar.css.
   ========================================================= */
.back-button{
  background:#ffffff !important;
  color:#1f2435 !important;
  -webkit-text-fill-color:#1f2435 !important;
  border-color:var(--accent, #6c5ce7) !important;
}
.back-button .back-arrow{
  border-right-color:#1f2435 !important;
}
.back-button .back-logo,
.today-badge-icon{
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  -webkit-text-fill-color:initial !important;
}
body.calendar-page #todayBtn.today-btn.today-badge,
body.calendar-page nav.top-header.two-tier #todayBtn.today-btn.today-badge{
  background:#ffffff !important;
  color:#1f2435 !important;
  -webkit-text-fill-color:#1f2435 !important;
  border:0 !important;
}
body.calendar-page #todayBtn.today-btn.today-badge .today-badge-icon,
body.calendar-page nav.top-header.two-tier #todayBtn.today-btn.today-badge .today-badge-icon{
  background-color:#ffffff !important;
  background-image:url("app-icon.png") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:cover !important;
}
body.calendar-page .hamburger,
body.calendar-page .right-controls .menu-button,
body.calendar-page .view-switch .menu-button,
body.calendar-page .nav-button,
body.calendar-page .top-header button:not(#todayBtn){
  -webkit-text-fill-color:currentColor !important;
}

/* =========================================================
   V75.85 Light Theme Rebuild — source-level token bridge
   ---------------------------------------------------------
   Light mode is allowed again, but skins only change tokens.
   These rules define contrast-safe core tokens and repair the
   recurring places that used to hardcode white/black directly.
   ========================================================= */

html.light,
body.light{
  color-scheme: light;
  --bg: var(--bg-body, #f6f7fb);
  --bg-body: var(--bg-body, #f6f7fb);
  --bg-card: var(--panel-bg, #ffffff);
  --card: var(--panel-bg, #ffffff);
  --card-2: #f1f5f9;
  --text: #111827;
  --sub: #64748b;
  --muted: #64748b;
  --border: rgba(15,23,42,.14);
  --shadow-panel: 0 18px 44px rgba(15,23,42,.12);

  --pdiary-page-bg: var(--bg-body, #f6f7fb);
  --pdiary-surface: var(--panel-bg, #ffffff);
  --pdiary-surface-2: color-mix(in srgb, var(--panel-bg, #ffffff) 88%, var(--accent, #7c6ee6) 12%);
  --pdiary-text: #111827;
  --pdiary-muted: #64748b;
  --pdiary-border: rgba(15,23,42,.14);
  --pdiary-field-bg: #ffffff;
  --pdiary-field-fg: #111827;
  --pdiary-field-placeholder: #64748b;
}

html.dark,
body.dark{
  color-scheme: dark;
  --pdiary-page-bg: var(--bg-body, #05070b);
  --pdiary-surface: var(--panel-bg, #111827);
  --pdiary-surface-2: color-mix(in srgb, var(--panel-bg, #111827) 82%, var(--accent, #8b7cf6) 18%);
  --pdiary-text: var(--text, #f8fafc);
  --pdiary-muted: var(--muted, var(--sub, #9aa4b8));
  --pdiary-border: var(--border, rgba(255,255,255,.14));
  --pdiary-field-bg: var(--field-bg, color-mix(in srgb, var(--pdiary-surface) 90%, #000 10%));
  --pdiary-field-fg: var(--field-fg, var(--pdiary-text));
  --pdiary-field-placeholder: var(--field-placeholder, color-mix(in srgb, var(--pdiary-text) 46%, transparent));
}

/* Page chrome */
body.light:not(.calendar-page),
body.light .page,
body.light main{
  background:var(--pdiary-page-bg) !important;
  color:var(--pdiary-text) !important;
}

/* Common glass/surface classes that appeared differently across pages. */
body.light .container,
body.light .content,
body.light .settings-shell,
body.light .settings-panel,
body.light .section-card,
body.light .card,
body.light .panel,
body.light .tile,
body.light .metric-card,
body.light .stat-card,
body.light .box,
body.light .modal-content,
body.light .dialog,
body.light .sheet,
body.light .drawer,
body.light .table-wrapper,
body.light .table-container{
  background:var(--pdiary-surface) !important;
  color:var(--pdiary-text) !important;
  border-color:var(--pdiary-border) !important;
  box-shadow:var(--shadow-panel, 0 18px 44px rgba(15,23,42,.12));
}

body.light h1,
body.light h2,
body.light h3,
body.light h4,
body.light h5,
body.light h6,
body.light label,
body.light p,
body.light span,
body.light td,
body.light th,
body.light li,
body.light .title,
body.light .section-title,
body.light .modal-title,
body.light .card-title{
  color:inherit;
}

body.light .muted,
body.light .hint,
body.light .subtitle,
body.light .subtle,
body.light small,
body.light .meta,
body.light .secondary-text{
  color:var(--pdiary-muted) !important;
}

/* Inputs/selects/textareas — the white-on-white killer. */
body.light input[type="text"],
body.light input[type="number"],
body.light input[type="tel"],
body.light input[type="date"],
body.light input[type="search"],
body.light input[type="email"],
body.light input[type="password"],
body.light input[type="time"],
body.light select,
body.light textarea{
  background:#ffffff !important;
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  border-color:rgba(15,23,42,.16) !important;
  caret-color:#111827 !important;
}
body.light input::placeholder,
body.light textarea::placeholder{
  color:#64748b !important;
  -webkit-text-fill-color:#64748b !important;
  opacity:1 !important;
}
body.light option{
  background:#ffffff !important;
  color:#111827 !important;
}

/* Buttons: primary stays accent; secondary gets light-safe text. */
body.light:not(.calendar-page) button:not(.back-button):not(.primary):not(.save):not([type="submit"]):not(.btn-primary):not(.btn-accent):not(.btn-danger),
body.light:not(.calendar-page) .btn:not(.btn-primary):not(.btn-accent):not(.primary-btn):not(.btn-danger),
body.light:not(.calendar-page) .btn-secondary,
body.light:not(.calendar-page) .btn-ghost,
body.light:not(.calendar-page) .small-button,
body.light:not(.calendar-page) .menu-button{
  background:color-mix(in srgb, #ffffff 86%, var(--accent, #7c6ee6) 14%) !important;
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  border-color:rgba(15,23,42,.14) !important;
}
body.light:not(.calendar-page) .btn-primary,
body.light:not(.calendar-page) .btn-accent,
body.light:not(.calendar-page) .primary-btn,
body.light:not(.calendar-page) button.primary,
body.light:not(.calendar-page) button.save,
body.light:not(.calendar-page) button[type="submit"]{
  background:var(--accent, #7c6ee6) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:transparent !important;
}

/* Calendar: keep icon controls canonical while making panels/editors readable in light. */
body.light.calendar-page #editor-panel,
body.light.calendar-page .editor-panel,
body.light.calendar-page .side-panel,
body.light.calendar-page .client-panel{
  background:#ffffff !important;
  color:#111827 !important;
  border-color:rgba(15,23,42,.16) !important;
}
body.light.calendar-page #editor-panel h1,
body.light.calendar-page #editor-panel h2,
body.light.calendar-page #editor-panel h3,
body.light.calendar-page #editor-panel label,
body.light.calendar-page #editor-panel p,
body.light.calendar-page #editor-panel span:not(.appt-color-dot):not(.status-dot){
  color:#111827;
}
body.light.calendar-page #editor-panel .muted,
body.light.calendar-page #editor-panel small,
body.light.calendar-page #editor-panel .hint{
  color:#64748b !important;
}

/* Group picker modal: hard source-level repair for light + dark. */
body.light .gmodal{ background:rgba(15,23,42,.42) !important; }
body.light .gcard{
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid rgba(15,23,42,.16) !important;
  box-shadow:0 24px 70px rgba(15,23,42,.24) !important;
}
body.light .gcard h3,
body.light .gcard .gname,
body.light .gcard .gpick,
body.light .gcard .gpick *,
body.light .gcard .glist,
body.light .gcard label{
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
}
body.light .gpick,
body.light .gitem,
body.light .gchip{
  background:#f8fafc !important;
  color:#111827 !important;
  border-color:rgba(15,23,42,.14) !important;
}
body.light .gbtn{
  background:#eef2ff !important;
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  border-color:rgba(15,23,42,.14) !important;
}
body.light #gpDone,
body.light .gpick .gbtn:not(:disabled){
  background:var(--accent, #7c6ee6) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:transparent !important;
}

/* The two sacred icon buttons: never let theme contracts invert them again. */
.back-button,
body.calendar-page #todayBtn.today-btn.today-badge,
body.calendar-page nav.top-header.two-tier #todayBtn.today-btn.today-badge{
  background:#ffffff !important;
  color:#1f2435 !important;
  -webkit-text-fill-color:#1f2435 !important;
}
.back-button .back-logo,
.today-badge-icon{
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  background-color:#ffffff !important;
}

/* =========================================================
   V75.86 Light Theme Deep Page Contrast Audit
   ---------------------------------------------------------
   Light mode may coexist with deliberately dark premium cards.
   When a component keeps a dark glass surface in light mode, it
   must also carry its own light-on-dark foreground contract.
   This fixes client dashboard cards, upcoming panels, intelligence
   blocks, ICD compact blocks, and icon buttons without changing
   data logic.
   ========================================================= */

/* Client index / therapy dashboard: dark premium cards stay dark, text must stay light. */
body.light.clientinde-page .client-card,
body.light.client-index-page .client-card,
body.light.clientinde-page .client-card-header,
body.light.client-index-page .client-card-header,
body.light.clientinde-page .client-summary,
body.light.client-index-page .client-summary,
body.light.clientinde-page .client-summary .stats,
body.light.client-index-page .client-summary .stats,
body.light.clientinde-page .clinical-compact-card,
body.light.client-index-page .clinical-compact-card,
body.light.clientinde-page .client-intel-panel,
body.light.client-index-page .client-intel-panel,
body.light.clientinde-page .tab-content,
body.light.client-index-page .tab-content,
body.light.clientinde-page .client-tabs,
body.light.client-index-page .client-tabs{
  color:#f8fafc !important;
  -webkit-text-fill-color:initial !important;
}

body.light.clientinde-page .client-card h1,
body.light.clientinde-page .client-card h2,
body.light.clientinde-page .client-card h3,
body.light.clientinde-page .client-card h4,
body.light.clientinde-page .client-card p,
body.light.clientinde-page .client-card span,
body.light.clientinde-page .client-card strong,
body.light.clientinde-page .client-card small,
body.light.clientinde-page .client-card label,
body.light.clientinde-page .client-card div,
body.light.client-index-page .client-card h1,
body.light.client-index-page .client-card h2,
body.light.client-index-page .client-card h3,
body.light.client-index-page .client-card h4,
body.light.client-index-page .client-card p,
body.light.client-index-page .client-card span,
body.light.client-index-page .client-card strong,
body.light.client-index-page .client-card small,
body.light.client-index-page .client-card label,
body.light.client-index-page .client-card div{
  color:inherit;
}

/* The dark header/intelligence areas specifically need white text in light mode. */
body.light.clientinde-page .client-card-header,
body.light.client-index-page .client-card-header,
body.light.clientinde-page .client-card-header h2,
body.light.client-index-page .client-card-header h2,
body.light.clientinde-page .client-inline-row,
body.light.client-index-page .client-inline-row,
body.light.clientinde-page .client-name,
body.light.client-index-page .client-name,
body.light.clientinde-page .client-phone-inline,
body.light.client-index-page .client-phone-inline,
body.light.clientinde-page .client-phone-num,
body.light.client-index-page .client-phone-num,
body.light.clientinde-page .client-sep,
body.light.client-index-page .client-sep,
body.light.clientinde-page .client-intel-panel,
body.light.client-index-page .client-intel-panel,
body.light.clientinde-page .client-intel-panel *,
body.light.client-index-page .client-intel-panel *{
  color:#f8fafc !important;
  -webkit-text-fill-color:#f8fafc !important;
}

/* Upcoming appointments block inside the client card: dark panel, readable labels. */
body.light.clientinde-page .upcoming,
body.light.clientinde-page .upcoming-list,
body.light.clientinde-page .upcoming-card,
body.light.clientinde-page .upcoming-appointments,
body.light.clientinde-page [class*="upcoming"],
body.light.client-index-page .upcoming,
body.light.client-index-page .upcoming-list,
body.light.client-index-page .upcoming-card,
body.light.client-index-page .upcoming-appointments,
body.light.client-index-page [class*="upcoming"]{
  color:#f8fafc !important;
}
body.light.clientinde-page [class*="upcoming"] *,
body.light.client-index-page [class*="upcoming"] *{
  color:inherit;
}

/* Compact ICD card deliberately has a dark field; keep its label/input visible. */
body.light.clientinde-page .icd-block,
body.light.client-index-page .icd-block,
body.light.clientinde-page .icd-block-compact,
body.light.client-index-page .icd-block-compact,
body.light.clientinde-page .icd-compact-label,
body.light.client-index-page .icd-compact-label{
  color:#f8fafc !important;
  -webkit-text-fill-color:#f8fafc !important;
}
body.light.clientinde-page .icd-input-compact,
body.light.client-index-page .icd-input-compact,
body.light.clientinde-page .icd-input,
body.light.client-index-page .icd-input{
  background:rgba(255,255,255,.08) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:rgba(255,255,255,.16) !important;
}
body.light.clientinde-page .icd-input-compact::placeholder,
body.light.client-index-page .icd-input-compact::placeholder,
body.light.clientinde-page .icd-input::placeholder,
body.light.client-index-page .icd-input::placeholder{
  color:rgba(255,255,255,.72) !important;
  -webkit-text-fill-color:rgba(255,255,255,.72) !important;
}

/* Header edit/delete buttons sit on dark glass even when the page is light. */
body.light.clientinde-page .client-card-header .icon-btn,
body.light.clientinde-page .client-card-header .edit-btn,
body.light.clientinde-page .client-card-header .delete-btn,
body.light.client-index-page .client-card-header .icon-btn,
body.light.client-index-page .client-card-header .edit-btn,
body.light.client-index-page .client-card-header .delete-btn{
  background:rgba(255,255,255,.10) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:rgba(255,255,255,.18) !important;
}

/* Light page tab bars should remain light, except the inner client-card tab strip. */
body.light.clientinde-page .page-stack > .tabs,
body.light.client-index-page .page-stack > .tabs,
body.light.clientinde-page .clientind-toolbar,
body.light.client-index-page .clientind-toolbar{
  color:#111827 !important;
}
body.light.clientinde-page .page-stack > .tabs button,
body.light.client-index-page .page-stack > .tabs button,
body.light.clientinde-page .clientind-toolbar .btn,
body.light.client-index-page .clientind-toolbar .btn{
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
}

/* Reminders page: keep reminder rows and action buttons readable in light skins. */
body.light .notification-card,
body.light .reminder-card,
body.light .noti-card{
  color:inherit;
}
body.light .notification-card.status-pending,
body.light .notification-card.status-str_apply,
body.light .notification-card.is-dark,
body.light .noti-card.is-dark{
  color:#f8fafc !important;
}
body.light .notification-card.status-pending *,
body.light .notification-card.status-str_apply *,
body.light .notification-card.is-dark *,
body.light .noti-card.is-dark *{
  color:inherit;
}
body.light .notification-card .send-btn,
body.light .notification-card .btn-send-sms,
body.light .notification-card .btn-whatsapp{
  -webkit-text-fill-color:currentColor !important;
}

/* =========================================================
   V75.87 Source-level ICD Autocomplete Contrast Contract
   ---------------------------------------------------------
   The client dashboard can keep dark premium cards inside a
   light page, but the ICD autocomplete popover must own its
   own readable foreground/background instead of inheriting
   the parent card text color.
   ========================================================= */

body.light.clientinde-page,
body.light.client-index-page{
  --pdiary-popover-bg:#ffffff;
  --pdiary-popover-fg:#0f172a;
  --pdiary-popover-muted:#475569;
  --pdiary-popover-border:rgba(15,23,42,.16);
  --pdiary-popover-hover:#eef2ff;
}

body.dark.clientinde-page,
body.dark.client-index-page,
body.dark-theme.clientinde-page,
body.dark-theme.client-index-page{
  --pdiary-popover-bg:#111827;
  --pdiary-popover-fg:#f8fafc;
  --pdiary-popover-muted:#cbd5e1;
  --pdiary-popover-border:rgba(255,255,255,.16);
  --pdiary-popover-hover:rgba(124,92,255,.20);
}

/* The right-side clinical stats panel is visually dark in light theme;
   do not let old light-summary rules repaint its text black. */
body.light.clientinde-page .client-summary .clinical-compact-card,
body.light.client-index-page .client-summary .clinical-compact-card,
body.light.clientinde-page .client-summary .clinical-compact-card *:not(input):not(textarea):not(select):not(option):not(.icd-suggestions):not(.icd-suggestions *),
body.light.client-index-page .client-summary .clinical-compact-card *:not(input):not(textarea):not(select):not(option):not(.icd-suggestions):not(.icd-suggestions *){
  color:#f8fafc !important;
  -webkit-text-fill-color:#f8fafc !important;
}

body.light.clientinde-page .client-summary .clinical-compact-card small,
body.light.client-index-page .client-summary .clinical-compact-card small{
  color:rgba(248,250,252,.78) !important;
  -webkit-text-fill-color:rgba(248,250,252,.78) !important;
}

/* ICD input remains readable on the dark clinical card. */
body.light.clientinde-page .client-summary .clinical-compact-card .icd-input,
body.light.clientinde-page .client-summary .clinical-compact-card .icd-input-compact,
body.light.client-index-page .client-summary .clinical-compact-card .icd-input,
body.light.client-index-page .client-summary .clinical-compact-card .icd-input-compact{
  background:rgba(255,255,255,.16) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:rgba(255,255,255,.22) !important;
}

/* ICD autocomplete popover: owns its colors; never inherits from dark card. */
body.clientinde-page .icd-autocomplete-popover,
body.client-index-page .icd-autocomplete-popover,
body.clientinde-page .icd-suggestions,
body.client-index-page .icd-suggestions{
  background:var(--pdiary-popover-bg, var(--pdiary-surface)) !important;
  color:var(--pdiary-popover-fg, var(--pdiary-text)) !important;
  -webkit-text-fill-color:var(--pdiary-popover-fg, var(--pdiary-text)) !important;
  border:1px solid var(--pdiary-popover-border, var(--pdiary-border)) !important;
  box-shadow:0 18px 44px rgba(15,23,42,.22) !important;
  z-index:10020 !important;
}

body.clientinde-page .icd-autocomplete-popover .suggestion,
body.client-index-page .icd-autocomplete-popover .suggestion,
body.clientinde-page .icd-autocomplete-popover .suggestion *,
body.client-index-page .icd-autocomplete-popover .suggestion *,
body.clientinde-page .icd-suggestions .suggestion,
body.client-index-page .icd-suggestions .suggestion,
body.clientinde-page .icd-suggestions .suggestion *,
body.client-index-page .icd-suggestions .suggestion *{
  color:var(--pdiary-popover-fg, var(--pdiary-text)) !important;
  -webkit-text-fill-color:var(--pdiary-popover-fg, var(--pdiary-text)) !important;
}

body.clientinde-page .icd-autocomplete-popover .suggestion:hover,
body.client-index-page .icd-autocomplete-popover .suggestion:hover,
body.clientinde-page .icd-suggestions .suggestion:hover,
body.client-index-page .icd-suggestions .suggestion:hover{
  background:var(--pdiary-popover-hover, color-mix(in srgb, var(--pdiary-accent) 16%, transparent)) !important;
}

/* Appointment editor ICD dropdowns also get the explicit popover contract. */
body.light.calendar-page #editor-panel .icd-suggestions,
body.light.calendar-page #editor-panel #appointment-icd-suggestions,
body.light.calendar-page #editor-panel #new-client-icd-suggestions{
  background:#ffffff !important;
  color:#0f172a !important;
  -webkit-text-fill-color:#0f172a !important;
  border-color:rgba(15,23,42,.16) !important;
  box-shadow:0 18px 44px rgba(15,23,42,.20) !important;
}
body.light.calendar-page #editor-panel .icd-suggestions .suggestion-item,
body.light.calendar-page #editor-panel .icd-suggestions .suggestion-item *,
body.light.calendar-page #editor-panel #appointment-icd-suggestions .suggestion-item,
body.light.calendar-page #editor-panel #appointment-icd-suggestions .suggestion-item *,
body.light.calendar-page #editor-panel #new-client-icd-suggestions .suggestion-item,
body.light.calendar-page #editor-panel #new-client-icd-suggestions .suggestion-item *{
  color:#0f172a !important;
  -webkit-text-fill-color:#0f172a !important;
}

/* V76.92 theme-skin consistency: keep action controls on the selected skin accent. */
:root,
body{
  --pdiary-accent-top:color-mix(in srgb, var(--pdiary-accent) 88%, #ffffff 12%);
  --pdiary-accent-bottom:color-mix(in srgb, var(--pdiary-accent) 82%, #000000 10%);
  --pdiary-accent-surface:color-mix(in srgb, var(--pdiary-surface) 84%, var(--pdiary-accent) 16%);
  --pdiary-accent-border:color-mix(in srgb, var(--pdiary-accent) 46%, var(--pdiary-border));
}

body.practice-intelligence-page .pi-secretary-insights button,
body.practice-intelligence-page .pi-secretary-card button,
body.practice-intelligence-page .pi-secretary-layer button,
body.practice-intelligence-page .pi-open-focused-insights,
body.insights-page .secretary-box .btn-small,
body.insights-page #secretaryBox .btn-small,
body.insights-page #refreshInsightsBtn{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 10px 22px color-mix(in srgb, var(--pdiary-accent) 24%, transparent) !important;
}

body.calendar-page #editor-panel{
  --ed-accent:var(--pdiary-accent) !important;
  --ed-accent-2:var(--pdiary-accent-bottom) !important;
}

body.calendar-page #editor-panel #toolbar button,
body.calendar-page #editor-panel .btn-pill,
body.calendar-page #editor-panel .stbtn,
body.calendar-page #editor-panel .icon-btn,
body.calendar-page #editor-panel .btn-new,
body.calendar-page #editor-panel #add-client-btn,
body.calendar-page #editor-panel .ais-mini-link,
body.calendar-page #editor-panel .ais-quick-actions button,
body.calendar-page #editor-panel .ais-schedule-actions button,
body.calendar-page #editor-panel #phone-actions .phone-action-pill,
body.calendar-page #editor-panel .modal-overlay .btn-sel{
  background:var(--pdiary-accent-surface) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 34%, var(--pdiary-border)) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}

body.calendar-page #editor-panel #toolbar button.active,
body.calendar-page #editor-panel .btn-pill.picked,
body.calendar-page #editor-panel .btn-pill.has-notes,
body.calendar-page #editor-panel .btn-pill.has-repeat,
body.calendar-page #editor-panel .stbtn.active,
body.calendar-page #editor-panel .modal-overlay .btn-sel[data-active="true"],
body.calendar-page #editor-panel .btn-save,
body.calendar-page #editor-panel .ais-save-delete-row button:not(.btn-delete):not(.danger),
body.calendar-page #editor-panel #ais-client-open-avatar{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body.calendar-page #editor-panel #phone-actions .phone-action-pill:disabled,
body.calendar-page #editor-panel .ais-quick-actions button:disabled,
body.calendar-page #editor-panel .ais-schedule-actions button:disabled{
  opacity:.48 !important;
}

body.clientinde-page #dashboard > .client-intel-board,
body.client-index-page #dashboard > .client-intel-board,
body.clientinde-page .client-intel-board,
body.client-index-page .client-intel-board{
  background:color-mix(in srgb, var(--pdiary-surface) 90%, var(--pdiary-accent) 8%) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 32%, var(--pdiary-border)) !important;
}

body.clientinde-page #dashboard > .client-intel-board .ci-magic,
body.client-index-page #dashboard > .client-intel-board .ci-magic,
body.clientinde-page .client-intel-board .ci-magic,
body.client-index-page .client-intel-board .ci-magic,
body.clientinde-page .client-intel-panel .ci-panel-title span,
body.client-index-page .client-intel-panel .ci-panel-title span,
body.clientinde-page .client-intel-panel .ci-action.solid,
body.client-index-page .client-intel-panel .ci-action.solid{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body.clientinde-page #dashboard > .client-intel-board .ci-leader-card,
body.client-index-page #dashboard > .client-intel-board .ci-leader-card,
body.clientinde-page .client-intel-board .ci-leader-card,
body.client-index-page .client-intel-board .ci-leader-card{
  background:color-mix(in srgb, var(--pdiary-surface) 86%, var(--pdiary-accent) 8%) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 28%, var(--pdiary-border)) !important;
}

body.clientinde-page #dashboard > .client-intel-board .ci-leader-card i,
body.client-index-page #dashboard > .client-intel-board .ci-leader-card i,
body.clientinde-page .client-intel-board .ci-leader-card i,
body.client-index-page .client-intel-board .ci-leader-card i,
body.clientinde-page .client-intel-board .ci-board-count,
body.client-index-page .client-intel-board .ci-board-count{
  background:color-mix(in srgb, var(--pdiary-accent) 20%, var(--pdiary-surface)) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 34%, var(--pdiary-border)) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}

/* V76.93 calendar-dropdown language for theme surfaces, without overriding header presets. */
body.calendar-page nav.top-header.two-tier #cvBtn,
body.calendar-page nav.top-header.two-tier #zoomToggleBtn,
body.calendar-page nav.top-header.two-tier .menu-button{
  background:color-mix(in srgb, var(--hdr-bg, var(--pdiary-surface)) 86%, var(--hdr-fg, var(--pdiary-text)) 14%) !important;
  border-color:color-mix(in srgb, var(--hdr-border, var(--pdiary-border)) 76%, transparent) !important;
  color:var(--hdr-fg, var(--pdiary-text)) !important;
  -webkit-text-fill-color:var(--hdr-fg, var(--pdiary-text)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 8px 20px rgba(0,0,0,.18) !important;
}

body.calendar-page nav.top-header.two-tier #cvBtn[aria-expanded="true"],
body.calendar-page nav.top-header.two-tier #zoomToggleBtn.active,
body.calendar-page nav.top-header.two-tier .menu-button.active{
  border-color:color-mix(in srgb, var(--pdiary-accent) 58%, var(--hdr-border, var(--pdiary-border))) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--pdiary-accent) 18%, transparent), inset 0 1px 0 rgba(255,255,255,.10) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu .menu-section-title::before{
  background:var(--pdiary-accent) !important;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--pdiary-accent) 18%, transparent) !important;
}

body.calendar-page nav.top-header.two-tier #mobileMenu a:hover,
body.calendar-page nav.top-header.two-tier .mobile-menu a:hover,
body.calendar-page nav.top-header.two-tier #cvMenu li:hover,
body.calendar-page nav.top-header.two-tier .dropdown-menu li:hover{
  border-color:color-mix(in srgb, var(--pdiary-accent) 40%, var(--hdr-border, var(--pdiary-border))) !important;
  background:color-mix(in srgb, var(--hdr-bg, var(--pdiary-surface)) 82%, var(--pdiary-accent) 18%) !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip[data-kpi-help="gaps"] .kpi-value,
body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip.gaps-kpi .kpi-value{
  color:#f59e0b !important;
  -webkit-text-fill-color:#f59e0b !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip[data-kpi-help="premium"] .kpi-value,
body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip.premium-kpi .kpi-value{
  color:#facc15 !important;
  -webkit-text-fill-color:#facc15 !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip[data-kpi-help="spreadScore"] .kpi-value,
body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip.spread-kpi .kpi-value{
  color:color-mix(in srgb, var(--pdiary-accent) 76%, #ffffff 24%) !important;
  -webkit-text-fill-color:color-mix(in srgb, var(--pdiary-accent) 76%, #ffffff 24%) !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip[data-kpi-help="workedDays"] .kpi-value,
body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip.days-kpi .kpi-value{
  color:#60a5fa !important;
  -webkit-text-fill-color:#60a5fa !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip[data-kpi-help="singletonDays"] .kpi-value,
body.calendar-page nav.top-header.two-tier #viewApptCount .kpi-chip.singletons-kpi .kpi-value{
  color:#fb923c !important;
  -webkit-text-fill-color:#fb923c !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .strategy-preview-kpi .kpi-value{
  color:color-mix(in srgb, var(--pdiary-accent) 78%, #ffffff 22%) !important;
  -webkit-text-fill-color:color-mix(in srgb, var(--pdiary-accent) 78%, #ffffff 22%) !important;
}

body.calendar-page nav.top-header.two-tier #viewApptCount .strategy-preview-gain-kpi .kpi-value{
  color:#22c55e !important;
  -webkit-text-fill-color:#22c55e !important;
}

body.calendar-page .strategy-host-shell,
body.calendar-page .strategy-plan-ready-chip{
  background:linear-gradient(180deg, color-mix(in srgb, var(--pdiary-surface) 94%, #000000 6%), color-mix(in srgb, var(--pdiary-surface) 88%, #000000 12%)) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 30%, var(--pdiary-border)) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
  box-shadow:0 22px 58px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.07) !important;
}

body.calendar-page .strategy-plan-ready-chip__text strong,
body.calendar-page .strategy-plan-ready-chip__text span{
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}

body.calendar-page .strategy-plan-ready-chip button,
body.calendar-page .strategy-host-shell .strategy-action,
body.calendar-page .strategy-host-shell .strategy-filter-mode--segmented,
body.calendar-page .strategy-host-shell .strategy-header-impact > div,
body.calendar-page .strategy-host-shell .strategy-diagnostics,
body.calendar-page .strategy-host-shell .strategy-apply-state,
body.calendar-page .strategy-host-shell .strategy-apply-phase{
  background:color-mix(in srgb, var(--pdiary-surface) 84%, var(--pdiary-accent) 10%) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 28%, var(--pdiary-border)) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}

body.calendar-page .strategy-plan-ready-chip button[data-str-chip-apply],
body.calendar-page .strategy-host-shell .strategy-action--apply.is-ready,
body.calendar-page .strategy-host-shell .strategy-action.is-selected{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body.calendar-page .strategy-plan-ready-chip button[data-str-chip-open]{
  background:color-mix(in srgb, var(--pdiary-surface) 82%, var(--pdiary-accent) 14%) !important;
}

body.calendar-page .strategy-plan-ready-chip button[data-str-chip-close]{
  background:color-mix(in srgb, var(--pdiary-surface) 78%, var(--pdiary-text) 10%) !important;
  border-color:color-mix(in srgb, var(--pdiary-accent) 24%, var(--pdiary-border)) !important;
}

body.calendar-page .strategy-host-shell .strategy-header-impact div:nth-child(1) strong{
  color:#22c55e !important;
  -webkit-text-fill-color:#22c55e !important;
}

body.calendar-page .strategy-host-shell .strategy-header-impact div:nth-child(2) strong{
  color:#f59e0b !important;
  -webkit-text-fill-color:#f59e0b !important;
}

body.calendar-page .strategy-host-shell .strategy-header-impact div:nth-child(3) strong{
  color:#60a5fa !important;
  -webkit-text-fill-color:#60a5fa !important;
}

body.calendar-page .strategy-host-shell .strategy-secretary-arbitration,
body.calendar-page .strategy-host-shell .strategy-secretary-inbox-pointer,
body.calendar-page .strategy-host-shell .strategy-secretary-decision,
body.calendar-page .strategy-host-shell .strategy-action--secretary,
body.calendar-page .strategy-host-shell .strategy-apply-state--secretary{
  border-color:var(--secretary-red-border, rgba(255,92,112,.50)) !important;
  background:var(--secretary-red-bg-soft, linear-gradient(180deg,rgba(122,0,18,.34),rgba(17,16,40,.94))) !important;
  color:var(--secretary-red-text, #fff4f5) !important;
  -webkit-text-fill-color:var(--secretary-red-text, #fff4f5) !important;
  box-shadow:var(--secretary-red-glow, 0 18px 38px rgba(0,0,0,.34),0 0 28px rgba(255,0,52,.20)) !important;
}

@media (max-width:740px){
  body.calendar-page .strategy-host-shell,
  body.calendar-page .strategy-host-shell.is-mobile-centered{
    background:linear-gradient(180deg, color-mix(in srgb, var(--pdiary-surface) 95%, #000000 5%), color-mix(in srgb, var(--pdiary-surface) 88%, #000000 12%)) !important;
  }
}

/* V76.94 polish corrections: compact page titles, Secretary-red CTA, restored menu category colors. */
body.alerts-page .alerts-hero h1,
body.practice-intelligence-page .pi-title-card h1,
body.insights-page .insights-hero h1,
body.reports-master-page h1,
body.dashboard-page h1,
body.subscription-page h1,
body.cloud-sync-page h1,
body.profile-view-page h1,
body.profiles-view-page h1,
body.clients-registry-page h1,
body.services-page h1,
body.notifications-page h1,
body.noti-page h1,
body:not(.calendar-page):not(.settings-page) main > h1,
body:not(.calendar-page):not(.settings-page) .page-title{
  font-size:clamp(1.45rem, 4.7vw, 2.05rem) !important;
  line-height:1.08 !important;
  letter-spacing:0 !important;
}

body.alerts-page .hero-subtitle,
body.practice-intelligence-page .pi-title-card p,
body.insights-page .insights-hero p{
  font-size:clamp(.92rem, 3.2vw, 1rem) !important;
  line-height:1.42 !important;
}

body.practice-intelligence-page .pi-secretary-insights button,
body.practice-intelligence-page .pi-secretary-card button,
body.practice-intelligence-page .pi-secretary-layer button,
body.practice-intelligence-page .pi-open-focused-insights,
body.insights-page .secretary-box .btn-small,
body.insights-page #secretaryBox .btn-small,
.secretary-box .btn-small,
.secretary-card button,
.secretary-signal button{
  background:linear-gradient(180deg, var(--secretary-red, #ff4d69), var(--secretary-red-strong, #e11d48)) !important;
  border-color:rgba(255,186,196,.38) !important;
  color:#fff4f5 !important;
  -webkit-text-fill-color:#fff4f5 !important;
  box-shadow:0 12px 26px rgba(225,29,72,.24), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

.pdiary-str-confirm [data-apply-confirm-ok],
body.calendar-page .pdiary-str-confirm [data-apply-confirm-ok]{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 12px 26px color-mix(in srgb, var(--pdiary-accent) 24%, transparent), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

.pdiary-str-confirm [data-apply-confirm-cancel],
body.calendar-page .pdiary-str-confirm [data-apply-confirm-cancel]{
  background:color-mix(in srgb, var(--pdiary-surface) 82%, var(--pdiary-text) 10%) !important;
  border-color:color-mix(in srgb, var(--pdiary-border) 82%, transparent) !important;
  color:var(--pdiary-text) !important;
  -webkit-text-fill-color:var(--pdiary-text) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu .menu-section--daily::before{
  background:#38bdf8 !important;
  box-shadow:0 0 0 4px rgba(56,189,248,.14) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu .menu-section--intelligence::before{
  background:#6366f1 !important;
  box-shadow:0 0 0 4px rgba(99,102,241,.16) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu .menu-section--business::before{
  background:#f59e0b !important;
  box-shadow:0 0 0 4px rgba(245,158,11,.14) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu .menu-section--app::before{
  background:#94a3b8 !important;
  box-shadow:0 0 0 4px rgba(148,163,184,.14) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.notifications"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.individual"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.profileView"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.clientsRegistry"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.services"]{
  border-left-color:rgba(56,189,248,.58) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.insights"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.alerts"]{
  border-left-color:rgba(99,102,241,.72) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.practiceIntelligence"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.finance"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.reportsMaster"]{
  border-left-color:rgba(245,158,11,.66) !important;
}

body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.profile"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.settings"],
body.calendar-page nav.top-header.two-tier .mobile-menu li a[data-i18n="menu.subscription"]{
  border-left-color:rgba(148,163,184,.52) !important;
}

/* V76.95 remove remaining legacy purple/blue from Secretary and STR Apply surfaces. */
.secretary-premium-strip a,
.secretary-premium-strip button,
.today-secretary-command a,
.today-secretary-command button,
.secretary-weekly-brief a,
.secretary-weekly-brief button,
body.settings-page .secretary-premium-strip a,
body.settings-page .secretary-premium-strip button,
body.insights-page .secretary-premium-strip a,
body.insights-page .secretary-premium-strip button,
body.practice-intelligence-page .secretary-premium-strip a,
body.practice-intelligence-page .secretary-premium-strip button{
  background:linear-gradient(180deg, var(--secretary-red, #ff4d69), var(--secretary-red-strong, #e11d48)) !important;
  border-color:rgba(255,186,196,.42) !important;
  color:#fff4f5 !important;
  -webkit-text-fill-color:#fff4f5 !important;
  box-shadow:0 12px 26px rgba(225,29,72,.26), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

body.insights-page .brain-action.secretary-takeover-btn,
body.insights-page button[data-action="secretary-review"],
body.insights-page #secretaryBox button,
body.insights-page .secretary-box button,
body.insights-page .secretary-card button{
  background:linear-gradient(180deg, var(--secretary-red, #ff4d69), var(--secretary-red-strong, #e11d48)) !important;
  border-color:rgba(255,186,196,.42) !important;
  color:#fff4f5 !important;
  -webkit-text-fill-color:#fff4f5 !important;
  box-shadow:0 12px 26px rgba(225,29,72,.26), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

.pdiary-str-confirm__kicker,
body.calendar-page .pdiary-str-confirm__kicker{
  color:var(--secretary-red, #ff4d69) !important;
  -webkit-text-fill-color:var(--secretary-red, #ff4d69) !important;
  text-shadow:0 0 18px rgba(225,29,72,.24) !important;
}

.pdiary-str-confirm,
body.calendar-page .pdiary-str-confirm{
  border-color:var(--secretary-red-border, rgba(255,92,112,.50)) !important;
}

.pdiary-str-confirm button[data-apply-confirm-ok],
body.calendar-page .pdiary-str-confirm button[data-apply-confirm-ok]{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 12px 26px color-mix(in srgb, var(--pdiary-accent) 24%, transparent), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

/* V76.96 Reminders IA: one filter row, Past as secondary access, STR messages isolated. */
body.noti-theme #time-window{
  display:none !important;
}

body.noti-theme #btn-past-reminders.active,
body.noti-theme .tab-nav .tab-btn.active{
  background:linear-gradient(180deg, var(--pdiary-accent-top), var(--pdiary-accent-bottom)) !important;
  border-color:var(--pdiary-accent-border) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

body.noti-theme #btn-past-reminders{
  min-height:42px;
}

body.noti-theme .tab-nav{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
}

body.noti-theme .tab-nav #tab-all{
  grid-column:2 / 3;
  justify-self:stretch;
  background:linear-gradient(180deg, #7a263f, #421825) !important;
  border-color:#d95d86 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  box-shadow:0 10px 22px rgba(217,93,134,.18), inset 0 1px 0 rgba(255,255,255,.12) !important;
}

body.noti-theme .tab-nav #tab-all.active{
  background:linear-gradient(180deg, #e2769b, #8b2748) !important;
  border-color:#ff9dbb !important;
  box-shadow:0 12px 26px rgba(226,118,155,.26), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

@media (max-width:520px){
  body.noti-theme .tab-nav .tab-btn{
    min-height:44px !important;
    padding:.62rem .5rem !important;
    font-size:.88rem !important;
  }

  body.noti-theme .tab-nav #tab-all{
    min-height:44px !important;
    width:100% !important;
  }
}

/* V82.33 — Editor → Reminders must show one physical card, never a card inside a panel.
   pdiary-theme-contract.css is loaded after noti-unified.css, so the old V76.97
   wrapper was silently restoring a border, padding and glow around the card. */
body.noti-theme #notif-focused-reminder,
body.noti-theme .focused-reminder-slot{
  display:block !important;
  margin:0 0 10px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}

/* Legacy focus-header chrome belongs to the deleted panel, not to the card. */
body.noti-theme .focused-reminder-head,
body.noti-theme .focused-reminder-close{
  display:none !important;
}

body.noti-theme .noti-editor-focus-card{
  margin:0 !important;
  outline:0 !important;
}

body.noti-theme .noti-focus-send-button{
  outline:2px solid var(--pdiary-accent-border) !important;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--pdiary-accent) 22%, transparent) !important;
}

/* V76.98 Reminders: Secretary prompt for optional 12/24/48 auto alerts. */
body.noti-theme .secretary-auto-alert-modal .noti-modal-dialog{
  border-color:#d95d86 !important;
  background:linear-gradient(180deg, #210814, #120712) !important;
  box-shadow:0 22px 54px rgba(217,93,134,.24) !important;
}

body.noti-theme .secretary-auto-alert-modal #time-alert-title{
  color:#fff !important;
}

body.noti-theme .secretary-auto-alert-modal #time-alert-title::before{
  content:"Secretary layer";
  display:block;
  margin:0 0 6px;
  color:#ff9dbb;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

body.noti-theme .secretary-auto-alert-modal #time-alert-desc{
  color:rgba(255,255,255,.82) !important;
}

body.noti-theme .secretary-auto-alert-modal #time-alert-save{
  background:linear-gradient(180deg, #e2769b, #8b2748) !important;
  border-color:#ff9dbb !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* Profile View mobile: keep header/actions readable after theme contract loads */
@media (max-width:560px){
  body.profile-view-page .container{
    width:100% !important;
    max-width:none !important;
    padding-inline:0 !important;
  }
  body.profile-view-page .pv2{
    width:100% !important;
    box-sizing:border-box !important;
    padding:5.25rem 1rem 1.6rem !important;
  }
  body.profile-view-page .pv2-top{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
    gap:12px !important;
    padding:16px !important;
    border-radius:20px !important;
  }
  body.profile-view-page .pv2-top__title{
    min-width:0 !important;
    width:100% !important;
  }
  body.profile-view-page .pv2-top h1{
    font-size:1.32rem !important;
    line-height:1.12 !important;
    letter-spacing:0 !important;
  }
  body.profile-view-page .pv2-sub{
    font-size:.86rem !important;
    margin-top:3px !important;
  }
  body.profile-view-page .pv2-top .secretary-premium-strip{
    width:100% !important;
    box-sizing:border-box !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin-top:10px !important;
    padding:12px !important;
    border-radius:18px !important;
  }
  body.profile-view-page .pv2-top .secretary-premium-strip strong{
    display:block !important;
    font-size:.92rem !important;
    line-height:1.25 !important;
  }
  body.profile-view-page .pv2-top .secretary-premium-strip span{
    display:-webkit-box !important;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden !important;
    font-size:.82rem !important;
    line-height:1.35 !important;
  }
  body.profile-view-page .pv2-top .secretary-strip-actions,
  body.profile-view-page .pv2-top .secretary-strip-actions a{
    width:100% !important;
  }
  body.profile-view-page .pv2-top .secretary-strip-actions a{
    min-height:42px !important;
    border-radius:14px !important;
  }
  body.profile-view-page .pv2-top__actions{
    display:grid !important;
    grid-template-columns:52px 1fr !important;
    width:100% !important;
    gap:10px !important;
    justify-content:stretch !important;
  }
  body.profile-view-page .pv2-top__actions .pv2-btn{
    width:100% !important;
    min-width:0 !important;
    height:46px !important;
    border-radius:15px !important;
    padding-inline:10px !important;
  }
  body.profile-view-page .pv2-grid{
    gap:14px !important;
    margin-top:14px !important;
  }
  body.profile-view-page .pv2-pane,
  body.profile-view-page .pv2-card,
  body.profile-view-page .pv2-empty{
    border-radius:18px !important;
  }
  body.profile-view-page .pv2-search{
    padding:10px !important;
  }
  body.profile-view-page .pv2-search input{
    height:48px !important;
    border-radius:14px !important;
    font-size:.95rem !important;
  }
  body.profile-view-page .pv2-item{
    min-height:58px !important;
    align-items:center !important;
    padding:12px 14px !important;
  }
  body.profile-view-page .pv2-card__head{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:14px !important;
  }
  body.profile-view-page .pv2-card__head .pv2-quick{
    width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
    margin-top:0 !important;
  }
  body.profile-view-page .pv2-card__head .pv2-mini{
    width:100% !important;
    min-width:0 !important;
    min-height:44px !important;
    border-radius:14px !important;
  }
  body.profile-view-page .pv2-tabs{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:6px !important;
    margin:12px 12px 0 !important;
    padding:6px !important;
    overflow:visible !important;
    border-radius:18px !important;
  }
  body.profile-view-page .pv2-tab{
    min-width:0 !important;
    width:100% !important;
    min-height:42px !important;
    white-space:normal !important;
    border-radius:13px !important;
  }
  body.profile-view-page .pv2-panels{
    padding:12px !important;
  }
  body.profile-view-page .pv2-sec{
    padding:12px !important;
    border-radius:16px !important;
  }
  body.profile-view-page .pv2-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:12px !important;
  }
  body.profile-view-page .pv2-row .rhs{
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
  }
  body.profile-view-page .pv2-foot{
    padding:12px !important;
  }
  body.profile-view-page .pv2-foot .pv2-btn{
    width:100% !important;
    min-height:46px !important;
    border-radius:15px !important;
  }
}
