body {
  min-height: 100vh;
  color: var(--color-text);
  background:
    radial-gradient(circle at 10% 8%, rgba(232, 184, 156, 0.2), transparent 26%),
    radial-gradient(circle at 88% 24%, rgba(170, 184, 161, 0.2), transparent 25%),
    var(--color-bg);
}

.admin-shell {
  width: min(calc(100% - 40px), 1180px);
  margin-inline: auto;
}

.admin-brand {
  display: inline-flex;
  gap: 11px;
  align-items: center;
  color: var(--color-text-strong);
  text-decoration: none;
}

.admin-brand > span:last-child {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}

.admin-brand strong {
  font-family: var(--font-display);
  font-size: 1.15rem;
  letter-spacing: 0.06em;
}

.admin-brand small {
  margin-top: 5px;
  color: var(--color-text-muted);
  font-size: 0.64rem;
  letter-spacing: 0.12em;
}

.admin-brand-leaf {
  position: relative;
  display: block;
  width: 28px;
  height: 33px;
}

.admin-brand-leaf::before,
.admin-brand-leaf::after {
  position: absolute;
  width: 14px;
  height: 22px;
  border-radius: 100% 0 100% 0;
  background: #7b9169;
  content: "";
}

.admin-brand-leaf::before { top: 0; right: 1px; transform: rotate(20deg); }
.admin-brand-leaf::after { bottom: 1px; left: 2px; transform: rotate(-24deg); }

.admin-kicker {
  margin: 0 0 7px;
  color: var(--color-caramel);
  font-family: "Segoe Print", "KaiTi", cursive;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
}

.admin-login-page {
  display: grid;
  place-items: center;
  padding: 30px 18px;
}

.login-shell {
  width: min(100%, 430px);
}

.login-shell > .admin-brand {
  margin: 0 0 22px 17px;
}

.login-card,
.editor-panel,
.list-panel {
  border: 1px solid var(--color-line);
  background: rgba(255, 253, 249, 0.93);
  box-shadow: var(--shadow-soft);
}

.login-card {
  padding: 44px;
  border-radius: 28px;
}

.login-card h1,
.panel-heading h1,
.panel-heading h2 {
  margin: 0;
  color: var(--color-text-strong);
  font-family: var(--font-display);
}

.login-card h1 { font-size: 2.2rem; }
.login-intro { margin: 10px 0 27px; color: var(--color-text-muted); font-size: 0.9rem; }

.field-group,
.login-card form {
  display: grid;
  gap: 8px;
}

.field-group { align-content: start; }

label {
  color: var(--color-text-strong);
  font-size: 0.82rem;
  font-weight: 700;
}

input[type="text"],
input[type="password"],
input[type="date"],
input[type="file"],
select,
textarea {
  width: 100%;
  border: 1px solid rgba(122, 98, 83, 0.22);
  border-radius: 13px;
  color: var(--color-text);
  background: #fffdfa;
  outline: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

input[type="text"],
input[type="password"],
input[type="date"],
input[type="file"] { min-height: 46px; padding: 10px 13px; }
select { min-height: 46px; padding: 10px 34px 10px 13px; }
textarea { min-height: 148px; padding: 13px; resize: vertical; line-height: 1.7; }

input:focus,
select:focus,
textarea:focus {
  border-color: var(--color-caramel);
  box-shadow: 0 0 0 4px rgba(185, 142, 107, 0.12);
}

.field-group small {
  justify-self: end;
  color: var(--color-text-muted);
  font-size: 0.68rem;
}

.admin-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-weight: 700;
  transition: opacity 180ms ease, transform 180ms ease;
}

.admin-button:hover { transform: translateY(-1px); }
.admin-button:disabled { cursor: wait; opacity: 0.58; transform: none; }
.admin-button-primary { color: #fff; background: var(--color-caramel-deep); }
.admin-button-secondary { border-color: var(--color-line); color: var(--color-text); background: #fffdfa; }
.login-card .admin-button { width: 100%; margin-top: 8px; }

.back-link {
  display: inline-block;
  margin-top: 22px;
  color: var(--color-text-muted);
  font-size: 0.76rem;
  text-decoration: none;
}

.form-message {
  margin: 0;
  padding: 10px 12px;
  border-radius: 10px;
  color: #8c413b;
  background: #faeae6;
  font-size: 0.76rem;
}

.admin-header {
  position: sticky;
  z-index: 10;
  top: 0;
  border-bottom: 1px solid var(--color-line);
  background: rgba(248, 243, 236, 0.9);
  backdrop-filter: blur(14px);
}

.admin-header-inner {
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
}

.admin-header-actions {
  display: flex;
  gap: 20px;
  align-items: center;
}

.admin-header-actions a,
.text-button {
  border: 0;
  color: var(--color-text-muted);
  background: none;
  cursor: pointer;
  font-size: 0.76rem;
  text-decoration: none;
}

.admin-header-actions a:hover,
.text-button:hover { color: var(--color-caramel-deep); }

.dashboard-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1.22fr);
  gap: 24px;
  align-items: start;
  padding-block: 34px 58px;
}

.admin-main { padding-block: 28px 58px; }
.admin-main .dashboard-layout { padding-block: 24px 0; }
.generator-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .9fr) auto; gap: 22px; align-items: center; padding: 22px 26px; border: 1px solid var(--color-line); border-radius: 22px; background: rgba(255, 253, 249, .93); box-shadow: var(--shadow-soft); }
.generator-panel h1 { margin: 0; color: var(--color-text-strong); font-family: var(--font-display); font-size: 1.45rem; }
.generator-panel p { margin: 7px 0 0; color: var(--color-text-muted); font-size: .74rem; }
.generator-actions { display: flex; gap: 9px; }
.generator-actions .admin-button { padding-inline: 18px; white-space: nowrap; }
.generator-preview { padding: 13px 16px; border-radius: 14px; background: var(--color-surface-soft); }
.generator-preview strong { color: var(--color-text-strong); font-size: .79rem; }
.generator-preview p { margin: 5px 0; color: var(--color-text); line-height: 1.55; }
.generator-preview small { color: var(--color-text-muted); font-size: .64rem; }

.editor-panel,
.list-panel {
  padding: 28px;
  border-radius: 24px;
}

.editor-panel { position: sticky; top: 98px; }

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 24px;
}

.panel-heading h1,
.panel-heading h2 { font-size: 1.65rem; }

.moment-form { display: grid; gap: 18px; }
.image-fieldset { display: grid; gap: 14px; margin: 0; padding: 16px; border: 1px solid var(--color-line); border-radius: 16px; }
.image-fieldset legend { padding-inline: 7px; color: var(--color-text-strong); font-size: .82rem; font-weight: 700; }
.asset-preview { display: grid; grid-template-columns: 70px 1fr; gap: 10px; align-items: center; padding: 9px; border-radius: 12px; color: var(--color-text-muted); background: var(--color-surface-soft); font-size: .68rem; }
.asset-preview[hidden] { display: none; }
.asset-preview img { width: 70px; height: 58px; border-radius: 9px; object-fit: cover; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }

.check-row {
  display: flex;
  gap: 9px;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 500;
}

.check-row input { width: 17px; height: 17px; accent-color: var(--color-caramel-deep); }

.existing-image {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 14px;
  align-items: center;
  padding: 11px;
  border-radius: 14px;
  background: var(--color-surface-soft);
}

.existing-image[hidden] { display: none; }
.existing-image img { width: 80px; height: 64px; border-radius: 10px; object-fit: cover; }

.list-heading { align-items: center; }
.filter-row { display: flex; flex-wrap: wrap; gap: 7px; margin: -9px 0 18px; }
.filter-button { min-height: 32px; padding: 5px 12px; border: 1px solid var(--color-line); border-radius: 999px; color: var(--color-text-muted); background: #fffdfa; cursor: pointer; font-size: .68rem; }
.filter-button.is-active { border-color: var(--color-caramel); color: #fff; background: var(--color-caramel-deep); }
.moment-total { padding: 6px 11px; border-radius: 999px; color: var(--color-text-muted); background: var(--color-surface-soft); font-size: 0.7rem; }

.admin-state {
  padding: 38px 12px;
  border: 1px dashed var(--color-line);
  border-radius: 15px;
  color: var(--color-text-muted);
  text-align: center;
  font-size: 0.82rem;
}

.moment-list { display: grid; gap: 13px; }

.admin-moment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  padding: 19px;
  border: 1px solid var(--color-line);
  border-radius: 17px;
  background: #fffdfa;
}

.admin-moment-card.is-draft { opacity: 0.72; }
.admin-moment-card.is-recycled { opacity: 0.62; border-style: dashed; background: #f8f3ec; }
.admin-moment-main { min-width: 0; }
.admin-moment-title { margin: 0 0 8px; color: var(--color-text-strong); font-family: var(--font-display); font-size: 1rem; }
.admin-moment-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--color-text-muted); font-size: 0.67rem; }
.admin-moment-tag, .publish-status, .source-status { padding: 3px 8px; border-radius: 999px; background: rgba(170, 184, 161, 0.2); }
.source-status { background: rgba(185, 142, 107, .13); }
.publish-status.is-draft { background: rgba(185, 142, 107, 0.16); }
.admin-moment-content { display: -webkit-box; overflow: hidden; margin: 10px 0 0; color: var(--color-text); font-size: 0.82rem; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow-wrap: anywhere; white-space: pre-wrap; }
.admin-moment-thumb { width: 84px; height: 68px; margin-top: 11px; border-radius: 11px; object-fit: cover; }
.admin-moment-actions { display: flex; flex-direction: column; gap: 7px; align-items: stretch; }
.mini-action { min-width: 72px; min-height: 34px; padding: 5px 10px; border: 1px solid var(--color-line); border-radius: 10px; color: var(--color-text); background: #fff; cursor: pointer; font-size: 0.7rem; }
.mini-action:hover { border-color: var(--color-caramel); }
.mini-action.is-danger { color: var(--color-danger); }
.load-more-admin { width: 100%; margin-top: 16px; }

.toast {
  position: fixed;
  z-index: 30;
  right: 24px;
  bottom: 24px;
  max-width: min(360px, calc(100% - 32px));
  padding: 12px 17px;
  border-radius: 13px;
  color: #fff;
  background: var(--color-caramel-deep);
  box-shadow: var(--shadow-soft);
  font-size: 0.8rem;
}

@media (max-width: 900px) {
  .generator-panel { grid-template-columns: 1fr; }
  .dashboard-layout { grid-template-columns: 1fr; }
  .editor-panel { position: static; }
}

@media (max-width: 560px) {
  .admin-shell { width: min(calc(100% - 24px), 1180px); }
  .login-card { padding: 34px 25px; }
  .admin-header-actions a { display: none; }
  .dashboard-layout { padding-top: 20px; }
  .editor-panel, .list-panel { padding: 22px 18px; border-radius: 19px; }
  .form-row { grid-template-columns: 1fr; }
  .admin-moment-card { grid-template-columns: 1fr; }
  .admin-moment-actions { flex-direction: row; flex-wrap: wrap; }
  .mini-action { flex: 1; }
  .generator-panel { padding: 20px 18px; }
  .generator-actions { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; }
}
.admin-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 20px;padding:4px 2px 9px;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{flex:0 0 auto;min-height:44px;padding:0 18px;border:1px solid #e4d8ca;border-radius:999px;background:#fffaf4;color:#856c5d;cursor:pointer}.admin-tab.is-active{border-color:#9b7d57;color:#fff;background:#9b7d57}.admin-tab-panel{display:none!important}.admin-tab-panel.is-active{display:block!important}.dashboard-layout.admin-tab-panel.is-active{display:grid!important}.content-manager-panel{display:none!important}.content-form-panel{margin-top:0;padding:24px;border:1px solid rgba(124,97,77,.13);border-radius:18px;background:#fffdfa;box-shadow:0 9px 22px rgba(99,70,50,.05)}.content-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.content-form-grid label{display:grid;gap:7px;color:#765d50;font-size:.78rem}.content-form-grid input,.content-form-grid select,.content-form-grid textarea{width:100%;box-sizing:border-box;min-height:42px;border:1px solid #e5d9ca;border-radius:10px;padding:9px;background:#fcfaf6;color:#5b4438;font:inherit}.content-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:16px}.content-toolbar select{min-height:38px;border:1px solid #e5d9ca;border-radius:8px;background:#fff;padding:0 8px;color:#765d50}.content-toolbar .admin-button{min-height:38px;padding:0 11px;font-size:.72rem}@media(max-width:900px){.content-form-grid{grid-template-columns:1fr}}
.content-form-panel{position:relative}.live-preview{position:absolute;right:24px;top:84px;width:38%;min-height:220px;padding:18px;border-left:1px solid rgba(124,97,77,.12);box-sizing:border-box}.content-form-panel>.content-form-grid{width:56%}.preview-card{display:grid;gap:9px;min-height:155px;padding:22px;border:1px solid rgba(124,97,77,.13);border-radius:16px;background:#fffdfa;box-shadow:0 9px 22px rgba(99,70,50,.07)}.preview-card img{width:62px;height:62px;object-fit:contain}.preview-card strong{color:#54392e;font-family:var(--font-display);font-size:1rem}.preview-card span{color:#877267;font-size:.76rem;line-height:1.7}.preview-scene{transform:rotate(-1deg);animation:preview-breathe 5s ease-in-out infinite alternate}@keyframes preview-breathe{to{transform:rotate(1deg) translateY(-2px)}}
.content-form-panel>.content-form-grid{width:56%}
@media(max-width:700px){.content-form-panel>.content-form-grid{width:100%}.live-preview{position:static;width:100%;margin-top:22px;padding:18px 0 0;border-top:1px solid rgba(124,97,77,.12);border-left:0}}
.module-generator-bar{display:flex;align-items:center;gap:12px;margin:-4px -4px 20px;padding:14px 16px;border:1px solid rgba(124,97,77,.12);border-radius:14px;background:#faf2e7}.module-generator-bar strong{margin-right:auto;color:#594033;font-family:var(--font-display);font-size:1rem}.module-generator-bar select{min-height:40px;border:1px solid #e5d9ca;border-radius:8px;background:#fffaf4;color:#765d50;padding:0 10px}@media(max-width:600px){.module-generator-bar{align-items:stretch;flex-wrap:wrap}.module-generator-bar strong{width:100%}.module-generator-bar select{flex:1}}
.svg-choice-preview{display:block;width:42px;height:42px;margin-top:6px;object-fit:contain;border-radius:9px;background:#f7f0e4;padding:4px}.module-generator-bar{display:flex;align-items:center;gap:12px;margin:-4px -4px 20px;padding:14px 16px;border:1px solid rgba(124,97,77,.12);border-radius:14px;background:#faf2e7}.module-generator-bar strong{margin-right:auto;color:#594033;font-family:var(--font-display);font-size:1rem}.module-generator-bar select{min-height:40px;border:1px solid #e5d9ca;border-radius:8px;background:#fffaf4;color:#765d50;padding:0 10px}@media(max-width:600px){.module-generator-bar{align-items:stretch;flex-wrap:wrap}.module-generator-bar strong{width:100%}.module-generator-bar select{flex:1}}

/* 三个内容生成器复用每日碎片的横向生成条与清晰双栏。 */
.content-form-panel.admin-tab-panel.is-active{display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);column-gap:34px;row-gap:20px;align-items:start;padding:28px 32px;overflow:visible}
.content-form-panel>.module-generator-bar{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,420px) auto;gap:20px;align-items:center;margin:0;padding:24px 28px;border:1px solid var(--color-line);border-radius:22px;background:rgba(255,253,249,.93);box-shadow:var(--shadow-soft)}
.module-generator-copy{min-width:0}.module-generator-copy .admin-kicker{margin:0 0 5px}.module-generator-copy strong{display:block;margin:0;color:var(--color-text-strong);font-family:var(--font-display);font-size:1.42rem;line-height:1.25;white-space:nowrap}
.module-generator-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;color:var(--color-text);font-size:.76rem;font-weight:700}.module-generator-choice select{width:100%;min-width:0;height:46px;padding:0 13px;border:1px solid var(--color-line);border-radius:12px;background:#fffdfa;color:var(--color-text);font:inherit}
.module-generator-actions{display:flex;gap:10px;align-items:center}.module-generator-actions .admin-button{width:auto!important;min-width:112px;min-height:46px;padding:0 20px!important;border-radius:999px!important;white-space:nowrap}
.content-form-panel>.panel-heading{grid-column:1;grid-row:2;margin:0;padding:6px 0 0}.content-form-panel>.content-form-grid{grid-column:1;grid-row:3;width:100%;grid-template-columns:1fr 1fr;gap:18px 20px}.content-form-panel>.content-toolbar{grid-column:1;grid-row:4;margin-top:0}.content-form-panel>.content-toolbar [data-form-preview],.content-form-panel>.content-toolbar [data-form-generate]{display:none}
.content-form-panel>.live-preview{position:static;grid-column:2;grid-row:2/5;width:auto;min-height:100%;padding:4px 0 0 28px;border-top:0;border-left:1px solid rgba(124,97,77,.12);box-sizing:border-box}.live-preview>.admin-kicker{margin:0 0 14px}.live-preview .preview-card{min-height:220px;padding:28px 30px;border-radius:18px;background:#fffdfa;box-shadow:0 12px 28px rgba(99,70,50,.09)}
.svg-choice-preview{width:48px;height:48px;margin-top:2px;padding:6px;box-sizing:border-box}
@media(max-width:980px){.content-form-panel.admin-tab-panel.is-active{grid-template-columns:1fr}.content-form-panel>.module-generator-bar{grid-template-columns:1fr auto}.module-generator-choice{grid-column:1}.module-generator-actions{grid-column:2;grid-row:1/3}.content-form-panel>.panel-heading,.content-form-panel>.content-form-grid,.content-form-panel>.content-toolbar,.content-form-panel>.live-preview{grid-column:1}.content-form-panel>.live-preview{grid-row:5;min-height:0;padding:22px 0 0;border-top:1px solid rgba(124,97,77,.12);border-left:0}}
@media(max-width:640px){.content-form-panel.admin-tab-panel.is-active{padding:18px 14px}.content-form-panel>.module-generator-bar{grid-template-columns:1fr;padding:20px 17px}.module-generator-choice,.module-generator-actions{grid-column:1;grid-row:auto}.module-generator-actions{width:100%}.module-generator-actions .admin-button{flex:1;min-width:0}.content-form-panel>.content-form-grid{grid-template-columns:1fr}.module-generator-copy strong{white-space:normal}}

/* 最近状态、近期在做、最近片段：生成、编辑、列表分别独立成卡片。 */
.module-tab-content.admin-tab-panel.is-active{display:block!important;background:transparent;box-shadow:none;border:0;padding:0;overflow:visible}
.module-tab-content>.module-generator-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,420px) auto;gap:20px;align-items:center;margin:0 0 22px;padding:24px 28px;border:1px solid var(--color-line);border-radius:22px;background:rgba(255,253,249,.93);box-shadow:var(--shadow-soft)}
.module-dashboard{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:22px;align-items:start}.module-dashboard>.editor-panel,.module-dashboard>.list-panel{min-width:0;border:1px solid var(--color-line);border-radius:22px;background:rgba(255,253,249,.93);box-shadow:var(--shadow-soft)}
.module-editor{padding:24px}.module-list-panel{padding:24px}.module-list-panel .moment-list{display:grid;gap:12px}.module-list-panel .admin-moment-card{grid-template-columns:minmax(0,1fr) auto}.module-list-panel .admin-moment-title{margin:9px 0 5px}.module-list-panel .admin-moment-content{margin:0}.module-list-panel .admin-moment-actions{align-self:center}
@media(max-width:980px){.module-tab-content>.module-generator-bar{grid-template-columns:1fr auto}.module-tab-content>.module-generator-bar .module-generator-choice{grid-column:1}.module-tab-content>.module-generator-bar .module-generator-actions{grid-column:2;grid-row:1/3}.module-dashboard{grid-template-columns:1fr}}
@media(max-width:640px){.module-tab-content>.module-generator-bar{grid-template-columns:1fr;padding:20px 17px}.module-tab-content>.module-generator-bar .module-generator-choice,.module-tab-content>.module-generator-bar .module-generator-actions{grid-column:1;grid-row:auto}.module-editor,.module-list-panel{padding:18px 14px}.module-list-panel .admin-moment-card{grid-template-columns:1fr}.module-list-panel .admin-moment-actions{justify-content:flex-start}}

.module-generator-choice select{display:block!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}.module-editor [data-module-title]{width:100%;min-height:46px;box-sizing:border-box;border:1px solid var(--color-line);border-radius:12px;padding:0 14px;color:var(--color-text);background:#fffdfa;font:inherit}.module-generator-preview{grid-column:1/-1;display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;align-items:center;padding:14px 17px;border-top:1px solid rgba(124,97,77,.12);color:var(--color-text);background:rgba(255,250,244,.65)}.module-generator-preview img{width:50px;height:50px;object-fit:contain}.module-generator-preview strong{display:block;font-family:var(--font-display);font-size:.92rem}.module-generator-preview p{margin:5px 0 0;font-size:.72rem;line-height:1.6;color:var(--color-text-muted)}

/* Unified generator cards: keep the selector interactive and make previews visibly appear. */
.module-generator-card {
  margin: 0 0 22px;
  overflow: hidden;
  border: 1px solid var(--color-line);
  border-radius: 22px;
  background: rgba(255, 253, 249, .93);
  box-shadow: var(--shadow-soft);
}
.module-generator-card > .module-generator-bar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 420px) auto;
  gap: 20px;
  align-items: center;
  padding: 24px 28px;
}
.module-generator-choice {
  display: grid;
  gap: 7px;
  min-width: 0;
}
.module-generator-choice select {
  position: relative;
  z-index: 1;
  display: block !important;
  width: 100%;
  min-width: 0;
  height: 46px;
  padding: 0 36px 0 13px;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer;
  -webkit-appearance: auto;
  appearance: auto;
}
.module-generator-card > .module-generator-preview {
  grid-template-columns: 58px minmax(0, 1fr);
  min-height: 88px;
  padding: 16px 28px 19px;
  border-top: 1px solid rgba(124, 97, 77, .12);
  animation: module-preview-in 180ms ease-out;
}
.module-generator-card > .module-generator-preview[hidden] { display: none !important; }
.module-generator-preview .module-preview-copy small {
  display: block;
  margin-bottom: 4px;
  color: var(--color-text-muted);
  font-size: .65rem;
}
.module-generator-preview .module-preview-loading,
.module-generator-preview .module-preview-error {
  grid-column: 1 / -1;
  color: var(--color-text-muted);
  font-size: .75rem;
}
.module-generator-preview .module-preview-error { color: var(--color-danger); }
@keyframes module-preview-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* The dynamically-built title field should match every other text input. */
.module-editor input[type="text"][data-module-title] {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
  padding: 10px 13px;
  border: 1px solid rgba(122, 98, 83, .22);
  border-radius: 13px;
  color: var(--color-text);
  background: #fffdfa;
  font: inherit;
}
.module-editor [data-module-svg-preview] {
  width: 48px;
  height: 48px;
  margin-top: 2px;
  padding: 6px;
  box-sizing: border-box;
  object-fit: contain;
}

@media (max-width: 980px) {
  .module-generator-card > .module-generator-bar { grid-template-columns: 1fr auto; }
  .module-generator-card .module-generator-choice { grid-column: 1; }
  .module-generator-card .module-generator-actions { grid-column: 2; grid-row: 1 / 3; }
}
@media (max-width: 640px) {
  .module-generator-card > .module-generator-bar { grid-template-columns: 1fr; padding: 20px 17px; }
  .module-generator-card .module-generator-choice,
  .module-generator-card .module-generator-actions { grid-column: 1; grid-row: auto; }
  .module-generator-card .module-generator-actions { width: 100%; }
  .module-generator-card .module-generator-actions .admin-button { flex: 1; min-width: 0; }
  .module-generator-card > .module-generator-preview { padding-inline: 17px; }
}
.module-generator-card > .module-generator-bar {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
