/* Wealth365 shared visual authority: one brand blue and neutral greys.
   Chart categories use blue/greys; status colours are only for actual outcomes.
   Printed reports are independent. */
:root {
    --brand-logo-blue: #1F5EA8;

    --brand-gray-50: #fafafa;
    --brand-gray-100: #f5f5f5;
    --brand-gray-200: #e5e5e5;
    --brand-gray-300: #d4d4d4;
    --brand-gray-400: #a3a3a3;
    --brand-gray-500: #737373;
    --brand-gray-600: #525252;
    --brand-gray-700: #404040;
    --brand-gray-800: #262626;
    --brand-gray-900: #171717;

    --brand-surface: #ffffff;
    --brand-surface-muted: var(--brand-gray-50);
    --brand-surface-raised: #ffffff;
    --brand-surface-subtle: var(--brand-gray-100);
    --brand-page: var(--brand-gray-100);
    --brand-text: var(--brand-gray-900);
    --brand-text-muted: var(--brand-gray-600);
    --brand-text-subtle: var(--brand-gray-500);
    --brand-border: var(--brand-gray-200);
    --brand-success: #15803d;
    --brand-warning: #a16207;
    --brand-danger: #b91c1c;
    --brand-transparent: transparent;

    /* Ordinary categories retain their slots without borrowing status meaning. */
    --brand-chart-1: var(--brand-logo-blue);
    --brand-chart-2: var(--brand-gray-700);
    --brand-chart-3: var(--brand-gray-500);
    --brand-chart-4: var(--brand-gray-400);
    --brand-chart-5: var(--brand-gray-600);
    --brand-chart-6: var(--brand-gray-900);
    --brand-chart-7: var(--brand-gray-300);
    --brand-chart-8: var(--brand-gray-800);

    /* Legacy decorative names are compatibility aliases, not extra colours. */
    --brand-orange: var(--brand-logo-blue);
    --brand-indigo-soft: var(--brand-gray-300);
    --brand-indigo: var(--brand-gray-500);
    --brand-indigo-strong: var(--brand-logo-blue);
    --brand-warning-soft: var(--brand-warning);
    --brand-warning-bright: var(--brand-warning);
    --brand-pink-soft: var(--brand-gray-300);
    --brand-pink: var(--brand-gray-500);
    --brand-black: var(--brand-text);
    --brand-overlay-ink: var(--brand-text);

    --brand-font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --brand-font-heading: var(--brand-font-body);
    --brand-font-mono: var(--brand-font-body);
    --brand-body-line-height: 1.6;
    --brand-text-xs: 0.75rem;
    --brand-text-2xs: 0.625rem;
    --brand-text-sm: 0.8125rem;
    --brand-text-md: 0.875rem;
    --brand-text-lg: 1rem;
    --brand-text-lead: 1.125rem;
    --brand-text-xl: 1.25rem;
    --brand-text-2xl: 1.5rem;
    --brand-text-3xl: 2rem;
    --brand-text-4xl: 2.5rem;
    --brand-text-5xl: 3rem;
    --brand-text-6xl: 3.5rem;
    --brand-text-7xl: 4rem;
    --brand-text-8xl: 5rem;
    --brand-text-9xl: 6rem;
    --brand-text-relative-sm: 0.85em;
    --brand-text-relative-md: 1em;
    --brand-text-relative-lg: 1.2em;
    --brand-text-relative-xl: 1.5em;
    --brand-text-relative-2xl: 2em;
    --brand-text-fluid: clamp(2rem, 5vw, 3.5rem);

    --brand-space-1: 0.25rem;
    --brand-space-2: 0.5rem;
    --brand-space-3: 0.75rem;
    --brand-space-4: 1rem;
    --brand-space-5: 1.25rem;
    --brand-space-6: 1.5rem;
    --brand-space-8: 2rem;
    --brand-space-10: 2.5rem;
    --brand-space-12: 3rem;
    --brand-public-chrome-clearance: 0px;
    --brand-workspace-chrome-clearance: 0px;
    --site-header-height: var(--brand-public-chrome-clearance);
    --brand-radius-sm: 4px;
    --brand-radius-md: 6px;
    --brand-radius-lg: 6px;
    --brand-radius-xl: 6px;
    --brand-radius-round: 50%;
    --brand-radius-pill: 9999px;
    --brand-shadow: none;
    --brand-flat-border: 1px solid var(--brand-border);
    --brand-focus-outline: 2px solid var(--component-focus);
    /* A tour's page mask is functional occlusion, not surface decoration. */
    --brand-tour-mask: 0 0 0 9999px color-mix(in srgb, var(--brand-overlay-ink) 55%, transparent);
    --brand-tab-edge-mask: linear-gradient(to right, var(--brand-black) 85%, transparent 100%);
    --brand-admin-backdrop: color-mix(in srgb, var(--brand-overlay-ink) 42%, transparent);

    /* Shared component contract. Variants consume these values rather than
       carrying their own colour, radius, or control-state decisions. */
    --component-control-height: 2.375rem;
    --component-control-height-compact: 1.875rem;
    --component-control-radius: var(--brand-radius-sm);
    --component-control-border: var(--brand-border);
    --component-control-bg: var(--brand-surface);
    --component-control-text: var(--brand-text);
    --component-primary-bg: var(--brand-logo-blue);
    --component-primary-hover: var(--brand-gray-800);
    --component-primary-text: var(--brand-surface);
    --component-selected-bg: var(--brand-surface-subtle);
    --component-selected-text: var(--brand-logo-blue);
    --component-focus: var(--brand-logo-blue);
    --component-row-hover: var(--brand-surface-subtle);
    --component-panel-bg: var(--brand-surface);
    --component-panel-border: var(--brand-border);
    --component-panel-radius: var(--brand-radius-md);
    --component-panel-shadow: none;
    --component-results-plot-height: 265px;
    --component-results-value-min: var(--brand-text-lg);
    --component-results-value-max: var(--brand-text-3xl);
    --brand-compare-a: var(--brand-logo-blue);
    --brand-compare-b: var(--brand-gray-700);
    --brand-compare-gap: var(--brand-gray-500);
    --brand-compare-a-surface: var(--brand-gray-50);
    --brand-compare-b-surface: var(--brand-gray-100);
    --brand-compare-gap-surface: var(--brand-gray-200);

    --accent: var(--brand-logo-blue);
    --white: var(--brand-surface);
    --gray-50: var(--brand-gray-50);
    --gray-100: var(--brand-gray-100);
    --gray-200: var(--brand-gray-200);
    --gray-300: var(--brand-gray-300);
    --gray-400: var(--brand-gray-400);
    --gray-500: var(--brand-gray-500);
    --gray-600: var(--brand-gray-600);
    --gray-700: var(--brand-gray-700);
    --gray-800: var(--brand-gray-800);
    --gray-900: var(--brand-gray-900);
    --success: var(--brand-success);
    --warning: var(--brand-warning);
}

body, .w365-admin-frame { font-family: var(--brand-font-body); }
/* Moved from the shared img's inline style; retain non-public and firm-logo
   geometry. The public rule below resizes only generated platform artwork. */
.platform-logo--descriptor { width: 265px; height: auto; }
.w365-admin-frame {
    color: var(--brand-text);
    background: var(--brand-page);
}
.w365-admin-frame [hidden] { display: none !important; }
.w365-admin-frame h1 { font-size: var(--brand-text-3xl); line-height: 1.2; }
.w365-admin-frame h2 { font-size: var(--brand-text-xl); line-height: 1.3; }
.w365-admin-frame h3 { font-size: var(--brand-text-lg); line-height: 1.35; }
.w365-admin-masthead {
    color: var(--brand-text);
    background: var(--brand-surface);
    border-bottom: var(--brand-flat-border);
}
.w365-admin-masthead__context {
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}
/* Explicit type utilities share the same scale in authored and emitted markup. */
.w365-type-2xs { font-size: var(--brand-text-2xs); }
.w365-type-xs { font-size: var(--brand-text-xs); }
.w365-type-sm { font-size: var(--brand-text-sm); }
.w365-type-md { font-size: var(--brand-text-md); }
.w365-type-lg { font-size: var(--brand-text-lg); }
.w365-type-lead { font-size: var(--brand-text-lead); }
.w365-type-xl { font-size: var(--brand-text-xl); }
.w365-type-2xl { font-size: var(--brand-text-2xl); }
.w365-type-3xl { font-size: var(--brand-text-3xl); }
.w365-type-4xl { font-size: var(--brand-text-4xl); }
.w365-type-5xl { font-size: var(--brand-text-5xl); }
.w365-type-6xl { font-size: var(--brand-text-6xl); }
.w365-type-7xl { font-size: var(--brand-text-7xl); }
.w365-type-8xl { font-size: var(--brand-text-8xl); }
.w365-type-9xl { font-size: var(--brand-text-9xl); }
h1, h2, h3, h4, h5, h6, .brand-a-heading { font-family: var(--brand-font-heading); }
/* Deferred saved-reader dialogs use the ordinary component appearances.
   Their producers retain geometry and action hooks, not private palettes. */
.saved-headlines-backdrop, .src-backdrop {
    background: color-mix(in srgb, var(--brand-overlay-ink) 48%, transparent);
}
.saved-headlines-dialog, .src-dialog, .sh-entry {
    background: var(--component-panel-bg);
    color: var(--brand-text);
    border: var(--brand-flat-border);
    border-radius: var(--component-panel-radius);
    box-shadow: var(--component-panel-shadow);
}
.saved-headlines-dialog h2, .src-dialog h2 { font-size: var(--brand-text-2xl); }
.src-dialog h3 { font-size: var(--brand-text-lg); }
.sh-head, .src-header, .src-input { border-bottom: var(--brand-flat-border); }
.sh-close, .sh-action, .src-button, .src-select {
    border: var(--brand-flat-border);
    border-radius: var(--component-control-radius);
    background: var(--component-control-bg);
    color: var(--component-control-text);
    font: 600 var(--brand-text-sm)/1.2 var(--brand-font-body);
}
.sh-action--primary, .src-button--primary {
    background: var(--component-primary-bg);
    color: var(--component-primary-text);
    border-color: var(--component-primary-bg);
}
.sh-close:hover, .sh-action:hover, .src-button:hover { background: var(--component-row-hover); }
.sh-action--primary:hover, .src-button--primary:hover {
    background: var(--component-primary-hover);
    color: var(--component-primary-text);
}
.sh-mode, .src-selectors, .src-state {
    background: var(--brand-surface-subtle);
    border-radius: var(--brand-radius-md);
}
.sh-entry small, .sh-muted, .src-muted { color: var(--brand-text-muted); }
.sh-table, .src-table { background: var(--brand-surface); }
.sh-table th, .sh-table td, .src-table th, .src-table td {
    border: var(--brand-flat-border);
    font-size: var(--brand-text-xs);
}
.sh-table th, .src-table th { background: var(--brand-surface-subtle); }
.src-selectors label, .src-select, .src-state, .src-input { font-size: var(--brand-text-xs); }
.src-category { font-size: var(--brand-text-sm); }
.src-json { font-family: var(--brand-font-mono); }
.sh-error, .src-error {
    color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 5%, var(--brand-surface));
    border: 1px solid var(--brand-danger);
    border-radius: var(--brand-radius-md);
}
.brand-a-container { font-family: var(--brand-font-body); }
.bg-brand-ink { background-color: var(--brand-text); }
.bg-brand-blue { background-color: var(--brand-logo-blue); }
.bg-brand-subtle { background-color: var(--brand-surface-subtle); }
.bg-brand-blue { background-color: var(--brand-logo-blue); }
.text-brand-ink { color: var(--brand-text); }
.text-brand-blue { color: var(--brand-logo-blue); }
.text-brand-blue { color: var(--brand-logo-blue); }
.border-brand-blue { border-color: var(--brand-logo-blue); }
.border-brand-blue { border-color: var(--brand-logo-blue); }

#public-demo-bar {
    position: sticky;
    top: 0;
    z-index: 20000;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--brand-space-2) var(--brand-space-4);
    margin: 0;
    padding: var(--brand-space-2) var(--brand-space-4);
    background: var(--brand-surface);
    color: var(--brand-text);
    border-bottom: 1px solid var(--brand-border);
    font-size: var(--brand-text-sm);
    line-height: 1.5;
}
#public-demo-bar form { margin: 0; }
#public-demo-bar strong, #public-demo-bar summary { white-space: nowrap; }
#public-demo-bar a { color: inherit; text-decoration: underline; }
#public-demo-bar button {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-sm);
    padding: var(--brand-space-1) var(--brand-space-2);
    background: var(--brand-surface-muted);
    color: inherit;
    font: inherit;
    cursor: pointer;
}
#public-demo-bar summary { cursor: pointer; }
#public-demo-bar details[open] { flex-basis: 100%; order: 1; }
#public-demo-bar .public-demo-copy-note {
    flex-basis: 100%;
    order: 2;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    overflow-wrap: anywhere;
}
#public-demo-bar .public-demo-tour-panel {
    padding: var(--brand-space-3) var(--brand-space-4);
    max-height: 35dvh;
    overflow-y: auto;
    background: var(--brand-surface);
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-md);
}
#public-demo-bar ol {
    display: flex;
    flex-wrap: wrap;
    gap: var(--brand-space-2) var(--brand-space-8);
    padding-left: var(--brand-space-6);
    margin: var(--brand-space-2) 0;
}
#public-demo-bar p { margin: var(--brand-space-2) 0; }
:focus-visible {
    outline: 2px solid var(--brand-logo-blue);
    outline-offset: 2px;
}

/*
 * Shared component primitives. Markup in the app, deferred planner and public
 * workspace can opt into these explicit classes without inheriting page
 * layout. Legacy selectors alias these definitions; consumer sheets own layout.
 */
.w365-button,
:where(.w365-admin-frame button:not(.unstyled),
    .w365-admin-frame input[type="button"], .w365-admin-frame input[type="reset"],
    .w365-admin-frame input[type="submit"]),
:is(.btn, .btn-primary, .btn-secondary, .btn-outline, .btn-cancel,
    .btn-save, .btn-add, .btn-add-item, .btn-preset, .btn-add-family,
    .quick-action-btn,
    .btn-sm, .btn-primary-sm, .btn-ghost, .btn-danger, .btn-success, .btn-info, .btn-done,
    .btn-approve, .btn-verify, .approve, .keep, .btn-edit, .btn-advisor, .btn-reject, .tab,
    .btn-calculate, .btn-remove-item, .btn-delete, .plan-action-btn,
    .plan-icon-btn, .density-btn, .calculate-btn, .guided-flow-bar__btn, .guided-flow-btn,
     .report-btn, :where(button[type="submit"]:not(.w365-button):not([class*="w365-button--"])), .user-nav a, .adv-btn, .adv-mobile-menu-btn,
     .admin-nav a, .action-btn, .pagination button,
    .results-page__info, .results-page__table-toggle, .guided-flow-step,
    .view-toggle, .tab-btn, .chart-tab-btn, .tab-button, .faq-feedback-btn,
    .category-tab, .table-action-btn,
      .segment, .accordion-header, .header-more-btn, .header-more-item,
       .header-plan-switcher, .header-icon-btn, .nav-dropdown-btn, .header-save-plan-btn,
      .user-menu-btn, .sidebar-collapse-btn, .btn-invite-member,
      .save-refusal-actions button, .btn-add-person, .person-actions .btn-edit-person,
      .person-actions .btn-remove-person, .btn-add-expense, .expense-actions button,
      .legacy-multi-upload__cancel, .workspace-active-plan .wap-branch,
      .beta-banner .beta-cta, .beta-nav-wrapper .nav-dropdown-trigger,
      .beta-nav-wrapper .mobile-menu-btn, .color-preset-btn,
      .auth-a-plan-cta, .auth-a-btn-outline,
      .ppr-editor .btn, .psc-btn, .psfb-btn,
     .plan-load-error-banner .plber-retry, .btn-calculate-main, .btn-hide-all,
     .btn-icon-small, .btn-toggle, .tour-btn, .undo-toast-btn,
     .panel-undo-toast .undo-btn, .notification-bell, .meeting-mode-btn,
     .panel-confirm-buttons button, .household-pending-invitations .phi-cancel-btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--brand-space-2);
    min-height: var(--component-control-height);
    padding: 0 var(--brand-space-4);
    border: 1px solid var(--component-control-border);
    border-radius: var(--component-control-radius);
    background: var(--component-control-bg);
    color: var(--component-control-text);
    font: 600 var(--brand-text-sm)/1.2 var(--brand-font-body);
    text-decoration: none;
    cursor: pointer;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.w365-button:hover,
:where(.w365-admin-frame button:not(.unstyled):enabled:hover,
    .w365-admin-frame input[type="button"]:enabled:hover,
    .w365-admin-frame input[type="reset"]:enabled:hover,
    .w365-admin-frame input[type="submit"]:enabled:hover),
:is(.btn, .btn-secondary, .btn-outline, .btn-cancel, .btn-add-item,
    .btn-sm, .btn-ghost, .density-btn, .view-toggle, .tab-btn,
    .chart-tab-btn, .category-tab, .table-action-btn, .segment, .guided-flow-step, .adv-btn, .adv-mobile-menu-btn,
      .accordion-header, .sidebar-collapse-btn, .faq-feedback-btn, .legacy-multi-upload__cancel,
      .header-plan-switcher, .header-icon-btn, .nav-dropdown-btn, .header-more-item,
      .header-save-plan-btn,
      .save-refusal-actions button, .btn-add-person, .person-actions .btn-edit-person,
        .expense-actions button, .workspace-active-plan .wap-branch,
        .beta-nav-wrapper .nav-dropdown-trigger, .beta-nav-wrapper .mobile-menu-btn,
        .color-preset-btn, .auth-a-plan-cta, .auth-a-btn-outline,
        .ppr-editor .btn, .psc-btn, .psfb-btn,
       .plan-load-error-banner .plber-retry, .btn-hide-all, .btn-icon-small,
       .btn-toggle, .tour-btn, .undo-toast-btn, .panel-undo-toast .undo-btn,
        .notification-bell, .meeting-mode-btn, .panel-confirm-buttons button,
       .household-pending-invitations .phi-cancel-btn):hover {
    background: var(--component-row-hover);
}
.w365-button:focus-visible,
:where(.w365-admin-frame button:focus-visible,
    .w365-admin-frame input:focus-visible, .w365-admin-frame select:focus-visible,
    .w365-admin-frame textarea:focus-visible, .w365-admin-frame a:focus-visible,
    .w365-admin-frame summary:focus-visible),
.faq-feedback-btn:focus-visible,
.w365-field:focus-visible,
.w365-select:focus-visible,
.w365-tab:focus-visible,
.expense-tab:focus-visible,
.header-plan-switcher:focus-within,
.nav-dropdown-content a:focus-visible,
:is(.btn, .btn-primary, .btn-secondary, .btn-outline, .btn-cancel,
    .btn-save, .btn-add-item, .btn-sm, .btn-ghost, .btn-danger,
    .btn-success, .btn-info, .quick-action-btn, .density-btn, .guided-flow-bar__btn, .guided-flow-btn, .sidebar-collapse-btn,
    .accordion-header, .btn-calculate, .btn-remove-item,
    .btn-delete, .calculate-btn, button[type="submit"],
    .report-btn, button[type="submit"], .results-page__info,
    .results-page__table-toggle, .tab-btn, .chart-tab-btn, .guided-flow-step,
     .tab-button, .view-btn, .segment, .header-icon-btn, .nav-dropdown-btn,
     .header-more-item, .save-refusal-actions button, .btn-add-person,
      .person-actions .btn-edit-person, .person-actions .btn-remove-person, .btn-add-expense,
        .header-save-plan-btn, .expense-actions button, .workspace-active-plan .wap-branch,
        .beta-banner .beta-cta, .beta-nav-wrapper .nav-dropdown-trigger,
        .beta-nav-wrapper .mobile-menu-btn, .color-preset-btn,
        .auth-a-plan-cta, .auth-a-btn-outline, .ppr-editor .btn,
       .psc-btn, .psfb-btn, .plan-load-error-banner .plber-retry,
       .btn-calculate-main, .btn-hide-all, .btn-icon-small, .btn-toggle,
       .tour-btn, .undo-toast-btn, .panel-undo-toast .undo-btn,
        .notification-bell, .meeting-mode-btn, .panel-confirm-buttons button,
       .household-pending-invitations .phi-cancel-btn):focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.w365-button:disabled,
.w365-button[aria-disabled="true"],
:where(.w365-admin-frame button:disabled, .w365-admin-frame button[aria-disabled="true"],
    .w365-admin-frame input[type="button"]:disabled,
    .w365-admin-frame input[type="reset"]:disabled,
    .w365-admin-frame input[type="submit"]:disabled),
:is(.btn, .btn-primary, .btn-secondary, .btn-outline, .btn-cancel,
    .btn-save, .btn-add-item, .btn-sm, .btn-ghost, .btn-danger, .guided-flow-bar__btn, .sidebar-collapse-btn,
    .btn-success, .btn-info, .btn-calculate, .btn-remove-item,
    .btn-delete, .calculate-btn, button[type="submit"],
     .report-btn, .header-plan-switcher, .header-icon-btn, .nav-dropdown-btn,
     .header-more-item, .header-save-plan-btn, .save-refusal-actions button,
     .btn-add-person, .person-actions .btn-edit-person, .person-actions .btn-remove-person,
       .btn-add-expense, .expense-actions button, .workspace-active-plan .wap-branch,
       .ppr-editor .btn,
      .psc-btn, .psfb-btn, .plan-load-error-banner .plber-retry,
      .btn-calculate-main, .btn-hide-all, .btn-icon-small, .btn-toggle,
      .tour-btn, .undo-toast-btn, .panel-undo-toast .undo-btn,
      .notification-bell, .meeting-mode-btn, .panel-confirm-buttons button,
      .household-pending-invitations .phi-cancel-btn):disabled,
:is(.btn, .btn-primary, .btn-secondary, .btn-outline, .btn-cancel,
    .btn-save, .btn-add-item, .btn-sm, .btn-ghost, .btn-danger, .guided-flow-bar__btn, .sidebar-collapse-btn,
    .btn-success, .btn-info, .btn-calculate, .btn-remove-item,
    .btn-delete, .calculate-btn,
     .report-btn, .header-plan-switcher, .header-icon-btn, .nav-dropdown-btn,
     .header-more-item, .header-save-plan-btn, .save-refusal-actions button,
     .btn-add-person, .person-actions .btn-edit-person, .person-actions .btn-remove-person,
       .btn-add-expense, .expense-actions button, .workspace-active-plan .wap-branch,
       .ppr-editor .btn,
      .psc-btn, .psfb-btn, .plan-load-error-banner .plber-retry,
      .btn-calculate-main, .btn-hide-all, .btn-icon-small, .btn-toggle,
      .tour-btn, .undo-toast-btn, .panel-undo-toast .undo-btn,
      .notification-bell, .meeting-mode-btn, .panel-confirm-buttons button,
      .household-pending-invitations .phi-cancel-btn)[aria-disabled="true"] {
    opacity: .55;
    cursor: not-allowed;
}
.w365-button--primary,
:is(.btn-primary, .btn-primary-sm, .btn-save, .btn-preset, .plan-action-btn.primary,
     .calculate-btn, .report-btn, .btn-add-expense, .header-save-plan-btn, .view-toggle.highlight,
     .nav-dropdown-btn, .workspace-active-plan .wap-branch, .auth-a-plan-cta,
     .btn-calculate-main, .meeting-mode-btn, .btn-toggle.active, .psc-save, .psfb-retry,
     .tour-btn-next, .undo-toast-btn, .panel-undo-toast .undo-btn,
    .guided-flow-bar__btn--primary, .guided-flow-btn.next,
      .quick-action-btn, button[type="submit"]:not(.w365-button):not([class*="w365-button--"]):not(.auth-a-btn-outline), .user-nav a.help-link, .admin-nav a, .adv-btn--primary) {
    border-color: var(--component-primary-bg);
    background: var(--component-primary-bg);
    color: var(--component-primary-text);
}
.w365-button--success, .btn-approve {
    border-color: color-mix(in srgb, var(--brand-success) 40%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-success) 10%, var(--brand-surface));
    color: var(--brand-success);
}
.w365-button--info, .btn-info {
    border-color: var(--brand-logo-blue);
    background: var(--brand-surface);
    color: var(--brand-logo-blue);
}
.w365-button--dashed, .btn-add-person {
    border-style: dashed;
    border-color: color-mix(in srgb, var(--brand-logo-blue) 55%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.w365-button--icon, .person-actions .btn-edit-person, .person-actions .btn-remove-person,
.btn-icon-small, .notification-bell, .ppr-editor .btn--icon,
.beta-nav-wrapper .mobile-menu-btn {
    width: 2rem;
    padding: 0;
}
.w365-button--block, .auth-a-plan-cta,
input[type="submit"], input[type="button"], input[type="reset"] {
    display: flex;
    width: 100%;
}
.w365-button--danger,
:is(.btn-danger, .btn-remove-item, .btn-delete, .person-actions .btn-remove-person,
    .btn-reject, .plan-load-error-banner .plber-retry,
    .panel-confirm-buttons .confirm-btn) {
    border-color: color-mix(in srgb, var(--brand-danger) 45%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-danger) 7%, var(--brand-surface));
    color: var(--brand-danger);
}
.w365-button--danger:hover,
:is(.btn-danger, .btn-remove-item, .btn-delete, .person-actions .btn-remove-person,
    .plan-load-error-banner .plber-retry,
    .panel-confirm-buttons .confirm-btn):hover {
    border-color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 12%, var(--brand-surface));
    color: var(--brand-danger);
}
.w365-button--danger-ghost, .ppr-editor .btn--danger-ghost, .psc-discard,
.psfb-discard, .household-pending-invitations .phi-cancel-btn {
    border-color: color-mix(in srgb, var(--brand-danger) 36%, var(--brand-border));
    background: transparent;
    color: var(--brand-danger);
}
.w365-button--danger-ghost:hover, .ppr-editor .btn--danger-ghost:hover,
.psc-discard:hover, .psfb-discard:hover,
.household-pending-invitations .phi-cancel-btn:hover {
    border-color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface));
    color: var(--brand-danger);
}
.adv-btn--bulk {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 30%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 12%, var(--brand-surface));
    color: var(--accent, var(--brand-logo-blue));
}
.adv-btn--bulk:hover {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 38%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 20%, var(--brand-surface));
}
.w365-button--primary:hover,
:is(.btn-primary, .btn-save, .btn-preset, .plan-action-btn.primary,
     .calculate-btn, .report-btn, .btn-add-expense, .header-save-plan-btn, .view-toggle.highlight, .nav-dropdown-btn,
     .workspace-active-plan .wap-branch, .auth-a-plan-cta,
     .btn-calculate-main, .meeting-mode-btn, .btn-toggle.active, .psc-save, .psfb-retry, .tour-btn-next,
     .undo-toast-btn, .panel-undo-toast .undo-btn,
      .quick-action-btn, button[type="submit"]:not(.w365-button):not([class*="w365-button--"]):not(.auth-a-btn-outline), .user-nav a.help-link, .adv-btn--primary,
    .guided-flow-bar__btn--primary, .guided-flow-btn.next):hover {
    border-color: var(--component-primary-hover);
    background: var(--component-primary-hover);
    color: var(--component-primary-text);
}
.w365-button--primary:active,
:is(.btn-primary, .btn-save, .btn-preset, .plan-action-btn.primary,
    .calculate-btn, .report-btn, .btn-add-expense, .header-save-plan-btn,
     .view-toggle.highlight, .nav-dropdown-btn, .workspace-active-plan .wap-branch,
     .auth-a-plan-cta, .btn-calculate-main, .meeting-mode-btn, .btn-toggle.active,
     .psc-save, .psfb-retry, .tour-btn-next, .guided-flow-bar__btn--primary,
    .guided-flow-btn.next):active {
    border-color: var(--component-primary-hover);
    background: var(--component-primary-hover);
    color: var(--component-primary-text);
}
.btn-done {
    border-color: var(--brand-text);
    background: var(--brand-text);
    color: var(--brand-surface);
}
.btn-done:hover {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
}
.user-nav a.admin-link {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.user-nav a.admin-link:hover {
    border-color: var(--brand-text);
    background: var(--brand-text);
    color: var(--brand-surface);
}
.w365-button--quiet[aria-pressed="true"] {
    background: var(--brand-logo-blue);
    border-color: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.w365-button--quiet, .faq-feedback-btn, .btn-hide-all, .btn-icon-small,
.btn-toggle, .tour-btn-skip, .notification-bell,
.beta-nav-wrapper .nav-dropdown-trigger, .beta-nav-wrapper .mobile-menu-btn,
.color-preset-btn,
.panel-confirm-buttons .cancel-btn,
:is(.btn-ghost, .btn-cancel, .view-toggle, .segment, .results-page__info, .adv-btn--ghost,
    .results-page__table-toggle, .guided-flow-btn.back, .sidebar-collapse-btn,
    .person-actions .btn-edit-person, .expense-actions button) { background: transparent; }
.w365-button--secondary, .ppr-editor .btn--secondary, .auth-a-btn-outline,
.save-refusal-actions button,
.psc-cancel, .psfb-stay {
    border-color: var(--brand-border);
    background: var(--brand-surface-subtle);
    color: var(--brand-text-muted);
}
.w365-button--inverse {
    border-color: color-mix(in srgb, var(--brand-surface) 22%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 12%, transparent);
    color: var(--brand-surface);
}
.w365-button--inverse:hover {
    border-color: color-mix(in srgb, var(--brand-surface) 38%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 20%, transparent);
    color: var(--brand-surface);
}
.w365-button--on-dark,
.notification-bell, .tour-btn-skip, .panel-confirm-buttons .cancel-btn {
    border-color: color-mix(in srgb, var(--brand-surface) 28%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 8%, transparent);
    color: var(--brand-surface);
}
.w365-button--on-dark:hover,
.notification-bell:hover, .tour-btn-skip:hover, .panel-confirm-buttons .cancel-btn:hover {
    border-color: color-mix(in srgb, var(--brand-surface) 46%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 16%, transparent);
    color: var(--brand-surface);
}
.w365-button--primary-on-dark, .beta-banner .beta-cta, .tour-btn-next, .undo-toast-btn,
.panel-undo-toast .undo-btn,
.wealth365-header--two-row .header-row--chrome .header-save-plan-btn,
.advisor-client-plan-chrome .header-save-plan-btn {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 75%, var(--brand-text));
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.w365-button--primary-on-dark:hover, .beta-banner .beta-cta:hover,
.tour-btn-next:hover, .undo-toast-btn:hover,
.panel-undo-toast .undo-btn:hover,
.wealth365-header--two-row .header-row--chrome .header-save-plan-btn:hover,
.advisor-client-plan-chrome .header-save-plan-btn:hover {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.w365-button--primary-on-dark:active, .beta-banner .beta-cta:active,
.tour-btn-next:active, .undo-toast-btn:active,
.panel-undo-toast .undo-btn:active,
.wealth365-header--two-row .header-row--chrome .header-save-plan-btn:active,
.advisor-client-plan-chrome .header-save-plan-btn:active {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.w365-button--danger-on-dark, .panel-confirm-buttons .confirm-btn {
    border-color: color-mix(in srgb, var(--brand-danger) 42%, transparent);
    background: color-mix(in srgb, var(--brand-danger) 20%, var(--brand-text));
    color: color-mix(in srgb, var(--brand-danger) 42%, var(--brand-surface));
}
.w365-button--danger-on-dark:hover, .panel-confirm-buttons .confirm-btn:hover {
    border-color: color-mix(in srgb, var(--brand-danger) 65%, transparent);
    background: color-mix(in srgb, var(--brand-danger) 32%, var(--brand-text));
    color: var(--brand-surface);
}
.legacy-multi-upload__cancel {
    min-height: var(--component-control-height-compact);
    padding: 0 var(--brand-space-2);
    border-color: currentColor;
    background: transparent;
    color: inherit;
    font-size: var(--brand-text-xs);
}
.w365-button--compact, .ppr-editor .btn--sm, .btn-hide-all, .btn-icon-small,
.tour-btn, .undo-toast-btn, .panel-undo-toast .undo-btn, .psfb-btn,
.color-preset-btn,
.plan-load-error-banner .plber-retry, .household-pending-invitations .phi-cancel-btn,
.panel-confirm-buttons button, .workspace-active-plan .wap-branch {
    min-height: var(--component-control-height-compact);
    padding-inline: var(--brand-space-3);
    font-size: var(--brand-text-xs);
}
.w365-button--large, .btn-calculate-main {
    min-height: 3.5rem;
    padding-inline: var(--brand-space-8);
    font-size: var(--brand-text-lg);
}
.legacy-multi-upload__cancel:hover:not(:disabled),
.legacy-multi-upload__cancel:focus-visible:not(:disabled) {
    background: color-mix(in srgb, var(--brand-surface) 50%, transparent);
}
.adv-btn--ghost {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 20%, var(--brand-border));
    color: var(--brand-text-subtle);
}
.btn-cancel {
    border-color: transparent;
    color: var(--brand-text-muted);
}
.btn-cancel:hover { color: var(--brand-text); }
.guided-flow-step.active {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 55%, var(--brand-border));
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.guided-flow-step.completed {
    border-color: color-mix(in srgb, var(--brand-success) 42%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-success) 10%, var(--brand-surface));
    color: var(--brand-success);
}
.density-btn.active {
    border-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.accordion-header {
    width: 100%;
    justify-content: space-between;
    text-align: left;
}
.quick-action-menu a,
.quick-action-menu button,
.nav-dropdown-content a,
.header-more-menu .header-more-item {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
    width: 100%;
    padding: var(--brand-space-2) var(--brand-space-3);
    border: 0;
    border-radius: var(--brand-radius-sm);
    background: transparent;
    color: var(--brand-text);
    font: 500 var(--brand-text-sm)/1.35 var(--brand-font-body);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.quick-action-menu a:hover,
.quick-action-menu button:hover,
.nav-dropdown-content a:hover,
.header-more-menu .header-more-item:hover {
    background: var(--component-row-hover);
    color: var(--brand-logo-blue);
}
.wealth365-logo-link { text-decoration: none; }
.client-name[data-action="openPanel"] { cursor: pointer; }
.tool-icon--clients { background: var(--brand-logo-blue); color: var(--brand-surface); }
.tool-icon--branding { background: var(--brand-warning); color: var(--brand-text); }
.tool-icon--compliance { background: var(--brand-success); color: var(--brand-surface); }
.user-menu-adviser__eyebrow {
    display: block;
    padding: 0 var(--brand-space-3);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    font-weight: 650;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.user-menu-adviser__link, .user-menu-item {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
    padding: var(--brand-space-2) var(--brand-space-3);
    border-radius: var(--brand-radius-sm);
    color: inherit;
    text-decoration: none;
    transition: background-color .16s ease;
}
.user-menu-adviser__link:hover, .user-menu-item:hover {
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, transparent);
    color: var(--brand-logo-blue);
}
.user-menu-adviser__avatar, .user-avatar {
    display: inline-flex;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
    font-size: var(--brand-text-xs);
    font-weight: 700;
}
.user-menu-adviser__copy { flex: 1; min-width: 0; }
.user-menu-adviser__name, .user-menu-name {
    display: block;
    overflow: hidden;
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.user-menu-adviser__firm { display: block; color: var(--brand-text-muted); font-size: var(--brand-text-xs); }
.user-menu-role { color: var(--brand-text-muted); font-size: var(--brand-text-xs); text-transform: uppercase; letter-spacing: .04em; }
.user-menu-divider { height: 1px; margin: 4px 0; background: var(--brand-border); }
.user-menu-item.logout { color: var(--brand-danger); }
.user-menu-item.logout:hover { background: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface)); color: var(--brand-danger); }
.user-menu-btn {
    padding: 4px 10px 4px 4px;
    border-radius: 999px;
    border-color: color-mix(in srgb, var(--brand-surface) 22%, transparent);
    background: transparent;
    color: var(--brand-surface);
}
.user-menu-btn:hover {
    border-color: color-mix(in srgb, var(--brand-surface) 38%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 10%, transparent);
}
.user-menu-arrow { color: color-mix(in srgb, var(--brand-surface) 72%, transparent); font-size: var(--brand-text-xs); }
.view-segmented-control {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-md);
    background: var(--brand-surface-muted);
}
.view-segmented-control .segment {
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
    border: 0;
    border-radius: var(--brand-radius-sm);
    padding: var(--brand-space-2) var(--brand-space-3);
    font-size: var(--brand-text-xs);
}
.user-menu-toggle { justify-content: space-between; gap: var(--brand-space-3); cursor: pointer; }
.user-menu-toggle__label { display: inline-flex; align-items: center; gap: var(--brand-space-2); }
.user-menu-toggle__title { display: block; font-weight: 650; }
.user-menu-toggle__description { display: block; color: var(--brand-text-subtle); font-size: var(--brand-text-xs); }
.simple-mode-toggle input { display: none; }
.nav-dropdown-content a .tool-icon--clients,
.nav-dropdown-content a .tool-icon--branding,
.nav-dropdown-content a .tool-icon--compliance { color: var(--brand-surface); }
.w365-button--compact, .guided-flow-bar__btn, .guided-flow-step,
.btn-sm, .table-action-btn, .header-more-btn, .header-plan-switcher, .header-save-plan-btn,
.header-icon-btn, .nav-dropdown-btn, .header-more-item, .btn-add-person,
.person-actions .btn-edit-person, .person-actions .btn-remove-person, .expense-actions button {
    min-height: var(--component-control-height-compact);
    padding-inline: var(--brand-space-3);
    font-size: var(--brand-text-xs);
}
.household-selector__heading {
    display: flex;
    align-items: center;
    gap: var(--brand-space-3);
    margin-bottom: var(--brand-space-2);
}
.household-selector__step {
    display: inline-flex;
    flex: 0 0 1.75rem;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
    font-size: var(--brand-text-sm);
    font-weight: 700;
}
.household-selector__title {
    margin: 0;
    color: var(--brand-text);
    font-size: var(--brand-text-lg);
    font-weight: 700;
}
.household-selector__help {
    margin: 0 0 var(--brand-space-4) 2.375rem;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-sm);
}
.household-tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--brand-space-4);
}
.household-tile {
    position: relative;
    box-sizing: border-box;
    padding: var(--brand-space-5);
    border: 2px solid var(--brand-border);
    border-radius: var(--brand-radius-md);
    background: var(--brand-surface);
    color: var(--brand-text);
    text-align: center;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, transform .16s ease;
}
.household-tile:hover {
    border-color: var(--brand-logo-blue);
    background: var(--brand-surface-subtle);
}
.household-tile:focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.household-tile.is-selected,
.household-tile.selected,
.household-tile.active,
.household-tile[aria-pressed="true"] {
    border-width: 3px;
    border-color: var(--brand-logo-blue);
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
}
.household-tile[data-locked="1"],
.household-tile.household-tile-locked {
    opacity: .58;
    cursor: not-allowed;
}
.household-tile__label {
    color: var(--brand-text);
    font-weight: 650;
}
.household-tile__description {
    margin-top: var(--brand-space-1);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
}
.household-tile__upgrade {
    position: absolute;
    top: var(--brand-space-2);
    right: var(--brand-space-2);
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
    padding: 3px 7px;
    border: 1px solid color-mix(in srgb, var(--brand-warning) 30%, var(--brand-border));
    border-radius: var(--brand-radius-sm);
    background: color-mix(in srgb, var(--brand-warning) 12%, var(--brand-surface));
    color: var(--brand-warning);
    font-size: 10px;
    font-weight: 700;
}
.household-option { cursor: pointer; transition: border-color .16s ease, background-color .16s ease; }
.household-option.household-option-locked { opacity: .55; cursor: not-allowed; }
.household-option__title {
    margin-bottom: 5px;
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    font-weight: 650;
}
.household-option__description {
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
}
.report-btn { padding: 14px 30px; }
.btn-save { width: 100%; margin-top: var(--brand-space-5); }
.btn-add-item {
    width: 100%;
    justify-content: flex-start;
    border-style: dashed;
    margin-top: var(--brand-space-3);
}
.btn-success {
    border-color: var(--brand-success);
    background: var(--brand-success);
    color: var(--brand-surface);
}
.plan-action-btn.save {
    border-color: var(--brand-border);
    background: var(--brand-surface);
    color: var(--brand-success);
}
.plan-action-btn.save:hover {
    background: color-mix(in srgb, var(--brand-success) 8%, var(--brand-surface));
}
.plan-icon-btn {
    border-color: transparent;
    background: transparent;
    color: var(--brand-text-muted);
}
.plan-icon-btn:hover {
    border-color: var(--brand-border);
    background: var(--component-row-hover);
    color: var(--brand-text);
}
.w365-admin-frame .tab.active {
    border-color: var(--component-selected-text);
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.plan-icon-btn.save { color: var(--brand-success); }
.plan-icon-btn.danger { color: var(--brand-danger); }
.w365-field,
.w365-select,
:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
    select, textarea, .form-control) {
    width: 100%;
    min-height: var(--component-control-height);
    padding: var(--brand-space-2) var(--brand-space-3);
    border: 1px solid var(--component-control-border);
    border-radius: var(--component-control-radius);
    background: var(--component-control-bg);
    color: var(--component-control-text);
    font: 400 var(--brand-text-sm)/1.35 var(--brand-font-body);
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent, var(--brand-logo-blue)); }
.w365-field[aria-invalid="true"],
.w365-select[aria-invalid="true"],
:is(input, select, textarea)[aria-invalid="true"] {
    border-color: var(--brand-danger);
}
.w365-field:disabled,
.w365-select:disabled,
:is(input, select, textarea):disabled {
    background: var(--brand-surface-subtle);
    color: var(--brand-text-subtle);
    cursor: not-allowed;
}
.w365-field[readonly] {
    background: var(--brand-surface-subtle);
    color: var(--brand-text-muted);
    cursor: default;
}
.w365-field--otp {
    box-sizing: border-box;
    text-align: center;
    font-size: 1.5rem;
    letter-spacing: .3em;
}
.w365-field--recovery { box-sizing: border-box; font-family: var(--brand-font-mono); }
.w365-field-shell, .ppr-editor__money-field, .logo-dropzone {
    display: flex;
    align-items: center;
    gap: var(--brand-space-3);
    box-sizing: border-box;
    width: 100%;
    padding: var(--brand-space-2);
    border: 2px solid var(--brand-border);
    border-radius: var(--component-control-radius);
    background: var(--brand-surface-subtle);
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.w365-field-shell:focus-within, .ppr-editor__money-field:focus-within {
    border-color: var(--component-focus);
    background: var(--brand-surface);
    box-shadow: none;
    outline: var(--brand-focus-outline);
    outline-offset: 2px;
}
.ppr-editor__currency {
    padding: var(--brand-space-2) var(--brand-space-3);
    border-right: 1px solid var(--brand-border);
}
.ppr-editor__currency, .subdomain-input span,
.calc-input-prefix > span, .calc-input-suffix > span {
    display: flex;
    align-items: center;
    border: 1px solid var(--component-control-border);
    background: var(--brand-surface-muted);
    color: var(--brand-text-muted);
}
.subdomain-input span, .calc-input-suffix > span {
    border-left: 0;
    border-radius: 0 var(--component-control-radius) var(--component-control-radius) 0;
}
.calc-input-prefix > span {
    border-right: 0;
    border-radius: var(--component-control-radius) 0 0 var(--component-control-radius);
}
.w365-field-shell.is-dragover {
    border-style: dashed;
    border-color: var(--brand-logo-blue);
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
}
.logo-dropzone.drag-over, .logo-dropzone.is-dragover {
    border-style: dashed;
    border-color: var(--brand-logo-blue);
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
}
.w365-field-shell.has-error {
    border-color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 5%, var(--brand-surface));
}
.legacy-file-name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-sm);
    font-style: italic;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.legacy-file-name.has-file { color: var(--brand-text); font-style: normal; }
.legacy-file-name.has-error { color: var(--brand-danger); font-style: normal; }
.w365-field--plan-a {
    border: 2px solid var(--brand-compare-a);
    background: color-mix(in srgb, var(--brand-compare-a) 8%, var(--brand-surface));
}
.w365-field--plan-b {
    border: 2px solid var(--brand-compare-b);
    background: color-mix(in srgb, var(--brand-compare-b) 8%, var(--brand-surface));
}
.w365-field--on-dark, .glossary-panel .glossary-search input {
    border-color: color-mix(in srgb, var(--brand-surface) 30%, transparent);
    background: color-mix(in srgb, var(--brand-text) 72%, transparent);
    color: var(--brand-surface);
    color-scheme: dark;
}
.w365-field--on-dark::placeholder, .glossary-panel .glossary-search input::placeholder {
    color: color-mix(in srgb, var(--brand-surface) 62%, transparent);
}
.w365-field--on-dark:focus-visible, .glossary-panel .glossary-search input:focus-visible {
    border-color: var(--brand-logo-blue);
    box-shadow: none;
}
.w365-field--success {
    border-color: var(--brand-success);
    background: color-mix(in srgb, var(--brand-success) 5%, var(--component-control-bg));
}
.w365-field--danger {
    border-color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 5%, var(--component-control-bg));
}
.w365-field--success:focus-visible {
    box-shadow: none;
}
.w365-field--danger:focus-visible {
    box-shadow: none;
}
.w365-text--success { color: color-mix(in srgb, var(--brand-success) 58%, white); }
.w365-text--danger { color: color-mix(in srgb, var(--brand-danger) 58%, white); }
.w365-text--muted { color: var(--brand-text-muted); }
.w365-admin-frame .status-success { color: var(--brand-success); }
.w365-admin-frame .status-danger { color: var(--brand-danger); }
.w365-admin-frame .status-warning { color: var(--brand-warning); }
.w365-text--warning { color: var(--brand-warning); }
.w365-field.is-modified {
    border-color: var(--brand-logo-blue);
    background: color-mix(in srgb, var(--brand-logo-blue) 5%, var(--component-control-bg));
}
.w365-field--color, .color-input-group input[type="color"] {
    width: 3rem;
    min-width: 3rem;
    height: var(--component-control-height);
    padding: .25rem;
    border: 1px solid var(--component-control-border);
    border-radius: var(--component-control-radius);
    background: var(--component-control-bg);
    cursor: pointer;
}
input.w365-checkbox {
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--brand-logo-blue);
    cursor: pointer;
    vertical-align: middle;
}
input.w365-checkbox:disabled { cursor: not-allowed; opacity: .55; }
.w365-range {
    width: 100%;
    min-height: 1.5rem;
    accent-color: var(--brand-logo-blue);
    cursor: pointer;
}
.w365-range:disabled { cursor: not-allowed; opacity: .55; }
.w365-progress-segment {
    display: block;
    height: 4px;
    border-radius: 999px;
    background: var(--brand-border);
    transition: background-color .16s ease;
}
.w365-progress-segment.is-active { background: var(--brand-logo-blue); }
/* Native progress control used by operational jobs. The element remains
   semantic; browser-specific painting is normalized to the shared brand. */
:root {
    --component-progress-track: var(--brand-gray-200);
    --component-progress-fill: var(--brand-logo-blue);
}
progress.w365-progress {
    display: block;
    width: 100%;
    height: .625rem;
    overflow: hidden;
    appearance: none;
    border: 0;
    border-radius: var(--brand-radius-pill);
    background: var(--component-progress-track);
    color: var(--component-progress-fill);
}
progress.w365-progress[hidden] { display: none; }
progress.w365-progress::-webkit-progress-bar {
    border-radius: var(--brand-radius-pill);
    background: var(--component-progress-track);
}
progress.w365-progress::-webkit-progress-value {
    border-radius: var(--brand-radius-pill);
    background: var(--component-progress-fill);
}
progress.w365-progress::-moz-progress-bar {
    border-radius: var(--brand-radius-pill);
    background: var(--component-progress-fill);
}
.admin-result--ok, .admin-result--info, .admin-result--error,
.w365-admin-frame .alert-success, .w365-admin-frame .alert-danger,
.w365-admin-frame .error-line, .w365-admin-frame .err, .w365-admin-frame .field-error,
.w365-admin-frame .is-ok {
    padding: var(--brand-space-2) var(--brand-space-3);
    border: 1px solid currentColor;
    border-radius: var(--brand-radius-md);
}
.admin-result--ok, .w365-admin-frame .alert-success, .w365-admin-frame .is-ok {
    color: var(--brand-success);
    background: color-mix(in srgb, var(--brand-success) 8%, var(--brand-surface));
}
.admin-result--info {
    color: var(--brand-warning);
    background: color-mix(in srgb, var(--brand-warning) 8%, var(--brand-surface));
}
.admin-result--error, .w365-admin-frame .alert-danger,
.w365-admin-frame .error-line, .w365-admin-frame .err,
.w365-admin-frame .field-error {
    color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface));
}
.admin-row--unclassified { background: color-mix(in srgb, var(--brand-warning) 8%, var(--brand-surface)); }
.admin-data-cap { color: var(--brand-warning); }
.w365-admin-frame .admin-detail-label {
    margin-top: var(--brand-space-4);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    font-weight: 600;
}
.w365-admin-frame :is(.evt-help, .bbf-cancel-meta, .sbf-cancel-meta) {
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    margin-top: var(--brand-space-1);
}
.w365-admin-frame :is(.evt-top-user, [data-warning="true"]) { color: var(--brand-warning); }
.admin-chart-bar { background: var(--brand-chart-1); }
.admin-chart-bar[data-severity="success"] { background: var(--brand-success); }
.admin-chart-bar[data-severity="warning"] { background: var(--brand-warning); }
.admin-chart-bar[data-severity="danger"] { background: var(--brand-danger); }
.w365-admin-frame .is-highlighted { background: var(--component-selected-bg); }
.w365-admin-frame :is(.secops-trend-bar, .bar-pop, .bar-eng, .bar-fill, .tally-row .bar) {
    background: var(--brand-chart-1);
}
.w365-admin-frame :is(.bar-wrap, .bar-bg, .tally-row .bar-wrap) {
    background: var(--brand-surface-subtle);
    border-radius: var(--brand-radius-pill);
}
.w365-admin-frame :is(.summary-pct.high, .kpi-value.ok, .kpi-value.is-positive) { color: var(--brand-success); }
.w365-admin-frame :is(.summary-pct.mid, .kpi-value.warn, .kpi-value.is-warning) { color: var(--brand-warning); }
.w365-admin-frame :is(.summary-pct.low, .kpi-value.crit, .kpi-value.is-danger) { color: var(--brand-danger); }
.w365-admin-frame :is(.muted, .empty, .label, .meta, .summary) { color: var(--brand-text-muted); }
.w365-admin-frame .chart-svg .bar-spike-outline { stroke: var(--brand-warning); }
.w365-admin-frame .chart-svg :is(.axis, .gridline) { stroke: var(--brand-border); }
.w365-admin-frame :is(.toast, #toast) {
    color: var(--brand-surface);
    background: var(--brand-text);
    border-radius: var(--brand-radius-md);
    box-shadow: var(--brand-shadow);
}
.w365-admin-frame .is-inactive { opacity: .55; }
.chart-key {
    display: inline-block;
    width: .625rem;
    height: .625rem;
    margin-right: var(--brand-space-1);
    vertical-align: middle;
    background: var(--brand-chart-1);
}
.chart-key--secondary { background: var(--brand-chart-2); }
.chart-key--muted { background: var(--brand-chart-3); }
.chart-key--warning { background: var(--brand-chart-4); }
.chart-key--danger { background: var(--brand-chart-5); }
.chart-key--critical { background: var(--brand-chart-6); }
.chart-key--info, .chart-key--primary { background: var(--brand-chart-1); }
.w365-admin-frame .chart-bar { fill: var(--brand-chart-1); }
.w365-admin-frame .chart-bar--warning { fill: var(--brand-chart-4); }
.w365-admin-frame .chart-bar--success { fill: var(--brand-chart-2); }
.w365-admin-frame .chart-axis { stroke: var(--brand-border); stroke-width: 1; }
.w365-admin-frame .chart-baseline {
    fill: none;
    stroke: var(--brand-chart-2);
    stroke-width: 2;
    stroke-dasharray: 3 3;
}
.w365-admin-frame .chart-label { fill: var(--brand-text-muted); font-size: var(--brand-text-xs); }
.w365-admin-frame .chart-label--axis { font-size: var(--brand-text-2xs); }
.w365-admin-frame .chart-point { fill: var(--brand-chart-2); }
.w365-admin-frame :is(.audit-legend-toggle, .audit-subheading) { font-size: var(--brand-text-sm); }
.w365-admin-frame button.is-selected,
.w365-admin-frame button[aria-current="page"] {
    color: var(--component-selected-text);
    background: var(--component-selected-bg);
    border-color: var(--component-selected-text);
}
/* Compatibility names still consumed by retained operational chart renderers.
   These are scoped aliases, not a second palette. */
.w365-admin-frame {
    --bg: var(--brand-page);
    --panel: var(--component-panel-bg);
    --border: var(--brand-border);
    --text: var(--brand-text);
    --muted: var(--brand-text-muted);
    --accent: var(--brand-logo-blue);
    --good: var(--brand-success);
    --bad: var(--brand-danger);
    --warn: var(--brand-warning);
    --info: var(--brand-logo-blue);
    --primary-dark: var(--brand-surface-subtle);
    --primary-blue: var(--brand-logo-blue);
    --text-light: var(--brand-text);
    --card-bg: var(--component-panel-bg);
    --border-color: var(--brand-border);
    --text-muted: var(--brand-text-muted);
    --text-primary: var(--brand-text);
    --text-secondary: var(--brand-text-muted);
    --success-green: var(--brand-success);
    --warning-yellow: var(--brand-warning);
    --error-red: var(--brand-danger);
    --info-blue: var(--brand-logo-blue);
    --critical: var(--brand-danger);
    --error: var(--brand-danger);
    --warning: var(--brand-warning);
    --ok: var(--brand-success);
}
.ff-progress-bar__track, .progress-bar-mini, .completeness-bar {
    border-radius: var(--brand-radius-sm);
    background: var(--brand-border);
}
.ff-progress-bar__fill, .progress-bar-mini .progress-fill, .progress-fill-mini {
    border-radius: var(--brand-radius-sm);
    background: var(--brand-logo-blue);
}
.ff-progress-bar__title { color: var(--brand-logo-blue); }
.ff-progress-bar__pct { color: var(--brand-logo-blue); }
.ff-progress-bar__summary { color: var(--brand-text-muted); }
.ff-progress-bar__summary .done { color: var(--brand-success); }
.ff-progress-bar__summary .todo { color: var(--brand-text-subtle); }
.toggle-slider, .simple-mode-toggle .toggle-track {
    border: 1px solid color-mix(in srgb, var(--brand-text-muted) 22%, var(--brand-border));
    border-radius: 999px;
    background: var(--brand-border);
}
.toggle-slider:before, .simple-mode-toggle .toggle-thumb {
    border-radius: 50%;
    background: var(--brand-surface);
    box-shadow: none;
    border: var(--brand-flat-border);
}
.toggle-switch input:checked + .toggle-slider,
.simple-mode-toggle.active .toggle-track,
body.simple-mode .simple-mode-toggle .toggle-track {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
}
.toggle-switch input:checked + .toggle-slider::before,
.toggle-switch input:checked + .toggle-slider:before {
    transform: translateX(calc(100% + 2px));
}
.pricing-toggle .toggle-switch input:checked + .toggle-slider::before {
    transform: translateX(24px);
}
.simple-mode-toggle.active .toggle-thumb,
body.simple-mode .simple-mode-toggle .toggle-thumb { left: 18px; }
.toggle-switch input:focus-visible + .toggle-slider {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.simple-mode-toggle .toggle-label { color: var(--brand-surface); }
.meeting-progress-dots .dot {
    border: 1px solid color-mix(in srgb, var(--brand-surface) 18%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 28%, var(--brand-text));
}
.meeting-progress-dots .dot.active {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
}
.meeting-progress-dots .dot:hover {
    background: color-mix(in srgb, var(--brand-logo-blue) 72%, var(--brand-text));
}
.w365-field--color::-webkit-color-swatch-wrapper,
.color-input-group input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.w365-field--color::-webkit-color-swatch,
.color-input-group input[type="color"]::-webkit-color-swatch {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-sm);
}
.w365-field--color::-moz-color-swatch,
.color-input-group input[type="color"]::-moz-color-swatch {
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-sm);
}
.w365-swatch {
    display: inline-block;
    box-sizing: border-box;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-sm);
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.w365-swatch:focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.w365-swatch.is-selected {
    border: 2px solid var(--brand-logo-blue);
    box-shadow: none;
    outline: var(--brand-focus-outline);
    outline-offset: 2px;
}
.w365-rating-star {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--brand-radius-sm);
    background: transparent;
    color: var(--brand-text-subtle);
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease, border-color .16s ease;
}
.w365-rating-star:hover { color: var(--brand-warning); }
.w365-rating-star:focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.w365-rating-star.is-selected, .w365-rating-star[aria-pressed="true"] {
    color: var(--brand-warning);
}
.w365-rating-star.is-selected svg, .w365-rating-star[aria-pressed="true"] svg {
    fill: color-mix(in srgb, var(--brand-warning) 24%, transparent);
}
.ib-death-derived-hint.is-warning {
    color: var(--brand-warning);
}
#results-view #results-basis {
    width: auto;
    min-height: var(--component-control-height-compact);
    padding: 0 var(--brand-space-3);
}
.w365-notice, .status-box, .settings-info, .bulk-disclaimer, .info-box,
.legacy-multi-upload, .save-refusal-banner, #save-refusal-banner,
.ppr-editor__errors, .plan-load-error-banner, .plan-switch-save-failure-banner,
.auth-a-card .alert, .auth-a-form-panel .alert, .auth-a-form-card .alert {
    display: flex;
    align-items: flex-start;
    gap: var(--brand-space-3);
    padding: var(--brand-space-3) var(--brand-space-4);
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-md);
    background: var(--brand-surface);
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    line-height: 1.45;
}
.status-box { display: block; }
.info-box, .legacy-multi-upload { display: block; }
.settings-info {
    display: block;
    border-color: color-mix(in srgb, var(--brand-warning) 35%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-warning) 10%, var(--brand-surface));
    color: var(--brand-warning);
}
.w365-notice--success, .legacy-multi-upload.legacy-multi-upload--success,
:is(.auth-a-card, .auth-a-form-panel, .auth-a-form-card) .alert.alert-success {
    border-color: color-mix(in srgb, var(--brand-success) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-success) 8%, var(--brand-surface));
    color: var(--brand-success);
}
.w365-notice--danger, .adviser-dashboard__state, .legacy-multi-upload.legacy-multi-upload--error,
.ppr-editor__errors, .plan-load-error-banner, .plan-switch-save-failure-banner,
:is(.auth-a-card, .auth-a-form-panel, .auth-a-form-card) .alert.alert-danger,
:is(.auth-a-card, .auth-a-form-panel, .auth-a-form-card) .alert.alert-error {
    border-color: color-mix(in srgb, var(--brand-danger) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface));
    color: var(--brand-danger);
}
.plan-switch-save-failure-banner {
    border-left: 4px solid var(--brand-danger);
}
.plan-switch-save-failure-banner .psfb-icon {
    border-radius: 50%;
    background: var(--brand-danger);
    color: var(--brand-surface);
}
.plan-switch-save-failure-banner .psfb-hint { color: var(--brand-text-muted); }
.plan-switch-save-failure-banner .psfb-target { color: var(--brand-text); }
.plan-switch-modal h3 { color: var(--brand-danger); }
.w365-notice--warning, .legacy-multi-upload.legacy-multi-upload--mixed, .info-box.warning,
.save-refusal-banner, #save-refusal-banner,
:is(.auth-a-card, .auth-a-form-panel, .auth-a-form-card) .alert.alert-warning {
    border-color: color-mix(in srgb, var(--brand-warning) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-warning) 8%, var(--brand-surface));
    color: var(--brand-warning);
}
.w365-notice--on-dark {
    border-color: color-mix(in srgb, var(--brand-surface) 20%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 8%, transparent);
    color: var(--brand-surface);
}
.status-box.success {
    border-left: 4px solid var(--brand-success);
    background: color-mix(in srgb, var(--brand-success) 9%, var(--brand-surface));
    color: var(--brand-success);
}
.status-box.warning {
    border-left: 4px solid var(--brand-warning);
    background: color-mix(in srgb, var(--brand-warning) 9%, var(--brand-surface));
    color: var(--brand-warning);
}
.w365-notice--info, .bulk-disclaimer, .legacy-multi-upload, .panel-guidance,
.pdb-allocation-summary,
:is(.auth-a-card, .auth-a-form-panel, .auth-a-form-card) .alert.alert-info {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 24%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 7%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.panel-guidance, .pdb-allocation-summary {
    border-left: 4px solid var(--brand-logo-blue);
}
.legacy-multi-upload__cancel:disabled { opacity: .6; cursor: default; }
.adviser-dashboard__state--neutral {
    border-color: color-mix(in srgb, var(--brand-text-muted) 30%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-text-muted) 8%, var(--brand-surface));
    color: var(--brand-text-muted);
}
.w365-record-row {
    display: flex;
    align-items: center;
    gap: var(--brand-space-3);
    margin-bottom: var(--brand-space-2);
    padding: var(--brand-space-3);
    border: 1px solid var(--component-panel-border);
    border-radius: var(--component-panel-radius);
    background: var(--component-panel-bg);
    color: var(--brand-text);
}
.w365-record-row.is-inactive { opacity: .58; }
.w365-record-row--info { border-left: 3px solid var(--brand-logo-blue); }
.w365-record-row--warning { border-left: 3px solid var(--brand-warning); }
.w365-record-row--neutral { border-left: 3px solid var(--brand-border-strong); }
.w365-record-row--success { border-left: 3px solid var(--brand-success); }
.w365-record-row__content { flex: 1; min-width: 0; }
.w365-record-row__title { color: var(--brand-text); font-size: var(--brand-text-sm); }
.w365-record-row__meta { color: var(--brand-text-muted); font-size: var(--brand-text-xs); }
.w365-record-row__description { margin-top: var(--brand-space-1); color: var(--brand-text-subtle); font-size: var(--brand-text-xs); }
.w365-data-row, .adv-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--brand-space-3);
    padding: var(--brand-space-2) 0;
    border-bottom: 1px solid var(--brand-border);
}
.w365-data-row:last-child, .adv-row:last-child { border-bottom: 0; }
.w365-data-row__primary { color: var(--brand-text); }
.w365-data-row__meta { color: var(--brand-text-muted); font-size: var(--brand-text-xs); }
.w365-data-row__emphasis { color: var(--brand-logo-blue); font-weight: 650; }
.w365-data-row__aside { text-align: right; }
.w365-stat-value--accent { color: var(--brand-logo-blue); }
.w365-panel--interactive,
.w365-panel.w365-panel--interactive,
.expense-item, .journey-event-card, .panel-toggle-card, .plan-overview-stat,
.auth-a-plan-card {
    cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.pathway-card, .feature-card, .feature-detail-card, .panoramic-item,
.security-card, .security-detail-card, .whatif-card, .feature-screenshot-card {
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.activity-item {
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.w365-panel--interactive:hover,
.w365-panel.w365-panel--interactive:hover,
.pathway-card:hover, .feature-card:hover, .feature-detail-card:hover,
.panoramic-item:hover, .security-card:hover, .security-detail-card:hover,
.whatif-card:hover, .feature-screenshot-card:hover, .expense-item:hover,
.journey-event-card:hover, .auth-a-plan-card:hover {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 42%, var(--component-panel-border));
    background: var(--component-row-hover);
    transform: translateY(-2px);
    box-shadow: var(--component-panel-shadow);
}
.activity-item:hover {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 42%, var(--component-panel-border));
    background: var(--component-row-hover);
    box-shadow: var(--component-panel-shadow);
}
.w365-panel--interactive:focus-visible,
.w365-panel.w365-panel--interactive:focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.w365-panel--warning, .disclaimer-card, .plan-health-card.health-amber {
    border-color: color-mix(in srgb, var(--brand-warning) 34%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-warning) 6%, var(--brand-surface));
}
.w365-panel--success, .plan-health-card.health-green, .sim-result-item.highlight,
.sim-result-full.highlight {
    border-color: color-mix(in srgb, var(--brand-success) 32%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-success) 7%, var(--brand-surface));
}
.auth-a-plan-card.featured {
    border-color: var(--brand-logo-blue);
}
.auth-a-plan-card.selected, .auth-a-plan-card.is-selected,
.auth-a-plan-card[aria-selected="true"], .auth-a-plan-card[aria-checked="true"] {
    border-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
    box-shadow: none;
}
.w365-panel--danger, .plan-health-card.health-red, .sim-result-item.error,
.sim-result-full.error {
    border-color: color-mix(in srgb, var(--brand-danger) 32%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-danger) 6%, var(--brand-surface));
}
.health-green .plan-health-indicator {
    background: var(--brand-success);
    color: var(--brand-surface);
}
.health-amber .plan-health-indicator {
    background: var(--brand-warning);
    color: var(--brand-surface);
}
.health-red .plan-health-indicator {
    background: var(--brand-danger);
    color: var(--brand-surface);
}
.health-green .plan-health-title, .health-green .plan-health-score,
.health-green .plan-health-explanation { color: var(--brand-success); }
.health-amber .plan-health-title, .health-amber .plan-health-score,
.health-amber .plan-health-explanation { color: var(--brand-warning); }
.health-red .plan-health-title, .health-red .plan-health-score,
.health-red .plan-health-explanation { color: var(--brand-danger); }
.plan-health-metric-label { color: var(--brand-text-subtle); }
.plan-health-metric-value { color: var(--brand-text); }
.w365-panel--inverse, .panel-confirm-content, .panel-undo-toast, .notification-panel,
.tour-tooltip, .glossary-panel,
.meeting-slide-content .meeting-chart-container,
.meeting-slide-content .meeting-summary-card {
    border-color: var(--brand-text);
    background: var(--brand-text);
    color: var(--brand-surface);
}
.w365-panel--inverse-subtle {
    border-color: transparent;
    background: color-mix(in srgb, var(--brand-surface) 10%, transparent);
    color: var(--brand-surface);
}
.w365-panel--on-dark, .panel-toggle-card, .notification-item, .fg-card,
.plan-overview-stat, .meeting-summary-card .summary-metric {
    border-color: color-mix(in srgb, var(--brand-surface) 18%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 7%, transparent);
    color: var(--brand-surface);
}
.panel-toggle-card.always-on {
    border-color: color-mix(in srgb, var(--brand-success) 34%, transparent);
    background: color-mix(in srgb, var(--brand-success) 12%, var(--brand-text));
}
.w365-panel--on-dark:hover, .panel-toggle-card:not(.always-on):not(.disabled):hover,
.notification-item:hover, .plan-overview-stat:hover {
    border-color: color-mix(in srgb, var(--brand-surface) 22%, transparent);
    background: color-mix(in srgb, var(--brand-surface) 12%, transparent);
}
.panel-toggle-card.disabled {
    opacity: .5;
    cursor: not-allowed;
}
.w365-panel--comparison-a {
    border-color: transparent;
    background: var(--brand-compare-a-surface);
}
.w365-panel--comparison-b {
    border-color: transparent;
    background: var(--brand-compare-b-surface);
}
.notification-item {
    border-left: 3px solid var(--brand-chart-4);
    transition: background-color .16s ease, border-color .16s ease;
}
.notification-item.unread { border-left-color: var(--brand-logo-blue); }
.notification-panel-header {
    border-bottom: 1px solid color-mix(in srgb, var(--brand-surface) 14%, transparent);
}
.notification-panel-header h3, .notification-item-title,
.glossary-term, .fg-card-name { color: var(--brand-surface); }
.notification-item-body, .notification-item-time, .notification-empty,
.glossary-definition, .glossary-empty, .plan-overview-stat-label,
.plan-overview-stat-sub, .meeting-summary-card .summary-metric .metric-label {
    color: color-mix(in srgb, var(--brand-surface) 64%, transparent);
}
.tour-tooltip h4 { color: var(--brand-logo-blue); }
.tour-tooltip p { color: color-mix(in srgb, var(--brand-surface) 78%, transparent); }
.workspace-active-plan[data-shared="true"] .wap-name,
.workspace-active-plan[data-shared="true"] .wap-shared {
    color: var(--brand-warning);
}
.workspace-active-plan .wap-prefix,
.workspace-active-plan .wap-edited,
.workspace-active-plan .wap-shared { color: var(--brand-text-muted); }
.glossary-panel__header {
    border-bottom: 1px solid color-mix(in srgb, var(--brand-surface) 14%, transparent);
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.glossary-search { border-bottom: 1px solid color-mix(in srgb, var(--brand-surface) 14%, transparent); }
.glossary-item {
    border-bottom: 1px solid color-mix(in srgb, var(--brand-surface) 8%, transparent);
    transition: background-color .16s ease;
}
.glossary-item:hover { background: color-mix(in srgb, var(--brand-surface) 6%, transparent); }
.w365-panel--comparison-delta {
    border-color: transparent;
    background: var(--brand-compare-gap-surface);
}
.w365-panel--drop-target {
    border-style: dashed;
    border-color: color-mix(in srgb, var(--brand-logo-blue) 62%, var(--component-panel-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--component-panel-bg));
}
.meeting-slide-checklist li.drag-over {
    border-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
}
.meeting-slide-checklist li input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--brand-logo-blue);
}
.meeting-slide-checklist li {
    transition: border-color .16s ease, background-color .16s ease;
}
.w365-panel--muted, .compare-summary {
    border-color: var(--brand-border);
    background: var(--brand-surface-muted);
}
.w365-modal-overlay {
    position: fixed;
    z-index: 2000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--brand-space-4);
    background: color-mix(in srgb, var(--brand-text) 62%, transparent);
}
.w365-backdrop, .adv-sidebar-overlay {
    background: color-mix(in srgb, var(--brand-text) 55%, transparent);
}
.w365-admin-frame :is(.modal-overlay, .modal-backdrop, .detail-modal) {
    background: var(--brand-admin-backdrop);
}
.w365-modal-panel {
    border: 1px solid var(--component-panel-border);
    border-radius: var(--brand-radius-lg);
    background: var(--component-panel-bg);
    color: var(--brand-text);
    box-shadow: none;
}
.w365-modal-header { border-bottom: 1px solid var(--brand-border); }
.pricing-card.featured, .advisor-pricing-card.featured {
    border-color: var(--brand-logo-blue);
}
.w365-panel--empty,
.w365-panel.w365-panel--empty {
    border: 1px dashed color-mix(in srgb, var(--brand-logo-blue) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 3%, var(--brand-surface));
    box-shadow: none;
}
.w365-choice, .wiz-preset-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-2);
    min-height: 2.25rem;
    padding: var(--brand-space-2) var(--brand-space-3);
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius-md);
    background: var(--brand-surface);
    color: var(--brand-text-muted);
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.wiz-preset-btn { font-size: var(--brand-text-xs); }
.w365-choice:has(input:checked), .wiz-preset-btn.is-selected,
.wiz-preset-btn.selected, .wiz-preset-btn[aria-selected="true"],
.wiz-preset-btn[aria-pressed="true"] {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 48%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.w365-choice:hover, .wiz-preset-btn:hover {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 46%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 6%, var(--brand-surface));
}
.w365-choice:has(input:checked):hover, .wiz-preset-btn.is-selected:hover,
.wiz-preset-btn.selected:hover, .wiz-preset-btn[aria-selected="true"]:hover,
.wiz-preset-btn[aria-pressed="true"]:hover {
    border-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.w365-choice:focus-within, .wiz-preset-btn:focus-visible {
    outline: 2px solid var(--brand-logo-blue);
    outline-offset: 2px;
}
.w365-choice:has(input:disabled),
.w365-choice.is-disabled {
    color: var(--brand-text-subtle);
    cursor: not-allowed;
}
.w365-choice input { margin: 0; accent-color: var(--brand-logo-blue); }
.contact-form :is(input, select, textarea):focus-visible {
    outline: 2px solid var(--component-focus);
    outline-offset: 2px;
}
.w365-empty-state, .myday-empty, .at-risk-empty, .adv-widget__empty,
.w365-admin-frame .empty-message, .w365-admin-frame .empty {
    padding: var(--brand-space-4);
    color: var(--brand-text-subtle);
    font-size: var(--brand-text-sm);
    text-align: center;
}
.w365-schedule-panel { margin-bottom: var(--brand-space-3); padding: var(--brand-space-4); }
.w365-schedule-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--brand-space-3);
    margin-bottom: var(--brand-space-3);
}
.w365-schedule-panel__dates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--brand-space-3);
    margin-bottom: var(--brand-space-4);
}
.w365-schedule-panel__fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--brand-space-3);
}
.w365-schedule-panel__actions {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
    margin-top: var(--brand-space-3);
}
.w365-schedule-panel__actions .push-right { margin-left: auto; }
.w365-schedule-panel h4 { margin: 0; color: var(--brand-logo-blue); }
.w365-schedule-panel__label { color: var(--brand-text-muted); font-size: var(--brand-text-xs); }
.w365-schedule-panel__value { color: var(--brand-text); font-size: var(--brand-text-sm); }
.w365-field--compact {
    min-height: var(--component-control-height-compact);
    padding: 0 var(--brand-space-2);
    font-size: var(--brand-text-xs);
}
.w365-action-pill { cursor: pointer; }
.w365-button--warning {
    border-color: color-mix(in srgb, var(--brand-warning) 34%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-warning) 12%, var(--brand-surface));
    color: var(--brand-warning);
}
.w365-review-grid {
    display: grid;
    grid-template-columns: minmax(12rem, 220px) minmax(0, 1fr);
}
.w365-review-grid__label, .w365-review-grid__value {
    padding: var(--brand-space-2) var(--brand-space-3);
    border-bottom: 1px solid color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-transparent));
}
.w365-review-grid__label { color: var(--brand-text-subtle); font-size: var(--brand-text-xs); font-weight: 550; }
.w365-review-grid__value { color: var(--brand-text); font-size: var(--brand-text-sm); }
.w365-review-grid__pre {
    margin: 0;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    white-space: pre-wrap;
    word-break: break-word;
}
:is(.w365-panel, .form-section, .results-section, .result-card, .loading, .tab-content, .accordion-item,
    .results-page__basis, .results-page__headline-section, .results-headline,
    .results-page__analysis, .results-page__timeline, .results-page__details,
    .results-page__tooltip, .results-page__chart, .chart-container, .table-container,
    .breakdown-section, .breakdown-item,
    .simulation-dialog, .simulation-modal-content, .simulation-results-panel,
    .insight-card.summary,
    .timeline-table-section,
    .data-panel, .panel-form, .panel-card, .side-panel, .overview-card, .activity-feed,
    .summary-card, .dashboard-section, .dashboard-chart-area, .dashboard-year-bar, .kpi-card,
    .asset-widget, .goals-widget, .side-card, .ff-card, .ff-section-card,
    .setup-panel, .setup-section, .setup-card, .simulation-card,
    .simulation-panel, .income-card, .expense-card, .expense-summary, .expense-item, .holding-card,
    .plan-switch-modal, .sim-result-item, .sim-result-full, .plan-health-card, .plan-health-metric,
    .panel-toggle-card, .panel-undo-toast, .notification-panel, .notification-item, .tour-tooltip,
    .glossary-panel, .meeting-slide-content .meeting-chart-container,
    .meeting-slide-content .meeting-summary-card, .meeting-summary-card .summary-metric,
    .fg-card, .plan-overview-stat, .journey-event-card, .what-changed-panel,
    .household-pending-invitations .phi-list, .ppr-editor__wrapper, .panel-confirm-content,
    .compare-summary, .ff-progress-bar,
     .auth-a-card, .auth-a-form-card, .auth-a-form-panel, .auth-a-two-col-wrapper,
     .auth-a-plan-card, .preview-frame, .powered-toggle, .branding-section,
     .branding-completeness, .calc-result-card, .calc-result-primary,
     .beta-nav-wrapper .nav-dropdown-menu, .beta-nav-wrapper .mobile-menu,
    .family-card, .plan-overview, .ff-panel-view__sidebar, .info-box,
    .pipeline-client, .child-entry, .milestone-entry, .conditional-section,
    .pdb-row, .drawer-toggle-item,
    .modal, .modal-content, .client-card, .stat-card, .user-menu-dropdown,
    .bulk-result-panel, .bulk-result-stat, .adv-kpi-card, .adv-widget,
    .myday-panel, .myday-item, .at-risk-group, .pipeline-col, .task-item,
    .quick-action-menu, .saved-view-dropdown, .mobile-more-menu, .header-more-menu,
    .nav-dropdown-content,
    .modal-dialog, .person-list-item, .scenario-card, .scenario-metric,
    .whatif-comparison-chart, .report-card, .report-preview, .order-list,
    .order-item, .insight-card, .acd-card, .acd-evidence-card, .activity-item,
    .w365-panel--interactive, .w365-panel--empty, .pathway-card, .feature-card,
    .feature-detail-card, .feature-large-card, .enterprise-card, .pricing-card,
    .advisor-pricing-card, .persona-card, .uk-feature, .contact-card, .value-item,
    .disclaimer-card, .path-legend-box, .panoramic-item, .whatif-card,
    .security-card, .security-detail-card, .feature-screenshot-card, .contact-form,
    .app-preview, .app-metric-card, .app-chart-panel, .app-table-panel,
    .facts-group-index__item, .facts-retirement-status, .ff-household-summary,
     .plan-type-option, .panel-check, .panel-check-card, .household-option,
     .meeting-slide-checklist li, .drilldown-stat,
     .w365-admin-frame .card, .w365-admin-frame .panel, .w365-admin-frame .section,
     .w365-admin-frame .tile, .w365-admin-frame .wrap-card,
     .w365-admin-frame .secops-card, .w365-admin-frame .filters,
     .w365-admin-frame .filter-panel, .w365-admin-frame .detail-content,
     .w365-admin-frame .summary-item,
     .w365-admin-frame .release, .w365-admin-frame .entry,
     .w365-admin-frame .denied-cat, .w365-admin-frame .preview-block,
     .w365-admin-frame .stage, .w365-admin-frame .kpi-item,
     .w365-admin-frame .alert-status, .w365-admin-frame .threshold-panel,
     .w365-admin-frame .silent-drift, .w365-admin-frame .drift-recent,
     .w365-admin-frame .vol-chart, .w365-admin-frame .noisy-groups,
     .w365-admin-frame .active-mutes, .w365-admin-frame .email-health,
     .w365-admin-frame .ack-history, .w365-admin-frame .mute-history,
     .w365-admin-frame .legacy-panel, .w365-admin-frame .checkout-retry,
     .w365-admin-frame .stripe-wiring) {
    border: 1px solid var(--component-panel-border);
    border-radius: var(--component-panel-radius);
    background: var(--component-panel-bg);
    color: var(--brand-text);
    box-shadow: var(--component-panel-shadow);
}
.result-card.primary, .calc-result-primary { border-top: 3px solid var(--brand-logo-blue); }
.result-card.secondary { border-top: 3px solid var(--brand-success); }
.result-card.tertiary { border-top: 3px solid var(--brand-warning); }
:is(.dashboard-section-header, .data-table-header, .data-panel-header,
    .panel-header, .modal-header, .acd-client-header, .user-menu-header, .adv-widget__header,
    .w365-admin-frame .admin-header, .w365-admin-frame .dashboard-header,
    .what-changed-header) {
    border-bottom: 1px solid var(--brand-border);
    border-color: var(--brand-border);
    background: var(--brand-surface);
    color: var(--brand-text);
    box-shadow: none;
}
.panel-sticky-save, .data-panel-footer, .adv-widget__footer {
    border-top: 1px solid var(--brand-border);
    background: var(--brand-surface-muted);
    box-shadow: none;
}
.cookie-banner {
    position: fixed;
    z-index: 9998;
    right: 0;
    bottom: 0;
    left: 0;
    padding: var(--brand-space-4) var(--brand-space-6);
    transform: translateY(100%);
    transition: transform .4s ease;
}
.cookie-banner.visible { transform: translateY(0); }
.cookie-banner-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--brand-space-5);
    max-width: 75rem;
    margin: 0 auto;
    flex-wrap: wrap;
}
.cookie-banner-text {
    flex: 1;
    min-width: 15rem;
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    line-height: var(--brand-body-line-height);
}
.cookie-banner-actions { display: flex; flex-shrink: 0; flex-wrap: wrap; gap: var(--brand-space-3); }
@media (max-width: 600px) {
    .cookie-banner { padding: var(--brand-space-3); }
    .cookie-banner-inner { flex-direction: column; text-align: center; }
    .cookie-banner-actions { width: 100%; justify-content: center; }
}
:is(.w365-panel, .side-card, .client-card, .overview-card, .kpi-card, .ff-card,
    .form-section, .results-section, .dashboard-section, .data-panel,
    .pipeline-col, .task-item, .bulk-result-panel, .bulk-result-stat,
    .report-card, .order-item):hover {
    border-color: var(--brand-border);
    background: var(--component-row-hover);
    box-shadow: none;
}
.w365-panel.mobile-bottom-nav {
    border: 0;
    border-top: 1px solid var(--brand-border);
    border-radius: 0;
    background: var(--component-panel-bg);
    box-shadow: none;
}
.w365-table--compact, .mini-table {
    --component-table-cell-padding: var(--brand-space-2) var(--brand-space-4);
    --component-table-text-size: var(--brand-text-xs);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table, .comparison-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table, .w365-admin-frame .thresholds,
    .w365-admin-frame .t) {
    width: 100%;
    border-collapse: collapse;
    color: var(--brand-text);
    font-size: var(--component-table-text-size, var(--brand-text-sm));
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table, .comparison-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) th {
    padding: var(--component-table-cell-padding, var(--brand-space-3) var(--brand-space-4));
    border-bottom: 1px solid var(--brand-border);
    background: var(--brand-surface-muted);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    font-weight: 700;
    text-align: left;
    white-space: nowrap;
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table, .comparison-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) td {
    padding: var(--component-table-cell-padding, var(--brand-space-3) var(--brand-space-4));
    border-bottom: 1px solid var(--brand-border);
    vertical-align: middle;
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .comparison-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) tbody tr:hover {
    background: var(--component-row-hover);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) tbody tr:active {
    background: var(--component-selected-bg);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) tbody tr.category-row {
    background: var(--brand-surface-subtle);
    color: var(--brand-text);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) tbody tr.total-row {
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) tbody tr.total-row td {
    border-top: 2px solid var(--brand-border);
    font-weight: 600;
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table, .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) .comparison-row td {
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
}
:is(.w365-table, .data-table, .dashboard-data-table, .wealth365-data-table, .goals-table,
    .events-table, .drilldown-table, .ppr-editor__table, .compact-table, .mini-table,
    .timeline-table, .plans-table, .bulk-result-table, #timeline-table,
    #results-view table, .w365-admin-frame table) .empty-row td {
    color: var(--brand-text-subtle);
    font-style: italic;
    text-align: center;
}
.w365-drilldown-row {
    cursor: pointer;
    transition: background-color .14s ease;
}
.w365-drilldown-row:hover { background: var(--component-row-hover); }
.w365-drilldown-row.total-row {
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
    font-weight: 700;
}
.table-container, .table-scroll-container, .w365-table-wrap {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}
:is(.w365-pill, :where(.w365-admin-frame .pill,
    .w365-admin-frame span.status-success, .w365-admin-frame span.status-warning,
    .w365-admin-frame span.status-danger),
    .status-badge, .status-pill, .badge, .tag-pill, .tag-green, .tag-blue, .plan-status-pill,
    .sev, .evt, .pill-muted, .pill-self-clearing, .pill-dev-only, .pill-third-party-widget,
    .pill-completed, .pill-failed, .pill-stale, .pill-never_run, .pill-disabled,
    .pill-ok, .pill-warn, .pill-error, .pill-bad, .pill-info,
    .pill-on, .pill-off, .ack-state, .unack-badge,
    .plan-type-badge-slim,
    .summary-chip, .pipeline-col h4 .count,
    .user-role-badge, .stage-badge, .adv-stage-chip, .ff-status-chip, .pc-source-badge,
    .task-priority, .hero-badge, .feature-category, .featured-badge, .beta-tag,
    .adv-role-pill, .adv-widget__badge, .adv-row__chip,
    .facts-group-index__status, .facts-group__status, .path-badge,
    .myday-due-label, .myday-count, .stat-trend, .nav-badge,
    .base-value, .delta-badge, .workspace-active-plan,
    .workspace-active-plan .wap-badge, .workspace-active-plan .wap-role,
    .panel-toggle-card .panel-badge, .household-pending-invitations .phi-status,
    .notification-badge, .save-badge, .completeness-item, .contrast-warn,
    .auth-a-trust-pill, .auth-a-adviser-badge, .auth-a-selected-plan-badge) {
    display: inline-flex;
    align-items: center;
    gap: var(--brand-space-1);
    min-height: 1.5rem;
    padding: 0 var(--brand-space-2);
    border: 1px solid var(--brand-border);
    border-radius: 999px;
    background: var(--brand-surface-subtle);
    color: var(--brand-text-muted);
    font-size: var(--brand-text-xs);
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}
.w365-pill[data-action] { cursor: pointer; }
.priority-high, .priority-medium, .priority-low {
    border: 1px solid var(--brand-border);
    border-radius: 999px;
    background: var(--brand-surface-subtle);
    color: var(--brand-text-muted);
}
.w365-pill--info, .tag-blue, .badge-advisor, .workspace-active-plan,
.w365-admin-frame :is(.w365-pill--info, .pill-info, .pill-blue, .pill--running),
.sev-info, .pill-info, .status-admin, .severity-badge.info, .status-badge.new,
.evt-unhandled_client,
.auth-a-trust-pill, .auth-a-selected-plan-badge {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 25%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.stat-trend.neutral, .stage-dormant, .stage-churned, .myday-due-label.upcoming,
.completeness-item.missing {
    border-color: var(--brand-border);
    background: var(--brand-surface-subtle);
    color: var(--brand-text-subtle);
}
.adv-stage-chip--prospect, .stage-prospect, .pc-source-dir {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 24%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.adv-stage-chip--dormant, .badge-user, .pc-source-manual, .pc-source-onboarding {
    border-color: var(--brand-border);
    background: var(--brand-surface-subtle);
    color: var(--brand-text-muted);
}
.w365-pill--success, .tag-green, .adv-role-pill--senior, .panel-toggle-card .panel-badge,
.w365-admin-frame :is(.w365-pill--success, .pill-ok, .pill-on, .pill-completed,
    .pill-self-clearing, .pill-success, .pill-green, .pill--ok, .pill.ok, .pill.good, .pill.sent,
    span.status-success, .status-pill.status-success),
.pill-completed, .pill-ok, .pill-on, .pill-self-clearing, .pill-success, .sev-ok,
.evt-self_clearing,
.save-badge, .completeness-item.done,
.plan-status-pill.saved, .stat-trend.up, .adv-stage-chip--onboarding, .adv-stage-chip--active,
.ff-status-chip--complete, .stage-active, .myday-due-label.now, .status-approved,
.status-badge.resolved, .unack-badge.is-zero {
    border-color: color-mix(in srgb, var(--brand-success) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-success) 10%, var(--brand-surface));
    color: var(--brand-success);
}
.w365-pill--owner, .adv-role-pill--owner, .adv-role-pill--advisor, .adv-widget__badge--info {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 34%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 13%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.w365-pill--senior {
    border-color: color-mix(in srgb, var(--brand-indigo-strong) 34%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-indigo-strong) 12%, var(--brand-surface));
    color: var(--brand-indigo-strong);
}
.w365-pill--path-input, .path-input {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 30%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 12%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.w365-pill--path-output, .path-output {
    border-color: color-mix(in srgb, var(--brand-indigo-strong) 30%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-indigo-strong) 10%, var(--brand-surface));
    color: var(--brand-indigo-strong);
}
.w365-pill--path-report, .path-report {
    border-color: var(--brand-border);
    background: var(--brand-surface-muted);
    color: var(--brand-text-muted);
}
.w365-pill--path-tool, .path-tool {
    border-color: color-mix(in srgb, var(--brand-pink) 25%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-pink) 10%, var(--brand-surface));
    color: var(--brand-pink-soft);
}
.summary-chip { font-weight: 600; }
.w365-pill--warning, .adv-role-pill--para, .adv-widget__badge--warning,
.w365-admin-frame :is(.w365-pill--warning, .pill-warn, .pill-stale,
    .pill-third-party-widget, .pill-yellow, .pill--drift, .pill.warn, .pill.skipped,
    span.status-warning, .status-pill.status-warning),
.pill-stale, .pill-warn, .pill-third-party-widget, .sev-warning, .status-pending,
.status-badge.investigating, .severity-badge.warning,
.evt-conflict, .evt-save_value_drift, .evt-dead_action,
.adv-row__chip--soon, .adv-row__chip--inactive, .plan-status-pill.saving,
.nav-badge.warn, .adv-stage-chip--review_due, .stage-onboarding, .myday-due-label.today,
.summary-chip.warn, .priority-medium, .household-pending-invitations .phi-status,
.workspace-active-plan[data-shared="true"] {
    border-color: color-mix(in srgb, var(--brand-warning) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-warning) 10%, var(--brand-surface));
    color: var(--brand-warning);
}
.w365-pill--danger, .adv-widget__badge--danger, .adv-row__chip--overdue, .adv-row__chip--missing,
.w365-admin-frame :is(.w365-pill--danger, .pill-error, .pill-failed, .pill-bad,
    .pill-red, .pill--error, .pill.bad, .pill.failed,
    span.status-danger, .status-pill.status-danger),
.pill-failed, .pill-error, .pill-bad, .sev-critical, .sev-error, .severity-badge.critical,
.severity-badge.error, .evt-save_failure, .evt-ledger_invariant_fail,
.evt-panel_round_trip_drift, .evt-plan_state_shape_mismatch,
.plan-status-pill.error, .stat-trend.down, .nav-badge:not(.warn), .adv-stage-chip--churned,
.badge-admin, .ff-status-chip--not-started, .stage-review_due, .myday-due-label.overdue,
.summary-chip.alert, .priority-high, .contrast-warn {
    border-color: color-mix(in srgb, var(--brand-danger) 28%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-danger) 10%, var(--brand-surface));
    color: var(--brand-danger);
}
.w365-admin-frame :is(.snooze-menu, .vol-tip, #sparkTip, #ackRowHistoryPopover) {
    color: var(--brand-text);
    background: var(--component-panel-bg);
    border: var(--brand-flat-border);
    border-radius: var(--component-panel-radius);
    box-shadow: var(--component-panel-shadow);
}
.w365-admin-frame .snooze-menu .snooze-clear,
.w365-admin-frame .snooze-expiry-banner__error {
    color: var(--brand-danger);
}
.w365-admin-frame .legacy-banner,
.w365-admin-frame .bbf-fail-banner {
    color: var(--brand-danger);
    background: color-mix(in srgb, var(--brand-danger) 7%, var(--brand-surface));
    border: 1px solid color-mix(in srgb, var(--brand-danger) 36%, var(--brand-border));
}
.w365-admin-frame .snooze-expiry-banner {
    color: var(--brand-warning);
    background: color-mix(in srgb, var(--brand-warning) 7%, var(--brand-surface));
    border: 1px solid color-mix(in srgb, var(--brand-warning) 36%, var(--brand-border));
}
.w365-admin-frame .vol-chart .vol-area-info { fill: var(--brand-chart-1); }
.w365-admin-frame .vol-chart .vol-area-warning { fill: var(--brand-warning); }
.w365-admin-frame .vol-chart .vol-area-error,
.w365-admin-frame .vol-chart .vol-area-critical { fill: var(--brand-danger); }
.w365-admin-frame .spark-cell .spark-line,
.w365-admin-frame .group-spark .gs-line,
.w365-admin-frame .spark-cell .spark-baseline { stroke: var(--brand-chart-1); }
.w365-admin-frame .spark-cell .spark-threshold { stroke: var(--brand-warning); }
.w365-admin-frame .spark-cell .spark-area,
.w365-admin-frame .spark-cell .spark-window { fill: color-mix(in srgb, var(--brand-chart-1) 18%, transparent); }
.w365-admin-frame .spark-cell .spark-hit:focus-visible,
.w365-admin-frame .spark-cell .spark-hit.is-active { stroke: var(--component-focus); }
.w365-admin-frame table.thresholds tr.firing {
    background: color-mix(in srgb, var(--brand-danger) 8%, var(--brand-surface));
}
.w365-admin-frame table.thresholds tr.cooldown {
    background: color-mix(in srgb, var(--brand-warning) 7%, var(--brand-surface));
}
.w365-admin-frame .vol-chart .vol-area-info,
.w365-admin-frame .vol-chart .vol-area-warning,
.w365-admin-frame .vol-chart .vol-area-error,
.w365-admin-frame .vol-chart .vol-area-critical { opacity: .75; }
.notification-badge {
    min-height: 0;
    padding: 0;
    border-color: var(--brand-danger);
    border-radius: 999px;
    background: var(--brand-danger);
    color: var(--brand-surface);
}
.panel-toggle-card .panel-badge, .household-pending-invitations .phi-status,
.workspace-active-plan .wap-badge, .workspace-active-plan .wap-role {
    min-height: 0;
    padding: 2px 6px;
}
.panel-toggle-card .panel-badge { border-radius: var(--brand-radius-sm); }
.adv-role-pill, .adv-widget__badge, .adv-row__chip {
    font-size: var(--brand-text-xs);
    min-height: 1.5rem;
    padding: 0 var(--brand-space-2);
}
.adv-row__chip--zero {
    border-color: color-mix(in srgb, var(--brand-text-subtle) 30%, var(--brand-border));
    background: color-mix(in srgb, var(--brand-text-subtle) 12%, var(--brand-surface));
    color: var(--brand-text-muted);
}
.w365-pill--inverse, .beta-tag, .auth-a-adviser-badge {
    border-color: color-mix(in srgb, var(--brand-surface) 18%, transparent);
    background: color-mix(in srgb, var(--brand-black) 30%, transparent);
    color: var(--brand-surface);
}
.beta-tag {
    text-transform: uppercase;
    letter-spacing: .09em;
}
.auth-a-selected-plan-badge {
    display: flex;
    min-height: 0;
    padding: var(--brand-space-2) var(--brand-space-3);
}
.contrast-warn {
    display: none;
    font-size: var(--brand-text-xs);
    white-space: nowrap;
}
.w365-button--large, .btn-large {
    min-height: 3.25rem;
    padding: var(--brand-space-4) var(--brand-space-8);
    font-size: var(--brand-text-md);
}
:is(.w365-tabs, .tabs, .chart-tabs, .dashboard-category-tabs, .acd-tabs, .header-center,
    .w365-admin-frame .tabs-container,
    .view-segmented-control, .results-page__tabs, .preview-tabs, .screenshot-tabs) {
    display: flex;
    align-items: center;
    gap: var(--brand-space-1);
    overflow-x: auto;
    border-bottom: 1px solid var(--brand-border);
}
:is(.w365-tab, .faq-cat-btn, .acd-tab, .tab-btn, .chart-tab-btn, .tab-button, .view-btn, .app-nav-bar span,
    .w365-admin-frame .tab,
    .view-segmented-control .segment, .results-page__tabs [role="tab"], .expense-tab,
    .preview-tabs button, .screenshot-tab) {
    flex: 0 0 auto;
    min-height: 2.75rem;
    padding: var(--brand-space-2) var(--brand-space-4);
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--brand-text-muted);
    font: 600 var(--brand-text-sm)/1.3 var(--brand-font-body);
    cursor: pointer;
}
:is(.w365-tab, .acd-tab, .tab-btn, .chart-tab-btn, .tab-button, .view-btn, .app-nav-bar span,
    .view-segmented-control .segment, .results-page__tabs [role="tab"], .expense-tab,
    .preview-tabs button, .screenshot-tab):hover {
    color: var(--brand-text);
}
:is(.w365-tab, .faq-cat-btn, .acd-tab, .tab-btn, .chart-tab-btn, .tab-button, .category-tab, .app-nav-bar span,
    .view-btn, .view-segmented-control .segment,
    .results-page__tabs [role="tab"], .expense-tab, .preview-tabs button,
    .screenshot-tab).active,
:is(.w365-tab, .faq-cat-btn, .acd-tab, .tab-btn, .chart-tab-btn, .tab-button, .category-tab, .app-nav-bar span,
    .view-btn, .view-segmented-control .segment,
    .results-page__tabs [role="tab"], .expense-tab, .preview-tabs button,
    .screenshot-tab)[aria-selected="true"],
 .accordion-header.active,
 .accordion-header[aria-expanded="true"],
.w365-tab.is-selected,
.w365-tab[aria-pressed="true"] {
    border-bottom-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.w365-tabs--on-dark { border-bottom-color: color-mix(in srgb, var(--brand-surface) 22%, transparent); }
.w365-tab--on-dark { color: color-mix(in srgb, var(--brand-surface) 68%, transparent); }
.w365-tab--on-dark:hover {
    background: color-mix(in srgb, var(--brand-surface) 8%, transparent);
    color: var(--brand-surface);
}
.w365-tab.w365-tab--on-dark.active,
.w365-tab.w365-tab--on-dark[aria-selected="true"] {
    border-bottom-color: var(--brand-logo-blue);
    background: transparent;
    color: var(--brand-surface);
}
.w365-disclosure-summary {
    display: block;
    padding: var(--brand-space-3) var(--brand-space-4);
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    font-weight: 650;
    cursor: pointer;
}
.w365-tab.is-unavailable,
.w365-tab[aria-disabled="true"] {
    opacity: .45;
    cursor: not-allowed;
}
.report-section-item {
    display: flex;
    align-items: center;
    gap: var(--brand-space-3);
    padding: var(--brand-space-3) var(--brand-space-4);
    border-bottom: 1px solid var(--brand-border);
    color: var(--brand-text);
    cursor: grab;
    transition: background-color .14s ease, opacity .14s ease;
}
.report-section-item:last-child { border-bottom: 0; }
.report-section-item:hover { background: var(--component-row-hover); }
.report-section-handle { display: inline-flex; color: var(--brand-text-subtle); cursor: grab; }
.report-section-label { flex: 1; cursor: pointer; font-size: var(--brand-text-sm); }
.report-option-label {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
    cursor: pointer;
}
.report-period-options__content { border-top: 1px solid var(--brand-border); }
.w365-section-divider { border-top: 1px solid var(--brand-border); }
.w365-text-muted, .person-type, .person-age, .expense-meta {
    color: var(--brand-text-muted);
}
.person-icon { color: var(--brand-text-subtle); }
.w365-text-subtle { color: var(--brand-text-subtle); }
.w365-link { color: var(--brand-logo-blue); text-decoration: none; }
.w365-link:hover { color: var(--brand-logo-blue); text-decoration: underline; }
:is(.w365-panel, .persona-card, .person-list-item, .plan-type-option, .panel-card, .panel-check,
    .panel-check-card, .drawer-toggle-item, .household-option).is-selected {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 48%, var(--component-panel-border));
    background: color-mix(in srgb, var(--brand-logo-blue) 7%, var(--component-panel-bg));
}
.panel-card, .drawer-toggle-item { cursor: pointer; transition: border-color .16s ease, background-color .16s ease; }
.panel-card:hover, .drawer-toggle-item:not(.is-required):hover, .household-option:hover {
    border-color: color-mix(in srgb, var(--brand-logo-blue) 32%, var(--component-panel-border));
    background: var(--component-row-hover);
}
.drawer-toggle-item.is-required {
    border-left: 3px solid var(--brand-logo-blue);
    cursor: default;
}
.household-option__upgrade {
    position: absolute;
    top: var(--brand-space-2);
    right: var(--brand-space-2);
}
.panel-check {
    border: 1px solid var(--brand-border-strong);
    border-radius: 50%;
    background: var(--brand-surface);
    color: transparent;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.panel-check.is-selected {
    border-color: var(--brand-logo-blue);
    background: var(--brand-logo-blue);
    color: var(--brand-surface);
}
.person-list-item.is-selected .person-icon {
    background: color-mix(in srgb, var(--brand-logo-blue) 14%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.drawer-slider {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--brand-border-strong);
    transition: background-color .18s ease;
}
.drawer-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--brand-surface);
    box-shadow: none;
    transition: transform .18s ease;
}
.drawer-toggle-item.is-selected .drawer-slider,
.drawer-toggle-input:checked + .drawer-slider,
.drawer-slider.is-selected { background: var(--brand-logo-blue); }
.drawer-toggle-item.is-selected .drawer-knob,
.drawer-toggle-input:checked ~ .drawer-knob,
.drawer-knob.is-selected { transform: translateX(16px); }
.drawer-toggle-item.is-required .w365-pill { align-self: center; }
#readiness-bar.is-danger { background-color: var(--brand-danger); }
#readiness-bar.is-warning { background-color: var(--brand-warning); }
#readiness-bar.is-success { background-color: var(--brand-success); }
#readiness-percent.is-danger { color: var(--brand-danger); }
#readiness-percent.is-warning { color: var(--brand-warning); }
#readiness-percent.is-success { color: var(--brand-success); }
.report-section-item.is-dragging,
.report-section.is-dragging {
    opacity: .48;
    cursor: grabbing;
}
.report-section-item.is-dragging .report-section-handle { cursor: grabbing; }
.report-section-item.drop-before,
.report-section.drop-before {
    box-shadow: none;
    border-top: 2px solid var(--brand-logo-blue);
}
.report-section-item.drop-after,
.report-section.drop-after {
    box-shadow: none;
    border-bottom: 2px solid var(--brand-logo-blue);
}
.beta-nav-wrapper .w365-nav {
    border-bottom: 1px solid var(--brand-border);
    background: var(--brand-surface);
    color: var(--brand-text);
    box-shadow: none;
}
.beta-nav-wrapper .nav-links > a,
.beta-nav-wrapper .nav-dropdown-trigger,
.beta-nav-wrapper .mobile-menu > a,
.beta-nav-wrapper .mobile-nav-group a {
    color: var(--brand-text-muted);
    transition: color .16s ease, background-color .16s ease;
}
.beta-nav-wrapper .nav-links > a,
.beta-nav-wrapper .nav-dropdown-trigger { font-size: 15px; font-weight: 500; }
.beta-nav-wrapper .mobile-menu > a { font-size: 16px; }
.beta-nav-wrapper .mobile-nav-group a { font-size: 15px; }
.beta-nav-wrapper .mobile-nav-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.beta-nav-wrapper .nav-links > a:hover,
.beta-nav-wrapper .nav-dropdown-trigger:hover,
.beta-nav-wrapper .nav-active,
.beta-nav-wrapper .nav-links > a.active,
.beta-nav-wrapper .nav-dropdown-trigger[aria-expanded="true"],
.beta-nav-wrapper .mobile-menu > a.active,
.beta-nav-wrapper .mobile-menu > a:hover,
.beta-nav-wrapper .mobile-nav-group a:hover {
    color: var(--brand-logo-blue);
}
.beta-nav-wrapper .nav-dropdown-trigger { background: transparent; }
.beta-nav-wrapper .nav-dropdown-trigger.nav-active,
.beta-nav-wrapper .nav-dropdown-trigger[aria-expanded="true"] { color: var(--brand-logo-blue); }
.beta-nav-wrapper .nav-dropdown-menu {
    border-color: var(--brand-border);
    background: var(--brand-surface);
    color: var(--brand-text);
    box-shadow: none;
}
.beta-nav-wrapper .nav-dropdown-menu a {
    border-radius: var(--brand-radius-sm);
    color: var(--brand-text);
}
.beta-nav-wrapper .nav-dropdown-menu a:hover,
.beta-nav-wrapper .mobile-menu > a:hover,
.beta-nav-wrapper .mobile-nav-group a:hover {
    background: var(--component-row-hover);
}
.beta-nav-wrapper .nav-dropdown-menu a.active,
.beta-nav-wrapper .mobile-menu > a.active {
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
}
.beta-nav-wrapper .nav-dropdown-menu strong {
    color: var(--brand-text);
    font-size: 14px;
    font-weight: 600;
}
.beta-nav-wrapper .nav-dropdown-menu small,
.beta-nav-wrapper .nav-dropdown-arrow,
.beta-nav-wrapper .mobile-nav-label { color: var(--brand-text-subtle); }
.beta-nav-wrapper .nav-dropdown-menu small { font-size: 12px; }
.beta-nav-wrapper .nav-dropdown-divider {
    border-top: 1px solid var(--brand-border);
}
.beta-nav-wrapper .mobile-menu {
    border-top: 1px solid var(--brand-border);
    background: var(--brand-surface);
    color: var(--brand-text);
}
.beta-nav-wrapper .mobile-menu-btn { color: var(--brand-text); }
.beta-nav-wrapper .mobile-menu-btn:hover { background: var(--component-row-hover); }
.beta-banner .beta-cta { font-size: 13px; font-weight: 700; }
.save-badge { font-size: var(--brand-text-xs); font-weight: 650; }
.screenshot-tab { font-size: 13px; }
.pricing-toggle .toggle-label {
    color: var(--brand-text-muted);
    font-size: 15px;
    font-weight: 550;
}
.pricing-toggle .toggle-label.active,
.pricing-toggle .toggle-label[aria-current="true"] {
    color: var(--brand-text);
    font-weight: 700;
}
.color-preset-btn.is-selected, .color-preset-btn[aria-pressed="true"] {
    border-color: var(--brand-logo-blue);
    box-shadow: none;
    outline: var(--brand-focus-outline);
    outline-offset: 2px;
}
.w365-nav-link, .mobile-more-item, .sidebar-nav-item, .sidebar-footer a, .demo-sidebar-signout button {
    color: var(--brand-text-muted);
    text-decoration: none;
    transition: color .16s ease, background-color .16s ease;
}
.mobile-more-item {
    border: 0;
    border-radius: var(--brand-radius-sm);
    background: transparent;
    font: 500 .88rem/1.3 var(--brand-font-body);
    cursor: pointer;
}
.w365-nav-link:hover, .mobile-more-item:hover, .sidebar-nav-item:hover,
.sidebar-footer a:hover, .demo-sidebar-signout button:hover { color: var(--brand-text); }
.mobile-more-item:hover, .mobile-more-item.active {
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--brand-logo-blue);
}
.sidebar-nav-item:hover { background: color-mix(in srgb, var(--brand-logo-blue) 6%, var(--brand-surface)); }
.sidebar-nav-item.active {
    border-left-color: var(--accent, var(--brand-logo-blue));
    background: color-mix(in srgb, var(--brand-logo-blue) 10%, var(--brand-surface));
    color: var(--accent, var(--brand-logo-blue));
    font-weight: 600;
}
.sidebar-nav-item { font-size: .88rem; cursor: pointer; border-left: 3px solid transparent; }
.sidebar-footer :is(a, .demo-sidebar-signout button) { font-size: .82rem; }
.sidebar-nav-item.active { border-left-width: 3px; }
.demo-sidebar-signout button {
    border: 0;
    border-radius: 0;
    background: transparent;
    font: inherit;
    cursor: pointer;
}
.sidebar-collapse-btn {
    border-color: transparent;
    background: transparent;
    color: var(--brand-text-subtle);
    border-radius: var(--brand-radius-sm);
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, transform .25s ease;
}
.sidebar-collapse-btn:hover {
    border-color: var(--brand-border);
    background: color-mix(in srgb, var(--brand-logo-blue) 8%, var(--brand-surface));
    color: var(--accent, var(--brand-logo-blue));
}
.advisor-sidebar { background: var(--component-panel-bg); border-right: 1px solid var(--brand-border); }
.advisor-sidebar .sidebar-brand { border-bottom: 1px solid var(--brand-border); }
.sidebar-footer { border-top: 1px solid var(--brand-border); }
.sidebar-divider { background: var(--brand-border); }
.advisor-header {
    background: color-mix(in srgb, var(--brand-surface) 86%, transparent);
    border-bottom: 1px solid var(--brand-border);
}
.w365-nav-link[aria-current="page"],
.w365-nav-link.is-current { color: var(--brand-logo-blue); }
.mobile-bottom-nav-item {
    border: 0;
    background: transparent;
    color: var(--brand-text-subtle);
    font: 600 .65rem/1.2 var(--brand-font-body);
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease, background-color .15s ease;
}
.mobile-bottom-nav-item:hover { color: var(--brand-text); }
.mobile-bottom-nav-item.active { color: var(--accent, var(--brand-logo-blue)); }
.w365-pill.mobile-badge {
    border-color: var(--brand-danger);
    background: var(--brand-danger);
    color: var(--brand-surface);
    font-size: .55rem;
    min-height: 14px;
    min-width: 14px;
    padding: 0 5px;
}

.saved-view-item {
    display: flex;
    align-items: center;
    gap: var(--brand-space-2);
    padding: var(--brand-space-2) var(--brand-space-3);
    border-radius: var(--brand-radius-sm);
    color: var(--brand-text);
    font-size: var(--brand-text-sm);
    cursor: pointer;
}
.saved-view-item:hover { background: var(--component-row-hover); }
.saved-view-item.active-view {
    background: var(--component-selected-bg);
    color: var(--component-selected-text);
    font-weight: 650;
}
.quick-action-menu a:hover,
.quick-action-menu button:hover {
    background: var(--component-row-hover);
    color: var(--brand-logo-blue);
}
.client-card.selected, .client-card.bulk-selected {
    border-color: var(--brand-logo-blue);
    background: var(--component-selected-bg);
}

@media (max-width: 767px) {
    .screenshot-tab { font-size: var(--brand-text-xs); }
    .beta-banner .beta-cta { font-size: var(--brand-text-xs); }
    .w365-field, .w365-select { min-height: 44px; font-size: 16px; box-sizing: border-box; }
    .w365-button { min-height: 44px; }
    .w365-field--otp { font-size: 1.25rem; letter-spacing: .2em; padding: 12px 8px; }
    .w365-field--recovery { font-size: 16px; padding: 10px; }
    .w365-table-wrap { overscroll-behavior-inline: contain; }
    .w365-field, .w365-select { font-size: 1rem; }
    .dashboard-data-table tbody tr:not(.category-row):not(.total-row) {
        border: 1px solid var(--brand-border);
        border-radius: var(--brand-radius-sm);
        background: var(--brand-surface);
    }
    .dashboard-data-table tbody tr.category-row {
        border: 1px solid var(--brand-border);
        border-radius: var(--brand-radius-sm);
    }
}

.chart-description {
    font: var(--brand-text-sm)/1.5 var(--brand-font-body);
    color: var(--brand-text-muted);
    margin: var(--brand-space-2) 0;
}
.chart-data-alternative { font: var(--brand-text-sm)/1.5 var(--brand-font-body); }
.chart-data-alternative summary {
    cursor: pointer;
    padding: var(--brand-space-2);
    color: var(--brand-logo-blue);
}
.chart-data-scroll { overflow: auto; max-height: 28rem; }
.chart-data-alternative table { border-collapse: collapse; width: 100%; }
.chart-data-alternative th, .chart-data-alternative td {
    padding: var(--brand-space-2);
    border-bottom: 1px solid var(--brand-border);
    text-align: left;
}
.chart-table-swatch {
    display: inline-block; width: .75rem; height: .75rem;
    margin-right: var(--brand-space-2);
}

/*
 * Public-site density authority. The direct public chrome admits standalone
 * marketing documents as well as site_base. Signed-in shells, report output
 * and the mockup sandbox never opt in. Auth keeps its own responsive structure.
 * Only text receives the prose measure: never constrain a grid or form to ch.
 */
@media screen {
    /* Preserve the inherited adviser navigation while retiring marketing's
       unscoped vertical-padding declaration. */
    body.adviser-page .nav-inner { padding-block: var(--brand-space-4); }
    @media (max-width: 375px) {
        body.adviser-page .nav-inner { padding-block: var(--brand-space-3); }
    }
    body:has(> #beta-nav-wrapper):not(.adviser-page, .w365-app, .calculator-page, .w365-admin-frame),
    body.auth-a-body, body.auth-a-reg-body {
        --site-nav-height: 64px;
        --site-logo-height: 32px;
        --site-hero-space: 48px;
        --site-section-space: 32px;
        --site-body-size: 16px;
        --site-prose-measure: 68ch;
        --site-legal-measure: 72ch;
        --site-h1-size: 32px;
        --site-h2-size: 24px;
        --site-card-space: 20px;
        --site-grid-gap: 16px;
        --site-side-gutter: var(--brand-space-6);
        font-size: var(--site-body-size);
        padding-bottom: var(--site-cookie-clearance, 0px);

        @media (max-width: 767px) {
            --site-h1-size: 26px;
            --site-h2-size: 20px;
            --site-hero-space: 32px;
            --site-section-space: 24px;
            --site-card-space: 16px;
            --site-side-gutter: 16px;
        }
        & h1 { font-size: var(--site-h1-size); line-height: 1.2; }
        & h2 { font-size: var(--site-h2-size); line-height: 1.3; }
        & .container { padding-inline: var(--site-side-gutter); }
        & .beta-banner-inner { padding-inline: var(--site-side-gutter); }
        & p {
            font-size: var(--site-body-size);
            max-inline-size: min(100%, var(--site-prose-measure));
            overflow-wrap: anywhere;
        }
        & :is(.legal-section, .terms-section, .article-body, .content-section)
            :is(ul, ol, blockquote) {
            max-inline-size: min(100%, var(--site-prose-measure));
            overflow-wrap: anywhere;
        }
        & :is(.hero-content, .section-header, .cta, .footer-bottom,
            .footer-disclosure, .auth-a-reg-header, .content-header) > p {
            margin-inline: auto;
        }
        & .hero-content { max-width: none; }
        & :is(.hero, .page-hero, .cs-hero, .cs-detail-hero, .download-hero,
            .pr-hero, .dir-hero, .ap-hero, .prof-hero, .reg-hero, .town-hero, .tool-hero) {
            padding-block: var(--site-hero-space);
        }
        & :is(section:not(.hero, .page-hero, .cs-hero, .cs-detail-hero,
            .download-hero, .pr-hero, .dir-hero, .ap-hero, .prof-hero, .reg-hero, .town-hero, .tool-hero),
            .footer, .content-page, .section) {
            padding-block: var(--site-section-space);
        }
        & :is(.legal-container, .terms-container, .rp-wrap) {
            padding: var(--site-hero-space) var(--site-side-gutter);
        }
        & :is(.legal-container, .terms-container) {
            box-sizing: border-box;
            max-width: calc(var(--site-legal-measure) + 2 * var(--site-side-gutter));
            width: 100%;
        }
        & :is(.legal-container, .terms-container) :is(p, ul, ol, blockquote) {
            max-inline-size: min(100%, var(--site-legal-measure));
        }
        & :is(.pr-hero, .dir-hero, .ap-hero, .prof-hero, .reg-hero, .town-hero,
            .tool-hero, .section, .bottom-cta) { padding-inline: var(--site-side-gutter); }
        & :is(.legal-section, .terms-section) {
            margin-bottom: var(--site-section-space);
            padding-bottom: var(--site-card-space);
        }
        & :is(.section-header, .feature-section-header, .content-header, .section-title) {
            margin-bottom: var(--site-card-space);
        }
        & .feature-section { margin-bottom: var(--site-section-space); }
        & .feature-section:last-child { margin-bottom: 0; }
        & :is(.w365-panel, .value-card, .step-card, .persona-card,
            .pathway-card, .feature-card, .feature-detail-card, .feature-large-card,
            .enterprise-card, .pricing-card, .advisor-pricing-card, .security-card,
            .security-detail-card, .contact-card, .disclaimer-card, .whatif-card,
            .panoramic-item, .path-legend-box, .contact-form, .site-card,
            .auth-a-card, .auth-a-value-panel, .auth-a-form-panel,
            .auth-a-form-card, .auth-a-plan-card, .content-section, .right-card,
            .advisor-card, .prof-card, .store-card, .app-feature-card, .app-security-card,
            .resource-card, .download-card, .cs-card-body, .cs-sidebar-card,
            .cs-other-card, .plan-card, .firm-card, .side-card, .individuals-panel) {
            padding: var(--site-card-space);
            min-inline-size: 0;
        }
        & :is(.value-grid, .steps-grid, .personas-grid, .pathways-grid,
            .features-grid, .features-grid-large, .feature-cards-row,
            .feature-screenshots-grid, .enterprise-grid, .pricing-grid,
            .advisor-pricing-grid, .uk-features-grid, .contact-grid,
            .security-grid, .security-detail-grid, .panoramic-grid, .whatif-grid,
            .stats-grid, .device-grid, .projections-showcase-grid,
            .footer-grid, .site-card-grid, .auth-a-plan-grid, .plans-grid,
            .advisor-grid, .stores-grid, .app-features-grid, .app-security-grid,
            .guide-grid, .video-grid, .download-grid, .cs-grid, .cs-other-grid,
            .rights-grid, .resources-grid) {
            gap: var(--site-grid-gap);
            min-inline-size: 0;
            & > * { min-inline-size: 0; }
        }
        & .site-card-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
        }
        & .pricing-grid { grid-template-columns: 1fr; }
        & .advisor-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        & :is(.pricing-grid, .feature-with-screenshot, .step-with-screenshot) {
            margin-bottom: var(--site-section-space);
        }
        & .video-showcase { margin-top: 0; }
        & .feature-with-screenshot { padding-block: var(--site-card-space); }
        & .nav-inner {
            height: calc(var(--site-nav-height) - 1px);
            padding-block: 0;
        }
        & .nav { min-height: var(--site-nav-height); }
        & .mobile-menu {
            &.active {
                max-height: calc(100dvh - var(--site-header-height));
                overflow-y: auto;
                overscroll-behavior: contain;
            }
        }
        /* Match only platform artwork, never a stored firm logo. */
        & img.platform-logo[src*="/static/brand/generated/"] {
            height: var(--site-logo-height);
            width: auto;
            max-width: 100%;
            object-fit: contain;
        }
        & :is(.auth-a-header, .auth-a-reg-brand) {
            height: var(--site-nav-height);
            padding: 0 var(--site-side-gutter);
            box-sizing: border-box;
        }
        & .auth-a-reg-header { padding: 0 var(--site-side-gutter); }
        & .auth-a-main {
            padding: var(--site-section-space) max(var(--site-side-gutter), env(safe-area-inset-right)) var(--site-section-space) max(var(--site-side-gutter), env(safe-area-inset-left));
            padding-bottom: max(var(--site-section-space), env(safe-area-inset-bottom));
        }
        &.auth-a-reg-body {
            padding-bottom: calc(var(--site-section-space) + var(--site-cookie-clearance, 0px));
        }
        & .footer-social { flex-wrap: wrap; }
        @media (max-width: 639px) {
            & .advisor-pricing-grid { grid-template-columns: 1fr; }
            & .auth-a-main { align-items: flex-start; }
        }
        @media (min-width: 1280px) {
            & .nav--descriptor .mobile-menu-btn { display: none; }
        }
    }
    /* Measured clearance includes the separate announcement strip, not the
       expanded mobile menu. The initial fallback is replaced at first layout. */
    body:has(> #beta-nav-wrapper):not(.adviser-page, .w365-app, .calculator-page, .w365-admin-frame) {
        --site-header-height: var(--site-nav-height);
        padding-top: var(--site-header-height);
        &:has(.beta-banner) {
            --site-header-height: calc(var(--site-nav-height) + var(--site-announcement-height, 54px));
        }
        & :is(section, [id]) { scroll-margin-top: var(--site-header-height); }
    }
}

/*
 * Application density authority. Public/marketing, the mockup sandbox and
 * printed output do not opt in. Keep these component dimensions here, not in
 * consumer sheets. Important declarations intentionally beat late planner
 * sheets and legacy inline component dimensions without rewriting the DOM.
 * Chart canvases/SVGs and chart-specific layout retain their own geometry.
 */
@media screen {
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame) {
        --app-space-1: 4px;
        --app-space-2: 8px;
        --app-space-3: 12px;
        --app-space-4: 16px;
        --app-space-6: 24px;
        --app-page-heading: 24px;
        --app-section-heading: 18px;
        --app-body-text: 14px;
        --app-card-padding: var(--app-space-4);
        --app-gap: var(--app-space-3);
        --app-control-height: 32px;
        --app-table-row-height: 36px;
        --component-control-height: var(--app-control-height);
        --component-control-height-compact: var(--app-control-height);
        font-size: var(--app-body-text);
    }

    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame) h1 {
        font-size: var(--app-page-heading) !important;
        line-height: 1.25 !important;
        margin-block: 0 var(--app-space-3);
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(h2, h3, .account-card-title, .section-title, .ff-card__title) {
        font-size: var(--app-section-heading) !important;
        line-height: 1.35;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(p, label, input, select, textarea, .client-name, .account-info-value):not(
        .results-headline__value, .chart-description, .chart-data-alternative *,
        svg *, .results-page__chart *, .chart-container *, .chart-legend *,
        [data-chart] *) {
        font-size: var(--app-body-text) !important;
    }

    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.w365-panel, .card, .client-card, .stat-card, .account-card,
        .adv-widget, .acd-card, .acd-evidence-card, .form-section,
        .data-panel, .ff-card, .ff-household-summary, .ff-risk-profile-card,
        .myday-panel, .at-risk-panel, .results-page__headline-section,
        .results-headline) {
        padding: var(--app-card-padding) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.account-card, .form-section, .data-panel, .ff-household-summary,
        .ff-risk-profile-card, .myday-panel, .at-risk-panel,
        .results-page__headline-section, .stats-row, .quick-actions) {
        margin-bottom: var(--app-gap) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.advisor-container, .account-shell__main, .results-page,
        .ff-landing, .data-entry-container, .adviser-dashboard__content) {
        padding: var(--app-space-4) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.stats-row, .clients-grid, .client-grid, .adviser-dashboard__grid,
        .at-risk-grid, .quick-actions, .account-info-grid, .account-form-row,
        .account-profile-form, .account-btn-group, .ff-landing__grid,
        .ff-cards, .ff-card-grid, .results-page__headlines,
        .results-page__header, .results-page__panel-heading,
        .results-page__timeline-heading, .form-grid, .form-row) {
        gap: var(--app-gap) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.section-header, .account-card-header, .ff-landing__header,
        .plan-shell-header, .greeting-header) {
        margin-bottom: var(--app-space-3) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.advisor-header, .advisor-client-plan-chrome, .adviser-account-bar) {
        padding: var(--app-space-2) var(--app-space-4) !important;
        gap: var(--app-gap) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(.account-info-item, .ff-card__body, .ff-card__header) {
        padding: var(--app-space-3) var(--app-space-4) !important;
    }

    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(button, input[type="submit"], input[type="button"], input[type="reset"],
        .w365-button, .adv-btn, .account-btn, .btn, .btn-sm, .btn-primary,
        .btn-secondary, .btn-ghost, .btn-primary-sm, .aws-tab, .plan-section-button,
        .adviser-account-menu > summary):not(
        .household-type-btn, .accordion-header, .ff-card, .ff-sidebar__item,
        .chart-container *, .results-page__chart *, .chart-legend *, [data-chart] *) {
        box-sizing: border-box;
        min-height: var(--app-control-height) !important;
        height: auto;
        padding: var(--app-space-1) var(--app-space-3) !important;
        font-size: var(--app-body-text) !important;
        line-height: 22px;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(input:not([type]), input[type="text"], input[type="email"],
        input[type="password"], input[type="number"], input[type="date"],
        input[type="search"], input[type="tel"], input[type="url"], select):not(
        .hps-select, .chart-container *, .results-page__chart *, [data-chart] *) {
        box-sizing: border-box;
        min-height: var(--app-control-height) !important;
        height: var(--app-control-height) !important;
        padding: var(--app-space-1) var(--app-space-2) !important;
        line-height: 22px;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame) textarea {
        padding: var(--app-space-2) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    table:not(.chart-data-alternative table, .chart-container table, .results-page__chart table) {
        font-size: var(--app-body-text);
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    :is(th, td):not(.chart-data-alternative *, .chart-container *, .results-page__chart *) {
        height: var(--app-table-row-height);
        box-sizing: border-box;
        padding: var(--app-space-1) var(--app-space-2) !important;
        font-size: var(--app-body-text) !important;
    }
    body:is(.w365-app, .adviser-page, .calculator-page, .w365-admin-frame)
    td:has(:is(button, .btn, .btn-sm, .w365-button, .account-btn)):not(
        .chart-data-alternative *, .chart-container *, .results-page__chart *) {
        padding-block: 0 !important;
    }
    /* One compact demo line; native details exposes retention and tour text. */
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-bar {
        flex-wrap: nowrap;
        gap: var(--app-space-2);
        padding: var(--app-space-1) var(--app-space-4);
        min-height: var(--app-control-height);
        font-size: var(--app-body-text);
    }
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-bar > * {
        flex-shrink: 0;
    }
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-checklist {
        position: relative;
        flex-basis: auto;
        order: 0;
    }
    body:is(.w365-app, .adviser-page, .calculator-page)
    #public-demo-bar :is(summary, form > button) {
        display: inline-flex;
        align-items: center;
        min-height: var(--app-control-height);
        box-sizing: border-box;
        margin: 0;
        padding: var(--app-space-1) var(--app-space-2) !important;
        cursor: pointer;
    }
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-checklist > summary {
        text-decoration: underline;
        list-style: none;
    }
    body:is(.w365-app, .adviser-page, .calculator-page)
    #public-demo-checklist > summary::-webkit-details-marker { display: none; }
    body:is(.w365-app, .adviser-page, .calculator-page) .public-demo-tour-panel {
        position: absolute;
        top: 100%;
        left: 0;
        width: min(640px, calc(100vw - 32px));
        max-height: 60dvh;
        box-sizing: border-box;
        padding: var(--app-space-4);
        box-shadow: var(--brand-shadow);
    }
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-bar .public-demo-copy-note {
        font-size: var(--app-body-text);
        margin: 0 0 var(--app-space-3);
    }
    body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-bar > .adviser-account-menu {
        margin-left: auto;
    }
    body:is(.w365-app, .adviser-page, .calculator-page) .adviser-account-menu__panel {
        text-align: left;
        white-space: normal;
    }
    body:is(.w365-app, .adviser-page, .calculator-page)
    .adviser-account-menu__panel :is(a, button) {
        min-height: var(--app-control-height);
        box-sizing: border-box;
    }
    @media (max-width: 767px) {
        body:is(.w365-app, .adviser-page, .calculator-page) #public-demo-bar {
            flex-wrap: wrap;
        }
        body:is(.w365-app, .adviser-page, .calculator-page) .public-demo-tour-panel {
            position: fixed;
            top: auto;
            left: var(--app-space-4);
        }
    }
}

/*
 * Results and Present share one headline contract. Cards establish the query
 * container so values scale to the available column width, not the viewport.
 * Shared selectors live here because Present clones the same headline markup.
 */
.results-headline {
    min-width: 0;
    container-type: inline-size;
    padding: clamp(12px, 1.5vw, 22px);
    border: 1px solid var(--brand-border);
    border-radius: var(--brand-radius, 6px);
    background: var(--brand-surface);
}

.results-headline h3 {
    margin: 0 0 10px;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-sm);
    font-weight: 700;
    line-height: 1.35;
}

.results-headline__value {
    margin: 0 0 8px;
    color: var(--brand-text);
    font-size: clamp(var(--component-results-value-min), 9cqi, var(--component-results-value-max));
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.results-headline__value--unavailable {
    font-size: var(--app-body-text, var(--brand-text-md));
    line-height: 1.4;
    font-weight: 600;
}

.results-headline__note {
    margin: 0;
    color: var(--brand-text-muted);
    font-size: var(--brand-text-sm);
    line-height: 1.45;
}

/* Notes must remain smaller than body-size unavailable status, including
   the application density rule for ordinary paragraphs. */
body:is(.w365-app, .calculator-page) :is(#results-view, #results-present-dialog) .results-headline__note {
    font-size: var(--brand-text-xs) !important;
    overflow-wrap: anywhere;
}

#results-view .results-page__headlines,
#results-present-dialog #results-present-headlines {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    min-height: 0;
}

/* Plot height belongs to the specification; axes and legends add their own
   measured height in normal flow in both saved-result surfaces. */
:is(.results-page__chart, #results-present-chart) {
    display: flow-root;
    min-height: 0;
    overflow: visible;
}

:is(.results-page__chart, #results-present-chart) :is(svg, canvas) {
    display: block;
    max-width: 100%;
}

@media (max-width: 639.98px) {
    #results-view .results-page__headlines,
    #results-present-dialog #results-present-headlines {
        grid-template-columns: minmax(0, 1fr);
    }
}
