/* Scoped Learning Ledger treatment for user-owned pages. */
.user-ledger-page .google-auth-button {
  align-items: center;
  background: #fff;
  border: 1px solid #747775;
  border-radius: 4px;
  color: #1f1f1f;
  display: inline-flex;
  font: 500 14px/20px Arial, sans-serif;
  gap: 12px;
  justify-content: center;
  min-height: 44px;
  padding: 0 12px;
  width: 100%;
}
.user-ledger-page .google-auth-button:hover { background: #f8faff; border-color: #d2e3fc; }
.user-ledger-page .google-auth-mark { background: #fff; height: 20px; width: 20px; }
.profile-dash-wrap,
.user-ledger-page {
  --user-paper: var(--site-paper, #f5f2e9);
  --user-paper-deep: var(--site-paper-deep, #ebe6da);
  --user-white: var(--site-white, #fffdf8);
  --user-ink: var(--site-ink, #1e302f);
  --user-muted: var(--site-muted, #52635f);
  --user-teal: var(--site-teal, #174c4a);
  --user-teal-deep: var(--site-teal-deep, #103937);
  --user-clay: var(--site-clay, #b65e47);
  --user-rule: var(--site-rule, #c9cec5);
  background-color: var(--user-paper);
  color: var(--user-ink);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.55;
}

.profile-dash-wrap { min-height: 100vh; padding-bottom: 2.5rem; }
.profile-dash-wrap :is(button, input, select, textarea),
.user-ledger-page :is(button, input, select, textarea) {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}
.profile-dash-wrap :focus-visible,
.user-ledger-page :focus-visible { outline: 2px solid var(--user-clay); outline-offset: 3px; }
.profile-dash-wrap ::selection,
.user-ledger-page ::selection { background: var(--user-teal); color: var(--user-white); }

.profile-dash-wrap [id^="section-"] { scroll-margin-top: 5rem; }
.profile-mobile-picker { border-bottom: 1px solid var(--user-rule); padding-bottom: .9rem; }
.profile-mobile-picker .form-label { color: var(--user-muted); font-family: system-ui, sans-serif; }

/* Keep the familiar desktop sidebar, replacing its unrelated purple theme. */
.profile-sidebar-dash {
  background: var(--user-paper-deep);
  border: 1px solid var(--user-rule);
  border-radius: 2px;
  box-shadow: none;
  max-height: calc(100vh - 88px);
  padding: 1rem .55rem 1.25rem;
  scrollbar-color: var(--user-muted) var(--user-paper-deep);
  scrollbar-width: thin;
  top: 76px;
}
.profile-sidebar-dash .psd-avatar { background: var(--user-teal); border: 1px solid var(--user-rule); color: var(--user-white); }
[data-bs-theme="dark"] .profile-sidebar-dash .psd-avatar { color: #102d2a; }
.profile-sidebar-dash .psd-name,
.profile-sidebar-dash .nav-link { color: var(--user-ink); }
.profile-sidebar-dash .psd-sub,
.profile-sidebar-dash .nav-section { color: var(--user-muted); }
.profile-sidebar-dash .psd-role { background: var(--user-white); border: 1px solid var(--user-rule); border-radius: 2px; color: var(--user-ink); }
.profile-sidebar-dash .nav-section { border-top: 1px solid var(--user-rule); margin-top: .65rem; padding-top: .65rem; }
.profile-sidebar-dash .nav-link {
  border-radius: 2px;
  font: 500 .8rem/1.35 system-ui, -apple-system, "Segoe UI", sans-serif;
  padding: .38rem .65rem;
  transition: background-color .15s ease, color .15s ease;
}
.profile-sidebar-dash .nav-link:hover,
.profile-sidebar-dash .nav-link:focus-visible,
.profile-sidebar-dash .nav-link.active { background: var(--user-white); color: var(--user-teal-deep); }

/* Align existing profile metrics as ruled registers, not floating tiles. */
.profile-dash-wrap .profile-metric-register {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  border-block: 1px solid var(--user-rule);
  margin-block: .8rem 1rem;
}
.profile-dash-wrap .kpi-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-height: 6rem;
  padding: .85rem .7rem !important;
  transition: background-color .15s ease;
}
.profile-dash-wrap .profile-metric-register > [class*="col-"]:not(:last-child) .kpi-card {
  border-right: 1px solid var(--user-rule);
}
.profile-dash-wrap .kpi-card:hover { background: var(--user-white); transform: none; }
.profile-dash-wrap .kpi-card .display-6 {
  color: var(--user-teal) !important;
  font: 500 clamp(1.55rem, 2.5vw, 2rem)/1.1 Georgia, "Times New Roman", serif;
  font-variant-numeric: tabular-nums;
}
.profile-dash-wrap .kpi-card .text-muted {
  color: var(--user-muted) !important;
  font-family: system-ui, sans-serif;
}

.profile-dash-wrap .dash-section-label {
  border-bottom: 1px solid var(--user-ink);
  color: var(--user-ink);
  font: 500 clamp(1.15rem, 2vw, 1.45rem)/1.25 Georgia, "Times New Roman", serif;
  letter-spacing: -.02em;
  margin: 1.8rem 0 .7rem;
  padding-bottom: .45rem;
  text-transform: none;
}

.profile-dash-wrap .dash-card,
.profile-dash-wrap .balance-dash-card {
  background-color: var(--user-white);
  border: 1px solid var(--user-rule);
  border-radius: 2px;
  box-shadow: none;
  color: var(--user-ink);
}
.profile-dash-wrap .dash-card { margin-bottom: .85rem; }
.profile-dash-wrap .dash-card .dash-card-hdr {
  background: var(--user-paper-deep);
  border-bottom: 1px solid var(--user-rule);
  color: var(--user-ink);
  font-family: system-ui, sans-serif;
  min-height: 2.9rem;
  padding: .72rem .9rem;
}
.profile-dash-wrap .dash-card .dash-card-hdr:hover { background: var(--user-paper); }

/* Preserve balance form contrast while bringing its panel into the Ledger palette. */
.profile-dash-wrap .balance-dash-card {
  background: var(--user-teal);
  border-color: var(--user-teal);
  color: #fffdf8;
  padding: clamp(1rem, 3vw, 1.5rem);
}
.profile-dash-wrap .balance-dash-card .balance-val {
  background: none;
  color: #fffdf8;
  font: 500 clamp(1.8rem, 4vw, 2.4rem)/1.1 Georgia, "Times New Roman", serif;
  font-variant-numeric: tabular-nums;
  -webkit-background-clip: initial;
  -webkit-text-fill-color: currentColor;
}

.profile-dash-wrap table {
  --bs-table-color: var(--user-ink);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--user-rule);
  margin-bottom: 0;
}
.profile-dash-wrap .table > :not(caption) > * > * { padding: .58rem .7rem; }
.profile-dash-wrap .table thead th {
  background: var(--user-paper-deep);
  color: var(--user-muted);
  font: 700 .72rem/1.35 system-ui, sans-serif;
  white-space: nowrap;
}
.profile-dash-wrap .table-light { --bs-table-bg: var(--user-paper-deep); --bs-table-color: var(--user-ink); }
.profile-dash-wrap .table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: var(--user-paper-deep);
  color: var(--user-ink);
}
.profile-dash-wrap .table-responsive { scrollbar-color: var(--user-muted) var(--user-paper); scrollbar-width: thin; }

.profile-dash-wrap .form-control,
.profile-dash-wrap .form-select,
.user-ledger-page .form-control,
.user-ledger-page .form-select {
  background-color: var(--user-white);
  border-color: var(--user-rule);
  border-radius: 2px;
  color: var(--user-ink);
}
.profile-dash-wrap .google-link-password { max-width: 18rem; }
.profile-dash-wrap .btn,
.user-ledger-page .btn { border-radius: 2px; }
.profile-dash-wrap .btn-primary,
.user-ledger-page .btn-primary {
  --bs-btn-bg: var(--user-teal);
  --bs-btn-border-color: var(--user-teal);
  --bs-btn-color: var(--user-white);
  --bs-btn-hover-bg: var(--user-teal-deep);
  --bs-btn-hover-border-color: var(--user-teal-deep);
  --bs-btn-hover-color: var(--user-white);
  --bs-btn-active-bg: var(--user-teal-deep);
  --bs-btn-active-border-color: var(--user-teal-deep);
  --bs-btn-active-color: var(--user-white);
  --bs-btn-focus-shadow-rgb: 182, 94, 71;
}
.profile-dash-wrap .btn-outline-primary,
.user-ledger-page .btn-outline-primary {
  --bs-btn-color: var(--user-teal);
  --bs-btn-border-color: var(--user-teal);
  --bs-btn-hover-bg: var(--user-teal);
  --bs-btn-hover-border-color: var(--user-teal);
  --bs-btn-hover-color: var(--user-white);
  --bs-btn-active-bg: var(--user-teal-deep);
  --bs-btn-active-border-color: var(--user-teal-deep);
  --bs-btn-active-color: var(--user-white);
}

.profile-dash-wrap .modal-content,
.profile-dash-wrap .offcanvas,
.user-ledger-page .modal-content {
  background: var(--user-white);
  border-color: var(--user-rule);
  border-radius: 2px;
  color: var(--user-ink);
}
.profile-dash-wrap .modal-header,
.profile-dash-wrap .modal-footer,
.profile-dash-wrap .offcanvas-header { border-color: var(--user-rule); }
.profile-dash-wrap .accordion-item {
  background: var(--user-white);
  border-color: var(--user-rule);
  color: var(--user-ink);
}
.profile-dash-wrap .accordion-button { background: var(--user-white); color: var(--user-ink); }
.profile-dash-wrap .accordion-button:not(.collapsed) {
  background: var(--user-paper-deep);
  color: var(--user-teal-deep);
}

/* Routed account, guide, terms and course forms share the same paper surface. */
.user-ledger-page > .container,
.user-ledger-page > .container-fluid,
.user-ledger-page > .container-xl { padding-block: clamp(1.25rem, 3vw, 2.5rem); }
.user-ledger-page .card {
  background: var(--user-white);
  border: 1px solid var(--user-rule) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  color: var(--user-ink);
}
.user-ledger-page .card-header { background: var(--user-paper-deep); border-color: var(--user-rule); }
.user-ledger-page :is(h1, h2, h3, h4, h5) {
  color: var(--user-ink);
  font-family: Georgia, "Times New Roman", serif;
}
.user-ledger-page .text-muted { color: var(--user-muted) !important; }
.user-ledger-page a:not(.btn) { color: var(--user-teal); text-underline-offset: .16em; }
.user-ledger-page .nav-tabs { border-color: var(--user-rule); }
.user-ledger-page .nav-tabs .nav-link { color: var(--user-muted); }
.user-ledger-page .nav-tabs .nav-link.active {
  background: var(--user-white);
  border-color: var(--user-rule) var(--user-rule) var(--user-white);
  color: var(--user-teal-deep);
}
.user-ledger-page .alert {
  background: var(--user-paper-deep);
  border-color: var(--user-rule);
  border-radius: 2px;
  color: var(--user-ink);
}
.user-ledger-page .form-label,
.user-ledger-page .form-check-label { color: var(--user-ink); }
.user-ledger-page .input-group-text { background: var(--user-paper-deep); border-color: var(--user-rule); color: var(--user-ink); }
.user-ledger-page .form-text { color: var(--user-muted); }
.user-ledger-page .btn-outline-secondary { --bs-btn-color: var(--user-ink); --bs-btn-border-color: var(--user-rule); --bs-btn-hover-bg: var(--user-paper-deep); --bs-btn-hover-color: var(--user-ink); --bs-btn-hover-border-color: var(--user-muted); }
.user-ledger-page .btn-secondary { --bs-btn-bg: var(--user-paper-deep); --bs-btn-border-color: var(--user-rule); --bs-btn-color: var(--user-ink); --bs-btn-hover-bg: var(--user-paper); --bs-btn-hover-color: var(--user-ink); --bs-btn-hover-border-color: var(--user-muted); }
.user-ledger-page .btn-outline-info { --bs-btn-color: var(--user-teal); --bs-btn-border-color: var(--user-teal); --bs-btn-hover-bg: var(--user-teal); --bs-btn-hover-border-color: var(--user-teal); --bs-btn-hover-color: var(--user-white); }
.user-ledger-page #calendarDays .calendar-day { background: var(--user-white); border-color: var(--user-rule); color: var(--user-ink); }
.user-ledger-page #calendarDays .calendar-day:hover:not(.empty) { background: var(--user-paper-deep); }
.user-ledger-page #calendarDays .calendar-day.selected { background: var(--user-teal); border-color: var(--user-teal); color: var(--user-white); }
.user-ledger-page #calendarDays .calendar-day.current-day { border: 2px solid var(--user-clay); }

.user-guide-ledger .card-body { padding: clamp(1rem, 3vw, 2rem); }
.user-guide-ledger .profile-guide-content { color: var(--user-ink); }
.user-guide-ledger .profile-guide-content :is(h1, h2, h3, h4) {
  border-bottom: 1px solid var(--user-rule);
  margin-block: 1.8rem .8rem;
  padding-bottom: .4rem;
}
.user-guide-ledger .profile-guide-content pre,
.user-guide-ledger .profile-guide-content code { background: var(--user-paper-deep); color: var(--user-ink); }
.user-guide-ledger .profile-guide-content pre { border: 1px solid var(--user-rule); border-radius: 2px; overflow-x: auto; padding: .9rem; }
.user-profile-card { background: var(--user-white, #fffdf8); border: 1px solid var(--user-rule, #c9cec5) !important; border-radius: 2px !important; color: var(--user-ink, #1e302f); width: min(18rem, 100%) !important; }
.user-profile-card .card-body { color: var(--user-ink, #1e302f); }
.user-profile-card .card-body > .card.text-bg-light { background: var(--user-paper-deep, #ebe6da) !important; border-color: var(--user-rule, #c9cec5) !important; color: var(--user-ink, #1e302f) !important; }
.user-profile-card .icon-demo { border-color: var(--user-rule, #c9cec5) !important; color: var(--user-teal, #174c4a); }
.user-profile-card :is(.text-bg-success, .text-bg-info) { background: var(--user-paper-deep, #ebe6da) !important; color: var(--user-teal, #174c4a) !important; }
.user-settings-ledger .offcanvas-header { border-bottom: 1px solid var(--user-rule); }

/* Existing calendar and messaging controls inherit the same user-area palette. */
.profile-dash-wrap :is(.calendar-container, .today-container) { color: var(--user-ink); }
.profile-dash-wrap .calendar-table { border-color: var(--user-rule); }
.profile-dash-wrap .calendar-table :is(th, td) { border-color: var(--user-rule); text-align: center; }
.profile-dash-wrap .calendar-table th { background: var(--user-paper-deep); color: var(--user-muted); font: 700 .72rem/1.3 system-ui, sans-serif; }
.profile-dash-wrap .calendar-table :is(.table-light, .bg-white, .bg-light) { --bs-table-bg: var(--user-white); background-color: var(--user-white) !important; color: var(--user-ink) !important; }
.profile-dash-wrap .calendar-table .table-success { --bs-table-bg: var(--user-paper-deep); --bs-table-color: var(--user-teal-deep); }
.profile-dash-wrap .calendar-table .table-warning { --bs-table-bg: var(--user-paper-deep); --bs-table-color: var(--user-ink); }
.profile-dash-wrap .calendar-day[onclick] { cursor: pointer; }
.profile-dash-wrap .calendar-day[onclick]:hover { background: var(--user-paper-deep) !important; }
.profile-dash-wrap .time-slot { background: var(--user-white) !important; border-color: var(--user-rule) !important; color: var(--user-ink); }
.profile-dash-wrap .schedule-header { align-items: center; border-bottom: 1px solid var(--user-rule); display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; padding-bottom: .7rem; }
.profile-dash-wrap #threadMessages { background: var(--user-paper) !important; border-color: var(--user-rule) !important; }
.profile-dash-wrap .offcanvas-body > :is(#messagesListView, #threadView) { color: var(--user-ink); }
.profile-dash-wrap #messagesListView > .border,
.profile-dash-wrap #messagesListView .table-responsive,
.profile-dash-wrap #threadView #threadMessages { border-color: var(--user-rule) !important; }
.profile-messages-ledger { --user-paper: var(--site-paper, #f5f2e9); --user-paper-deep: var(--site-paper-deep, #ebe6da); --user-white: var(--site-white, #fffdf8); --user-ink: var(--site-ink, #1e302f); --user-muted: var(--site-muted, #52635f); --user-teal: var(--site-teal, #174c4a); --user-rule: var(--site-rule, #c9cec5); background: var(--user-white); color: var(--user-ink); }
.profile-messages-ledger .offcanvas-header { background: var(--user-paper-deep); border-color: var(--user-rule) !important; }
.profile-messages-ledger .offcanvas-title,
.profile-messages-ledger h6,
.profile-messages-ledger #threadTitle { color: var(--user-ink); }
.profile-messages-ledger #messagesListView > .border,
.profile-messages-ledger #messagesListView .table-responsive,
.profile-messages-ledger #threadView #threadMessages { border-color: var(--user-rule) !important; }
.profile-messages-ledger #messagesListView > .border,
.profile-messages-ledger #threadMessages { background: var(--user-paper) !important; }
.profile-messages-ledger .table { --bs-table-color: var(--user-ink); --bs-table-bg: transparent; --bs-table-border-color: var(--user-rule); }
.profile-messages-ledger .table-light { --bs-table-bg: var(--user-paper-deep); --bs-table-color: var(--user-ink); }
.profile-dash-wrap #prompts-cards .card { background: var(--user-white); border: 1px solid var(--user-rule) !important; border-radius: 2px !important; box-shadow: none !important; color: var(--user-ink); }
.profile-dash-wrap #prompts-cards .card .text-muted { color: var(--user-muted) !important; }
.profile-dash-wrap .border.rounded-3 { border-color: var(--user-rule) !important; border-radius: 2px !important; }
.user-ledger-page .shadow { background: var(--user-white) !important; border: 1px solid var(--user-rule); border-radius: 2px !important; box-shadow: none !important; color: var(--user-ink); }

/* Compact profile controls while retaining every existing field and hook. */
.profile-dash-wrap #baseForm .input-group { max-width: 100%; }
.profile-dash-wrap #baseForm .input-group[style*="width"] { width: min(100%, 42rem) !important; }
.profile-dash-wrap #baseForm .input-group-text { background: var(--user-paper-deep); border-color: var(--user-rule); color: var(--user-ink); }
.profile-dash-wrap #baseForm textarea.form-control { min-height: 7rem; }
.profile-dash-wrap #addMenteeForm .form-text,
.profile-dash-wrap #addMentorForm .form-text { color: var(--user-muted); }
.profile-dash-wrap #addMenteeForm .form-check,
.profile-dash-wrap #addMentorForm .form-check { border-bottom: 1px solid var(--user-rule); padding: .55rem 0 .55rem 1.5rem; }
.profile-dash-wrap #addMenteeForm .form-check:last-of-type,
.profile-dash-wrap #addMentorForm .form-check:last-of-type { border-bottom: 0; }

[data-bs-theme="dark"] .profile-dash-wrap .calendar-table .table-success,
[data-bs-theme="dark"] .profile-dash-wrap .calendar-table .table-warning { color: var(--user-ink); }
[data-bs-theme="dark"] .user-ledger-page #calendarDays .calendar-day.selected { color: #102d2a; }
[data-bs-theme="dark"] .profile-dash-wrap .calendar-legend .badge { background: var(--user-paper-deep) !important; color: var(--user-ink) !important; }

@media (max-width: 575.98px) {
  .profile-dash-wrap .profile-metric-register > [class*="col-"]:nth-child(2) .kpi-card { border-right: 0; }
.profile-dash-wrap .profile-metric-register > [class*="col-"]:nth-child(n+3) .kpi-card { border-top: 1px solid var(--user-rule); }
}

@media (min-width: 576px) and (max-width: 1199.98px) {
  .profile-dash-wrap .profile-metric-register > [class*="col-"] .kpi-card { border-right: 0; }
  .profile-dash-wrap .profile-metric-register > [class*="col-"]:nth-child(odd) .kpi-card { border-right: 1px solid var(--user-rule); }
}

[data-bs-theme="dark"] .profile-dash-wrap .balance-dash-card { color: #102d2a; }
[data-bs-theme="dark"] .profile-dash-wrap .balance-dash-card :is(.text-white, .text-white-50) { color: #102d2a !important; }
[data-bs-theme="dark"] .profile-dash-wrap .balance-dash-card .balance-val { color: #102d2a; }
