/* Back-office styles are scoped so public pages keep their own theme. */
.admin-body, .admin-login {
  --bg: #f3f5f4;
  --text: #24352e;
  --muted: #75837b;
  --line: #e5ebe7;
  --primary: #176b50;
  --primary-dark: #12553f;
  --danger: #c94942;
  --bs-primary-rgb: 23, 107, 80;
  --bs-link-color: #176b50;
  --bs-link-color-rgb: 23, 107, 80;
  --bs-link-hover-color-rgb: 18, 85, 63;
  --lte-sidebar-width: 232px;
  color: var(--text);
  background: var(--bg) !important;
  font: 14px/1.6 "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.admin-body .app-main { min-width: 0; }
.admin-body .app-header { min-height: 64px; box-shadow: none; border-color: var(--line) !important; }
.admin-body .app-header .container-fluid { padding-inline: 24px; }
.admin-body .top-title { color: #52645a; font-size: 14px; font-weight: 500; }
.admin-body .sidebar-toggler { width: 36px; height: 36px; padding: 0; color: #53665b; font-size: 20px; }
.admin-body .sidebar-toggler:hover { background: #edf3ef; color: var(--primary); }
.admin-visit-site { color: #52645a; font-size: 13px; }
.admin-visit-site:hover { color: var(--primary); }
.admin-body .app-sidebar { width: 232px; --bs-body-bg: #18372c; --bs-secondary-bg: #18372c; background: #18372c; box-shadow: none; }
.admin-body .sidebar-brand { height: 80px; border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-body .brand-link { height: 80px; gap: 11px; padding: 0 22px; color: #fff; }
.admin-brand-mark { flex-shrink: 0; }
.admin-body .brand-text { font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.admin-body .brand-text small { display: block; margin-top: 2px; color: #9cb8a9; font-size: 10px; font-weight: 400; letter-spacing: .12em; }
.admin-body .sidebar-wrapper { padding: 22px 14px 80px; }
.admin-body .sidebar-label { margin-top: 24px; padding: 0 12px 9px; color: #8daa9b; font-size: 10px; letter-spacing: .15em; }
.admin-navigation { display: grid; gap: 5px; }
.admin-nav-link, .admin-nav-group summary { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 8px; color: #c8d8ce; font-size: 14px; text-decoration: none; cursor: pointer; }
.admin-nav-icon { flex: 0 0 19px; width: 19px; height: 19px; color: #9fbead; }
.admin-nav-link:hover, .admin-nav-group summary:hover { background: rgba(255,255,255,.06); color: #fff; }
.admin-nav-link.active { color: #fff; background: #28644b; }
.admin-nav-link.active .admin-nav-icon { color: #c9e9d7; }
.admin-nav-group summary { list-style: none; }
.admin-nav-group summary::-webkit-details-marker { display: none; }
.admin-nav-group summary > span { flex: 1; }
.admin-nav-chevron { width: 16px; height: 16px; color: #8daa9b; transition: transform .2s; }
.admin-nav-group[open] .admin-nav-chevron { transform: rotate(90deg); }
.admin-nav-group[open] summary { color: #fff; }
.admin-nav-children { display: grid; gap: 3px; margin: 5px 0 10px 21px; padding-left: 10px; border-left: 1px solid #38594a; }
.admin-nav-children .admin-nav-link { min-height: 38px; padding: 8px 12px; font-size: 13px; }
.admin-sidebar-foot { position: absolute; right: 20px; bottom: 18px; left: 26px; color: #84a393; font-size: 10px; letter-spacing: .08em; pointer-events: none; }
.admin-body .app-content-header { padding: 28px 0 20px; }
.admin-body :is(.app-content, .app-content-header) > .container-fluid { padding-inline: 28px; }
.admin-body .page-title { color: var(--text); font-size: 23px; font-weight: 600; letter-spacing: -.015em; }
.admin-body .breadcrumb { font-size: 12px; color: var(--muted); }
.admin-body .breadcrumb a { color: #677c6d; }
.admin-body .alert-info { border-color: #d6e5db; color: #587461; background: #eef5ef; }
.admin-body .app-content { padding-bottom: 36px; }
.admin-body .app-main h1 { display: block; }
.admin-body .app-content > .container-fluid > h1 { display: none; }
.admin-body .app-main .panel { margin-bottom: 22px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.admin-body .app-main .panel-head { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-bottom: 18px; padding-bottom: 16px; border-color: var(--line); }
.admin-body .panel-head > :first-child { margin-right: auto; }
.admin-body .panel-head h2 { color: var(--text); font-size: 16px; font-weight: 600; }
.admin-body .panel-head p { max-width: 760px; margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.admin-body .muted, .admin-body small { color: var(--muted); }
.admin-body :is(.actions, .row-actions, .modal-actions) { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.admin-body .row-actions form { display: inline-flex; margin: 0; }
.admin-body td.row-actions { display: table-cell; min-width: 170px; }
.admin-body td.row-actions > * { margin: 3px 4px 3px 0; }
.admin-body .app-main :is(button:not(.btn-close), .button), .admin-login button {
  min-height: 36px; padding: 8px 14px; border: 1px solid var(--primary); border-radius: 7px; background: var(--primary); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.35; box-shadow: none;
}
.admin-body .app-main :is(button:not(.btn-close), .button):hover, .admin-login button:hover { border-color: var(--primary-dark); background: var(--primary-dark); }
.admin-body .app-main :is(button.secondary, .button.secondary) { border-color: #d7e1da; background: #fff; color: #52645a; }
.admin-body .app-main :is(button.secondary, .button.secondary):hover { border-color: #abc9b8; background: #f0f6f2; color: var(--primary); }
.admin-body .app-main :is(button.danger, .button.danger) { border-color: #edd0cd; background: #fff7f6; color: #b5413b; }
.admin-body .app-main :is(button.danger, .button.danger):hover { border-color: #dc9f99; background: #fdece9; color: #a52e28; }
.admin-body .app-main .btn-primary { --bs-btn-bg: #176b50; --bs-btn-border-color: #176b50; --bs-btn-hover-bg: #12553f; --bs-btn-hover-border-color: #12553f; --bs-btn-active-bg: #12553f; }
.admin-body .app-main :is(button,a):is(.btn-outline-secondary,.btn-secondary) { border-color: #d7e1da; background: #fff; color: #52645a; }
.admin-body .app-main :is(button,a):is(.btn-outline-secondary,.btn-secondary):hover { border-color: #abc9b8; background: #f0f6f2; color: var(--primary); }
.admin-body .app-main :is(button,a):is(.btn-outline-danger,.btn-danger) { border-color: #edd0cd; background: #fff7f6; color: #b5413b; }
.admin-body .app-main :is(button,a):is(.btn-outline-danger,.btn-danger):hover { border-color: #dc9f99; background: #fdece9; color: #a52e28; }
.admin-body .app-main button.link-button { border-color: transparent; background: transparent; color: var(--primary); }
.admin-body .app-main button:disabled { cursor: not-allowed; opacity: .5; }
.admin-body .app-main :is(input, select, textarea), .admin-login :is(input, select, textarea) { min-height: 36px; border-color: #d8e2db; border-radius: 7px; color: #31483b; background: #fff; }
.admin-body .app-main :is(input, select, textarea):focus, .admin-login input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(23,107,80,.08); }
.admin-body .app-main input[type=checkbox], .admin-body .app-main input[type=radio] { width: 16px; height: 16px; min-height: 16px; padding: 0; accent-color: var(--primary); }
.admin-body :is(a, button, summary):focus-visible, .admin-login button:focus-visible { outline: 2px solid #78aa8f; outline-offset: 3px; }
.admin-body label { color: #52645a; font-size: 13px; }
.admin-body .filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #f7f9f7; }
.admin-body .filters :is(input:not([type=hidden]), select) { flex: 1 1 160px; width: auto; min-width: 0; max-width: 300px; }
.admin-body .filters button { flex-shrink: 0; }
.admin-table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 9px; }
.admin-body .app-main table { min-width: 650px; border-collapse: separate; border-spacing: 0; color: #3d5045; font-size: 13px; }
.admin-body .app-main th { padding: 12px 14px; border-bottom: 1px solid var(--line); background: #f5f8f5; color: #6d7c72; font-size: 12px; font-weight: 500; white-space: nowrap; }
.admin-body .app-main td { padding: 13px 14px; border-bottom: 1px solid #edf1ee; vertical-align: middle; overflow-wrap: anywhere; }
.admin-body .app-main tbody tr:last-child td { border-bottom: 0; }
.admin-body .app-main tbody tr:hover { background: #f8fbf8; }
.admin-body .app-main td.admin-empty-cell { padding-block: 42px; color: var(--muted); text-align: center; }
.admin-body .app-main .card { border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.admin-body .hero-admin-slide { border-color: var(--line); border-radius: 10px; }
.admin-body .app-main .admin-cell-id { min-width: 56px; white-space: nowrap; overflow-wrap: normal; }
.admin-body .app-main .admin-cell-date { min-width: 145px; white-space: nowrap; overflow-wrap: normal; font-size: 12px; }
.admin-body .app-main .admin-cell-name { min-width: 110px; max-width: 320px; }
.admin-body .app-main .admin-cell-status { min-width: 72px; white-space: nowrap; }
.admin-body .app-main .admin-cell-url { min-width: 240px; max-width: 340px; font-size: 12px; }
.admin-body .app-main .admin-cell-code { min-width: 100px; white-space: nowrap; overflow-wrap: normal; font-size: 12px; }
.admin-body .app-main .admin-cell-content { min-width: 220px; max-width: 380px; }
.admin-body .thumb { width: 88px; height: 58px; object-fit: cover; border: 0; border-radius: 7px; background: #f2f6f2; }
.admin-body .author-avatar { display: block; width: 44px; height: 44px; object-fit: cover; border-radius: 50%; background: #edf3ed; }
.admin-body .author-avatar-large { width: 80px; height: 80px; }
.author-editor-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: #f6f9f6; color: #66776a; font-size: 13px; }
.author-editor-summary strong { color: #315c40; font-weight: 500; }
.admin-body .app-main td :is(.button, button) { min-height: 30px; padding: 5px 10px; font-size: 12px; white-space: nowrap; }
.admin-body .app-main td form { margin: 0; }
.admin-body .badge { padding: 5px 8px; border: 1px solid #dbe9df; border-radius: 5px; color: #28654b; background: #eef5ef; font-size: 11px; font-weight: 500; }
.admin-body .badge[data-tone=neutral] { border-color: #e1e7e3; background: #f3f5f4; color: #718077; }
.admin-body .badge[data-tone=progress] { border-color: #cddedb; background: #edf5f4; color: #37786c; }
.admin-body .badge[data-tone=danger] { border-color: #efd6d2; background: #fff2ef; color: #b14b42; }
.admin-body .keyword-batch-bar, .admin-body .title-batch-bar, .admin-body .article-batch-bar, .admin-body .draft-batch-bar { border-color: var(--line); background: #f7f9f7; }
.admin-body .keyword-batch-bar strong, .admin-body .keyword-batch-bar span { color: #66776b; }
.admin-body .keyword-check input { accent-color: var(--primary); }
.admin-body .pagination-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); color: #75837b; font-size: 12px; }
.pagination-summary { margin-right: auto; white-space: nowrap; }
.pagination-summary strong { color: #344a3c; font-weight: 600; }
.pagination-size, .pagination-jump { display: flex; align-items: center; gap: 8px; margin: 0; }
.admin-body .pagination-bar label { display: flex; align-items: center; gap: 7px; margin: 0; color: #75837b; font-size: 12px; white-space: nowrap; }
.admin-body .pagination-size select { width: 76px; min-height: 32px; padding: 5px 8px; font-size: 12px; }
.admin-body .pagination-jump input { width: 48px; min-height: 32px; padding: 5px; text-align: center; font-size: 12px; }
.admin-body .pagination-jump button, .admin-body .pagination-size button { min-height: 32px; padding: 5px 10px; font-size: 12px; }
.admin-enhanced .pagination-apply { display: none; }
.admin-body .pagination-actions { display: flex; gap: 5px; }
.admin-body .pagination-actions :is(a, span) { display: grid; min-width: 32px; height: 32px; padding: 4px 8px; place-items: center; border: 1px solid #dbe5dd; border-radius: 6px; color: #52645a; background: #fff; font-size: 12px; }
.admin-body .pagination-actions a:hover { border-color: #98bca7; color: var(--primary); background: #f0f6f2; }
.admin-body .pagination-actions .active { border-color: var(--primary); color: #fff; background: var(--primary); }
.admin-body .pagination-actions .disabled { color: #b4c1b8; background: #f7f9f7; }
.admin-body .pagination-actions .pagination-gap { min-width: 20px; border-color: transparent; background: transparent; }
.admin-body .welcome-panel { min-height: 150px; padding: 28px; border: 1px solid #285d46; border-radius: 12px; background: #225b43; box-shadow: none; }
.admin-body .welcome-panel h2 { display: block; color: #fff; font-size: 25px; font-weight: 600; }
.admin-body .welcome-panel p { color: #c9e0d1; font-size: 13px; }
.admin-body .app-main .welcome-actions .button { border-color: #fff; background: #fff; color: #225b43; }
.admin-body .app-main .welcome-actions .button:hover { border-color: #fff; background: #f0f6f2; color: #225b43; }
.admin-body .app-main .welcome-actions .button.secondary { border-color: #7daa90; background: transparent; color: #fff; }
.admin-body .app-main .welcome-actions .button.secondary:hover { border-color: #b9d9c4; background: rgba(255,255,255,.08); }
.admin-body .process-steps b { background: var(--primary); }
.admin-body .quick-actions a { border-color: var(--line); border-radius: 9px; }
.admin-body .quick-actions a b { color: var(--primary); background: #eef5ef; }
.admin-body .dashboard-cards { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin-block: 22px; }
.admin-body .stat-card { min-height: 110px; border: 1px solid var(--line); border-radius: 10px; box-shadow: none; }
.admin-body .stat-card:hover { box-shadow: 0 5px 16px rgba(23,60,40,.06); }
.admin-body .stat-main strong { color: var(--text); font-size: 27px; font-weight: 600; }
.admin-body .stat-card small, .admin-body .stat-card em { color: var(--muted); }
.admin-body .scenic-console__hero { border-radius: 10px; background: #225b43; }
.admin-body .scenic-workspace-head { border-color: #d6e5da; background: #eef5ef; }
.admin-body .scenic-module-tabs { gap: 6px; padding: 8px; border: 1px solid var(--line); border-radius: 9px; }
.admin-body .scenic-module-tabs a { padding: 9px 12px; border-radius: 6px; font-size: 12px; white-space: nowrap; }
.admin-body .scenic-module-tabs a.active { color: var(--primary); background: #e8f3eb; }
.admin-body .scenic-editor__nav { border-color: var(--line); background: #fff; }
.admin-body .scenic-editor__section, .admin-body .console-panel { border-color: var(--line); border-radius: 10px; }
.admin-body .monitor-notice { border-color: #d8e5dc; background: #f0f6f2; color: #65796d; font-size: 12px; }
.admin-body .monitor-notice strong, .admin-body .monitor-tabs a.active { color: var(--primary); }
.admin-body .monitor-tabs a.active { border-color: var(--primary); }
.admin-body .monitor-cards article { border: 1px solid var(--line); border-radius: 10px; box-shadow: none; }
.admin-body .monitor-cards strong { color: var(--text); }
.admin-body .monitor-trend b { background: #428a63; }
.admin-body .monitor-filters { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #f7f9f7; }
.admin-body .settings-grid { gap: 18px; }
.admin-template-types { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 8px; }
.admin-body .admin-template-types summary { padding: 10px 14px; color: #67796d; font-size: 12px; cursor: pointer; }
.admin-template-types > div { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 14px 14px; }
.admin-template-types > div a { padding: 6px 12px; border-radius: 6px; background: #eef5ef; font-size: 12px; }
.admin-body .setting-hint { color: #7d8d82; }
.admin-body .modal-form { border: 1px solid var(--line); border-radius: 12px; }
.admin-body .modal-form header { color: var(--text); border-color: var(--line); }
.admin-body .modal-form header button { min-height: 30px; }
.admin-body dialog.modal { border: 1px solid var(--line); border-radius: 12px; }
.admin-body dialog.modal > form { gap: 18px; padding: 24px; }
.admin-body dialog.modal .modal-head [data-close-modal] { border-color: transparent; background: transparent; color: #718278; }
.admin-body .gallery-source-card { border-color: var(--line); border-radius: 10px; box-shadow: none; }
.admin-login { background: radial-gradient(ellipse at top, #e4eee7, #f5f7f4 65%) !important; }
.admin-login .login-card { width: min(410px,calc(100vw - 40px)); gap: 18px; padding: 38px; border: 1px solid #dfe8e1; border-radius: 16px; box-shadow: 0 18px 50px rgba(31,68,45,.07); }
.admin-login-mark { justify-self: center; }
.admin-login .login-card h1 { margin: 0; color: #244b34; font-size: 21px; font-weight: 600; }
.admin-login .login-card p { color: #7c8b80; font-size: 13px; }
.admin-login .login-card input { min-height: 42px; }
.admin-login .login-card button { min-height: 43px; margin-top: 4px; }
@media (max-width: 1200px) {
  .admin-body .monitor-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .admin-body :is(.app-content, .app-content-header) > .container-fluid { padding-inline: 16px; }
  .admin-body .app-header .container-fluid { padding-inline: 12px; }
  .admin-body .app-content-header { padding: 22px 0 16px; }
  .admin-body .app-content-header .d-flex { flex-wrap: wrap; gap: 8px; }
  .admin-body .page-title { font-size: 21px; }
  .admin-body .breadcrumb { display: none; }
  .admin-body .app-main .panel { padding: 16px; margin-bottom: 16px; }
  .admin-body .panel-head { align-items: flex-start; }
  .admin-body .filters { padding: 12px; }
  .admin-body .filters :is(input:not([type=hidden]),select) { max-width: none; flex-basis: 140px; }
  .admin-body .dashboard-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .admin-body .welcome-panel { align-items: flex-start; flex-direction: column; gap: 20px; padding: 22px; }
  .admin-body .pagination-bar { gap: 12px; }
  .pagination-summary { flex: 1 1 auto; }
  .pagination-jump { margin-left: auto; }
  .admin-body .monitor-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-body .settings-grid { grid-template-columns: 1fr; }
  .admin-body .monitor-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .admin-body *, .admin-login * { scroll-behavior: auto !important; transition: none !important; }
}
.admin-body .article-author { display:flex; align-items:center; gap:9px; min-width:150px; margin:8px 0; }
.admin-body .article-author .author-avatar { width:32px; height:32px; flex-shrink:0; }
.admin-body .article-author > span { display:flex; flex-direction:column; gap:3px; }
.admin-body .article-author small { color:var(--muted); font-size:11px; }
.admin-body .article-author a { color:var(--primary); font-size:13px; white-space:normal; }
