.cms-shell { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 28px; align-items: start; }
.cms-sidebar { position: sticky; top: 90px; padding: 8px 0; }
.cms-sidebar-brand { padding: 0 12px 24px; font-size: 17px; font-weight: 650; }
.cms-sidebar-brand span { display: block; margin-top: 6px; font-size: 10px; letter-spacing: .16em; color: #747f96; font-weight: 400; }
.cms-sidebar p { margin: 20px 12px 8px; color: #6f7b94; font-size: 11px; }
.cms-sidebar button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid transparent; border-radius: 9px; background: none; color: #9ba7bd; font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.cms-sidebar button:hover { background: #ffffff04; color: #eef0fa; }
.cms-sidebar button.active { color: #c7baff; background: #8872e915; border-color: #8872e922; }
.cms-sidebar-note { margin: 24px 12px; padding-top: 16px; border-top: 1px solid #ffffff0a; color: #6f7b94; font-size: 11px; line-height: 1.8; }
.cms-main, .cms-panel { min-width: 0; }
.cms-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.cms-eyebrow { display: block; margin-bottom: 10px; color: #8e7ccf; letter-spacing: .12em; font-size: 10px; }
.cms-heading h2 { font-size: 26px; letter-spacing: -.03em; line-height: 1.3; }
.cms-heading p { margin-top: 10px; color: #8996ae; font-size: 13px; line-height: 1.7; }
.cms-heading > .btn { flex-shrink: 0; }
#view-admin .btn-primary, .cms-editor-dialog .btn-primary, #modal-post-editor .btn-primary { background: #8872e9; box-shadow: 0 4px 14px #8872e91c; }
.cms-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 22px; }
.cms-stat, .cms-card { padding: 22px; border: 1px solid #ffffff0b; border-radius: 14px; background: #111724; }
.cms-stat > span { color: #9da9bd; font-size: 12px; }
.cms-stat strong { display: block; margin: 10px 0 8px; color: #efedf9; font-size: 32px; font-weight: 650; }
.cms-stat p { color: #69778f; font-size: 11px; line-height: 1.7; }
.cms-overview-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 20px; }
.cms-card h3 { font-size: 15px; font-weight: 600; margin-bottom: 18px; }
.cms-card > p { font-size: 13px; color: #8996ae; line-height: 1.8; }
.cms-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.cms-summary-labels, .cms-summary-row { display: grid; grid-template-columns: 1.5fr repeat(4,1fr); gap: 10px; width: 100%; padding: 12px 0; font-size: 12px; text-align: center; }
.cms-summary-labels { color: #6f7b94; border-bottom: 1px solid #ffffff08; font-size: 11px; }
.cms-summary-labels > :first-child, .cms-summary-row > :first-child { text-align: left; }
.cms-summary-row { border: 0; border-bottom: 1px solid #ffffff08; background: none; color: #a5afc3; font-family: inherit; cursor: pointer; }
.cms-summary-row:hover { color: #c7baff; }
.cms-summary-row strong { font-weight: 500; }
.cms-filters { display: flex; gap: 10px; margin-bottom: 20px; padding: 14px; border-radius: 12px; border: 1px solid #ffffff08; background: #101621; }
.cms-filters input { flex: 1 1 260px; min-width: 0; }
.cms-filters select { width: auto; min-width: 120px; flex: 0 1 160px; }
.cms-filters .btn { flex-shrink: 0; }
.cms-list { border: 1px solid #ffffff0b; border-radius: 12px; background: #101621; overflow: hidden; }
.cms-list-heading, .cms-content-row { display: grid; grid-template-columns: minmax(0,1fr) 82px 145px 215px; gap: 16px; align-items: center; padding: 20px; }
.cms-list-heading { background: #ffffff02; color: #707e95; font-size: 11px; padding-top: 12px; padding-bottom: 12px; }
.cms-content-row + .cms-content-row, .cms-user-row + .cms-user-row { border-top: 1px solid #ffffff07; }
.cms-record-title { min-width: 0; }
.cms-record-title h3 { font-size: 14px; font-weight: 550; line-height: 1.6; overflow-wrap: anywhere; }
.cms-record-title p { color: #69788f; font-size: 11px; line-height: 1.7; margin-top: 5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.cms-record-kind { display: block; margin-bottom: 6px; color: #8c7cbf; font-size: 10px; }
.cms-record-meta { color: #9aa5b9; font-size: 11px; line-height: 1.7; overflow-wrap: anywhere; }
.cms-record-meta span { display: block; margin-top: 4px; color: #64738c; font-size: 10px; }
.cms-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.cms-row-actions .btn { font-size: 11px; padding: 6px 8px; }
.cms-status { display: inline-block; padding: 4px 8px; border-radius: 6px; color: #94a0b8; background: #94a0b814; font-size: 11px; white-space: nowrap; }
.cms-status-approved, .cms-status-active { color: #66c5aa; background: #66c5aa12; }
.cms-status-pending { color: #e2bd76; background: #e2bd7612; }
.cms-status-rejected, .cms-status-disabled { color: #d497a7; background: #d497a712; }
.cms-status-draft { color: #a696e8; background: #a696e812; }
.cms-empty { text-align: center; padding: 70px 20px; color: #75829a; font-size: 13px; line-height: 1.8; }
.cms-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0; color: #7c8aa1; font-size: 12px; }
.cms-pagination > div { display: flex; gap: 8px; }
.cms-pagination .btn { font-size: 12px; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.cms-user-row { display: grid; grid-template-columns: minmax(0,1fr) 120px 175px auto; gap: 18px; align-items: center; padding: 20px; }
.cms-user-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cms-user-identity h3 { font-size: 14px; overflow-wrap: anywhere; }
.cms-user-identity p { font-size: 11px; line-height: 1.7; color: #7d8aa2; margin-top: 4px; overflow-wrap: anywhere; }
.cms-user-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.cms-audit-row { padding: 18px 20px; }
.cms-audit-row + .cms-audit-row { border-top: 1px solid #ffffff08; }
.cms-audit-row summary { cursor: pointer; color: #a6b2c6; font-size: 12px; }
.cms-audit-row summary div { display: inline; overflow-wrap: anywhere; }
.cms-audit-row summary strong { color: #c6b4ef; font-weight: 500; margin-right: 12px; }
.cms-audit-row summary p { margin-top: 8px; color: #69788f; font-size: 11px; }
.cms-audit-row pre { padding: 14px; margin-top: 14px; background: #080e18; border-radius: 8px; overflow: auto; max-height: 360px; font-size: 11px; line-height: 1.7; }
.cms-editor-dialog { max-width: 880px; }
.cms-result-preview { display: block; width: 100%; height: 520px; border: 0; background: #000; }
#modal-cms-user .cms-editor-dialog { max-width: 620px; }
.cms-editor-dialog > form, #post-editor-form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.cms-editor-note { font-size: 12px; line-height: 1.8; color: #8c99b0; margin: 0 0 18px; }
.cms-editor-dialog textarea { min-height: 110px; }
#cms-field-html_content, #cms-field-prompt_text, #cms-field-system_prompt { font-family: monospace; font-size: 13px; line-height: 1.8; min-height: 220px; }
.cms-close { width: 36px; height: 36px; border: 0; border-radius: 8px; background: #ffffff05; color: #9ba6bb; font-size: 24px; cursor: pointer; }
.cms-user-stats { display: flex; gap: 20px; padding: 16px; margin-bottom: 22px; border: 1px solid #ffffff08; border-radius: 10px; font-size: 12px; color: #93a0b5; }
.cms-user-stats strong { color: #d1c3fb; margin-left: 4px; }
.cms-account-tools { border-top: 1px solid #ffffff08; padding-top: 20px; margin-top: 24px; }
.cms-account-tools h4 { font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.cms-account-tools > p { color: #7c8aa2; font-size: 12px; line-height: 1.8; }
.cms-password-reset { margin-top: 20px; }
.cms-password-reset .btn { margin-top: 10px; }
.cms-owned-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; border-bottom: 1px solid #ffffff08; }
.cms-owned-item strong { font-size: 14px; }
.cms-owned-item p { margin-top: 8px; color: #7987a0; font-size: 12px; }
.cms-editor-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.cms-editor-tabs button { border: 1px solid #ffffff0d; border-radius: 6px; padding: 8px 12px; background: #ffffff05; color: #a9b5c9; font: inherit; font-size: 12px; cursor: pointer; }
.cms-markdown-preview { min-height: 300px; padding: 20px; border: 1px solid #ffffff0b; border-radius: 10px; background: #0c121d; }
.cms-blog-cover { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 8px; margin-bottom: 16px; }
.cms-sidebar button:focus-visible, .cms-editor-tabs button:focus-visible { outline: 2px solid #b7a5ff; outline-offset: 2px; }
@media (max-width: 1280px) { .cms-sidebar { top: 125px; } .cms-stats { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 1100px) {
  .cms-shell { grid-template-columns: 160px minmax(0,1fr); gap: 20px; }
  .cms-list-heading { display: none; }
  .cms-content-row { grid-template-columns: minmax(0,1fr) auto; }
  .cms-row-actions { justify-content: flex-end; max-width: 240px; }
  .cms-user-row { grid-template-columns: minmax(0,1fr) auto; }
  .cms-overview-grid { grid-template-columns: minmax(0,1fr); }
  .cms-filters { flex-wrap: wrap; }
  .cms-filters input { flex-basis: 100%; }
}
@media (max-width: 768px) {
  .cms-shell { display: block; }
  .cms-sidebar { position: static; display: flex; gap: 6px; overflow-x: auto; padding: 0 0 14px; margin-bottom: 24px; }
  .cms-sidebar-brand, .cms-sidebar p, .cms-sidebar-note { display: none; }
  .cms-sidebar button { width: auto; flex-shrink: 0; white-space: nowrap; min-height: 42px; font-size: 12px; padding: 10px 14px; border-color: #ffffff08; }
  .cms-sidebar button span { display: none; }
  .cms-heading { gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
  .cms-heading h2 { font-size: 24px; }
  .cms-heading p { font-size: 12px; }
  .cms-stats { gap: 10px; }
  .cms-stat { padding: 16px; }
  .cms-stat strong { font-size: 28px; }
  .cms-card { padding: 18px; }
  .cms-content-row, .cms-user-row { padding: 16px; gap: 14px 10px; }
  .cms-record-meta { grid-column: 1/-1; }
  .cms-record-meta span { display: inline; margin-left: 10px; }
  .cms-row-actions { grid-column: 1/-1; justify-content: flex-start; max-width: none; }
  .cms-row-actions .btn { min-height: 40px; padding: 9px 12px; font-size: 12px; }
  .cms-filters { padding: 12px; }
  .cms-filters select { min-width: 0; flex: 1; font-size: 14px; }
  .cms-filters .btn { width: 100%; }
  .cms-user-identity { grid-column: 1/-1; }
  .cms-user-badges { grid-row: 2; }
  .cms-user-row > button { grid-row: 2; justify-self: end; }
  .cms-pagination { flex-wrap: wrap; font-size: 11px; }
  .cms-user-stats { flex-wrap: wrap; gap: 12px; }
  .cms-audit-row { padding: 16px; }
  #post-editor-form .form-group > div[style] { flex-wrap: wrap; gap: 8px; }
  #post-editor-content { font-size: 16px !important; }
  .cms-editor-dialog .form-control { font-size: 16px; }
}

.cms-editor-history { margin-bottom: 1rem; }
#modal-cms-history [type="submit"] { min-width: 140px; white-space: nowrap; }
#modal-cms-history { z-index: 1200; }
#modal-cms-history .cms-editor-dialog { max-width: 1000px; }
.cms-history-warning { padding: 12px; border: 1px solid rgba(251,191,36,.3); border-radius: 10px; background: rgba(251,191,36,.07); color: #fcd34d; font-size: .85rem; line-height: 1.6; }
.cms-history-change { margin: 18px 0; padding: 14px; background: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: 12px; min-width: 0; }
.cms-history-change h4 { margin: 0 0 12px; font-size: .95rem; }
.cms-history-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.cms-history-columns > div { min-width: 0; }
.cms-history-columns h5 { margin: 0 0 8px; color: var(--text-secondary); font-size: .8rem; }
.cms-history-columns pre { margin: 0; padding: 12px; border-radius: 8px; background: var(--bg-primary); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 300px; overflow: auto; font-size: 12px; line-height: 1.6; }
@media(max-width:600px) { .cms-history-columns { grid-template-columns: minmax(0,1fr); } #modal-cms-history .modal-footer { flex-wrap: wrap; } #modal-cms-history .modal-footer .btn { flex: 1; } }
/* Protection rules stay readable on narrow management screens. */
.cms-security-rule { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--border-color, rgba(255,255,255,.08)); flex-wrap:wrap; }
.cms-security-rule strong { font-size:.85rem; font-weight:500; }
.cms-backup-record { display:grid; gap:.3rem; padding:.85rem 0; border-bottom:1px solid var(--border-color, rgba(255,255,255,.08)); overflow-wrap:anywhere; font-size:.85rem; }
.cms-backup-record small { opacity:.65; }
/* Runtime diagnostics and private log inspection. */
.cms-log-controls { display:flex;gap:12px;flex-wrap:wrap;margin:16px 0; }
.cms-log-controls .form-control { flex:1 1 260px;min-width:0; }
.cms-log-list { max-height:480px;overflow:auto; }
.cms-log-item { border-top:1px solid var(--border);padding:12px 0;overflow-wrap:anywhere; }
.cms-log-item summary { cursor:pointer;line-height:1.7; }
.cms-log-item pre { white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;padding:12px;background:var(--bg-primary);border-radius:8px; }
@media(max-width:600px){.cms-log-controls .form-control,.cms-log-controls button { width:100%;flex-basis:100%; }.cms-log-item { font-size:12px; }}

/* Public task previews and article illustrations fit both cards and phones. */
.benchmark-cover { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:12px; margin-bottom:16px; background:var(--bg-primary,#101726); }
.prompt-card { min-width:0; }
.post-markdown-body img { display:block; max-width:100%; height:auto; margin:20px auto; border-radius:10px; }

.generation-fields { border:1px solid var(--border-color,#293246); border-radius:12px; padding:16px; margin:0 0 20px; min-width:0; }
.generation-fields legend { font-size:.9rem; padding:0 6px; color:var(--text-secondary); }
.generation-metrics { display:flex; flex-wrap:wrap; gap:8px 20px; margin:12px 0; font-size:.8rem; }
.generation-metrics div { min-width:0; max-width:100%; }
.generation-metrics dt { color:var(--text-muted); margin-bottom:3px; }
.generation-metrics dd { margin:0; color:var(--text-primary); overflow-wrap:anywhere; }
