:root {
  color-scheme:light;
  --blue:#3f8cff;
  --action:#2269d3;
  --soft:#edf4ff;
  --bg:#f4f9fd;
  --ink:#0a1629;
  --muted:#607087;
  --line:#e6edf5;
  --radius:16px;
  --shadow:0 5px 22px #b8c9df16;
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  font-size:14px}
* {
  box-sizing:border-box}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink)}
button,input,select,textarea {
  font:inherit}
button,a,input,select,textarea {
  touch-action:manipulation}
button {
  cursor:pointer;
  color:inherit;
  border:0;
  background:none}
button:disabled {
  cursor:not-allowed;
  opacity:.48}
a {
  color:var(--action);
  text-decoration:none}
button,a {
   -webkit-tap-highlight-color:transparent}
button,a,input {
  transition:background .16s,border-color .16s,box-shadow .16s}
button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid var(--action);
  outline-offset:3px}
input,textarea,select {
  border:1px solid #d8e0f0;
  border-radius:10px;
  padding:10px 12px;
  width:100%;
  background:#fff;
  color:var(--ink);
  outline:none;
  caret-color:var(--action)}
input:focus,textarea:focus,select:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px #3f8cff15}
input:disabled {
  background:#f4f7fb;
  color:#66758c}
input::placeholder,textarea::placeholder {
  color:#687990}
input[type=color] {
  width:74px;
  height:40px;
  padding:4px}
textarea {
  resize:vertical;
  min-height:78px;
  line-height:1.7}
::selection {
  background:#d8e9ff;
  color:#0a1629}
* {
  scrollbar-width:thin;
  scrollbar-color:#cedced transparent}
h1,h2,h3,p {
  margin:0}
h1,h2,h3 {
  text-wrap:balance}
h1 {
  font-size:30px;
  line-height:1.3;
  font-weight:650;
  letter-spacing:-.02em}
h2 {
  font-size:17px;
  font-weight:600}
h3 {
  font-size:16px;
  font-weight:600}
.icon {
  width:20px;
  height:20px;
  flex-shrink:0;
  vertical-align:middle}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  padding:6px;
  border-radius:8px}
.icon-button:hover {
  background:var(--soft);
  color:var(--action)}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #d8e0f0;
  background:#fff;
  color:var(--action);
  padding:10px 16px;
  min-height:40px;
  border-radius:10px;
  white-space:nowrap;
  font-size:13px;
  font-weight:500}
.button:hover:not(:disabled) {
  background:#edf4ff;
  border-color:#a9c8f2}
.button.primary {
  background:var(--action);
  border-color:transparent;
  color:white;
  box-shadow:0 5px 12px #3f8cff22}
.button.primary:hover:not(:disabled) {
  background:#1f6de0}
.button .icon {
  width:18px;
  height:18px}
.button.danger,.danger {
  color:#bd3434}
.button.danger:hover {
  background:#fff0f1;
  border-color:#f0c5ca}
.full {
  width:100%}
.actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap}
.subtle {
  color:var(--muted);
  font-size:12px;
  line-height:1.7}
.panel {
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px}
.sidebar {
  position:fixed;
  inset:14px auto 14px 14px;
  width:194px;
  background:white;
  border-radius:24px;
  display:flex;
  flex-direction:column;
  padding:20px 8px 18px;
  box-shadow:0 6px 28px #c4cbd628;
  z-index:30}
.brand {
  padding:0 16px 28px;
  display:flex;
  flex-direction:column;
  gap:5px}
.brand strong {
  font-size:27px;
  font-weight:700;
  letter-spacing:.02em}
.brand>span {
  font-size:13px;
  color:var(--muted)}
.sidebar nav {
  display:grid;
  gap:9px}
.nav-item {
  position:relative;
  display:flex;
  align-items:center;
  gap:17px;
  min-height:48px;
  padding:12px 18px;
  color:var(--muted);
  border-radius:10px;
  font-size:15px}
.nav-item .icon {
  width:22px;
  height:22px}
.nav-item:hover {
  background:#f5f9fe;
  color:var(--action)}
.nav-item.active {
  background:var(--soft);
  color:var(--action);
  font-weight:600}
.nav-item.active:after {
  position:absolute;
  content:"";
  inset:0 0 0 auto;
  width:4px;
  background:var(--blue);
  border-radius:0 10px 10px 0}
.sidebar-bottom {
  display:flex;
  align-items:center;
  gap:11px;
  padding:16px 15px 6px;
  margin-top:auto;
  color:var(--muted);
  font-size:13px;
  overflow-wrap:anywhere}
.logout-button {
  font-size:12px;
  margin:8px auto 0;
  color:var(--muted)}
.workspace {
  margin-left:224px;
  padding:22px 22px 20px 10px;
  min-height:100vh}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  min-height:65px;
  margin-bottom:14px}
.page-heading p {
  font-size:14px;
  color:var(--muted);
  margin-top:5px}
.heading-actions {
  display:flex;
  gap:8px;
  padding-top:3px}
.heading-actions>.primary {
  padding:12px 22px;
  font-size:14px}
.heading-actions>.primary .icon {
  width:21px;
  height:21px}
.summary {
  display:flex;
  align-items:center;
  gap:0;
  padding:14px 28px;
  background:white;
  border:1px solid var(--line);
  border-radius:12px;
  height:54px;
  margin-bottom:14px}
.summary>span {
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 30px;
  color:var(--muted);
  font-size:14px;
  white-space:nowrap;
  border-right:1px solid var(--line)}
.summary>span:first-child {
  padding-left:0}
.summary>span:last-child {
  border:0}
.summary b {
  font-size:20px;
  line-height:1;
  font-weight:600;
  color:var(--ink);
  font-variant-numeric:tabular-nums}
.summary .success-text,.summary .success-text b {
  color:#16845a}
.summary .warning-text,.summary .warning-text b {
  color:#a96a08}
.manager-split,.editor-split {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:start}
.page-list-panel,.preview-panel {
  min-width:0;
  overflow:hidden}
.page-list-panel {
  height:calc(100vh - 184px);
  min-height:540px;
  display:flex;
  flex-direction:column;
  padding:14px 10px 10px}
.list-toolbar {
  display:flex;
  gap:14px;
  justify-content:space-between;
  align-items:center;
  padding:0 6px 14px;
  flex-shrink:0}
.filter-tabs {
  display:flex;
  align-items:center;
  white-space:nowrap;
  flex-shrink:0;
  border:1px solid #e6edf5;
  background:#f8faff;
  border-radius:8px;
  overflow:hidden}
.filter-tabs button {
  min-height:39px;
  font-size:12px;
  padding:9px 15px;
  color:var(--muted)}
.filter-tabs button.active {
  background:#e8f1ff;
  color:var(--action);
  font-weight:600}
.filter-tabs button:hover {
  color:var(--action)}
.search {
  display:flex;
  align-items:center;
  position:relative;
  min-width:0;
  max-width:250px;
  flex:1}
.search .icon {
  position:absolute;
  left:12px;
  width:16px;
  height:16px;
  color:var(--muted);
  pointer-events:none}
.search input {
  padding:10px 10px 10px 35px;
  height:39px;
  font-size:12px;
  border-radius:8px;
  min-width:0}
.page-list {
  overflow-y:auto;
  min-height:0;
  flex:1}
.page-row {
  position:relative;
  border-radius:10px;
  border-bottom:1px solid #f0f4f9;
  min-height:120px}
.page-row:last-child {
  border-bottom-color:transparent}
.page-row.selected {
  background:#edf5ff;
  border-bottom-color:transparent}
.page-row:hover {
  background:#f5f9ff}
.page-row.selected:hover {
  background:#e8f2ff}
.select-page {
  display:grid;
  grid-template-columns:clamp(90px,9vw,139px) minmax(80px,1fr) 150px;
  gap:20px;
  align-items:center;
  padding:16px 14px;
  width:100%;
  min-height:120px;
  text-align:left}
.record-text {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px}
.record-text>strong {
  font-size:15px;
  font-weight:600;
  overflow-wrap:anywhere;
  line-height:1.5}
.record-url,.record-template {
  color:var(--muted);
  font-size:12px;
  overflow-wrap:anywhere;
  line-height:1.4}
.record-right {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:23px;
  align-self:stretch;
  padding-top:5px}
.record-bottom {
  display:flex;
  gap:20px;
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
  font-variant-numeric:tabular-nums}
.row-menu {
  position:absolute;
  right:6px;
  top:19px;
  width:29px;
  height:29px;
  color:var(--muted)}
.badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:20px;
  line-height:1.3;
  white-space:nowrap;
  font-size:12px;
  color:#13734d;
  background:#e5f7ef}
.badge i {
  width:7px;
  height:7px;
  background:currentColor;
  border-radius:50%;
  flex-shrink:0}
.badge.draft {
  color:#8c5904;
  background:#fff5df}
.badge.offline {
  color:#66758c;
  background:#edf1f6}
.mini {
  width:100%;
  height:82px;
  min-width:0;
  background:#fff;
  border:1px solid #e4ebf3;
  border-radius:5px;
  overflow:hidden;
  color:#14203a;
  position:relative;
  pointer-events:none}
.mini-nav {
  font-size:4px;
  height:13px;
  padding:4px 8px;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden}
.mini-hero {
  position:relative;
  height:56px;
  background:#e9f2fc;
  overflow:hidden}
.mini-hero>img {
  position:absolute;
  inset:0 0 0 auto;
  width:58%;
  height:100%;
  object-fit:cover;
  object-position:center}
.mini-hero:after {
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(90deg,#e9f2fc,#e9f2fc6b 55%,transparent 80%)}
.mini-hero>div {
  position:relative;
  z-index:1;
  padding:7px 8px;
  max-width:75%;
  display:flex;
  flex-direction:column;
  gap:3px}
.mini-hero strong {
  font-size:8px;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden}
.mini-hero span {
  font-size:4px;
  white-space:nowrap;
  overflow:hidden}
.mini-hero i {
  font-style:normal;
  font-size:4px;
  color:white;
  background:#3f8cff;
  padding:2px 4px;
  border-radius:2px;
  width:max-content;
  margin-top:2px}
.mini-lines {
  display:flex;
  gap:5px;
  padding:5px 8px}
.mini-lines span {
  height:2px;
  width:25%;
  background:#e9edf5}
.preview-panel {
  padding:14px 17px 10px;
  max-height:calc(100vh - 184px);
  min-height:540px;
  overflow-y:auto;
  background:#fcfdff}
.preview-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  min-height:34px}
.preview-toolbar h2 {
  font-size:16px;
  white-space:nowrap}
.preview-kind {
  font-size:10px;
  font-weight:400;
  color:var(--muted);
  margin-left:4px}
.device-switch {
  display:flex;
  gap:5px}
.device-switch button {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  color:var(--muted);
  padding:7px 12px;
  font-size:12px;
  min-height:35px}
.device-switch .icon {
  width:17px;
  height:17px}
.device-switch button.active {
  border-color:#9ebeff;
  color:var(--action);
  background:#f8fbff}
.preview-stage {
  border:1px solid #dce5f2;
  border-radius:10px;
  overflow:hidden;
  background:#edf2f8;
  display:flex;
  justify-content:center;
  min-width:0;
  height:clamp(340px,52.8vh,541px)}
.preview-stage iframe {
  border:0;
  background:white;
  width:100%;
  height:100%;
  display:block;
  transition:none}
.preview-stage.mobile iframe {
  width:340px;
  max-width:100%}
.page-detail {
  padding:18px 0 0}
.detail-heading {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap}
.detail-heading h3 {
  font-size:16px}
.pending {
  font-size:11px;
  color:#a46a08;
  padding-left:8px;
  border-left:1px solid #e5dfd0}
.page-detail dl {
  margin:13px 0 17px;
  display:grid;
  gap:9px;
  font-size:13px}
.page-detail dl>div {
  display:flex;
  gap:20px;
  align-items:center;
  min-width:0}
.page-detail dt {
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--muted);
  flex-shrink:0}
.page-detail dt .icon {
  width:17px;
  height:17px}
.page-detail dd {
  margin:0;
  overflow-wrap:anywhere}
.detail-actions {
  display:flex;
  gap:8px;
  align-items:center}
.detail-actions>.button:not(.icon-button) {
  flex:1;
  padding:9px 10px;
  font-size:12px}
.detail-actions>.icon-button {
  width:40px;
  min-height:40px;
  flex-shrink:0}
.demo-note {
  text-align:right;
  font-size:10px;
  color:var(--muted);
  padding-top:12px;
  line-height:1.6}
.empty {
  padding:60px 20px;
  text-align:center;
  color:var(--muted);
  width:100%}
.empty>.icon {
  width:34px;
  height:34px;
  color:#92b3e7;
  margin-bottom:16px}
.empty h3 {
  color:#435269;
  margin-bottom:10px}
.empty p {
  font-size:13px;
  line-height:1.8;
  margin-bottom:20px}
.editor-panel {
  padding:20px;
  max-height:calc(100vh - 122px);
  overflow-y:auto;
  min-width:0}
.editor-split .preview-panel {
  max-height:calc(100vh - 122px)}
.editor-intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px}
.editor-intro>span {
  font-size:12px;
  color:var(--muted)}
fieldset {
  border:0;
  border-bottom:1px solid var(--line);
  padding:0 0 24px;
  margin:0 0 24px;
  min-width:0}
legend {
  font-size:14px;
  font-weight:600;
  margin-bottom:18px}
.field {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-bottom:16px;
  min-width:0}
.field>label {
  font-size:12px;
  color:#4e6078}
.field small {
  font-size:11px;
  line-height:1.7;
  color:var(--muted)}
.cover-field {
  display:flex;
  gap:8px;
  align-items:center}
.cover-field input {
  min-width:0;
  flex:1;
  font-size:12px}
.cover-field .button {
  padding:9px 11px;
  font-size:12px}
.block-editor {
  background:#f6f9fd;
  padding:14px;
  border-radius:12px;
  margin:14px 0}
.block-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
  font-size:13px}
.block-header>div {
  display:flex;
  gap:3px}
.block-header .icon-button {
  width:28px;
  height:28px}
.block-header .icon {
  width:15px;
  height:15px}
.block-editor .field:last-child {
  margin-bottom:0}
.editor-bottom {
  display:flex;
  justify-content:flex-end;
  gap:8px}
.template-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  padding-top:12px}
.template-card {
  overflow:hidden}
.template-card>.mini {
  border:0;
  border-radius:0;
  height:210px;
  zoom:1}
.template-card>.mini .mini-nav {
  font-size:9px;
  height:32px;
  padding:10px 18px}
.template-card>.mini .mini-hero {
  height:155px}
.template-card>.mini .mini-hero>div {
  padding:25px 20px;
  gap:9px}
.template-card>.mini .mini-hero strong {
  font-size:24px}
.template-card>.mini .mini-hero span {
  font-size:9px}
.template-card>.mini .mini-hero i {
  font-size:8px;
  padding:5px 8px}
.template-card>.mini .mini-lines {
  padding:11px 18px}
.template-info {
  padding:22px}
.template-info>div:first-child {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px}
.template-info p {
  font-size:13px;
  color:var(--muted);
  margin:12px 0 20px;
  line-height:1.7}
.surface-note {
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
  margin-top:22px}
.media-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:20px}
.media-grid>.empty {
  grid-column:1/-1}
.media-card {
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:white;
  min-width:0}
.media-card>img {
  width:100%;
  height:165px;
  object-fit:cover;
  background:#edf3fb}
.media-card>div {
  padding:14px}
.media-card strong {
  display:block;
  font-size:13px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis}
.media-card small {
  display:block;
  color:var(--muted);
  font-size:11px;
  margin:7px 0 12px}
.media-card .button {
  font-size:11px;
  min-height:32px;
  padding:6px 9px}
.media-card .button .icon {
  width:14px;
  height:14px}
.settings-layout {
  display:grid;
  grid-template-columns:minmax(320px,1.2fr) minmax(280px,1fr);
  gap:20px;
  max-width:1000px;
  margin-top:16px}
.settings-form,.backup-panel {
  padding:27px}
.settings-form h2 {
  margin-bottom:22px}
.settings-form h2:not(:first-child) {
  margin-top:32px}
.settings-description {
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin:-5px 0 18px}
.backup-panel p {
  color:var(--muted);
  font-size:13px;
  line-height:1.9;
  margin:16px 0}
.backup-panel hr {
  border:0;
  border-top:1px solid var(--line);
  margin:30px 0}
.backup-panel dl {
  font-size:13px;
  display:grid;
  gap:14px;
  margin-top:22px}
.backup-panel dl>div {
  display:flex;
  gap:22px}
.backup-panel dt {
  color:var(--muted)}
.backup-panel dd {
  margin:0}
.stats-summary {
  display:flex;
  gap:80px;
  padding:24px 30px;
  margin:16px 0}
.stats-summary>span {
  display:flex;
  gap:20px;
  align-items:center;
  color:var(--muted);
  font-size:13px}
.stats-summary b {
  font-size:23px;
  color:var(--ink);
  font-variant-numeric:tabular-nums}
.stats-chart {
  padding:24px 28px}
.chart-bars {
  height:220px;
  padding:18px 15px 0;
  display:flex;
  align-items:flex-end;
  gap:25px}
.chart-column {
  height:100%;
  display:flex;
  flex:1;
  align-items:center;
  justify-content:flex-end;
  flex-direction:column;
  gap:8px;
  min-width:0}
.chart-column>strong,.chart-column>span {
  font-size:11px;
  font-weight:400;
  color:var(--muted)}
.chart-column>div {
  width:min(38px,90%);
  height:var(--bar-height);
  max-height:160px;
  background:var(--blue);
  border-radius:5px 5px 0 0;
  min-height:2px}
.stats-table {
  margin-top:20px;
  overflow:auto}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:13px}
th {
  background:#f8fbfe;
  color:var(--muted);
  font-weight:500;
  padding:14px 20px}
td {
  padding:16px 20px;
  border-top:1px solid var(--line)}
td small {
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-top:5px}
dialog {
  border:0;
  border-radius:20px;
  box-shadow:0 20px 70px #0a162933;
  padding:0;
  width:460px;
  max-width:calc(100vw - 32px);
  max-height:85vh;
  color:var(--ink);
  background:white}
dialog.wide {
  width:900px}
dialog::backdrop {
  background:#0a162952}
dialog>header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:19px 23px;
  border-bottom:1px solid var(--line)}
dialog>header h2 {
  font-size:18px}
.dialog-body {
  padding:24px;
  overflow:auto;
  max-height:calc(85vh - 78px)}
.dialog-intro {
  color:var(--muted);
  font-size:13px;
  margin-bottom:20px;
  line-height:1.8}
.template-options {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px}
.template-option {
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  text-align:left;
  padding:0 0 16px}
.template-option:hover {
  border-color:#9cc4fa;
  background:#f8fbff}
.template-option>.mini {
  height:145px;
  border:0;
  border-radius:0}
.template-option .mini-nav {
  height:22px;
  font-size:6px;
  padding:6px 12px}
.template-option .mini-hero {
  height:104px}
.template-option .mini-hero>div {
  padding:15px 12px;
  gap:7px}
.template-option .mini-hero strong {
  font-size:16px}
.template-option .mini-hero span {
  font-size:7px}
.template-option .mini-hero i {
  font-size:6px;
  padding:3px 6px}
.template-option>strong,.template-option>span,.template-option>small {
  display:block;
  margin:10px 14px 0}
.template-option>strong {
  font-size:15px}
.template-option>span {
  font-size:12px;
  line-height:1.7;
  color:var(--muted)}
.template-option>small {
  font-size:11px;
  color:var(--action);
  margin-top:18px}
.menu-actions {
  display:grid;
  gap:6px}
.menu-actions button {
  display:flex;
  align-items:center;
  gap:14px;
  min-height:44px;
  text-align:left;
  padding:11px 14px;
  border-radius:8px;
  font-size:14px}
.menu-actions button:hover:not(:disabled) {
  background:var(--soft);
  color:var(--action)}
.version-list>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid var(--line)}
.version-list strong {
  font-size:14px}
.version-list small {
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-top:7px}
.qr-content {
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px}
.qr-content>img {
  width:230px;
  height:230px;
  image-rendering:pixelated}
.qr-content>p {
  font-size:12px;
  overflow-wrap:anywhere;
  max-width:100%;
  line-height:1.8}
.dialog-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:13px}
.media-grid.picker {
  grid-template-columns:repeat(3,minmax(0,1fr))}
.login-page {
  display:grid;
  place-items:center;
  min-height:100vh;
  padding:20px}
.login-form {
  padding:38px;
  width:400px;
  max-width:100%}
.login-form .brand {
  padding:0 0 30px}
.login-form h1 {
  font-size:24px}
.login-form p {
  font-size:12px;
  color:var(--muted);
  margin:12px 0 25px;
  line-height:1.8}
.form-error {
  color:#bd3434!important}
.boot-state {
  text-align:center;
  padding:25vh 20px;
  color:var(--muted)}
#toast {
  position:fixed;
  left:50%;
  bottom:25px;
  transform:translate(-50%,20px);
  opacity:0;
  pointer-events:none;
  background:#24354b;
  color:#fff;
  border-radius:12px;
  padding:12px 22px;
  box-shadow:0 6px 24px #24354b22;
  z-index:100;
  font-size:13px;
  max-width:min(600px,90vw);
  line-height:1.7;
  transition:opacity .18s,transform .18s}
#toast.show {
  opacity:1;
  transform:translate(-50%,0)}
#toast.error {
  background:#8e343e}
.mobile-menu {
  display:none}

@media(max-width:1400px) {
  .select-page {
  grid-template-columns:105px minmax(90px,1fr) 120px;
  gap:14px;
  padding:17px 12px}
.record-right {
  gap:24px}
.record-bottom {
  gap:11px;
  font-size:10px}
.list-toolbar {
  gap:9px}
.filter-tabs button {
  padding:9px 11px}
.preview-panel {
  padding:13px}
.detail-actions {
  gap:6px}
.detail-actions>.button:not(.icon-button) {
  padding:9px 7px;
  font-size:11px;
  gap:5px}
.detail-actions .button .icon {
  width:16px;
  height:16px}
.detail-heading {
  gap:9px}
.detail-heading h3 {
  font-size:15px}
}

@media(max-width:1180px) {
  .sidebar {
  width:176px}
.workspace {
  margin-left:198px;
  padding-right:16px}
.nav-item {
  font-size:14px;
  gap:12px;
  padding-left:15px}
.brand {
  padding-left:15px}
.list-toolbar {
  flex-wrap:wrap}
.search {
  max-width:none;
  flex-basis:100%}
.filter-tabs {
  width:100%}
.filter-tabs button {
  flex:1}
.select-page {
  grid-template-columns:84px minmax(75px,1fr) 79px;
  gap:10px;
  padding:14px 9px;
  min-height:116px}
.page-row {
  min-height:116px}
.record-text>strong {
  font-size:13px}
.record-url,.record-template {
  font-size:10px}
.record-right {
  padding-top:6px;
  gap:20px}
.record-bottom {
  flex-direction:column;
  gap:4px}
.badge {
  font-size:10px;
  padding:4px 7px}
.row-menu {
  right:2px;
  top:16px;
  width:23px}
.mini {
  height:66px}
.mini-hero {
  height:43px}
.mini-nav {
  height:11px;
  padding:3px 5px}
.mini-hero>div {
  padding:5px;
  gap:3px}
.mini-hero strong {
  font-size:6px}
.mini-hero span {
  font-size:3px}
.mini-hero i {
  font-size:3px}
.mini-lines {
  padding:4px}
.preview-toolbar {
  gap:6px}
.preview-toolbar h2 {
  font-size:14px}
.device-switch button {
  padding:7px 8px;
  gap:5px;
  font-size:11px}
.device-switch .icon {
  width:15px}
.detail-actions {
  flex-wrap:wrap}
.detail-actions>.button:not(.icon-button) {
  flex:1;
  min-width:110px}
.summary>span {
  padding:0 20px;
  gap:10px}
.template-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.media-grid {
  grid-template-columns:repeat(3,minmax(0,1fr))}
.stats-summary {
  gap:35px}
.stats-summary>span {
  gap:12px}
.heading-actions {
  gap:5px}
.heading-actions .button {
  font-size:12px;
  padding:10px}
.page-heading p {
  font-size:12px}
}

@media(max-width:850px) {
  .sidebar {
  width:180px;
  transform:translateX(-220px);
  transition:transform .18s;
  box-shadow:0 10px 40px #24354b25}
.sidebar.open {
  transform:translateX(0)}
.mobile-menu {
  display:flex;
  position:fixed;
  top:19px;
  left:12px;
  background:white;
  color:var(--action);
  z-index:35;
  border:1px solid var(--line)}
.workspace {
  margin-left:0;
  padding:20px 16px}
.page-heading {
  padding-left:40px;
  min-height:63px;
  gap:10px}
.page-heading h1 {
  font-size:25px}
.page-heading p {
  font-size:12px;
  line-height:1.7;
  max-width:40ch}
.heading-actions .button {
  font-size:12px;
  min-height:38px;
  padding:9px 12px}
.heading-actions .icon {
  width:17px!important;
  height:17px!important}
.manager-split,.editor-split {
  grid-template-columns:1fr}
.page-list-panel {
  height:480px;
  min-height:0}
.list-toolbar {
  flex-wrap:nowrap}
.search {
  flex-basis:auto;
  max-width:300px}
.filter-tabs {
  width:auto;
  flex-shrink:0}
.filter-tabs button {
  padding:9px 13px}
.select-page {
  grid-template-columns:110px minmax(100px,1fr) 145px;
  padding:15px 13px;
  min-height:112px}
.page-row {
  min-height:112px}
.record-text>strong {
  font-size:14px}
.record-url,.record-template {
  font-size:12px}
.record-right {
  gap:20px}
.record-bottom {
  flex-direction:row;
  gap:15px;
  font-size:11px}
.mini {
  height:75px}
.mini-hero {
  height:51px}
.mini-hero>div {
  padding:6px;
  gap:3px}
.mini-hero strong {
  font-size:7px}
.mini-nav {
  height:12px}
.badge {
  font-size:12px;
  padding:4px 9px}
.row-menu {
  right:5px;
  top:16px;
  width:30px}
.preview-panel,.editor-split .preview-panel {
  max-height:none;
  min-height:0;
  padding:16px}
.preview-stage {
  height:540px}
.preview-toolbar h2 {
  font-size:16px}
.detail-actions>.button:not(.icon-button) {
  min-width:0;
  flex:1;
  font-size:12px}
.detail-heading h3 {
  font-size:16px}
.editor-panel {
  max-height:none}
.settings-layout {
  grid-template-columns:1fr}
.stats-summary {
  gap:35px}
.media-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.summary {
  padding:14px 20px}
.summary>span {
  padding:0 18px;
  font-size:12px;
  gap:9px}
.summary b {
  font-size:19px}
}

@media(max-width:540px) {
  .workspace {
  padding:18px 12px}
.page-heading {
  padding-left:39px;
  margin-bottom:13px;
  gap:8px}
.page-heading h1 {
  font-size:23px}
.page-heading p {
  font-size:11px;
  max-width:24ch}
.heading-actions>.primary {
  font-size:11px;
  padding:9px 10px;
  gap:4px}
.heading-actions .button .icon {
  width:15px!important}
.summary {
  gap:0;
  padding:12px 14px;
  height:auto;
  min-height:58px}
.summary>span {
  flex:1;
  padding:0 10px;
  font-size:10px;
  gap:7px;
  flex-direction:column;
  align-items:flex-start}
.summary b {
  font-size:19px}
.manager-split,.editor-split {
  gap:14px}
.page-list-panel {
  padding:12px 7px;
  height:475px}
.list-toolbar {
  gap:10px;
  flex-wrap:wrap;
  padding:0 4px 10px}
.filter-tabs {
  width:100%}
.search {
  max-width:none;
  flex-basis:100%}
.filter-tabs button {
  min-height:37px;
  padding:8px 13px;
  font-size:12px}
.select-page {
  grid-template-columns:75px minmax(86px,1fr) 82px;
  gap:9px;
  padding:14px 7px;
  min-height:113px}
.page-row {
  min-height:113px}
.record-text>strong {
  font-size:12px}
.record-url,.record-template {
  font-size:10px;
  line-height:1.5}
.record-right {
  gap:18px;
  padding-top:3px}
.record-bottom {
  flex-direction:column;
  gap:5px;
  font-size:10px}
.badge {
  font-size:10px;
  padding:4px 7px}
.row-menu {
  top:15px;
  right:0;
  width:25px;
  height:25px}
.mini {
  height:60px}
.mini-nav {
  height:10px;
  font-size:3px;
  padding:3px 4px}
.mini-hero {
  height:42px}
.mini-hero>div {
  padding:6px 4px;
  gap:3px}
.mini-hero strong {
  font-size:6px}
.mini-hero span {
  font-size:3px}
.mini-hero i {
  font-size:3px;
  padding:1px 3px}
.mini-lines {
  padding:3px}
.preview-panel {
  padding:13px 11px}
.preview-stage {
  height:520px}
.device-switch button {
  padding:7px 9px;
  font-size:11px}
.preview-toolbar h2 {
  font-size:14px}
.preview-kind {
  font-size:9px}
.page-detail {
  padding-top:15px}
.detail-heading {
  gap:7px}
.detail-heading h3 {
  font-size:14px}
.pending {
  font-size:10px;
  padding-left:7px}
.page-detail dl {
  font-size:12px;
  gap:11px}
.page-detail dl>div {
  gap:16px}
.detail-actions {
  gap:6px}
.detail-actions>.button:not(.icon-button) {
  font-size:10px;
  padding:9px 7px;
  gap:4px}
.detail-actions>.icon-button {
  width:33px}
.detail-actions .button .icon {
  width:14px;
  height:14px}
.demo-note {
  font-size:9px}
.editor-split {
  display:flex;
  flex-direction:column}
.editor-panel,.editor-split .preview-panel {
  width:100%}
.editor-panel {
  padding:17px}
.editor-intro {
  margin-bottom:23px}
.editor-intro h2 {
  font-size:16px}
.editor-split .preview-panel {
  order:-1}
.editor-split .preview-stage {
  height:320px}
.editor-split .page-detail {
  display:none}
.workspace:has(.editor-split) .page-heading {
  flex-wrap:wrap}
.workspace:has(.editor-split) .heading-actions {
  padding:5px 0 0;
  flex-basis:100%}
.workspace:has(.editor-split) .heading-actions .button {
  flex:1}
.template-grid {
  grid-template-columns:1fr;
  gap:16px}
.template-card>.mini {
  height:205px}
.template-options {
  grid-template-columns:1fr}
.template-option>.mini {
  height:150px}
.dialog-body {
  padding:18px}
dialog>header {
  padding:15px 18px}
.media-grid {
  gap:10px}
.media-card>img {
  height:120px}
.media-card>div {
  padding:10px}
.media-card .actions {
  gap:5px}
.media-card .button {
  padding:5px 7px;
  font-size:10px}
.media-card strong {
  font-size:12px}
.settings-form,.backup-panel {
  padding:21px}
.stats-summary {
  gap:18px;
  padding:20px 16px;
  justify-content:space-between}
.stats-summary>span {
  flex-direction:column;
  gap:10px;
  font-size:11px}
.stats-summary b {
  font-size:22px}
.stats-chart {
  padding:20px 14px}
.stats-table th,.stats-table td {
  padding:12px;
  font-size:11px}
.stats-table .badge {
  font-size:10px}
.chart-bars {
  gap:12px;
  padding:18px 0 0}
.chart-column>span {
  font-size:10px}
.media-grid.picker {
  grid-template-columns:repeat(2,minmax(0,1fr))}
.dialog-top {
  align-items:flex-start;
  font-size:12px}
.dialog-top .button {
  font-size:11px;
  padding:8px}
.version-list>div {
  gap:10px}
.version-list .button {
  font-size:11px;
  padding:8px}
.cover-field {
  flex-wrap:wrap}
.cover-field input {
  flex-basis:100%}
}

@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {
  scroll-behavior:auto!important;
  transition:none!important;
  animation:none!important}
}


/* Preserve the approved OA layout while keeping six records and actions in view. */
@media(min-width:1181px) {
  .page-row,.select-page {
  min-height:clamp(104px,11.8vh,123px)}
}

@media(min-width:851px) {
  .preview-stage {
  height:clamp(320px,50vh,520px)}
}

@media(max-width:850px) {
  .sidebar {
  visibility:hidden}
.sidebar.open {
  visibility:visible}
}


/* Job template thumbnails use the same content fields as the public pages. */
.job-mini {font-size:6px;height:82px;background:#f6f8fc}
.job-mini-banner {height:12px;padding:3px 7px;font-size:4px;color:#607087;overflow:hidden}
.job-mini-banner>img {width:100%;height:100%;object-fit:cover;display:block}
.job-mini-body {padding:5px 8px 16px}
.job-mini-profile {display:flex;gap:5px;align-items:center;min-width:0}
.job-mini-profile>img,.job-mini-avatar {width:17px;height:17px;border-radius:50%;object-fit:cover;object-position:80% center;flex-shrink:0;background:#edf4ff}
.job-mini-avatar {display:inline-grid;place-items:center;color:#2269d3}
.job-mini-profile>strong {font-size:8px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-mini-body>b {display:block;color:#a64b06;font-size:8px;line-height:1.5;margin-top:3px}
.job-mini-factory {display:block;font-size:5px;color:#43556e;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-mini-tags {display:flex;gap:3px;margin-top:4px;overflow:hidden}
.job-mini-tags>span {padding:1px 3px;background:#edf4ff;color:#215fae;border-radius:2px;font-size:4px;white-space:nowrap}
.job-mini-button {position:absolute;left:8px;right:8px;bottom:5px;background:#195de6;color:white;border-radius:3px;text-align:center;padding:2px;font-size:5px}
.job-mini-details {display:none}
.job-mini.job-card .job-mini-banner {display:none}
.job-mini.job-card .job-mini-body {text-align:center}
.job-mini.job-card .job-mini-profile {justify-content:center}
.job-mini.job-card .job-mini-tags {justify-content:center}
.job-mini.job-detail .job-mini-banner {background:#edf4ff;color:#215fae}
.job-mini.job-detail-photo .job-mini-banner {padding:0;height:26px}
.job-mini.job-detail-photo .job-mini-profile>img {display:none}
.template-card>.job-mini {height:320px;border-radius:0}
.template-card>.job-mini .job-mini-banner {height:32px;font-size:10px;padding:9px 20px}
.template-card>.job-mini .job-mini-body {padding:18px 22px 55px}
.template-card>.job-mini .job-mini-profile {gap:12px}
.template-card>.job-mini .job-mini-profile>img,.template-card>.job-mini .job-mini-avatar {width:44px;height:44px}
.template-card>.job-mini .job-mini-profile>strong {font-size:20px}
.template-card>.job-mini .job-mini-body>b {font-size:22px;margin-top:12px}
.template-card>.job-mini .job-mini-factory {font-size:13px;margin-top:8px}
.template-card>.job-mini .job-mini-tags {gap:5px;margin-top:14px}
.template-card>.job-mini .job-mini-tags>span {font-size:10px;padding:3px 7px;border-radius:5px}
.template-card>.job-mini .job-mini-button {left:22px;right:22px;bottom:18px;padding:9px;font-size:12px;border-radius:8px}
.template-card>.job-card .job-mini-body {padding-top:25px}
.template-card>.job-card .job-mini-profile {flex-direction:column;gap:10px}
.template-card>.job-card .job-mini-profile>img,.template-card>.job-card .job-mini-avatar {width:56px;height:56px}
.template-card>.job-detail-photo .job-mini-banner {height:105px;padding:0}
.template-card>.job-detail-photo .job-mini-body {padding-top:14px}
.template-card>.job-detail-photo .job-mini-body>b {margin-top:6px}
.template-card>.job-detail-photo .job-mini-tags {margin-top:9px}
.template-card>.job-mini .job-mini-details {display:block;font-size:11px;margin-top:15px;color:#43556e}
.job-mini-details>span {display:block;height:3px;width:80%;background:#e1e7ef;margin-top:7px}
.job-mini-details>span:last-child {width:55%}
.template-option>.job-mini {height:180px}
.template-option>.job-mini .job-mini-body {padding:8px 12px 34px}
.template-option>.job-mini .job-mini-profile>img,.template-option>.job-mini .job-mini-avatar {width:25px;height:25px}
.template-option>.job-mini .job-mini-profile>strong {font-size:12px}
.template-option>.job-mini .job-mini-body>b {font-size:14px;margin-top:8px}
.template-option>.job-mini .job-mini-factory {font-size:9px;margin-top:5px}
.template-option>.job-mini .job-mini-tags>span {font-size:7px;padding:2px 4px}
.template-option>.job-mini .job-mini-button {left:12px;right:12px;bottom:9px;font-size:9px;padding:5px}
.template-option>.job-card .job-mini-profile {flex-direction:column;gap:5px}
.template-option>.job-detail-photo .job-mini-banner {height:48px}
.template-live-preview {display:flex;justify-content:center;padding:14px;border-radius:14px;background:#f4f9fd}
.template-live-preview>iframe {width:390px;max-width:100%;height:620px;max-height:65vh;border:1px solid #e6edf5;border-radius:12px;background:white}

/* Expert profile is a fourth, independent template. */
.profile-mini { height:82px; background:#f8f8f8; color:#17212b; }
.profile-mini-top { height:31px; position:relative; overflow:hidden; background:#d0eaff; }
.profile-mini-top>img { width:100%; height:100%; object-fit:cover; }
.profile-mini-top>div { position:absolute; left:55%; top:8px; right:3px; }
.profile-mini-top strong { font-size:7px; display:block; }
.profile-mini-top span { display:block; white-space:pre-line; font-size:3px; margin-top:2px; }
.profile-mini-top small { font-size:3px; }
.profile-mini-metrics { position:relative; margin:0 5px; padding:5px 2px; border-radius:4px; background:linear-gradient(105deg,#fff,#e3f1ff); display:grid; grid-template-columns:repeat(4,1fr); }
.profile-mini-metrics>span { text-align:center; }
.profile-mini-metrics b { display:block; font-size:5px; }
.profile-mini-metrics small { display:block; font-size:3px; color:#8290a0; }
.profile-mini-section { padding:4px 5px; margin:3px 5px; background:white; border-radius:3px; }
.profile-mini-section>b { font-size:5px; display:block; }
.profile-mini-section>span { display:block; font-size:3px; color:#999; height:8px; overflow:hidden; }
.profile-mini-section>i { display:block; padding:3px; font-size:3px; font-style:normal; color:#468fbd; background:#e9f7ff; }
.profile-mini-cta { position:absolute; bottom:3px; left:20%; right:6%; border-radius:8px; background:linear-gradient(100deg,#bcb1ff,#588aff); color:#fff; text-align:center; font-size:4px; padding:2px; }
.template-card>.profile-mini { height:320px; }
.template-card>.profile-mini .profile-mini-top { height:130px; }
.template-card>.profile-mini .profile-mini-top>div { top:35px; right:8px; }
.template-card>.profile-mini .profile-mini-top strong { font-size:19px; }
.template-card>.profile-mini .profile-mini-top span { font-size:9px; margin-top:7px; }
.template-card>.profile-mini .profile-mini-top small { font-size:8px; }
.template-card>.profile-mini .profile-mini-metrics { margin:0 16px; padding:12px 4px; border-radius:10px; }
.template-card>.profile-mini .profile-mini-metrics b { font-size:15px; }
.template-card>.profile-mini .profile-mini-metrics small { font-size:8px; }
.template-card>.profile-mini .profile-mini-section { padding:10px 12px; margin:8px 16px; border-radius:8px; }
.template-card>.profile-mini .profile-mini-section>b { font-size:11px; }
.template-card>.profile-mini .profile-mini-section>span { font-size:8px; height:23px; }
.template-card>.profile-mini .profile-mini-section>i { font-size:8px; }
.template-card>.profile-mini .profile-mini-cta { bottom:12px; font-size:11px; padding:6px; border-radius:18px; }
.template-option>.profile-mini { height:180px; }
.template-option>.profile-mini .profile-mini-top { height:70px; }
.template-option>.profile-mini .profile-mini-top>div { top:18px; }
.template-option>.profile-mini .profile-mini-top strong { font-size:12px; }
.template-option>.profile-mini .profile-mini-top span { font-size:6px; }
.template-option>.profile-mini .profile-mini-metrics { margin:0 8px; padding:8px 2px; }
.template-option>.profile-mini .profile-mini-metrics b { font-size:10px; }
.template-option>.profile-mini .profile-mini-metrics small { font-size:5px; }
.template-option>.profile-mini .profile-mini-section { padding:6px; margin:5px 8px; }
.template-option>.profile-mini .profile-mini-section>b { font-size:8px; }
.template-option>.profile-mini .profile-mini-section>span { font-size:5px; height:15px; }
.template-option>.profile-mini .profile-mini-cta { font-size:7px; padding:4px; bottom:6px; }
