/* Approved ivory / sage visual system. Scoped; no data or permission rules. */
body.xihe-warm {
  --accent:#4c684f; --accent-hover:#3c5540; --primary-color:#4c684f;
  --main-bg:#f8f6ee; --content-bg:#f8f6ee; --card-bg:#fcfaf4;
  --sidebar-bg:#f0eee5; --sidebar-hover:#e8e9de; --sidebar-active-bg:#e2e7d9;
  --sidebar-text:#42483e; --sidebar-width:216px;
  --text-primary:#30352d; --text-secondary:#596052; --text-muted:#7c8074;
  --border-color:#e5e1d5; --success:#4c684f; --danger:#b65a4d;
  --topnav-bg:#f0eee5; --text-color:#30352d; --sidebar-active:#e2e7d9;
  --success-color:#4c684f; --warning-color:#946c2d; --danger-color:#b65a4d; --info-color:#637658;
  --warning:#946c2d; --orange:#946c2d; --danger-hover:#94483d;
  --status-expired:#b65a4d; --status-urgent:#946c2d; --status-ok:#4c684f; --status-unknown:#7c8074;
  --shadow-lg:0 16px 48px rgb(70 67 43 / 12%);
  --warm-heading:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px;
  --shadow-sm:0 1px 3px rgb(70 67 43 / 3%);
  --shadow-md:0 8px 24px rgb(70 67 43 / 7%);
  color:var(--text-primary); background:var(--main-bg);
}
.warm-brand { display:none; }
.xihe-warm :is(button,a,input,select,textarea):focus-visible { outline:2px solid #68896b; outline-offset:3px; }
.xihe-warm :is(.btn,.form-control,.cert-ach-filter input,.cert-ach-filter select) { border-radius:10px; }
.xihe-warm .btn {
  min-height:36px; padding:7px 14px; font-size:13px; font-weight:500;
  border:1px solid var(--border-color); box-shadow:none;
  transition:background 140ms ease,border-color 140ms ease,box-shadow 140ms ease,transform 140ms ease;
}
.xihe-warm .btn:hover { transform:translateY(-1px); box-shadow:0 3px 8px rgb(70 67 43 / 7%); }
.xihe-warm .btn:active { transform:translateY(0); box-shadow:none; }
.xihe-warm :is(.btn-primary,.btn-success) { background:#4c684f; border-color:#4c684f; color:#fff; }
.xihe-warm :is(.btn-primary,.btn-success):hover { background:#3e5942; border-color:#3e5942; }
.xihe-warm .btn-secondary { background:#faf8f1; border-color:#e1ddce; color:#4c5547; }
.xihe-warm :is(.btn-danger,.cert-delete) { color:#b65a4d; background:transparent; border-color:#e9cfc6; }
.xihe-warm .btn-danger:hover { background:#f8ece4; }
.xihe-warm .form-control { min-height:38px; border-color:#e1ddcf; background:#fcfaf5; font-size:14px; color:#42483e; }
.xihe-warm :is(.form-control,.cert-ach-filter input,.cert-ach-filter select):focus { border-color:#8b9f7e; box-shadow:0 0 0 3px rgb(109 135 88 / 10%); outline:none; }
.xihe-warm input::placeholder { color:#96988c; }
.xihe-warm :is(.card,.data-table-wrapper,.cert-sheet,.cert-group-card) { border:1px solid #e7e2d5; border-radius:15px; background:#fcfaf4; box-shadow:0 2px 4px rgb(70 67 43 / 2%); }
.xihe-warm a { color:var(--accent); text-decoration:none; }
.xihe-warm a:not(.btn):hover { text-decoration:underline; }
.xihe-warm .badge { border-radius:7px; font-size:12px; font-weight:500; padding:3px 8px; background:#e6ebde !important; color:#4b6549 !important; }
.xihe-warm :is(.badge-expired,.badge-urgent,.cert-state-bad) { background:#f6e4db !important; color:#a34e40 !important; }
.xihe-warm :is(.badge-warning,.cert-state-warn) { background:#f7ebd1 !important; color:#946c2d !important; }
.xihe-warm :is(.badge-unknown,.badge-neutral) { background:#ebe9e0 !important; color:#787b70 !important; }
.xihe-warm :is(.badge-info,.gender-badge) { background:#e7ecdf !important; color:#52694e !important; }
.xihe-warm .cert-state-good { background:#e5ebdd; color:#4b6549; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) { border-collapse:separate; border-spacing:0; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) th {
  background:#efede3; color:#565c50; font-weight:500; font-size:13px;
  padding:13px 16px; border-bottom:1px solid #e7e2d6;
}
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) td {
  padding:15px 16px; font-size:14px; line-height:1.6;
  color:#41483d; border-bottom:1px solid #eeeadf;
  transition:background-color 120ms ease;
}
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tbody tr:nth-child(even),
.xihe-warm :is(.cert-table,.cert-related-table) tbody tr:nth-child(even) td { background:transparent; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tbody tr:hover,
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tbody tr:hover td { background:#e9eddf; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tbody tr:hover td:first-child { border-radius:10px 0 0 10px; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tbody tr:hover td:last-child { border-radius:0 10px 10px 0; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) thead th:first-child { border-radius:13px 0 0 0; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) thead th:last-child { border-radius:0 13px 0 0; }
.xihe-warm :is(.data-table,.cert-table,.cert-related-table) tr:last-child td { border-bottom:0; }
.xihe-warm .person-list-page > .card { padding:0; background:transparent; box-shadow:none; border:0; }
.xihe-warm .person-list-page .toolbar { padding:0 0 20px; }
.xihe-warm .person-table-wrap { border:1px solid #e7e2d5; border-radius:15px; background:#fcfaf4; }
.xihe-warm .person-list-page .person-name { color:#3e4a38; font-size:15px; font-weight:600; }
.xihe-warm .person-list-page .person-count { gap:4px; color:#4c684f; }
.xihe-warm .person-list-page .person-count .badge { background:none !important; color:inherit !important; padding:0; font-size:16px; font-weight:600; }
.xihe-warm .person-list-page .count-unit { font-size:12px; color:#7c8074; }
.xihe-warm .person-list-page .action-links { gap:13px; font-size:13px; }
.xihe-warm .person-list-page .delete { color:#b65a4d; }
.xihe-warm .gender-badge { background:none !important; color:#646b5b !important; }
.xihe-warm .cert-list-page .cert-split-layout { gap:24px; }
.xihe-warm .cert-list-page .cert-left-panel { width:252px; min-width:252px; background:none; border:0; border-right:1px solid #e5e0d4; border-radius:0; box-shadow:none; padding-right:14px; max-height:calc(100vh - 170px); }
.xihe-warm .cert-list-page .cert-right-panel { background:none; border:0; box-shadow:none; border-radius:14px; overflow:visible; }
.xihe-warm .cert-list-page .person-search-box { padding:0 0 18px; }
.xihe-warm .cert-list-page .person-search-box .form-control { width:100%; padding:9px; font-size:12px; background:#fcfaf4; }
.xihe-warm .cert-list-page .cert-type-filter { padding:0; background:none; border:0; }
.xihe-warm .cert-list-page .cert-type-filter-label { color:#848777; font-size:12px; margin:0 0 12px; }
.xihe-warm .cert-list-page .cert-type-tags { gap:4px; }
.xihe-warm .cert-list-page #certTypeFilter .cert-type-tags { flex-direction:row; flex-wrap:wrap; gap:5px; }
.xihe-warm .cert-list-page #certTypeFilter .cert-tag-group:not(.collapsed) > .cert-type-tags { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.xihe-warm .cert-list-page #certTypeFilter .cert-tag-group .cert-type-tag { padding:4px 3px; white-space:nowrap; text-align:center; }
.xihe-warm .cert-list-page .cert-tag-group { margin:9px 0; }
.xihe-warm .cert-list-page .cert-tag-group-title { color:#555e4d; font-size:13px; font-weight:600; letter-spacing:0; padding:4px 3px 8px; }
.xihe-warm .cert-list-page .cert-tag-group-title::before { color:#737c68; }
.xihe-warm .cert-list-page .cert-type-tag { padding:4px 8px; border-radius:8px; color:#626958; background:#f1f1e7; border-color:#e4e5d8; font-size:12px; line-height:1.45; }
.xihe-warm .cert-list-page .cert-type-tag:hover { background:#efeee4; color:#3f5941; }
.xihe-warm .cert-list-page .cert-type-tag.active { background:#e4e9db !important; border-color:#e4e9db; color:#456246 !important; }
.xihe-warm .cert-list-page .cert-panel-header { padding:14px 0 18px; border-bottom:1px solid #e5e0d3; }
.xihe-warm .cert-list-page .cert-panel-header h2 { font-family:var(--warm-heading); font-size:23px !important; color:#30382c; }
.xihe-warm .cert-list-page .cert-group-head { padding:12px 0 18px; font-size:17px; background:none; }
.xihe-warm .cert-list-page :is(.cert-group-content,.cert-scroll-wrap,.cert-table-wrapper) { background:transparent; border-radius:14px; }
.xihe-warm .cert-list-page .cert-group-card { background:transparent; box-shadow:none; border:0; border-radius:14px; }
.xihe-warm .cert-list-page .cert-type-name { font-size:14px !important; font-weight:600; color:#3c4435; }
.xihe-warm .cert-list-page .cert-no-inline { font-size:13px !important; color:#505b49 !important; }
.xihe-warm .cert-list-page #certPanelContent .cert-table :is(th,td) { padding:13px 12px; }
.xihe-warm .cert-list-page .cert-group-title-bar { background:#edeedf; border-left-color:#829776; border-radius:10px; padding:11px 14px; }
.xihe-warm .cert-list-page .cert-group-badge { background:#75876c; }
.xihe-warm .cert-breadcrumb { margin:0 0 20px; color:#8b8f80; }
.xihe-warm .cert-sheet { background:#fcfaf5; margin-bottom:18px; border-color:#e5e0d4; border-radius:16px; box-shadow:none; }
.xihe-warm .cert-sheet-heading { padding:20px 24px; border-color:#e9e4d9; }
.xihe-warm .cert-eyebrow { color:#858a7b; font-size:12px; }
.xihe-warm .cert-major { color:#65705e; }
.xihe-warm .cert-facts { gap:22px; padding:22px 24px; }
.xihe-warm .cert-facts dt { color:#7f8575; font-size:12px; }
.xihe-warm .cert-facts dd { color:#3d4635; }
.xihe-warm :is(.cert-fact-note,.cert-period span+span,#certAchCount) { color:#818775; }
.xihe-warm .cert-section-heading { padding:18px 20px 16px; }
.xihe-warm .cert-section-heading h2 { font-family:var(--warm-heading); font-size:24px; }
.xihe-warm .cert-ach-filter { padding:0 20px 18px; gap:10px; }
.xihe-warm .cert-ach-filter label { color:#68715e; }
.xihe-warm .cert-ach-filter :is(select,input) { background:#fcfaf6; border-color:#e1ddce; width:145px; height:36px; border-radius:10px; }
.xihe-warm .cert-related-table th { border-color:#e7e2d6; }
.xihe-warm .cert-related-table .cert-project-link { color:#495f44; font-weight:500; }
.xihe-warm .cert-file-row { border-color:#e9e4d9; padding:14px 22px; }
.xihe-warm .cert-table-scroll { border-radius:12px; }
.xihe-warm .person-record-page .cert-group-title-bar { background:#e8ecdf; border-left-color:#809873; border-radius:10px 10px 0 0; }
.xihe-warm .person-record-page .cert-group-content { background:#fcfaf5; }
.xihe-warm .person-record-page .cert-group-badge { background:#72886a; }
.xihe-warm .detail-tab { color:#75806b; }
.xihe-warm .detail-tab.active { color:#456246; border-bottom-color:#5f7b53; }
.xihe-warm .status-card { background:#fcfaf5; border-color:#e4e0d2; border-radius:13px; box-shadow:none; }
.xihe-warm .warm-achievement-page .page-header { margin-bottom:16px !important; }
.xihe-warm .warm-achievement-page .page-header .page-title { font-size:32px !important; }
.xihe-warm .warm-achievement-page .stat-cards { display:flex; flex-wrap:wrap; gap:24px; padding:0 0 14px; margin:0; background:transparent; }
.xihe-warm .warm-achievement-page .stat-card { display:flex; align-items:center; gap:7px; min-width:0; width:auto; margin:0; padding:0; border:0; background:none; box-shadow:none; }
.xihe-warm .warm-achievement-page .stat-icon { display:none; }
.xihe-warm .warm-achievement-page .stat-info { display:flex; gap:7px; align-items:baseline; }
.xihe-warm .warm-achievement-page .stat-info h3 { font-size:15px; color:#4c684f; margin:0; }
.xihe-warm .warm-achievement-page .stat-info p { font-size:13px; color:#646d5b; margin:0; }
.xihe-warm .warm-achievement-page > .card { border:0; padding:0; box-shadow:none; background:none; }
.xihe-warm .warm-achievement-page .toolbar { padding:12px 14px; margin:0; border:1px solid #e5e1d5; }
.xihe-warm .warm-achievement-page > .card { margin-bottom:16px; }
.xihe-warm .warm-achievement-page .toolbar form { gap:10px !important; }
.xihe-warm .warm-achievement-page .toolbar .form-control { font-size:14px; }
.xihe-warm .warm-achievement-page .data-table-wrapper { background:#fcfaf4; overflow-x:auto; }
.xihe-warm .warm-achievement-page .data-table { table-layout:fixed; }
.xihe-warm .warm-achievement-page .data-table { width:100%; min-width:1120px; }
.xihe-warm .warm-achievement-page .data-table :is(th,td) { text-align:left !important; padding:13px 12px; white-space:normal; overflow-wrap:normal; vertical-align:middle; }
.xihe-warm .warm-achievement-page .data-table th { white-space:nowrap; font-size:13px; color:#515c48; }
.xihe-warm .warm-achievement-page .data-table td { color:#333d2e; font-size:14px; line-height:1.55; }
.xihe-warm .warm-achievement-page .data-table :is(th,td):is(:nth-child(1),:nth-child(3),:nth-child(5),:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(9)) { white-space:nowrap; }
.xihe-warm .warm-achievement-page .data-table :is(th,td):is(:nth-child(7),:nth-child(8)) { font-variant-numeric:tabular-nums; }
.xihe-warm .warm-achievement-page .data-table tbody tr:nth-child(even) { background:#f7f6ed; }
.xihe-warm .warm-achievement-page .data-table :is(th,td):nth-child(3) { text-align:right !important; font-variant-numeric:tabular-nums; }
.xihe-warm .warm-achievement-page .data-table :is(th,td):first-child { text-align:center !important; }
.xihe-warm .warm-achievement-page .data-table td:nth-child(2) a { display:block; color:#354c31 !important; font-size:15px; font-weight:600 !important; line-height:1.55; }
.xihe-warm .warm-achievement-page .data-table td:nth-child(2) .badge { margin:5px 0 0 !important; font-size:11px !important; padding:1px 5px; background:#edeee4 !important; color:#7a806f !important; }
.xihe-warm .warm-achievement-page .data-table td:nth-child(7) span { font-size:13px; white-space:nowrap; }
.xihe-warm .warm-achievement-page .data-table td:nth-child(7) span+span { color:#69735f; }
.xihe-warm .warm-achievement-page .data-table .badge { max-width:100%; font-size:12px; padding:3px 6px; }
.xihe-warm :is(.building-modal-card,.ann-modal,.ann-popup-card) { border-radius:16px; box-shadow:0 16px 60px rgb(55 59 40 / 14%); }
.xihe-warm .building-modal-header { background:#edf0e3; border-bottom-color:#dce3cf; }
.xihe-warm .building-modal-title { color:#4d6145; }
.xihe-warm .building-modal-card { border-left-color:#849874; animation:warm-dialog-in 160ms ease-out; }
@media (min-width:1000px) {
  body.xihe-warm { --warm-heading:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif; }
  .xihe-warm .top-nav { left:216px; right:22px; height:32px; padding:0 10px; justify-content:flex-end; background:#f8f6ee; box-shadow:none; border:0; }
  .xihe-warm .top-nav > div:first-child { display:none; }
  .xihe-warm .nav-user { color:#8a8d80; font-size:11px; gap:14px; }
  .xihe-warm .nav-user :is(a,button) { color:#7f8775; }
  .xihe-warm .nav-user .nav-logout { background:none; padding:0; border-radius:0; }
  .xihe-warm .warm-preview-label { color:#7e8973; border:1px solid #e7e3d7; padding:1px 8px; border-radius:12px; }
  .xihe-warm .app-container { margin-top:0; height:100vh; }
  .xihe-warm .sidebar { background:#f0eee5; border-right:1px solid #e8e3d7; padding:0 12px 20px; scrollbar-color:#d0d4c4 transparent; }
  .xihe-warm .warm-brand { display:flex; align-items:center; gap:10px; padding:26px 14px 28px; font-family:var(--warm-heading); color:#343d2e; font-size:28px; font-weight:700; text-decoration:none; }
  .xihe-warm .warm-brand-mark { display:flex; align-items:center; justify-content:center; background:#526c50; color:#faf8ef; width:36px; height:38px; border-radius:7px; font-size:25px; font-weight:400; }
  .xihe-warm .sidebar-menu { padding:0; }
  .xihe-warm .menu-item > a { border:0; padding:12px 13px; gap:12px; border-radius:11px; font-size:14px; color:#535b4b; margin:2px 0; }
  .xihe-warm .menu-item > a .icon { color:#6c765f; width:20px; height:20px; flex-basis:20px; }
  .xihe-warm .menu-item > a .icon svg { width:20px; height:20px; stroke-width:1.5; }
  .xihe-warm .menu-item.active > a { background:#e0e6d6; color:#3d5d3a; }
  .xihe-warm .menu-item > a:hover { background:#e7eadd; color:#3d5d3a; }
  .xihe-warm .menu-item.active > a .icon { color:#526f4b; }
  .xihe-warm .submenu { background:transparent; padding:2px 0 7px; }
  .xihe-warm .submenu.open { animation:warm-menu-in 140ms ease-out; }
  .xihe-warm .submenu a { color:#808575; font-size:12px; padding:7px 12px 7px 45px; border-radius:8px; }
  .xihe-warm .submenu a:hover { background:#e8ebdd; color:#4d6848; }
  .xihe-warm .submenu a::before { display:none; }
  .xihe-warm .main-content { padding:40px 30px 32px !important; min-width:0; background:#f8f6ee; scrollbar-color:#d4d4c6 transparent; }
  .xihe-warm .ann-inline { padding:6px 11px; min-height:30px; font-size:11px; border:1px solid #e8e4d7; border-radius:9px; background:#f2f1e7; color:#8a8e7d; margin-bottom:20px; }
  .xihe-warm .ann-inline-label { color:#717b61; }
  .xihe-warm .page-header { margin-bottom:22px !important; }
  .xihe-warm .page-header :is(h1,.page-title), .xihe-warm .cert-sheet-heading h1 { font-family:var(--warm-heading); font-size:34px !important; font-weight:700; color:#30382b; letter-spacing:.02em; line-height:1.3; }
  .xihe-warm .page-header .warm-page-count { font-family:system-ui,sans-serif; color:#90937f; font-size:15px; margin-left:16px; font-weight:400; letter-spacing:0; }
  .xihe-warm .main-content > :not(.ann-inline), .xihe-warm .main-content > .ann-inline { animation:warm-content-in 170ms ease-out both; }
}
@media (min-width:1600px) { .xihe-warm .main-content { padding:44px 38px 36px !important; } .xihe-warm .page-header :is(h1,.page-title) { font-size:38px !important; } }
/* Site-wide components. Semantic red/amber remain distinct from the sage accent. */
.xihe-warm { accent-color:#4c684f; }
.xihe-warm { --primary:#4c684f; --text:#394333; }
.xihe-warm .sidebar :is(ul,li) { list-style:none; }
.xihe-warm .toolbar-btn { background:#e3e9d8; color:#4c684f; border:1px solid #d3ddc5; border-radius:9px; }
.xihe-warm .toolbar-btn:hover { background:#d8e2ca; }
.xihe-warm .bm-header .btn-primary,.xihe-warm .search-bar .btn:not(.btn-reset) { background:#4c684f; color:#fff; }
.xihe-warm .stat-unread .stat-num { color:#a25345; }
.xihe-warm .stat-total .stat-num,.xihe-warm .stat-platforms .stat-num { color:#526b49; }
.xihe-warm .pb-header h2 { font-family:var(--warm-heading); font-size:30px; color:#30382b; }
.xihe-warm .pb-detail-header .detail-title { color:#526b49 !important; }
.xihe-warm :is(.pb-card-bar,.pb-card-badge) { background:#e3e9d8 !important; color:#526b49 !important; }
.xihe-warm .pb-toast:empty { display:none; }
.xihe-warm .comp-card h2 { color:#394b34; }
.xihe-warm :is(.pb-wrap,.doc-page) { padding:0; min-height:0; }
.xihe-warm :is(.pb-detail-wrap,.pb-subgroup-header,.map-top,.legend) { background:#f4f2e8; color:#526b49; border-color:#e3dfd1; }
.xihe-warm :is(.pb-card-preview span,.pb-pwd-toggle) { background:#eeeee2; border-color:#d9decc; color:#7c846e; }
.xihe-warm .pb-card-footer .shared-link,.xihe-warm .pb-table .url-cell a { color:#526b49; }
.xihe-warm #aiFloatBtn,.xihe-warm #aiSendBtn,.xihe-warm #aiPanel > div:first-child { background:#526b49 !important; box-shadow:0 4px 16px rgb(70 67 43 / 12%) !important; }
.xihe-warm #aiPanel { background:#fcfaf4 !important; border:1px solid #e3dfd1; border-radius:16px !important; }
.xihe-warm :is(.ai-bubble.bot,.ai-quick-btn) { background:#eef0e3 !important; border-color:#d9e1ca !important; color:#526b49 !important; }
.xihe-warm .ai-bubble.user { background:#526b49 !important; }
@media (min-width:1000px) { .xihe-warm:not(.warm-gate) .top-nav > div:first-child { display:none !important; } }
.xihe-warm :is(.card-title,.section-title,.pb-detail-title,.detail-title) { color:#394333; }
.xihe-warm :is(.stat-card,.bid-stat,.type-card,.ov-stat,.ov-card,.ov-side-card,.pb-card,.pb-add-card,.position-card,.fact-item,.comp-card,.file-row,.member-row,.sug-box,.preview-box) {
  background:#fcfaf4; border-color:#e5e1d5; border-radius:14px; box-shadow:0 2px 5px rgb(70 67 43 / 3%);
}
.xihe-warm :is(.stat-card,.type-card,.ov-card,.pb-card) { transition:border-color 140ms ease,box-shadow 140ms ease,transform 140ms ease; }
.xihe-warm :is(.type-card,.ov-card,.pb-card):hover { border-color:#aebc9d; box-shadow:0 5px 16px rgb(70 67 43 / 7%); transform:translateY(-2px); }
.xihe-warm :is(.stat-info h3,.stat-num,.bid-stat .num,.type-card .n,.ov-count,.ov-stat .v) { color:#3f593c; }
.xihe-warm :is(.stat-icon.blue,.stat-icon.green,.stat-icon.orange,.stat-icon.red) { border-radius:12px; background:#e7ecde; color:#617956; }
.xihe-warm .stat-icon.red { background:#f5e5dc; color:#a25345; }
.xihe-warm .stat-icon.orange { background:#f5ecd6; color:#946c2d; }
.xihe-warm :is(.toolbar,.filter-bar,.search-bar,.global-toolbar,.verify-bar,.pb-search,.back-bar) { background:#f4f2e9; border-color:#e5e1d5; border-radius:12px; }
.xihe-warm :is(.form-label,.form-group label,.fact-item .k,.meta,.fsub,.stat-label,.type-card .hint) { color:#777f6d; }
.xihe-warm :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=submit]),select,textarea) {
  color:#394333; background:#fcfaf5; border-color:#dedbcd; border-radius:10px; font-family:inherit;
}
.xihe-warm :is(input,select,textarea):focus { outline-color:#79916c; }
.xihe-warm :is(.btn-outline,.btn-reset,.btn-cancel,.modal-cancel,.back-btn,.edit-btn,.btn-apply,.btn-perm,.pb-actions button,.pb-actions a) { background:#faf8f0; color:#52694c; border:1px solid #dcdccc; border-radius:9px; }
.xihe-warm :is(.btn-save,.primary,.modal-actions .primary,.pb-add-row button,.pb-detail-header .edit-btn,.btn-apply) { background:#4c684f; color:#fff; border-color:#4c684f; border-radius:9px; }
.xihe-warm :is(.btn-warning,.badge-review,.badge-urgent,.badge-warning,.conf-m) { background:#f6ecd5 !important; color:#8b662c !important; border-color:#e9d9b3; }
.xihe-warm :is(.badge-rejected,.badge-expired,.alert-danger,.alert-error,.gate-error) { background:#f7e9e1 !important; color:#9f4d40 !important; border-color:#e6ccc0; border-radius:10px; }
.xihe-warm :is(.alert-success,.badge-verified,.badge-classified,.badge-new,.badge-platform,.conf-h) { background:#e8eddf !important; color:#526b49 !important; border-color:#d8e1ca; border-radius:8px; }
.xihe-warm :is(.badge-unverified,.conf-l,.smart-hint,.no-results,.empty-state,.pb-empty) { color:#7c8070; }
.xihe-warm :is(.tab-btn,.ov-tab,.review-tab,.pb-tab,.cert-type-tag,.major-tag,.chip) { border-radius:8px; border-color:#dfdece; color:#66705c; }
.xihe-warm :is(.tab-btn.active,.ov-tab.active,.pb-tab.active,.cert-type-tag.active,.major-tag.active) { background:#e3e9d8 !important; color:#42603b !important; border-color:#cbd8bc !important; }
.xihe-warm .review-tab.active { color:#42603b; border-bottom-color:#657e55; }
.xihe-warm :is(.review-tab .cnt,.pb-card-badge,.pb-card-bar,.ov-tag) { background:#e9eddf; color:#657456; border-color:#dbe1ce; }
.xihe-warm :is(.pagination a,.pagination span,.page-link) { border-color:#dfdece; color:#526b49; border-radius:8px; }
.xihe-warm :is(.pagination .active,.pagination .current) { background:#4c684f; color:#fff; border-color:#4c684f; }
.xihe-warm :is(.pagination .disabled,[aria-disabled=true],button:disabled) { opacity:.55; cursor:default; }
.xihe-warm :is(.modal-box,.modal-content,.pb-modal,.pdm-box,.add-cat-modal,.edit-panel,.pr-dialog,.pw-preview) {
  background:#fcfaf4; color:#394333; border:1px solid #e2dfd0; border-radius:16px; box-shadow:0 20px 70px rgb(53 60 43 / 18%); animation:warm-dialog-in 160ms ease-out;
}
.xihe-warm :is(.ann-modal-box,.ann-popup-body,.ann-popup-head) { background:#fcfaf4; color:#394333; border-color:#e2dfd0; border-radius:14px; }
.xihe-warm .ann-modal-box { box-shadow:0 20px 70px rgb(53 60 43 / 18%); animation:warm-dialog-in 160ms ease-out; }
.xihe-warm .ann-modal-mask { background:rgb(49 56 40 / 28%); }
.xihe-warm :is(.ann-modal-title,.ann-popup-x,.ann-popup-head span) { color:#526b49; }
.xihe-warm :is(.pw-results > header,#pw-pages,.pw-searchbar,.pw-filters,.pw-q) { background:#f5f3e9; border-color:#e2dfd0; }
.xihe-warm :is(.pw-summary,.pw-occ,.pw-preview-foot) { background:#f7f6ee; border-color:#e2dfd0; }
.xihe-warm :is(.pw-avatar,.pw-person.active .pw-avatar) { background:#e5eada; color:#607352; }
.xihe-warm :is(.pw-button-primary,.pw-button-primary:hover) { background:#526b49; color:#fff; border-color:#526b49; }
.xihe-warm .bm-table { background:#fcfaf4; box-shadow:0 2px 6px rgb(70 67 43 / 3%); border:1px solid #e3dfd1; }
.xihe-warm .bm-table tr.unread { background:#f8f1df; }
.xihe-warm .search-bar { padding:12px; }
.xihe-warm :is(.modal-header,.modal-footer,.pdm-head,.pb-detail-header,.pb-card-footer) { background:#f4f2e8; border-color:#e4e0d2; }
.xihe-warm :is(.modal-overlay,.pb-modal-bg,.pdm-overlay,.pw-overlay,.pr-overlay) { background:rgb(49 56 40 / 28%); }
.xihe-warm :is(.modal-close,.pdm-close) { color:#808773; border-radius:8px; }
.xihe-warm :is(.modal-close,.pdm-close):hover { background:#e8ecdd; color:#4c684f; }
.xihe-warm :is(.bm-table,.pb-table,.doc-matrix,.smart-preview-table) { border-collapse:separate; border-spacing:0; border-color:#e5e1d5; }
.xihe-warm :is(.bm-table,.pb-table,.doc-matrix,.smart-preview-table) th { background:#efede3; color:#59614f; border-color:#e5e1d5; font-size:13px; }
.xihe-warm :is(.bm-table,.pb-table,.doc-matrix,.smart-preview-table) td { background:transparent; border-color:#eeeadf; color:#41483d; }
.xihe-warm :is(.bm-table,.pb-table,.doc-matrix) tbody tr:hover td { background:#e9eddf; }
.xihe-warm :is(.data-table-wrapper,.bm-table-wrap,.smart-preview,.doc-matrix) { scrollbar-color:#d0d4c4 transparent; }
.xihe-warm .toggle-switch input:checked + .toggle-slider { background:#637d54; }
.xihe-warm .toggle-slider { background:#d8dacd; }
/* Personnel query and reservation workspaces retain their own working layouts. */
.xihe-warm .pw-root { --pw-ink:#394333; --pw-muted:#7c8070; --pw-line:#e3dfd1; --pw-soft:#f1efe5; --pw-green:#526e49; --pw-green-soft:#e9eddf; --pw-amber:#946c2d; --pw-red:#a25345; }
.xihe-warm .pr-root { --ink:#394333; --muted:#7c8070; --line:#e3dfd1; --soft:#f1efe5; --green:#526e49; --green-soft:#e9eddf; --amber:#946c2d; --amber-soft:#f7edd7; --red:#a25345; --red-soft:#f6e8df; --blue:#637658; --blue-soft:#edf0e4; }
.xihe-warm :is(.pw-heading h1,.pr-heading h1,.pb-header h1,.bm-header h1,.doc-topbar .title,.ov-topbar .title,.map-top .title) { font-family:var(--warm-heading); font-size:30px; color:#30382b; line-height:1.35; }
.xihe-warm :is(.pw-querybar,.pw-search,.pw-results-head,.pw-detail-head,.pw-section-head,.pw-preview-head,.pr-pager) { background:#f3f1e7; border-color:#e3dfd1; }
.xihe-warm :is(.pw-results,.pw-detail,.pw-panel,.pw-section,.pw-file,.pw-resv,.pr-card,.pr-people) { background:#fcfaf4; border-color:#e3dfd1; border-radius:12px; }
.xihe-warm :is(.pw-person,.pw-result):hover { background:#edf0e3; }
.xihe-warm :is(.pw-person.selected,.pw-person.active,.pw-result.selected) { background:#e3e9d8; border-color:#b9caa9; }
.xihe-warm :is(.pw-btn,.pw-button,.pr-btn) { border-radius:9px; border-color:#dcdccc; background:#faf8f0; color:#52694c; transition:background 140ms ease,box-shadow 140ms ease; }
.xihe-warm :is(.pw-btn.primary,.pw-btn-primary,.pr-btn.primary) { background:#4c684f; border-color:#4c684f; color:#fff; }
.xihe-warm :is(.pw-table,.pr-table) th { background:#efede3; color:#68715e; border-color:#e3dfd1; padding-top:11px; padding-bottom:11px; }
.xihe-warm :is(.pw-table,.pr-table) td { border-color:#ebe7db; }
.xihe-warm :is(.pw-cert-row.open,.pw-cert-detail > td,.pw-preview-stage,.pr-row:hover td) { background:#f3f3e9; }
.xihe-warm :is(.pw-table,.pr-table) tr:hover { background:#edf0e3; }
.xihe-warm :is(.pw-chip,.pw-tag,.pr-tag,.pr-badge) { border-radius:7px; }
.xihe-warm :is(.pw-tag.good,.pr-tag.good,.pr-tag.info) { background:#e7eddd; color:#526b49; border-color:#d8e0c9; }
.xihe-warm :is(.pw-tag.bad,.pr-tag.bad) { background:#f5e7de; color:#a25345; border-color:#e6cdbf; }
.xihe-warm :is(.pw-tag.warn,.pr-tag.warn) { background:#f6ecd5; color:#946c2d; border-color:#eadab7; }
.xihe-warm .pw-preview-stage :is(img,iframe) { border-radius:9px; }
/* Enterprise files, document management, review and diagram tools. */
.xihe-warm :is(.doc-page,.map-page,.pb-wrap) { background:#f8f6ee; color:#394333; }
.xihe-warm .doc-page { padding:0; }
.xihe-warm :is(.comp-card,.type-card .t,.ov-name,.ov-card-head,.ov-count,.ov-stat .v,.pdm-name) { color:#394333; }
.xihe-warm :is(.ov-avatar,.pdm-avatar,.avatar,.avatar-lg) { background:#dfe6d2 !important; color:#526b49 !important; border-radius:11px; }
.xihe-warm :is(.ov-card.b-emerald,.ov-card.b-amber,.ov-card.b-rose) { border-top-width:2px; }
.xihe-warm .ov-card.b-emerald { border-top-color:#9aaa87; }
.xihe-warm .ov-card.b-amber { border-top-color:#c5a96b; }
.xihe-warm .ov-card.b-rose { border-top-color:#c38975; }
.xihe-warm :is(.ov-detail-link,.ov-search input:focus,.map-top .title,.pdm-cname,.pb-card-name,.pb-detail-header,.pb-header) { color:#526b49; }
.xihe-warm :is(.doc-card,.person-card,.sub-box,.batch-upload,.batch-drop,.restore-chip,.pb-img-zone,.ocr-drop-zone) { background:#fcfaf4; border-color:#dddccc; border-radius:13px; }
.xihe-warm :is(.doc-card:hover,.person-card:hover,.batch-drop:hover,.ocr-drop-zone:hover) { border-color:#9eaf8e; background:#f0f2e6; }
.xihe-warm :is(.doc-search input,.ov-search input,.pb-search input,.smart-textarea) { background:#fcfaf5; border-color:#dedbcd; border-radius:10px; }
.xihe-warm :is(.batch-queue,.q-item,.sub-row,.pb-card-preview,.pb-detail-body,.pb-add-row) { background:#f5f3e9; border-color:#e5e1d5; }
.xihe-warm :is(.progress-bar .fill,.pb-tab.active::after) { background:#6a835b; }
.xihe-warm :is(.learn-btn,.pdm-btn,.btn-row button) { border-color:#d7dfc8; background:#edf0e3; color:#526b49; border-radius:8px; }
.xihe-warm .learn-btn:hover { background:#526b49; color:#fff; }
.xihe-warm :is(.ocr-drop-icon,.ocr-drop-text,.group-header,.group-header h3,.section-label) { color:#596f4e; }
.xihe-warm :is(.ocr-drop-zone.dragover,.batch-drop.dragover) { background:#e7eddb; border-color:#6b8659; }
.xihe-warm :is(.map-svg-wrap,.edit-panel) { background:#fcfaf4; border-color:#e3dfd1; border-radius:14px; }
.xihe-warm .map-svg-wrap svg { background:#fcfaf4; }
/* Standalone entry screens use the same palette without the application sidebar. */
body.xihe-warm.warm-login { overflow:auto; background:#f8f6ee; color:#394333; }
.xihe-warm.warm-login .visual-panel { background:#eeeee2; border-right:1px solid #e2dece; flex:0 0 44%; }
.xihe-warm.warm-login .branding h1 { font-family:var(--warm-heading); color:#394b34; font-size:34px; }
.xihe-warm.warm-login .branding :is(.tagline,.features span) { color:#7c846e; }
.xihe-warm.warm-login .branding .features .feat-num { color:#526b49; }
.xihe-warm.warm-login .branding .divider { background:#d9dfcb; }
.xihe-warm.warm-login .branding .company-logo { background:#647b57; border-radius:16px; padding:10px; }
.xihe-warm.warm-login .login-side { background:#f8f6ee; }
.xihe-warm.warm-login .welcome h2 { font-family:var(--warm-heading); font-size:32px; color:#394333; }
.xihe-warm.warm-login :is(.welcome p,.form-group label,.login-footer,.login-footer a) { color:#7b826e; }
.xihe-warm.warm-login .input-wrap input { border-radius:11px; color:#394333; background:#fcfaf4; border-color:#dddccc; }
.xihe-warm.warm-login .input-wrap .icon { background:#e7ecdd; color:#526b49; border-radius:7px; }
.xihe-warm.warm-login .input-wrap input:focus { border-color:#8b9f7e; box-shadow:0 0 0 3px rgb(109 135 88 / 10%); }
.xihe-warm.warm-login .btn-login { background:#526b49; border-radius:11px; box-shadow:none; }
.xihe-warm.warm-login .btn-login:hover { background:#41593b; }
.xihe-warm.warm-gate .top-nav { left:0; right:0; height:60px; padding:0 28px; background:#f0eee5; border-bottom:1px solid #e4e0d2; justify-content:space-between; }
.xihe-warm.warm-gate .top-nav > div:first-child { display:flex; }
.xihe-warm.warm-gate .nav-logo { color:#526b49; font-family:var(--warm-heading); }
.xihe-warm.warm-gate .gate-box { background:#fcfaf4; border:1px solid #e3dfd1; border-radius:18px; box-shadow:0 12px 40px rgb(70 67 43 / 6%); }
.xihe-warm.warm-gate :is(.gate-icon,.gate-title) { color:#526b49; }
.xihe-warm.warm-gate .gate-icon { background:#e5eada; border-color:#d6dfc8; }
.xihe-warm.warm-gate .gate-title { font-family:var(--warm-heading); }
.xihe-warm.warm-gate :is(.gate-desc,.gate-hint) { color:#7b826e; }
.xihe-warm.warm-gate .gate-submit { background:#526b49; border-radius:10px; }
body.xihe-warm.warm-legacy { height:auto; min-height:100vh; overflow:auto; padding:28px; }
.xihe-warm.warm-legacy .header { background:#f0eee5; border-radius:14px; padding:20px; color:#394333; }
.xihe-warm.warm-legacy :is(.container,.modal) { background:#fcfaf4; border-color:#e3dfd1; border-radius:14px; }
@media (max-width:999px) {
  .xihe-warm .top-nav { background:#f0eee5; border-bottom:1px solid #e4e0d2; color:#526b49; }
  .xihe-warm .top-nav :is(.nav-logo,.nav-link,.nav-user,.mobile-menu-btn) { color:#526b49; }
  .xihe-warm .sidebar { background:#f0eee5; }
  .xihe-warm .page-header :is(h1,.page-title) { font-family:var(--warm-heading); color:#30382b; }
  .xihe-warm :is(.ov-side,.form-grid,.form-row,.pr-row2) { max-width:100%; }
}
@keyframes warm-content-in { from { opacity:.25; transform:translateY(3px); } to { opacity:1; transform:none; } }
@keyframes warm-menu-in { from { opacity:.4; transform:translateY(-3px); } to { opacity:1; transform:none; } }
@keyframes warm-dialog-in { from { opacity:0; transform:translateY(5px) scale(.99); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { body.xihe-warm *, body.xihe-warm *::before, body.xihe-warm *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Audited readability and dossier hierarchy. */
.xihe-warm .pw-grid{grid-template-columns:244px minmax(0,1fr)}
.xihe-warm .pw-person-title h2{font-size:23px}
.xihe-warm .pw-person-title h2+span{color:#66705e;font-size:13px}
.xihe-warm .pw-button-primary{color:#fff!important}
.xihe-warm .pw-table{font-size:14px}
.xihe-warm .pw-certs th:nth-child(1){width:17%}
.xihe-warm .pw-certs th:nth-child(2){width:25%}
.xihe-warm .pw-certs th:nth-child(3){width:23%}
.xihe-warm .pw-certs th:nth-child(4){width:15%}
.xihe-warm .pw-certs th:nth-child(5){width:14%}
.xihe-warm .pw-certs th:nth-child(6){width:6%}
.xihe-warm .pw-certs .pw-mono{font-size:13px;color:#34412e}
.xihe-warm .pw-section-head h3{font-size:16px}
.xihe-warm .pw-evidence{border-top:1px solid #e5e3d8;padding:12px 0;color:#616a59;font-size:13px}
.xihe-warm .pw-evidence summary{cursor:pointer;padding:5px 0}
.xihe-warm .pw-evidence .pw-summary{margin-top:10px}
.xihe-warm .main-content>*{animation:none!important}
.xihe-warm :is(.btn,.pagination a,.pagination span,.cert-type-tag){transition-property:background-color,border-color,color,box-shadow;transition-duration:140ms}
.xihe-warm :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid #4c684f;outline-offset:3px}
.cert-query-status{padding:10px 14px;background:#f4ecd8;border:1px solid #e1d4ac;border-radius:10px;margin:0 0 10px;color:#66502b;font-size:13px}
.cert-query-status button{margin-left:10px;padding:4px 10px;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;cursor:pointer}
.chart-fallback{padding:12px;overflow:auto;max-height:270px;font-size:13px}
.chart-fallback p{margin:0 0 12px;color:#727865}
.chart-fallback dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin:0}
.chart-fallback dd{margin:0;font-variant-numeric:tabular-nums}
@media(max-width:900px){.xihe-warm .pw-grid{grid-template-columns:1fr}}

/* Every certificate-list state shares these columns and cell metrics. */
.xihe-warm .cert-list-page .cert-ledger-table{table-layout:fixed;width:100%;min-width:900px}
.xihe-warm .cert-list-page .cert-ledger-table thead th{width:auto!important}
.xihe-warm .cert-list-page .cert-ledger-table .cl-person{width:11%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-name{width:21%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-major{width:20%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-date{width:16%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-status{width:13%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-building{width:7%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-ach{width:6%}
.xihe-warm .cert-list-page .cert-ledger-table .cl-action{width:6%}
.xihe-warm .cert-list-page .cert-ledger-readonly .cl-major{width:24%}
.xihe-warm .cert-list-page .cert-ledger-readonly .cl-date{width:18%}
.xihe-warm .cert-list-page .cert-ledger-readonly .cl-status{width:14%}
.xihe-warm .cert-list-page #certPanelContent .cert-ledger-table :is(th,td){padding:13px 12px;vertical-align:middle;text-align:left}
.xihe-warm .cert-list-page #certPanelContent .cert-ledger-table :is(th,td):nth-child(n+5){text-align:center}
.xihe-warm .cert-list-page .cert-ledger-table tbody tr{height:69px}
.xihe-warm .cert-list-page .cert-ledger-table td:nth-child(3){white-space:normal;overflow-wrap:anywhere}
.xihe-warm .cert-list-page .cert-ledger-table td:nth-child(4){white-space:nowrap;font-variant-numeric:tabular-nums}
.xihe-warm .cert-list-page .cert-search-heading{padding:12px 0 18px;min-height:0;background:transparent;border:0}
.xihe-warm .cert-list-page .cert-search-heading h2{font-family:inherit;font-size:17px!important;line-height:inherit}

.xihe-warm .warm-achievement-page .achievement-period{display:inline;white-space:nowrap;font-variant-numeric:tabular-nums}
.xihe-warm .pw-achs :is(th,td):nth-child(1){width:34%}
.xihe-warm .pw-achs :is(th,td):nth-child(2){width:12%}
.xihe-warm .pw-achs :is(th,td):nth-child(3){width:32%}
.xihe-warm .pw-achs :is(th,td):nth-child(4){width:22%}
.xihe-warm .pw-ach-period{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}
.xihe-warm .cert-period{white-space:nowrap}

/* Project dialogs: keep the header fixed inside the card; scroll its body only. */
.xihe-warm .building-modal-overlay{padding:24px;box-sizing:border-box}
.xihe-warm .building-modal-card{width:1120px;max-width:calc(100vw - 48px);max-height:calc(100dvh - 64px);min-width:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}
.xihe-warm .building-modal-header{width:100%!important;box-sizing:border-box;padding:16px 24px;flex:0 0 auto}
.xihe-warm .building-modal-title{min-width:0;overflow-wrap:anywhere}
.xihe-warm .building-modal-title strong{margin-left:8px}
.xihe-warm :is(.building-modal-count,.building-modal-close){flex-shrink:0}
.xihe-warm .building-modal-body{padding:16px 24px;min-height:0;overflow:auto;overscroll-behavior:contain}
.xihe-warm .building-modal-body .cert-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed;overflow:visible!important}
.xihe-warm .building-modal-body .cert-table :is(th,td){padding:12px 10px;text-align:left;vertical-align:middle;box-sizing:border-box}
.xihe-warm .building-modal-body .cert-table :is(th,td):first-child{width:45%!important;white-space:normal;overflow-wrap:anywhere}
.xihe-warm .building-modal-body .cert-table :is(th,td):nth-child(2){width:14%!important}
.xihe-warm .building-modal-body .cert-table :is(th,td):nth-child(3){width:8%!important}
.xihe-warm .building-modal-body .cert-table :is(th,td):nth-child(4),
.xihe-warm .building-modal-body .cert-table :is(th,td):nth-child(5){width:13%!important}
.xihe-warm .building-modal-body .cert-table :is(th,td):nth-child(6){width:7%!important;text-align:right}
.xihe-warm .building-modal-body .cert-table :is(th,td):not(:first-child){white-space:nowrap;font-variant-numeric:tabular-nums}
.xihe-warm #reservedModal .cert-table :is(th,td):nth-child(2),
.xihe-warm #reservedModal .cert-table :is(th,td):nth-child(3){width:10%!important}
.xihe-warm #reservedModal .cert-table :is(th,td):nth-child(4){width:19%!important}
.xihe-warm #reservedModal .cert-table :is(th,td):nth-child(5){width:9%!important}
.xihe-warm #reservedModal .cert-table td:is(:nth-child(2),:nth-child(3),:nth-child(5)){white-space:normal;overflow-wrap:anywhere}
@media(max-width:800px){
 .xihe-warm .building-modal-overlay{padding:12px}
 .xihe-warm .building-modal-overlay .building-modal-card{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px);margin:0!important}
 .xihe-warm .building-modal-header{padding:14px 16px;gap:6px}
 .xihe-warm .building-modal-title{font-size:14px}
 .xihe-warm .building-modal-body{padding:12px}
 .xihe-warm .building-modal-body .cert-table{min-width:780px!important}
}

/* Compact account footer: navigation scrolls independently above it. */
.xihe-warm .sidebar { display:flex; flex-direction:column; overflow:hidden; }
.xihe-warm .sidebar-menu { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; }
.xihe-warm .warm-brand { flex-shrink:0; }
.xihe-warm .sidebar-account { position:relative; flex-shrink:0; margin:14px 4px 0; padding-top:12px; border-top:1px solid #dddccf; }
.xihe-warm .sidebar-account summary { display:flex; align-items:center; gap:11px; padding:8px 6px; cursor:pointer; list-style:none; border-radius:9px; }
.xihe-warm .sidebar-account summary::-webkit-details-marker { display:none; }
.xihe-warm .sidebar-account summary:hover { background:#e8e9de; }
.xihe-warm .sidebar-account summary:focus-visible { outline:2px solid #526c50; outline-offset:2px; }
.xihe-warm .sidebar-account-avatar { width:36px; height:36px; border-radius:50%; background:#dfe6d6; color:#526c50; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.xihe-warm .sidebar-account-copy { flex:1; min-width:0; }
.xihe-warm .sidebar-account-copy strong { display:block; font-size:13px; font-weight:600; color:#394333; overflow-wrap:anywhere; }
.xihe-warm .sidebar-account-copy small { display:block; margin-top:3px; font-size:11px; color:#858b7b; }
.xihe-warm .sidebar-account-chevron { color:#858b7b; font-size:15px; }
.xihe-warm .sidebar-account-menu { position:absolute; bottom:calc(100% + 7px); left:0; right:0; padding:5px; background:#faf9f3; border:1px solid #dedfd2; border-radius:11px; box-shadow:0 8px 24px rgb(55 59 40 / 10%); z-index:20; }
.xihe-warm .sidebar-account-menu :is(a,button) { display:block; width:100%; padding:10px; color:#4d6145; text-align:left; font:inherit; font-size:13px; text-decoration:none; border:0; border-radius:7px; background:transparent; cursor:pointer; }
.xihe-warm .sidebar-account-menu :is(a,button):hover { background:#e8e9de; }
.xihe-warm .sidebar-account-menu form { margin:0; }

/* One opt-in reading toggle; inactive mode has no typography overrides. */
.xihe-warm .sidebar-text-size { flex-shrink:0; display:flex; align-items:center; gap:10px; width:calc(100% - 8px); margin:12px 4px 0; padding:9px 6px; border:0; border-radius:9px; background:transparent; color:#59684f; cursor:pointer; font:inherit; font-size:13px; text-align:left; }
.xihe-warm .sidebar-text-size:hover { background:#e8e9de; }
.xihe-warm .text-size-icon { width:36px; text-align:center; font-size:16px; font-weight:600; letter-spacing:-1px; }
.xihe-warm .text-size-switch { margin-left:auto; width:28px; height:16px; border-radius:10px; background:#d2d6c8; position:relative; flex-shrink:0; }
.xihe-warm .text-size-switch::after { content:''; position:absolute; width:12px; height:12px; top:2px; left:2px; border-radius:50%; background:#fffdf7; transition:transform 140ms ease; }
.xihe-warm .sidebar-text-size[aria-pressed=true] .text-size-switch { background:#526c50; }
.xihe-warm .sidebar-text-size[aria-pressed=true] .text-size-switch::after { transform:translateX(12px); }
.large-text .xihe-warm .main-content :is(.btn,.form-control,select,input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range])) { min-height:42px; }
.large-text .xihe-warm .sidebar-account summary { min-height:52px; }
@media (prefers-reduced-motion:reduce) { .xihe-warm .text-size-switch::after { transition:none; } }
