/* Professional admin theme, 2026-09-14. Scoped to opted-in interactive pages.
   Business/status classes and original print/export templates remain intact. */
@media screen {
  body.ui-professional {
    --primary: #18344d;
    --primary-light: #245b86;
    --accent: #245b86;
    --accent-light: #edf2f6;
    --success: #27634f;
    --danger: #a43739;
    --warning: #856322;
    --bg: #f4f6f8;
    --card-bg: #fff;
    --border: #dfe5eb;
    --text: #202c3a;
    --text-muted: #526170;
    --text-light: #637382;
    --side-bg: #18344d;
    --side-bg-2: #18344d;
    --side-w: 238px;
    --radius: 7px;
    --radius-lg: 8px;
    --shadow-sm: 0 1px 2px #18344d04;
    --shadow: 0 2px 8px #18344d06;
    --shadow-lg: 0 8px 24px #18344d12;
    --bs-body-color: #202c3a;
    --bs-body-bg: #f4f6f8;
    --bs-primary-rgb: 36, 91, 134;
    --bs-success-rgb: 39, 99, 79;
    --bs-danger-rgb: 164, 55, 57;
    --bs-warning-rgb: 133, 99, 34;
    --bs-info-rgb: 49, 99, 125;
    --bs-border-color: #dfe5eb;
    --bs-secondary-color: #526170;
    margin: 0;
    background: #f4f6f8 !important;
    color: #202c3a;
    font-family: "Microsoft JhengHei", "PingFang TC", "Segoe UI", sans-serif;
    font-size: 15px;
    line-height: 1.6;
  }
  .ui-professional :is(button, input, select, textarea) { font-family: inherit; }
  .ui-professional :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #967633;
    outline-offset: 3px;
  }
  .ui-professional .app-sidebar { background: var(--side-bg); padding: 30px 20px 20px; }
  .ui-professional .app-sidebar .side-logo { font-size: 20px; font-weight: 700; letter-spacing: 2px; padding: 4px 10px; }
  .ui-professional .app-sidebar .side-logo .ic { color: #d8be8f; }
  .ui-professional .app-sidebar .side-sub { color: #bfccd7; font-size: 12px; font-weight: 400; padding: 4px 10px; margin-bottom: 24px; }
  .ui-professional .side-nav { gap: 5px; }
  .ui-professional .side-link { min-height: 46px; padding: 11px 14px; font-size: 14px; font-weight: 500; color: #d2dce5; border-radius: 5px; }
  .ui-professional .side-link:hover { background: #29475f; color: #fff; }
  .ui-professional .side-link.active { background: #29475f; box-shadow: inset 3px 0 #cbb17b; color: #fff; }
  .ui-professional .side-foot .side-link { font-size: 13px; font-weight: 400; }
  .ui-professional .side-divider { background: #486074; margin: 18px 4px; }
  .ui-professional .app-main { min-width: 0; }
  .ui-professional .app-topbar { min-height: 72px; padding: 16px 32px; box-shadow: none; border-bottom: 1px solid var(--border); gap: 16px; }
  .ui-professional .topbar-title { font-size: 15px; font-weight: 600; letter-spacing: .3px; }
  .ui-professional .topbar-right { flex-wrap: wrap; justify-content: flex-end; }
  .ui-professional .app-content { padding: 28px 32px 40px; min-width: 0; }
  .ui-professional .app-content > .container-fluid { max-width: 1680px; margin-inline: auto; }
  .ui-professional :is(.admin-nav, .portal-nav) { background: #18344d !important; box-shadow: none !important; padding-block: 16px; }
  .ui-professional :is(.admin-nav, .portal-nav) .navbar-brand { font-size: 18px; letter-spacing: 1px; }
  .ui-professional .side-toggle { min-height: 44px; min-width: 44px; border-radius: 5px; }
  .ui-professional :is(h1, .page-title) { font-size: 26px; font-weight: 700; letter-spacing: .6px; }
  .ui-professional h2 { font-size: 22px; }
  .ui-professional h3 { font-size: 21px; }
  .ui-professional :is(h4, h5) { font-size: 18px; }
  .ui-professional h6 { font-size: 15px; }
  .ui-professional .fw-bold { font-weight: 600 !important; }
  .ui-professional .text-muted { color: var(--text-muted) !important; }
  .ui-professional :is(.system-header, .ui-page-heading) {
    background: transparent !important; color: var(--text) !important;
    box-shadow: none !important; border: 0 !important; border-radius: 0;
    padding: 8px 0 24px; gap: 16px; margin-bottom: 8px; flex-wrap: wrap;
  }
  .ui-professional :is(.system-header, .ui-page-heading) :is(.sys-title, h1, h2, h3, h4, .text-white) { color: var(--text) !important; }
  .ui-professional .system-header .sys-title { font-size: 26px; }
  .ui-professional .system-header .sys-desc { color: var(--text-muted); font-size: 14px; opacity: 1; }
  .ui-professional .system-header .sys-icon { display: none; }
  .ui-professional :is(.card, .pro-card, .form-section, .quick-card, .stat-card, .stat-card-v2, .search-bar) {
    border: 1px solid var(--border); border-radius: 8px;
    background: #fff; box-shadow: none;
  }
  .ui-professional :is(.card-header, .pro-card .card-header, .form-section .fs-header) {
    background: #fff !important; background-image: none !important;
    color: var(--text) !important; border-bottom: 1px solid var(--border) !important;
    padding: 18px 22px; font-size: 16px; font-weight: 600;
  }
  .ui-professional :is(.card-header, .fs-header) :is(.text-white, .text-light) { color: var(--text) !important; }
  .ui-professional :is(.card-body, .pro-card .card-body, .form-section .fs-body) { padding: 22px; }
  .ui-professional .form-section .fs-body { background: #fff; }
  .ui-professional :is(.card-body.p-0, .pro-card .card-body.p-0) { padding: 0 !important; }
  .ui-professional .stat-card { text-align: left; padding: 22px; height: 100%; }
  .ui-professional .stat-card .stat-icon { display: none; }
  .ui-professional :is(.stat-card, .stat-card-v2, .quick-card):hover { transform: none; box-shadow: none; }
  .ui-professional :is(.stat-value, .sc-value) { font-family: Georgia, "Microsoft JhengHei", serif; font-variant-numeric: tabular-nums; font-size: 29px; font-weight: 400; line-height: 1.3; margin: 6px 0 10px; }
  .ui-professional :is(.stat-label, .sc-label) { color: var(--text-muted); font-size: 13px; font-weight: 400; letter-spacing: .2px; }
  .ui-professional .stat-card-v2 { padding: 22px; border-left: 1px solid var(--border); }
  .ui-professional .sc-icon { background: #edf2f6 !important; color: #526b7f !important; border-radius: 5px; }
  .ui-professional .quick-card { text-align: left; padding: 25px; height: 100%; }
  .ui-professional .quick-card:hover { border-color: #8ba3b7; background: #fafcfd; }
  .ui-professional .quick-card .qc-icon { color: #526b7f !important; font-size: 24px; margin-bottom: 18px; }
  .ui-professional .portal-card { border: 1px solid var(--border); border-radius: 8px; box-shadow: none; }
  .ui-professional .portal-card:hover { transform: none; box-shadow: none; border-color: #8ba3b7; }
  .ui-professional .card:is(.bg-primary, .bg-success, .bg-danger, .bg-info, .bg-secondary, .bg-dark, .bg-warning) {
    background: #fff !important; color: var(--text) !important;
  }
  .ui-professional .card:is(.bg-primary, .bg-success, .bg-danger, .bg-info, .bg-secondary, .bg-dark, .bg-warning) > .card-body {
    color: var(--text) !important;
  }
  .ui-professional .ui-page-heading.navbar { padding: 20px 0; border-bottom: 1px solid var(--border) !important; }
  .ui-professional .ui-page-heading.navbar :is(.navbar-brand, .text-light) { color: var(--text) !important; }
  .ui-professional .ui-page-heading.navbar .btn-outline-light { color: var(--text); border-color: #b9c7d2; }
  .ui-professional .ui-page-heading.navbar :is(.container-fluid, .d-flex) { flex-wrap: wrap; gap: 10px; }
  .ui-professional #monthly-reminder { background: #fdfbf5 !important; border-color: #e7ddc8 !important; flex-wrap: wrap; }
  .ui-professional .qc-title { font-size: 16px; }
  .ui-professional .qc-desc { font-size: 14px; color: var(--text-muted); }
  .ui-professional .section-divider { font-size: 16px; border-bottom: 1px solid var(--border); padding-bottom: 12px; margin-top: 26px; }
  .ui-professional .search-bar { padding: 18px 22px; gap: 12px; }
  .ui-professional .search-bar .d-flex { flex-wrap: wrap; gap: 8px; }
  .ui-professional .search-bar form.d-flex { flex-wrap: nowrap; min-width: 0; }
  .ui-professional .search-bar input { min-width: 0; }
  .ui-professional .btn { border-radius: 5px; min-height: 40px; padding: 8px 14px; font-size: 14px !important; font-weight: 500 !important; white-space: nowrap; box-shadow: none; }
  .ui-professional .btn-pro { min-height: 40px; font-size: 14px; font-weight: 500; }
  .ui-professional .btn-pro:hover { transform: none; box-shadow: none; }
  .ui-professional :is(.btn-primary, .btn-pro-primary) { --bs-btn-bg: #245b86; --bs-btn-border-color: #245b86; --bs-btn-hover-bg: #194a70; --bs-btn-hover-border-color: #194a70; --bs-btn-active-bg: #194a70; background-color: #245b86; border-color: #245b86; color: #fff; }
  .ui-professional .btn-outline-primary { --bs-btn-color: #245b86; --bs-btn-border-color: #8da5ba; --bs-btn-hover-bg: #245b86; --bs-btn-hover-border-color: #245b86; }
  .ui-professional :is(.btn-success, .btn-pro-success) { background: #27634f; border-color: #27634f; color: #fff; }
  .ui-professional :is(.btn-danger, .btn-pro-danger) { background: #a43739; border-color: #a43739; color: #fff; }
  .ui-professional .btn-pro-outline { background: white; border: 1px solid #cbd4dd; color: #526170; }
  .ui-professional .btn-sm { min-height: 34px; padding: 5px 10px; font-size: 13px !important; }
  .ui-professional .action-group { gap: 6px; }
  .ui-professional :is(.form-control, .form-select) { min-height: 44px; border: 1px solid #cbd4dd; border-radius: 5px; font-size: 15px; color: var(--text); background-color: #fff; }
  .ui-professional :is(.form-control, .form-select):focus { border-color: #245b86; box-shadow: 0 0 0 3px #245b8618; }
  .ui-professional :is(.form-control, .form-select):disabled { background: #eef1f4; color: #637382; }
  .ui-professional :is(.form-control-sm, .form-select-sm) { font-size: 14px; min-height: 36px; }
  .ui-professional :is(.form-label, label) { font-size: 14px; font-weight: 500; }
  .ui-professional .form-text { font-size: 13px; color: var(--text-muted); }
  .ui-professional .input-group { flex-wrap: nowrap; }
  .ui-professional .input-group > :is(.form-control, .form-select) { min-width: 0; }
  .ui-professional :is(.table, .pro-table, .board-table) { font-size: 14px; --bs-table-bg: #fff; --bs-table-color: #202c3a; --bs-table-border-color: #e4e9ee; --bs-table-hover-bg: #f4f7f9; }
  .ui-professional :is(.table, .pro-table, .board-table) > thead > tr > th { background: #f7f9fb; color: var(--text-muted); font-size: 13px; padding: 13px 16px; font-weight: 500; border-bottom: 1px solid var(--border); }
  .ui-professional :is(.table, .pro-table) > tbody > tr > td { padding: 13px 16px; vertical-align: middle; }
  .ui-professional .pro-table :is(th, td) { white-space: nowrap; }
  .ui-professional .board-table :is(td, th) { padding: 10px 12px; font-size: 14px; }
  .ui-professional .table-responsive { border-radius: 6px; }
  .ui-professional .ui-table-scroll { max-width: 100%; overflow-x: auto; border-radius: 6px; }
  .ui-professional :is(.text-end, .stat-value, .sc-value) { font-variant-numeric: tabular-nums; }
  .ui-professional :is(.badge, .badge-pro) { font-size: 12px !important; font-weight: 500; padding: 5px 8px; border-radius: 4px; }
  .ui-professional :is(.badge, .badge-pro):is(.bg-primary, .bg-info) { background: #eaf0f6 !important; color: #245b86 !important; }
  .ui-professional :is(.badge, .badge-pro).bg-success { background: #eaf2ee !important; color: #27634f !important; }
  .ui-professional :is(.badge, .badge-pro).bg-danger { background: #faecec !important; color: #a43739 !important; }
  .ui-professional :is(.badge, .badge-pro).bg-warning { background: #f7efdf !important; color: #856322 !important; }
  .ui-professional :is(.badge, .badge-pro):is(.bg-dark, .bg-secondary) { background: #edf1f4 !important; color: #526170 !important; }
  .ui-professional .alert { border: 1px solid var(--border); border-left-width: 3px; border-radius: 6px; box-shadow: none !important; font-size: 14px; }
  .ui-professional .alert-danger { background: #fffafa; border-left-color: #a43739; color: #803638; }
  .ui-professional .alert-warning { background: #fdfbf5; border-left-color: #b89b61; color: #725921; }
  .ui-professional .alert-info { background: #f6f9fc; border-left-color: #62819a; color: #315773; }
  .ui-professional .alert-success { background: #f7fbf8; border-left-color: #54836e; color: #27634f; }
  .ui-professional .alert-card { padding: 20px; }
  .ui-professional .alert-item { box-shadow: none; border-bottom: 1px solid #e6eaee; font-size: 14px; padding: 12px 0; background: transparent; }
  .ui-professional .paid { background-color: #edf5f0 !important; }
  .ui-professional .overdue { background-color: #faeeee !important; }
  .ui-professional .due-today { background-color: #faf4e6 !important; }
  .ui-professional .prop-header { background: #eaf0f5 !important; color: #18344d !important; }
  .ui-professional :is(.nav-tabs, .nav-pills) .nav-link { font-size: 14px; font-weight: 500; padding: 12px 18px; color: var(--text-muted); }
  .ui-professional .nav-pills .nav-link.active { background: #245b86; color: #fff; }
  .ui-professional .nav-tabs .nav-link.active { color: #18344d; border-top: 2px solid #b89b61; }
  .ui-professional .filter-tabs .ft-btn { border-radius: 5px; min-height: 40px; font-size: 14px; }
  .ui-professional .filter-tabs .ft-btn.active { background: #245b86; border-color: #245b86; }
  .ui-professional .modal-content { border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow-lg); }
  .ui-professional .modal-header { background: white !important; color: var(--text) !important; border-bottom: 1px solid var(--border); padding: 18px 22px; }
  .ui-professional .modal-header .btn-close-white { filter: none; }
  .ui-professional .modal-body { padding: 22px; }
  .ui-professional .modal-footer { border-top: 1px solid var(--border); padding: 16px 22px; }
  /* Eight existing KPIs remain visible, in four readable columns instead of eight narrow ones. */
  .ui-professional .ui-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-inline: 0; }
  .ui-professional .ui-stat-grid > * { width: auto; padding: 0; margin: 0; }
  /* Canvas workspaces retain their geometry and tool-specific control sizes. */
  .ui-professional.ui-workspace .app-content { padding: 16px; }
  .ui-professional.ui-workspace .btn-sm { min-height: 28px; padding: 3px 8px; }
  .ui-professional.ui-workspace :is(.toolbar, .left-panel, .right-panel) { background: #18344d; color: #d2dce5; border-color: #486074; }
  .ui-professional.ui-workspace .toolbar .separator { background: #486074; }
  .ui-professional.ui-workspace .tool-btn { color: #d2dce5; }
  .ui-professional.ui-workspace .tool-btn:hover { background: #29475f; color: #fff; }
  .ui-professional.ui-workspace .tool-btn.active { background: #37607d; border-color: #b89b61; color: #fff; }
  .ui-professional.ui-workspace .panel-section { border-color: #486074; }
  .ui-professional.ui-workspace .panel-section h3 { color: #d8be8f; font-size: 14px; }
  .ui-professional.ui-workspace :is(.panel-toggle, .panel-toggle::before) { color: #d8be8f; }
  .ui-professional.ui-workspace .floor-tab { background: #18344d; color: #d2dce5; border-color: #486074; }
  .ui-professional.ui-workspace .floor-tab.active { background: #37607d; color: white; border-color: #b89b61; }
  .ui-professional.ui-workspace .ai-card { box-shadow: none; border: 1px solid var(--border); border-radius: 8px; }
  body.ui-professional:has(.login-card) { overflow-x: hidden; overflow-y: auto; padding-block: 32px; }
  body.ui-professional:has(.login-card)::before { display: none; animation: none; }
  .ui-professional .login-card { border: 1px solid var(--border); border-top: 3px solid #b89b61; border-radius: 8px; box-shadow: 0 8px 28px #18344d0a; background: white; backdrop-filter: none; }
  .ui-professional .logo-icon { background: #18344d; border: 1px solid #b89b61; border-radius: 6px; width: 58px; height: 58px; font-size: 26px; box-shadow: none; }
  .ui-professional :is(.login-sub, .footer-text, .back-link) { color: var(--text-muted); }
  .ui-professional .login-card .form-control::placeholder { color: #637382; }
  .ui-professional .btn-login { background: #245b86; border: 1px solid #245b86; border-radius: 5px; color: white; letter-spacing: 1px; }
  .ui-professional .btn-login:hover { background: #194a70; color: white; transform: none; box-shadow: none; }
  .ui-professional .demo-box { background: #f4f7fa; border-color: var(--border); border-radius: 6px; }
  @media (max-width: 1199.98px) {
    .ui-professional .app-content { padding: 24px; }
    .ui-professional .stat-card { padding: 18px; }
    .ui-professional .stat-value { font-size: 25px; }
  }
  @media (max-width: 991.98px) {
    .ui-professional .app-topbar { min-height: 64px; padding: 10px 20px; }
    .ui-professional .app-sidebar { visibility: hidden; }
    .ui-professional.sidebar-open .app-sidebar { visibility: visible; }
    .ui-professional .ui-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 575.98px) {
    .ui-professional .app-content { padding: 18px 14px 28px; }
    .ui-professional .app-topbar { padding: 8px 12px; flex-wrap: wrap; gap: 8px; }
    .ui-professional .topbar-right { max-width: 100%; }
    .ui-professional :is(.system-header .sys-title, h1, .page-title) { font-size: 23px; }
    .ui-professional :is(.card-body, .pro-card .card-body, .form-section .fs-body) { padding: 16px; }
    .ui-professional :is(.card-header, .pro-card .card-header, .form-section .fs-header) { padding: 16px; }
    .ui-professional .search-bar { padding: 14px; }
    .ui-professional .search-bar form { width: 100%; }
    .ui-professional .ui-stat-grid { gap: 12px; }
    .ui-professional .stat-card { padding: 16px 12px; }
    .ui-professional .stat-value { font-size: 23px; overflow-wrap: anywhere; }
    .ui-professional .quick-card { padding: 20px; }
    .ui-professional :is(.admin-nav, .portal-nav) > .container-fluid { gap: 12px; flex-wrap: wrap; }
    .ui-professional :is(.admin-nav, .portal-nav) .d-flex { flex-wrap: wrap; gap: 8px; }
    .ui-professional :is(.btn, .btn-sm) { min-height: 44px; }
    .ui-professional.ui-workspace .btn-sm { min-height: 32px; }
    .ui-professional .login-card { padding: 28px 22px; }
    .ui-professional.ui-workspace .modal-overlay .modal { min-width: 0 !important; width: calc(100vw - 32px); max-width: 100%; max-height: calc(100dvh - 32px); overflow: auto; }
  }
  @media (prefers-reduced-motion: reduce) {
    .ui-professional :is(.app-sidebar, .quick-card, .stat-card, .stat-card-v2, .btn-pro) { transition: none; }
  }
}
