/* Application-wide dashboard design. Shared tokens/layout in finance-shared.css; feature-specific layouts retain their behavior. */
body:is(.application-page,.application-admin-page,.application-auth-page,.application-public-page) {
    --bs-primary-rgb:20,134,127; --bs-success-rgb:20,134,127;
    --bs-danger-rgb:198,78,85; --bs-warning-rgb:203,150,96;
    --bs-link-color:var(--dash-green); --bs-link-hover-color:var(--dash-ink);
    --finance-shadow:0 3px 14px rgba(24,45,69,.035);
}
body.application-page :is(.d-flex.justify-content-between,.header-actions) { flex-wrap:wrap; gap:12px; }
body.application-page .row { --bs-gutter-x:24px; --bs-gutter-y:24px; }
body.application-page :is(.section-card,.table-card,.card,.insight-card,.empty-state,.stat-item) {
    background:var(--dash-surface); border:1px solid var(--dash-line); border-radius:12px;
    color:var(--dash-ink); box-shadow:var(--finance-shadow); min-width:0;
}
body.application-page :is(.section-card,.table-card).p-3 { padding:22px !important; }
body.application-page .card-body { padding:22px; }
body.application-page .card-header { background:transparent; padding:18px 22px; color:var(--dash-ink); border-color:var(--dash-line); font-size:15px; font-weight:600; }
body.application-page .card-footer { background:var(--dash-surface2); border-color:var(--dash-line); padding:16px 22px; }
body.application-page :is(.section-card,.table-card) :is(h2.h5,h2.h6,h3.h5,h3.h6) { font-size:16px; font-weight:600; color:var(--dash-ink); }
/* Note: base page-shell/application-shell, btn-primary, form-control, table, modal, nav-tabs, misc Bootstrap components removed — now in finance-shared.css */
body.application-page :is(.kpi-value,.card-body h3,.card-body h4) { font-size:clamp(23px,2vw,28px); font-weight:600; letter-spacing:-.5px; overflow-wrap:anywhere; }
body.application-page :is(.section-card,.table-card,.card) p { line-height:1.6; }
body:is(.application-page,.application-admin-page,.application-auth-page) .form-control:disabled { background:var(--dash-surface2); opacity:.75; }
body:is(.application-page,.application-admin-page) .btn:disabled { opacity:.5; }
body:is(.application-page,.application-admin-page) .table td :is(.d-flex,.btn) { white-space:nowrap; }
body:is(.application-page,.application-admin-page) .table-responsive { max-width:100%; border-radius:8px; }
body:is(.application-page,.application-admin-page) :is(pre,code) { color:var(--dash-ink); overflow-wrap:anywhere; }
body:is(.application-page,.application-admin-page) pre { max-width:100%; max-height:360px; overflow:auto; background:var(--dash-surface2); padding:16px; border-radius:8px; }
body:is(.application-page,.application-admin-page) .alert { border-radius:10px; font-size:12px; padding:16px 18px; }
body:is(.application-page,.application-admin-page) .modal-header :is(h5,.modal-title) { font-size:19px; font-weight:600; margin:0; }
body.application-page .insights-container { max-width:none; padding:0; }
body.application-page .stats-bar { gap:12px; margin:24px 0; }
body.application-page .stat-item { height:auto; padding:12px 16px; gap:8px; }
body.application-page .stat-item.active { background:var(--dash-green-soft); border-color:var(--dash-green); color:var(--dash-green); }
body.application-page :is(.stat-label,.insight-body,.insight-meta,.filter-info) { color:var(--dash-muted); }
body.application-page .insight-title { color:var(--dash-ink); font-size:16px; font-weight:600; }
body.application-page .insight-card { padding:20px; margin-bottom:18px; }
body.application-page .insight-card:is(.alert,.warning,.info) { background:var(--dash-surface); }
body.application-page .filter-info { background:var(--dash-surface2); border-color:var(--dash-line); }
body.application-page :is(.filter-info strong,.empty-state h3) { color:var(--dash-ink); }
body.application-page .empty-state { padding:40px 24px; color:var(--dash-muted); }
body.application-page #calcTabs { background:var(--dash-surface2); }
body.application-page #calcTabs .nav-link.active { background:var(--dash-surface); color:var(--dash-green); box-shadow:var(--finance-shadow); }
body.application-page :is(.calc-subtab-nav,.summaryCard,.calc-result) { background:var(--dash-surface); border-color:var(--dash-line); border-radius:12px; box-shadow:var(--finance-shadow); }
body.application-page .calc-subtab-button { background:transparent; color:var(--dash-ink); border-color:var(--dash-line); border-radius:8px; }
body.application-page .calc-subtab-button.active { background:var(--dash-green-soft); color:var(--dash-green); border-color:var(--dash-green); }
body.application-page :is(.calc-subtab-desc,.summaryCard .small,.form-text) { color:var(--dash-muted); }
body.application-page .calc-segmented .btn-check:checked + .btn { background:var(--dash-green); border-color:var(--dash-green); color:var(--dash-surface); }
body.application-page .chat-bubble.user { background:#163957; color:#fff; }
body.application-page .chat-bubble.bot { background:var(--dash-surface2); color:var(--dash-ink); }
body.application-page .chat-bubble { line-height:1.6; padding:12px 16px; border-radius:12px; overflow-wrap:anywhere; }
body.application-page .suggestion-chip:hover { background:var(--dash-green-soft); }
body.application-admin-page {
    --admin-bg:var(--dash-bg); --admin-surface:var(--dash-surface); --admin-surface-strong:var(--dash-surface);
    --admin-border:var(--dash-line); --admin-text:var(--dash-ink); --admin-muted:var(--dash-muted);
    --admin-primary:var(--dash-green); --admin-primary-soft:var(--dash-green-soft); --admin-primary-strong:var(--dash-green);
    --admin-topnav-bg:var(--dash-surface); --admin-shadow:var(--finance-shadow);
}
body.application-admin-page .admin-content { max-width:1420px; padding:33px 42px 40px; }
body.application-admin-page :is(.admin-card,.section-card,.table-card) { background:var(--dash-surface); color:var(--dash-ink); border:1px solid var(--dash-line); border-radius:12px; box-shadow:var(--finance-shadow); }
body.application-admin-page :is(.admin-page-hero-title,.admin-snapshot-panel-title) { font-weight:600; color:var(--dash-ink); }
body.application-admin-page .admin-page-hero { background:transparent; border:0; box-shadow:none; padding:0; }
body.application-admin-page .admin-page-hero-title { font-size:31px; letter-spacing:-1px; }
body.application-admin-page :is(.admin-snapshot-kpi,.admin-snapshot-panel) { border-color:var(--dash-line); background:var(--dash-surface); }
body.application-admin-page :is(.admin-snapshot-kpi-value,.admin-snapshot-highlight-value) { color:var(--dash-ink); font-weight:600; }
body.application-admin-page .admin-brand-mark { background:#163957; }
body.application-admin-page .admin-section-link.is-active { background:var(--dash-green-soft); color:var(--dash-green); }
body.application-auth-page {
    --auth-accent:var(--dash-green); --auth-accent-dark:#163957; --auth-ink:var(--dash-ink); --auth-muted:var(--dash-muted); --auth-card-border:var(--dash-line);
    background:var(--dash-bg); color:var(--dash-ink);
}
body.application-auth-page :is(.auth-card,.ws-card) { background:var(--dash-surface); color:var(--dash-ink); border:1px solid var(--dash-line); border-radius:12px; box-shadow:var(--finance-shadow); }
body.application-auth-page :is(.auth-title,.auth-product-name,.ws-card h2) { color:var(--dash-ink); font-weight:600; }
body.application-auth-page :is(.auth-subtitle,.auth-footer,.ws-card p) { color:var(--dash-muted); }
body.application-auth-page .auth-card .btn-primary { background:#163957; border-color:#163957; color:#fff; box-shadow:none; }
body.application-auth-page .auth-card .btn-primary:hover { background:#245373; }
body.application-auth-page .auth-brand-mark { background:var(--dash-green-soft); color:var(--dash-green); box-shadow:none; }
body.application-auth-page .auth-shell { margin-left:0; margin-right:0; }
body.application-public-page {
    --bg:var(--dash-bg); --card:var(--dash-surface); --text:var(--dash-ink); --muted:var(--dash-muted); --border:var(--dash-line);
    --primary:#163957; --primary-dark:#245373; --primary-soft:var(--dash-green-soft); --shadow:0 3px 14px rgba(24,45,69,.035);
    background:var(--dash-bg);
}
body.application-public-page :is(.hero,.panel,.side-card) { background:var(--dash-surface); border:1px solid var(--dash-line); border-radius:12px; box-shadow:var(--shadow); }
body.application-public-page h1 { font-size:31px; font-weight:600; letter-spacing:-1px; }
body.application-public-page :is(input,textarea,select) { border-color:var(--dash-line); background:var(--dash-surface); color:var(--dash-ink); border-radius:8px; }
body.application-public-page :is(.button,button[type="submit"]) { background:#163957; border-radius:8px; box-shadow:none; }
[data-theme="dark"] body:is(.application-page,.application-admin-page) :is(.text-primary,.text-success) { color:var(--dash-green) !important; }
[data-theme="dark"] body:is(.application-page,.application-admin-page) .text-danger { color:var(--dash-danger) !important; }
[data-theme="dark"] body:is(.application-page,.application-admin-page) .text-warning { color:var(--dash-orange) !important; }
[data-theme="dark"] body:is(.application-page,.application-admin-page) input[type="date"] { color-scheme:dark; }
@media(max-width:991px) { body.application-page #calcTabContent .calc-subtab-shell { grid-template-columns:1fr; } body.application-page .calc-subtab-nav { position:static; } }
@media(max-width:767px) {
    body.application-admin-page .admin-content { padding:24px 20px 36px; }
    body.application-page .row { --bs-gutter-x:18px; --bs-gutter-y:18px; }
    body.application-page :is(.card-body,.section-card.p-3,.table-card.p-3) { padding:18px !important; }
    body.application-page .card-header { padding:16px 18px; }
    body:is(.application-page,.application-admin-page) .modal-dialog { width:calc(100% - 24px); margin:12px auto; }
    body:is(.application-page,.application-admin-page) .modal-content { max-height:calc(100dvh - 24px); }
    body:is(.application-page,.application-admin-page) :is(.modal-header,.modal-body,.modal-footer) { padding:16px; }
    body.application-page .header-actions { width:100%; flex-wrap:wrap; }
    body.application-page .stats-bar { flex-direction:row; }
}
@media(max-width:480px) { body.application-admin-page .admin-content { padding:20px 14px 30px; } body.application-page .btn { white-space:normal; } }
/* Dialogs replace browser prompts while keeping keyboard focus and cancellation. */
.app-dialog { padding:0; width:min(480px,calc(100% - 28px)); max-height:calc(100dvh - 32px); overflow:auto; background:var(--dash-surface,#fff); color:var(--dash-ink,#182d45); border:1px solid var(--dash-line,#e5ebf2); border-radius:14px; box-shadow:0 24px 70px rgba(10,27,43,.25); }
.app-dialog::backdrop { background:rgba(10,27,43,.55); }
.app-dialog-header { padding:20px 22px; border-bottom:1px solid var(--dash-line,#e5ebf2); }
.app-dialog-header h2 { margin:0; font-size:19px; font-weight:600; }
.app-dialog-body { padding:22px; }
.app-dialog-body p { margin:0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.app-dialog-footer { padding:16px 22px; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; border-top:1px solid var(--dash-line,#e5ebf2); background:var(--dash-surface2,#f5f8fb); }
.app-dialog .form-label { display:block; font-size:12px; font-weight:600; margin-bottom:7px; }
.app-dialog :is(.form-control,.form-select) { background:var(--dash-surface); border-color:var(--dash-line); color:var(--dash-ink); min-height:42px; font-size:13px; border-radius:8px; }
.app-dialog .btn { font-size:12px; border-radius:8px; padding:10px 16px; }
.app-dialog .btn-primary { background:#163957; color:#fff; border-color:#163957; }
.app-dialog .btn-outline-secondary { color:var(--dash-ink); border-color:var(--dash-line); }
[data-theme="dark"] .app-dialog .btn-primary { background:#8ac3c9; border-color:#8ac3c9; color:#14293b; }
body.application-auth-page .planner-login { background:var(--dash-bg); }
body.application-auth-page :is(.planner-brand-panel,.planner-pillars,.planner-card) { background:var(--dash-surface); color:var(--dash-ink); }
body.application-auth-page .planner-card { border:1px solid var(--dash-line); border-radius:12px; box-shadow:var(--finance-shadow); }
body.application-auth-page .planner-auth-panel { background:#163957; }
body.application-auth-page :is(.planner-hero h1,.planner-heading h2,.planner-field label,.planner-label-row label) { color:var(--dash-ink); font-weight:600; }
body.application-auth-page :is(.planner-hero p,.planner-heading p:last-child,.planner-divider,.planner-create-row) { color:var(--dash-muted); }
body.application-auth-page :is(.planner-kicker,.planner-label-row a,.planner-create-row a) { color:var(--dash-green); }
body.application-auth-page .planner-control .form-control { background:var(--dash-surface2); color:var(--dash-ink); border-color:var(--dash-line); }
body.application-auth-page .planner-submit-btn { background:#163957; font-weight:650; }
body.application-auth-page .planner-submit-btn:hover { background:#245373; }
[data-theme="dark"] body.application-auth-page .planner-submit-btn { background:#8ac3c9; color:#14293b; }
body.application-page form.row, body.application-page form .row { --bs-gutter-y:14px; --bs-gutter-x:14px; }
body.application-page .table td:has(form) { min-width:260px; }
body.application-page.goals-page .table td:has(form) { min-width:560px; }
body.application-page .application-calendar-filter { flex-wrap:wrap; align-items:flex-end; max-width:100%; }
body.application-page .calendar-field { min-width:0; flex:1 1 140px; }
body.application-auth-page .planner-hero h1 { font-size:clamp(32px,3.5vw,48px); line-height:1.2; letter-spacing:-1px; }
body.application-auth-page .planner-main-logo { max-width:360px; }
body.application-auth-page .planner-google-note { background:var(--dash-surface2); border-color:var(--dash-line); color:var(--dash-muted); font-weight:400; font-size:12px; }
@media(max-width:767px) { body.application-page .application-calendar-filter { width:100%; } }
body.application-admin-page :is(.admin-ref-btn,.admin-ref-panel,.admin-users-search,.admin-users-toggle-btn) { background:var(--dash-surface); color:var(--dash-ink); border-color:var(--dash-line); box-shadow:var(--finance-shadow); }
body.application-admin-page :is(.admin-ref-btn:hover,.admin-ref-mini-tile,.admin-ref-bar-track,.admin-ref-version-track,.admin-reference-summary-pill.gray) { background:var(--dash-surface2); color:var(--dash-ink); }
body.application-admin-page :is(.admin-ref-panel-title,.admin-ref-kpi-value) { font-weight:600; }
body.application-admin-page .admin-ref-panel-head { flex-wrap:wrap; }
body.application-page .insight-type { background:var(--dash-green); }
[data-theme="dark"] body.application-page :is(.alert-warning,.alert-danger,.alert-success) { background:var(--dash-surface2); border-color:var(--dash-line); color:var(--dash-ink); }
body.application-page #calcTabs .nav-link { color:var(--dash-muted); }
body.application-page .bg-primary-subtle { background:var(--dash-green-soft) !important; color:var(--dash-green) !important; border-color:var(--dash-line) !important; }
body.application-page .page-title > i { display:inline-block; margin-inline-end:8px; color:var(--dash-green); font-size:.8em; }
[data-theme="dark"] body.application-auth-page .planner-card-logo { background:#fff; padding:8px; border-radius:8px; }
[data-theme="dark"] body.application-admin-page .navbar-brand { background:transparent !important; }
body.application-auth-page :is(.ws-title,.ws-feature) { color:var(--dash-ink); }
body.application-auth-page :is(.ws-subtitle,.ws-footer) { color:var(--dash-muted); }
body.application-auth-page .ws-user-pill { background:var(--dash-surface); color:var(--dash-ink); border:1px solid var(--dash-line); box-shadow:var(--finance-shadow); }
body.application-auth-page :is(.ws-hero,.ws-features) { background:var(--dash-surface2); color:var(--dash-green); box-shadow:none; }
body.application-auth-page .ws-feature i { color:var(--dash-green); }
body.application-auth-page .ws-btn-solid { background:#163957; border-color:#163957; color:#fff; box-shadow:none; border-radius:8px; }
body.application-auth-page .ws-btn-outline { background:var(--dash-surface); border-color:var(--dash-green); color:var(--dash-green); border-radius:8px; }
body.application-auth-page .ws-footer { border-color:var(--dash-line); }
[data-theme="dark"] body.application-auth-page .ws-btn-solid { background:#8ac3c9; border-color:#8ac3c9; color:#14293b; }
[data-theme="dark"] body:is(.application-page,.application-admin-page) .btn-success { color:#14293b; }
body:is(.application-page,.application-admin-page,.application-auth-page) :is(.form-control,.form-select):not(.is-invalid,.is-valid) { border-color:var(--dash-line) !important; }
body:is(.application-page,.application-admin-page,.application-auth-page) :is(.form-control,.form-select):focus { border-color:var(--dash-green) !important; }

/* ── Icon badge utilities ─────────────────────────────────────────────────── */
.icon-badge {
  width: 42px; height: 42px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex: 0 0 auto;
}
.icon-badge-sm {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex: 0 0 auto;
}
.icon-badge-centered { margin: 0 auto; }

/* Color variants */
.icon-badge-blue   { background: #e6f0ff; color: #2563eb; }
.icon-badge-amber  { background: #fff6ea; color: #f59e0b; }
.icon-badge-green  { background: #eefbf4; color: #18b86b; }
.icon-badge-purple { background: #f3edff; color: #8b5cf6; }
.icon-badge-red    { background: #fff1f4; color: #e54b70; }

/* Dark-mode overrides for icon badges */
[data-theme="dark"] .icon-badge-blue   { background: rgba(37,99,235,.18); color: #7ab3ff; }
[data-theme="dark"] .icon-badge-amber  { background: rgba(245,158,11,.18); color: #fbbf24; }
[data-theme="dark"] .icon-badge-green  { background: rgba(24,184,107,.18); color: #4ade80; }
[data-theme="dark"] .icon-badge-purple { background: rgba(139,92,246,.18); color: #c4b5fd; }
[data-theme="dark"] .icon-badge-red    { background: rgba(229,75,112,.18); color: #f87171; }

/* Progress bar height modifier */
.progress-sm { height: 8px; }
