:root { --sf-radius: 1rem; --sf-shadow: 0 .25rem 1.25rem rgba(25, 35, 55, .07); }
body { min-height: 100vh; color: #202631; }
.page-wrap { max-width: 1500px; margin: 0 auto; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-heading h1 { font-size: clamp(1.55rem, 3vw, 2.25rem); margin: 0 0 .25rem; font-weight: 750; }
.page-heading p { color: #6c757d; margin: 0; }
.metric-card, .content-card, .filter-card, .organization-card { background: #fff; border: 1px solid rgba(25,35,55,.06); border-radius: var(--sf-radius); box-shadow: var(--sf-shadow); }
.metric-card { padding: 1.15rem; height: 100%; }
.metric-card span { color: #6c757d; display: block; font-size: .82rem; margin-bottom: .35rem; }
.metric-card strong { display: block; font-size: clamp(1.35rem, 2.5vw, 1.9rem); line-height: 1.2; overflow-wrap: anywhere; }
.metric-money { border-left: 4px solid #0d6efd; }
.content-card, .filter-card { padding: 1.25rem; }
.content-card h2, .organization-card h2 { font-size: 1.1rem; font-weight: 700; }
.card-title-row { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .5rem; }
.card-title-row h2 { margin: 0; }
.organization-card { padding: 1.25rem; height: 100%; display: flex; flex-direction: column; }
.organization-card h2 { margin: 0 0 .25rem; }
.status-pill { display: inline-flex; align-items: center; width: fit-content; height: fit-content; white-space: nowrap; border-radius: 999px; padding: .35rem .65rem; color: #344054; background: #eef2f7; font-size: .78rem; font-weight: 650; }
.status-large { font-size: .9rem; padding: .5rem .8rem; }
.detail-grid { display: grid; grid-template-columns: minmax(110px, .65fr) minmax(0, 1.35fr); gap: 1rem; }
.detail-grid > span { color: #6c757d; }
.detail-grid strong { overflow-wrap: anywhere; }
.timeline-item { border-left: 3px solid #dbe4f0; padding: .2rem 0 .8rem 1rem; margin: .8rem 0; }
.timeline-item p { margin: .4rem 0; }
.history-row { display: grid; grid-template-columns: 105px 1fr; gap: .2rem .75rem; border-bottom: 1px solid #edf0f4; padding: .7rem 0; }
.history-row span, .history-row small { color: #6c757d; font-size: .78rem; }
.history-row small { grid-column: 2; }
.empty-state { color: #6c757d; text-align: center; padding: 2rem !important; }
.comment-cell { min-width: 220px; max-width: 360px; white-space: normal; }
.back-link { text-decoration: none; font-weight: 600; }
.table thead th { background: #f7f9fc; color: #667085; font-size: .78rem; font-weight: 650; white-space: nowrap; padding: .85rem 1rem; }
.table tbody td { padding: .9rem 1rem; }
.form-label { font-size: .85rem; font-weight: 600; }
@media (max-width: 767.98px) {
  .page-wrap { padding-top: 1rem !important; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-heading .btn { width: 100%; }
  .content-card, .filter-card, .organization-card { border-radius: .8rem; padding: 1rem; }
  .detail-grid { grid-template-columns: 1fr; gap: .25rem; }
  .detail-grid > span { margin-top: .65rem; }
  .metric-card { padding: .9rem; }
  .metric-card span { min-height: 2.1rem; }
  .navbar-collapse { padding-bottom: .75rem; }
}
.editor-steps { display: flex; gap: .65rem; overflow-x: auto; padding-bottom: .4rem; }
.editor-step { display: inline-flex; align-items: center; gap: .5rem; min-width: max-content; padding: .6rem .8rem; border-radius: 999px; background: #fff; color: #5f6875; text-decoration: none; border: 1px solid #e1e6ed; }
.editor-step span { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: #eef2f7; font-size: .75rem; }
.editor-step.active { background: #212529; color: #fff; border-color: #212529; }
.editor-step.active span { background: #fff; color: #212529; }
.editor-card { max-width: 1050px; }
.editor-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.editor-field:has(textarea), .editor-field:has(input[type="file"]) { grid-column: 1 / -1; }
.editor-checkbox { display: flex; align-items: center; gap: .6rem; padding-top: 1.75rem; }
.editor-checkbox .form-label { margin: 0; }
.formset-row { position: relative; padding: 1.1rem; margin-bottom: 1rem; border: 1px solid #e3e7ec; border-radius: .8rem; }
.formset-number { position: absolute; right: .8rem; top: .6rem; color: #98a0aa; font-weight: 700; }
.preview-stage { min-height: 850px; padding: 18px; background: #cfd4dc; border-radius: 1rem; overflow: auto; text-align: center; }
.preview-stage iframe { width: 100%; height: 820px; border: 0; border-radius: .7rem; background: #fff; transition: width .25s; }
.editor-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.editor-thumbnail { display: block; width: 140px; aspect-ratio: 4/5; margin: 0 0 1rem; border-radius: .7rem; object-fit: cover; object-position: center; background: #eef2f7; }
.editor-delete { border-radius: .55rem; padding: .7rem; background: #fff1f2; color: #9f1239; }
.upload-preview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .75rem; margin-top: 1rem; }
.upload-preview { min-width: 0; padding: .45rem; border: 1px solid #e3e7ec; border-radius: .7rem; background: #fff; }
.upload-preview img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center; border-radius: .45rem; }
.upload-preview span { display: block; overflow: hidden; margin-top: .35rem; color: #667085; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.editor-image-placeholder { padding: .8rem 1rem; border: 1px dashed #aeb7c4; border-radius: .7rem; background: #f7f9fc; color: #5f6875; font-weight: 650; }
.palette-editor { padding: 1.1rem; border: 1px solid #e3e7ec; border-radius: .9rem; background: #fbfcfe; }
.eyebrow-admin { color: #6c757d; font-size: .75rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.palette-mode-field { min-width: 220px; }
.palette-grid { display: grid; grid-template-columns: repeat(5,minmax(135px,1fr)); gap: .75rem; }
.palette-card { min-width: 0; padding: .75rem; border: 1px solid #e2e7ee; border-radius: .75rem; background: #fff; }
.palette-swatch { height: 72px; margin-bottom: .65rem; border: 1px solid rgba(0,0,0,.08); border-radius: .55rem; }
.palette-inputs { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: .45rem; }
.palette-inputs .form-control-color { width: 46px; min-width: 46px; padding: .2rem; }
.palette-derived:has(.palette-hex[readonly]) { background: #f5f7fa; }
.palette-live-preview { --preview-primary:#9B6B7A; --preview-background:#FFFDFD; --preview-surface:#F5EDEF; --preview-text:#272125; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; border-radius: .8rem; background: var(--preview-background); color: var(--preview-text); border: 10px solid var(--preview-surface); }
.palette-live-preview div { display: grid; gap: .25rem; }
.palette-live-preview span { color: var(--preview-primary); font-weight: 750; }
.palette-live-preview p { margin: 0; }
.palette-live-preview button { flex: 0 0 auto; padding: .7rem 1rem; border: 0; border-radius: 999px; background: var(--preview-primary); color: #fff; font-weight: 700; }
@media (max-width: 991.98px) { .palette-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767.98px) { .editor-fields { grid-template-columns: 1fr; } .editor-field { grid-column: 1 !important; } .preview-stage { padding: 6px; } .palette-grid { grid-template-columns: 1fr; } .palette-live-preview { align-items: stretch; flex-direction: column; } .palette-live-preview button { width: 100%; } }
.template-filter-panel { padding: 1rem; border: 1px solid #e3e7ec; border-radius: 1rem; background: #fff; box-shadow: var(--sf-shadow); }
.template-filter-chips { display: flex; gap: .45rem; overflow-x: auto; padding-bottom: .7rem; scrollbar-width: thin; }
.template-filter-chip { flex: 0 0 auto; padding: .45rem .75rem; border: 1px solid #dfe4eb; border-radius: 999px; color: #4f5968; background: #fff; font-size: .78rem; font-weight: 650; text-decoration: none; }
.template-filter-chip.active { border-color: #212529; color: #fff; background: #212529; }
.template-filter-form { display: grid; grid-template-columns: minmax(180px,1.25fr) repeat(3,minmax(145px,.75fr)) auto auto; gap: .7rem; align-items: end; padding-top: .8rem; border-top: 1px solid #edf0f4; }
.template-catalog-column { min-width: 0; }
.template-catalog-card { position: relative; height: 100%; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e3e7ec; border-radius: 1rem; background: #fff; box-shadow: 0 .35rem 1.4rem rgba(30,40,60,.07); }
.template-catalog-card.template-featured { border-color: rgba(13,110,253,.3); box-shadow: 0 .5rem 1.6rem rgba(13,110,253,.11); }
.template-preview-wrap { position: relative; min-height: 700px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .55rem; margin: .65rem .65rem 0; overflow: hidden; padding: 1rem; border-radius: .75rem; background: #d9dee6; }
.template-mobile-viewport { width: min(390px,100%); height: 650px; overflow: hidden; border: 1px solid rgba(30,39,51,.12); border-radius: 14px; background: #fff; box-shadow: 0 .9rem 2rem rgba(25,35,50,.16); }
.template-mobile-viewport iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; color-scheme: light; }
.template-mobile-fallback { height: auto; aspect-ratio: 390 / 650; }
.template-preview-image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; background: #fff; }
.template-preview-caption { color: #697382; font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.template-preview-fallback { display: grid; width: 100%; min-height: 350px; place-items: center; border-radius: .75rem; }
.template-preview-fallback { display: grid; place-items: center; padding: 1rem; color: #7b8491; background: linear-gradient(135deg,#f4f6f8,#e9edf1); font-size: .8rem; font-weight: 700; }
.template-recommended { position: absolute; top: .65rem; right: .65rem; padding: .32rem .58rem; border-radius: 999px; color: #fff; background: #0d6efd; font-size: .67rem; font-weight: 750; letter-spacing: .03em; }
.template-card-body { display: flex; flex: 1; flex-direction: column; padding: .85rem 1rem .65rem; }
.template-card-meta { display: flex; justify-content: space-between; gap: .65rem; align-items: center; margin-bottom: .55rem; }
.template-accent-label { color: #3d4b5f; font-size: .72rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.template-demo-status { color: #77808d; font-size: .68rem; white-space: nowrap; }
.template-catalog-card h2 { margin: 0 0 .4rem; font-size: 1.08rem; }
.template-description { display: -webkit-box; overflow: hidden; margin: 0 0 .7rem; color: #697382; font-size: .84rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.template-niches { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: auto; }
.template-niches span { padding: .22rem .45rem; border-radius: 999px; color: #606a77; background: #f3f5f7; font-size: .68rem; }
.template-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .65rem 1rem 1rem; }
.template-card-actions .btn { min-width: 0; padding-inline: .65rem; font-size: .78rem; }
@media (max-width: 1199.98px) { .template-filter-form { grid-template-columns: repeat(2,minmax(0,1fr)); } .template-filter-form .btn { width: 100%; } }
@media (max-width: 767.98px) { .template-filter-panel { padding: .8rem; } .template-filter-form { grid-template-columns: 1fr; } .template-card-actions { grid-template-columns: 1fr; } .template-preview-wrap { min-height: 610px; padding: .65rem; } .template-mobile-viewport { height: 560px; } }
