/* New owner app (D11): look from the owner's "El Dorado Marketing Redesign" canvas.
   The dashboard CSP allows only local assets, so system serif/sans stacks stand in for Fraunces/Inter. */
:root {
  --ed-ground: #F6F1E9; --ed-surface: #FFFFFF; --ed-header: #FFFDF9; --ed-line: #E8DFD2; --ed-line-soft: #EFE7DB; --ed-chip: #EFE7DB;
  --ed-text: #1E2A2C; --ed-text-2: #3E4A4C; --ed-muted: #5B6668; --ed-accent: #0E5A5F; --ed-accent-dark: #08403F; --ed-accent-soft: #E4EFEC;
  --ed-gold: #D9A441; --ed-warn: #9A5B13; --ed-warn-soft: #F6E7CF; --ed-ok: #2F6B3A; --ed-later: #ECE8E2;
  --ed-serif: "New York", "Iowan Old Style", Georgia, ui-serif, serif;
  --ed-sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", system-ui, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--ed-ground); color: var(--ed-text); font-family: var(--ed-sans); font-size: 16px; line-height: 1.5; }
button { font: inherit; cursor: pointer; }
a { color: var(--ed-accent); } a:hover { color: var(--ed-accent-dark); }
:focus-visible { outline: 3px solid var(--ed-accent); outline-offset: 2px; }
.ed-header { background: var(--ed-header); border-bottom: 1px solid var(--ed-line); }
.ed-header-inner, .ed-main, .ed-settings-wrap { max-width: 1120px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.ed-header-inner { padding-top: 14px; padding-bottom: 14px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.ed-brand { display: flex; align-items: center; }
.ed-logo { display: block; height: 64px; width: auto; }
.ed-pair-logo { display: block; width: 180px; height: auto; align-self: center; }
.ed-nav { display: flex; flex-wrap: wrap; gap: 4px; background: var(--ed-chip); padding: 4px; border-radius: 999px; }
.ed-tab { min-height: 40px; padding: 0 20px; border-radius: 999px; border: none; background: transparent; color: var(--ed-text-2); font-size: 15px; font-weight: 500; }
.ed-tab[aria-current="page"] { background: var(--ed-surface); color: var(--ed-text); font-weight: 600; box-shadow: 0 1px 3px rgba(30,42,44,0.12); }
.ed-icon-button { width: 44px; height: 44px; border-radius: 999px; border: 1px solid #E0D6C7; background: var(--ed-surface); display: flex; align-items: center; justify-content: center; color: var(--ed-text); }
.ed-main { padding-top: 40px; padding-bottom: 80px; }
.ed-stack { display: flex; flex-direction: column; gap: 36px; }
.ed-section { display: flex; flex-direction: column; gap: 12px; }
.ed-h1 { margin: 0; font-family: var(--ed-serif); font-size: 44px; line-height: 1.1; font-weight: 600; letter-spacing: -0.02em; }
.ed-h2 { margin: 0; font-size: 22px; font-weight: 600; }
.ed-lede { margin: 6px 0 0; font-size: 19px; color: var(--ed-text-2); }
.ed-attention { color: var(--ed-warn); font-weight: 600; }
.ed-card { background: var(--ed-surface); border: 1px solid var(--ed-line); border-radius: 20px; }
.ed-list { overflow: hidden; }
.ed-row { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--ed-line-soft); flex-wrap: wrap; }
.ed-row:last-child { border-bottom: none; }
.ed-row-mark { width: 44px; height: 44px; border-radius: 12px; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; background: var(--ed-accent-soft); color: var(--ed-accent); }
.ed-row-mark.warn { background: var(--ed-warn-soft); color: var(--ed-warn); }
.ed-row-text { flex: 1 1 220px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ed-row-title { font-weight: 600; }
.ed-row-detail, .ed-note { font-size: 14px; color: var(--ed-muted); }
.ed-primary { min-height: 44px; padding: 0 20px; border-radius: 999px; border: none; background: var(--ed-accent); color: #FFFFFF; font-size: 15px; font-weight: 600; }
.ed-primary:hover { background: var(--ed-accent-dark); }
.ed-secondary { min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid #DDD3C4; background: var(--ed-surface); color: var(--ed-text); font-size: 15px; font-weight: 500; }
.ed-empty { padding: 28px 24px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; border: 1px dashed #D4C8B6; border-radius: 18px; background: var(--ed-surface); }
.ed-empty-title { font-size: 18px; font-weight: 600; }
.ed-later-badge { padding: 3px 10px; border-radius: 999px; background: var(--ed-later); color: var(--ed-text-2); font-size: 12px; font-weight: 600; }
.ed-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ed-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.ed-metric { padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.ed-metric-label { font-size: 14px; color: var(--ed-muted); }
.ed-metric-value { font-size: 30px; font-weight: 700; letter-spacing: -0.02em; }
.ed-suggest { background: var(--ed-accent); color: #FFFFFF; border-radius: 22px; padding: 28px; display: flex; flex-direction: column; gap: 6px; }
.ed-suggest-kicker { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #F3D9A4; }
.ed-suggest-title { font-family: var(--ed-serif); font-size: 24px; line-height: 1.25; font-weight: 600; }
.ed-suggest-note { font-size: 14px; color: #D6E6E3; }
.ed-settings-wrap { padding-top: 16px; display: flex; justify-content: flex-end; }
.ed-settings { width: 100%; max-width: 400px; padding: 24px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 12px 32px rgba(30,42,44,0.08); }
.ed-setting { display: flex; justify-content: space-between; gap: 12px; }
.ed-setting > span:first-child { flex: 0 0 auto; white-space: nowrap; }
.ed-setting-value { font-weight: 600; text-align: right; }
.ed-setting-value.later { color: var(--ed-muted); font-weight: 500; }
.ed-setting-value.ok { color: var(--ed-ok); }
.ed-setting-value.warn { color: var(--ed-warn); }
.ed-settings-foot { padding-top: 12px; border-top: 1px solid var(--ed-line-soft); display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.ed-confirm { padding: 16px; border-radius: 16px; background: var(--ed-ground); display: flex; flex-direction: column; gap: 10px; }
.ed-pair { max-width: 460px; margin: 80px auto; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.ed-pair form { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.ed-pair form button { align-self: flex-start; }
.ed-pair label { font-weight: 600; }
.ed-pair input { min-height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid #DDD3C4; font: inherit; font-size: 17px; }
.ed-message { min-height: 24px; color: var(--ed-text-2); }
.ed-placeholder { padding: 32px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; max-width: 720px; }
.lib-section { padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.lib-photo { display: flex; gap: 12px; padding: 12px; border-radius: 16px; }
.lib-tile { width: 64px; height: 64px; flex: 0 0 auto; border-radius: 12px; background: #4F8C93; color: #FFFFFF; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.lib-photo-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lib-chip { align-self: flex-start; padding: 3px 10px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.lib-chip.ok { background: var(--ed-accent-soft); color: #0B4447; }
.lib-chip.warn { background: var(--ed-warn-soft); color: #7A4A0E; }
.lib-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.lib-form { display: flex; flex-direction: column; gap: 6px; padding: 16px; border-radius: 16px; background: var(--ed-ground); }
.lib-form label { font-weight: 600; margin-top: 6px; }
.lib-form input, .lib-form select, .lib-form textarea { min-height: 44px; padding: 8px 12px; border-radius: 12px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); }
.lib-check { margin: 0; font-weight: 600; }
.lib-check.ok { color: var(--ed-ok); }
.lib-check.warn { color: var(--ed-warn); }
.lib-voice { margin: 0; padding: 16px; background: var(--ed-ground); border-radius: 14px; white-space: pre-wrap; }
.lib-summary { white-space: pre-wrap; font-family: var(--ed-sans); margin: 0; }
.ed-confirm-card { padding: 20px; display: flex; flex-direction: column; gap: 12px; border: 2px solid var(--ed-accent); }
@media (max-width: 640px) { .ed-h1 { font-size: 34px; } .ed-header-inner, .ed-main { padding-left: 16px; padding-right: 16px; } }
.lib-asset-form { flex-direction: row; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.lib-asset-preview { width: 240px; max-width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px; background: var(--ed-line-soft); }
.lib-asset-preview:not([src]) { visibility: hidden; }
.lib-asset-fields { flex: 1 1 280px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.lib-form .lib-tick { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.lib-form .lib-tick input { min-height: 0; width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }
.lib-form .lib-rights { font-weight: 600; }
.lib-search-label { font-weight: 600; }
.lib-search { min-height: 44px; padding: 8px 14px; border-radius: 999px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); }
.lib-asset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.lib-asset { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; position: relative; }
.lib-asset-thumb { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--ed-line-soft); display: block; }
.lib-asset-body { padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.lib-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.lib-tag { padding: 2px 8px; border-radius: 999px; background: var(--ed-chip); color: var(--ed-text-2); font-size: 12px; }
.lib-older summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
.cr-block { padding: 20px 24px; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--ed-line); margin: 0; }
.cr-label { font-weight: 600; font-size: 17px; padding: 0; }
.cr-block textarea, .cr-post textarea { min-height: 96px; padding: 12px 14px; border-radius: 14px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); resize: vertical; }
.cr-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cr-chip { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid #DDD3C4; background: var(--ed-surface); color: var(--ed-text); font-size: 15px; display: inline-flex; align-items: center; }
.cr-chip.on { background: var(--ed-accent); border-color: var(--ed-accent); color: #FFFFFF; font-weight: 600; }
.cr-chip.later { background: var(--ed-later); border-color: transparent; color: var(--ed-muted); font-size: 14px; }
.cr-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.cr-photo { padding: 0; border: 2px solid transparent; border-radius: 14px; background: var(--ed-surface); overflow: hidden; display: flex; flex-direction: column; text-align: left; }
.cr-photo.on { border-color: var(--ed-accent); box-shadow: 0 0 0 2px var(--ed-accent-soft); }
.cr-photo-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--ed-line-soft); display: block; }
.cr-photo-none { display: flex; align-items: center; justify-content: center; font-size: 28px; color: var(--ed-muted); }
.cr-photo-name { padding: 8px 10px; font-size: 14px; }
.cr-facts { display: flex; flex-direction: column; gap: 8px; }
.cr-fact { display: flex; gap: 10px; align-items: flex-start; }
.cr-fact input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }
.cr-go { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.cr-big { min-height: 52px; padding: 0 28px; font-size: 17px; display: inline-flex; align-items: center; text-decoration: none; }
.cr-big:disabled { background: #CFC6B8; color: var(--ed-text-2); }
.cr-link { border: none; background: none; color: var(--ed-accent); font: inherit; font-weight: 600; padding: 8px 0; min-height: 44px; }
.cr-columns { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .cr-columns { grid-template-columns: 1fr; } }
.cr-tabs { display: flex; gap: 4px; }
.cr-tab { min-height: 40px; padding: 0 16px; border-radius: 999px; border: none; background: var(--ed-surface); font-weight: 600; }
.cr-post { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.cr-post-head { display: flex; gap: 12px; align-items: center; }
.cr-post-logo { width: 40px; height: 32px; object-fit: contain; }
.cr-post-text { margin: 0; white-space: pre-wrap; font-size: 17px; }
.cr-post-text.empty { color: var(--ed-muted); font-style: italic; }
.cr-post-photo { width: 100%; max-height: 420px; object-fit: cover; border-radius: 12px; background: var(--ed-line-soft); }
.cr-warnings { margin: 0; padding-left: 20px; color: var(--ed-warn); }
.cr-row { flex-direction: row; align-items: center; justify-content: space-between; }
.cr-checks { margin: 0; padding: 16px 20px 16px 40px; display: flex; flex-direction: column; gap: 6px; }
.cr-done { padding: 40px 32px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
fieldset.cr-block > legend { float: left; width: 100%; margin-bottom: 4px; }
fieldset.cr-block > legend + * { clear: both; }
.ps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.ps-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.ps-card:hover { border-color: var(--ed-accent); }
.ps-thumb { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--ed-line-soft); display: block; }
.ps-thumb-none { display: flex; align-items: center; justify-content: center; font-size: 32px; color: var(--ed-muted); }
.ps-card-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.ps-card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ps-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ps-step { padding: 16px 18px; border-radius: 16px; border: 1px solid var(--ed-line); background: var(--ed-surface); display: flex; flex-direction: column; gap: 8px; }
.ps-step.ps-now { border: 2px solid var(--ed-accent); }
.ps-step.ps-later { background: var(--ed-ground); color: var(--ed-muted); }
.ps-step-head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ps-step-badge { padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--ed-later); color: var(--ed-text-2); }
.ps-done .ps-step-badge { background: var(--ed-accent-soft); color: #0B4447; }
.ps-now .ps-step-badge { background: var(--ed-accent); color: #FFFFFF; }
.ps-step-title { font-weight: 600; }
.ps-step-text { margin: 0; white-space: pre-wrap; font-size: 15px; }
.ps-link { word-break: break-all; }
.ps-advanced { display: inline-flex; align-items: center; text-decoration: none; }
.cr-progress-wrap { display: inline-flex; align-items: center; gap: 10px; }
.ed-spinner { width: 22px; height: 22px; flex: 0 0 auto; border-radius: 50%; border: 3px solid var(--ed-accent-soft); border-top-color: var(--ed-accent); animation: ed-spin 0.8s linear infinite; box-sizing: border-box; }
.ed-spinner[hidden] { display: none; }
@keyframes ed-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ed-spinner { animation-duration: 2.4s; } }
.cr-photos .cr-chip { border-radius: 14px; min-height: 0; padding: 12px; align-items: center; justify-content: center; text-align: center; }
.cr-go #cr-write-status { color: var(--ed-warn); }
.cr-block.cr-missing { border: 2px solid var(--ed-warn); }
.cr-error { margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--ed-warn-soft); color: #7A4A0E; font-weight: 600; }
.cr-error[hidden] { display: none; }
/* Create form: everything above the fold on a desktop screen (owner request). */
.cr-form { display: flex; flex-direction: column; gap: 14px; }
.cr-form-head { display: flex; flex-direction: column; gap: 2px; }
.cr-greeting { margin: 0; color: var(--ed-text-2); font-size: 16px; }
.cr-title { font-size: 34px; }
.cr-form-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 14px; align-items: start; }
@media (max-width: 900px) { .cr-form-grid { grid-template-columns: 1fr; } }
.cr-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cr-form .cr-block { padding: 14px 18px; gap: 8px; }
.cr-form .cr-label { font-size: 16px; }
.cr-form textarea { min-height: 84px; }
.cr-sub { border: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cr-sub + .cr-sub { margin-top: 10px; }
.cr-sub > legend { padding: 0; margin-bottom: 6px; }
.cr-form .cr-chip { min-height: 38px; padding: 0 14px; font-size: 14px; }
.cr-chips-small .cr-chip.later { min-height: 32px; padding: 0 10px; font-size: 12px; }
.cr-form .cr-photos { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; max-height: 300px; overflow-y: auto; }
.cr-form .cr-photo-name { padding: 4px 8px; font-size: 12px; }
.cr-facts-head { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.cr-facts-head .ed-note { margin: 0; }
.cr-small { min-height: 36px; padding: 0 14px; font-size: 14px; flex: 0 0 auto; }
.cr-form .cr-facts { max-height: 210px; overflow-y: auto; gap: 6px; font-size: 14px; }
.cr-form .cr-go { gap: 10px; }
.cr-form .cr-photos { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); max-height: 214px; }
.cr-form .cr-photo-img { aspect-ratio: 3 / 2; }
.cr-form .cr-facts { max-height: 150px; }
.cr-form .cr-block > .ed-note { margin: 0; }
.cr-fact-list { list-style: disc; margin: 0; padding-left: 20px; }
.lib-fact-edit { flex: 1 1 100%; }
.lib-fact-side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; }
.lib-small { min-height: 30px; padding: 0 12px; font-size: 13px; }
/* Create preview: everything above the fold (owner request, 22 Oct 2026). */
.cr-preview-columns { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 14px; }
.cr-preview-columns .cr-post { padding: 16px; gap: 10px; }
.cr-preview-columns .cr-post-photo { max-height: 260px; }
.cr-preview-columns .cr-post-text { font-size: 16px; }
.cr-approve { width: 100%; justify-content: center; }
.cr-options { gap: 12px; }
.cr-ticks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; }
.cr-tick { display: flex; gap: 8px; align-items: center; font-size: 14px; }
.cr-tick input { width: 18px; height: 18px; margin: 0; }
.cr-tick.later { color: var(--ed-muted); }
#cr-preview .ed-later-badge { flex: 0 0 auto; }
.cr-form-head > .cr-link { align-self: flex-start; }
.cr-head-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.cr-saved { margin: 4px 0 0; }
.cr-preview-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.cr-preview-actions .ed-secondary, .cr-preview-actions .ed-primary { min-height: 38px; padding: 0 14px; font-size: 14px; }
.cr-preview-columns .cr-post-photo { max-height: 220px; }
.lib-dates { display: flex; flex-wrap: wrap; gap: 12px; }
.lib-dates span { display: flex; flex-direction: column; gap: 4px; }
.cr-promo { margin-top: 10px; }
.cr-promo select { min-height: 40px; padding: 6px 10px; border-radius: 12px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); }
.ib-check { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.ib-item { padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.ib-head { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.ib-message { margin: 0; white-space: pre-wrap; }
.ib-reply { min-height: 72px; padding: 10px 12px; border-radius: 12px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); resize: vertical; }
.ib-sent { margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--ed-accent-soft); color: #0B4447; white-space: pre-wrap; }
.ib-unclear { margin: 0; color: var(--ed-warn); font-weight: 600; }
.ps-metrics { font-size: 13px; color: var(--ed-text-2); }
/* Show the whole photo at its real shape, as Facebook will (owner report 22 Oct 2026); never crop in the preview. */
.cr-post-photo, .cr-preview-columns .cr-post-photo { object-fit: contain; width: 100%; height: auto; max-height: 300px; background: var(--ed-line-soft); }
.ed-setting-check { justify-content: flex-start; gap: 10px; flex-wrap: wrap; }
/* Settings as its own full-width page (owner request, 22 Oct 2026). */
.ed-settings-wrap { padding-top: 40px; padding-bottom: 80px; display: block; }
.ed-settings { max-width: none; box-shadow: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 48px; align-items: start; }
.ed-settings > .ed-h2, .ed-settings > .ed-settings-foot { grid-column: 1 / -1; }
@media (max-width: 760px) { .ed-settings { grid-template-columns: 1fr; } }
.ed-settings-col { display: flex; flex-direction: column; gap: 14px; }
.ed-settings-sub { margin: 0; font-size: 15px; color: var(--ed-muted); font-weight: 600; }
.ed-settings > .ed-confirm { grid-column: 1 / -1; }
.cr-back { padding: 12px 14px; border-radius: 12px; background: var(--ed-accent-soft); display: flex; flex-direction: column; gap: 6px; }
.cr-back-text { margin: 0; white-space: pre-wrap; color: var(--ed-text-2); }
.cr-back .ed-note { margin: 0; }
.cr-translate { display: flex; flex-direction: column; gap: 8px; padding-top: 8px; border-top: 1px solid var(--ed-line-soft); width: 100%; }
/* AI photo panel in Create (D16). */
.cr-gen { display: grid; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ed-line); }
.cr-gen textarea, .cr-gen input[type="text"] { width: 100%; box-sizing: border-box; }
#cr-gen-result { display: grid; gap: 10px; }
.cr-gen-img { display: block; max-width: 100%; max-height: 340px; object-fit: contain; border-radius: 10px; background: var(--ed-accent-soft); }
.cr-gen-stuck { padding: 10px 12px; border-radius: 10px; background: var(--ed-accent-soft); }
/* Scheduling (planned posts). */
.ps-calendar { display: grid; gap: 8px; }
.ps-week { list-style: none; margin: 0 0 6px; padding: 0; display: grid; gap: 4px; }
.ps-week-item button { background: none; border: 0; padding: 4px 0; color: var(--ed-accent); text-align: left; cursor: pointer; font: inherit; }
.ps-when { display: grid; gap: 4px; width: 100%; }
.cr-photo-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-bottom: 10px; }
.cr-photo-head .ed-note { margin: 0; }
/* Generate photo: the brand gold, so it stands apart from the teal main actions. */
.ed-gold { min-height: 44px; padding: 0 20px; border-radius: 999px; border: none; background: var(--ed-gold); color: var(--ed-text); font-size: 15px; font-weight: 600; white-space: nowrap; }
.ed-gold:hover { background: #C38F2E; }
.cr-delete { color: var(--ed-warn); }
.lib-asset-delete { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; border: none; background: rgba(30, 42, 44, 0.72); color: #FFFFFF; font-size: 20px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.lib-asset-delete:hover { background: var(--ed-warn); }
.ed-dialog { border: none; border-radius: 16px; padding: 22px 24px; max-width: min(440px, calc(100vw - 32px)); background: var(--ed-surface); color: var(--ed-text); display: grid; gap: 12px; box-shadow: 0 12px 40px rgba(30, 42, 44, 0.25); }
.ed-dialog:not([open]) { display: none; }
.ed-dialog::backdrop { background: rgba(30, 42, 44, 0.45); }
.ed-dialog .ed-note { white-space: pre-line; margin: 0; }
.ed-danger { background: var(--ed-warn); }
.ed-danger:hover { background: #7A470E; }
.ed-confirm-dialog { max-width: min(640px, calc(100vw - 32px)); max-height: 85vh; overflow: auto; }
.ed-confirm-dialog .lib-summary { white-space: pre-wrap; margin: 0; }
.ps-step-clickable { cursor: pointer; }
.ps-step-edit { margin-left: auto; border: none; background: none; color: var(--ed-accent); font: inherit; font-size: 14px; font-weight: 600; padding: 4px 6px; border-radius: 8px; cursor: pointer; }
.ps-step-edit:hover { background: var(--ed-accent-soft); }
.ps-channel { display: grid; gap: 8px; }
/* Ads (Google Ads, stage A). */
.ad-row { display: flex; flex-wrap: wrap; gap: 12px; }
.ad-row > .ad-field { flex: 1 1 200px; }
.ad-field { display: flex; flex-direction: column; gap: 4px; }
.ad-field .cr-label { font-size: 14px; font-weight: 600; }
.ad-input { font: inherit; padding: 8px 10px; border: 1px solid var(--ed-line); border-radius: 8px; background: var(--ed-surface); color: var(--ed-text); width: 100%; }
textarea.ad-input { resize: vertical; }
.ad-money { max-width: 140px; }
.ad-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.ad-stack { display: flex; flex-direction: column; gap: 10px; }
.ad-counted { position: relative; }
.ad-count { position: absolute; right: 8px; bottom: 6px; font-size: 12px; color: var(--ed-muted); background: var(--ed-surface); padding: 0 2px; }
.ad-count.over { color: var(--ed-warn); font-weight: 700; }
.ad-h3 { font-family: var(--ed-serif); font-size: 18px; margin: 18px 0 2px; }
.ad-places { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 6px 0 12px; }
.ad-place { display: flex; gap: 6px; align-items: center; }
.ad-editor { scroll-margin-top: 90px; }
.ad-preview { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; margin: 10px 0; border: 1px solid var(--ed-line); border-radius: 10px; background: var(--ed-surface); font-family: Arial, var(--ed-sans); }
.ad-sponsored { font-size: 12px; font-weight: 700; color: var(--ed-text); }
.ad-url { font-size: 13px; color: var(--ed-text-2); }
.ad-headline { font-size: 19px; color: #1a0dab; line-height: 1.3; }
.ad-desc { font-size: 14px; color: var(--ed-text-2); }
.ad-badge { font-size: 13px; font-weight: 600; padding: 2px 10px; border-radius: 999px; background: var(--ed-later); }
.ad-approved { background: var(--ed-accent-soft); color: var(--ed-ok); }
.ad-needs-review { background: var(--ed-warn-soft); color: var(--ed-warn); }
.ad-problems-title { margin: 6px 0 0; font-weight: 600; color: var(--ed-warn); }
.ad-problems { margin: 2px 0 8px; padding-left: 20px; color: var(--ed-warn); }
/* "Add to one of my photos": same-size tiles to choose from. */
.cr-gen-sources { margin-bottom: 10px; }
.cr-gen-sources .cr-photo img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
/* Photos keep their own shape in previews (owner, 27 Oct 2026): no grey bars beside a tall 4:5 photo. */
.cr-post-photo, .cr-preview-columns .cr-post-photo { display: block; width: auto; max-width: 100%; height: auto; max-height: 420px; margin: 0 auto; object-fit: contain; background: none; }
.cr-gen-img { background: none; }

/* The one-click Post result, beside its button (owner, 27 Oct 2026). */
.ps-post-note { margin: 8px 0 0; font-weight: 600; }

/* Home: post results and weekly ideas (owner, 27 Oct 2026). */
.home-sub { margin: 16px 0 8px; font-size: 0.95rem; font-weight: 600; }
.home-best { display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin-top: 12px; }
.home-best-thumb { width: 64px; height: 80px; object-fit: cover; border-radius: 8px; flex: none; display: flex; align-items: center; justify-content: center; }
.home-ideas-week { font-weight: 400; font-size: 0.9em; color: var(--ed-muted); }
.home-idea .ed-row-text { flex: 1 1 280px; }
/* Prices (WP4, read-only) */
.pr-block { padding: 20px 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.pr-block > summary { cursor: pointer; }
.pr-status.warn { color: var(--ed-warn); font-weight: 600; }
.pr-pick { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pr-select-label { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; max-width: 100%; }
.pr-select { min-height: 44px; padding: 8px 12px; border-radius: 12px; border: 1px solid #DDD3C4; font: inherit; background: var(--ed-surface); max-width: 100%; min-width: 0; }
.pr-seasons { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 12px; }
@media (max-width: 600px) { .pr-block { padding: 16px; } }
.pr-season { padding: 14px 16px; border-radius: 16px; background: var(--ed-ground); display: flex; flex-direction: column; gap: 8px; }
.pr-season .ed-note { margin: 0; }
.pr-season-head { display: flex; flex-direction: column; gap: 2px; }
.pr-prices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pr-price { display: flex; flex-direction: column; padding: 8px 10px; border-radius: 12px; background: var(--ed-surface); }
.pr-price.pr-aim { background: var(--ed-accent-soft); }
.pr-price-value { font-size: 22px; font-weight: 600; }
.pr-attention { border: 2px solid var(--ed-warn-soft); }
.pr-scroll { overflow-x: auto; }
.pr-table { border-collapse: collapse; width: 100%; font-size: 14px; }
.pr-table th, .pr-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--ed-line-soft); white-space: nowrap; }
.pr-table th { color: var(--ed-muted); font-weight: 600; }
.pr-table tr.warn td { color: var(--ed-warn); font-weight: 600; }
/* Prices: data health, calendar and download (WP8). */
.pr-health-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pr-download { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pr-download .ed-note { margin: 0; }
.pr-health-wrap { display: flex; flex-direction: column; gap: 8px; }
.pr-health-wrap .cr-label { margin: 0; }
.pr-health { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 8px; }
.pr-source { display: flex; flex-direction: column; padding: 10px 14px; border-radius: 12px; background: var(--ed-surface); border: 1px solid var(--ed-line-soft); font-size: 14px; }
.pr-source-name { font-weight: 600; }
.pr-source.warn { border: 2px solid var(--ed-warn); background: var(--ed-warn-soft); }
.pr-source-fix { color: var(--ed-warn); font-weight: 600; }
.pr-h3 { margin: 8px 0 0; font-size: 18px; font-weight: 600; }
.pr-owner { margin-top: 12px; }
.pr-owner-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
.pr-cal-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pr-cal-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--ed-muted); }
.pr-cal-key { display: flex; align-items: center; gap: 6px; }
.pr-cal-swatch { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.pr-calendar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.pr-month { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pr-month-title { margin: 0; font-size: 15px; font-weight: 600; }
.pr-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.pr-weekday { font-size: 11px; color: var(--ed-muted); text-align: center; }
.pr-night { min-height: 40px; border-radius: 6px; padding: 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15; font-size: 12px; }
.pr-night-day { font-weight: 600; }
.pr-night-price { font-size: 11px; }
.pr-night-pad { background: transparent; }
.pr-night-open, .pr-cal-swatch.pr-night-open { background: var(--ed-accent-soft); color: var(--ed-accent-dark); }
.pr-night-booked, .pr-cal-swatch.pr-night-booked { background: var(--ed-accent); color: #FFFFFF; }
.pr-night-blocked, .pr-cal-swatch.pr-night-blocked { background: var(--ed-warn-soft); color: var(--ed-warn); }
.pr-night-closed, .pr-cal-swatch.pr-night-closed, .pr-night-unknown { background: var(--ed-later); color: var(--ed-muted); }
.pr-night-weak { box-shadow: inset 0 0 0 2px var(--ed-gold); }
.pr-cal-swatch.pr-night-weak { background: var(--ed-surface); box-shadow: inset 0 0 0 2px var(--ed-gold); }
/* D38: Log out sits beside Settings in the header. */
.ed-header-actions { display: flex; align-items: center; gap: 8px; }
.ed-logout { min-height: 44px; }
/* Phones (D38 hosted page): logo, Log out and Settings on one line; the tabs become one swipeable row. */
@media (max-width: 700px) {
  .ed-header-inner { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding-top: 10px; padding-bottom: 10px; }
  .ed-logo { height: 44px; }
  .ed-header-actions { justify-self: end; }
  /* Phone (owner, 11 Nov 2026): the tabs fold behind a three-bar menu button; opened, they list one under another. */
  .ed-header-actions { display: flex; gap: 8px; align-items: center; }
  .ed-menu-toggle { display: flex; position: relative; }
  .ed-nav { display: none; grid-column: 1 / -1; grid-row: 2; grid-template-columns: 1fr 1fr; gap: 4px; border-radius: 18px; }
  .ed-header.menu-open .ed-nav { display: grid; }
  .ed-tab { min-height: 48px; padding: 0 12px; font-size: 16px; text-align: left; }
  .ed-main { padding-top: 24px; }
}

/* Inbox unread circle (owner, 9 Nov 2026) */
.ed-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:#c62828;color:#fff;font-size:.75rem;font-weight:700;line-height:1;vertical-align:middle}
.ed-badge[hidden]{display:none}

/* No blank band at the top when there is no message (phone check, 9 Nov 2026). */
.ed-message:empty{display:none}
/* Empty status lines take no space in stacked screens (phone check, 9 Nov 2026). */
.ed-note:empty,.ed-stack > p:empty{display:none}
/* Settings on a phone: each label above its value, so long values read on one or two lines (9 Nov 2026). */
@media (max-width: 480px) { .ed-setting { flex-direction: column; gap: 2px; } .ed-setting > span:first-child { white-space: normal; color: var(--ed-text-2); font-size: 14px; } .ed-setting-value { text-align: left; } .ed-settings { padding: 18px; } }

/* Promotion codes (D46): the one-time Lodgify setup steps. */
.lib-setup { margin-top: 8px; padding: 12px; border-radius: 12px; background: var(--ed-warn-soft); display: flex; flex-direction: column; gap: 8px; }
.lib-setup-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; }
.lib-warn-text { color: var(--ed-warn); }

/* Library quick jumps (9 Nov 2026). */
.lib-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }

/* Create: drafts in a left sidebar like a chat list (owner, 9 Nov 2026); on narrow screens it sits on top. */
.cr-layout { display: grid; grid-template-columns: 1fr; gap: 20px; align-items: start; }
.cr-main { min-width: 0; }
.cr-sidebar { display: flex; flex-direction: column; gap: 10px; padding: 16px; max-height: 260px; overflow: hidden; }
.cr-sidebar-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cr-sidebar-head .ed-h2 { font-size: 1.05rem; margin: 0; }
.cr-draft-list { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; min-height: 0; }
.cr-draft { display: flex; align-items: center; gap: 6px; border-radius: 10px; }
.cr-draft.on, .cr-draft:hover { background: var(--ed-accent-soft); }
.cr-draft-open { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; text-align: left; background: none; border: 0; padding: 8px 10px; cursor: pointer; color: var(--ed-text); font: inherit; }
.cr-draft-title { font-weight: 600; font-size: 0.92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cr-draft-detail { font-size: 0.8rem; color: var(--ed-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cr-draft-delete { flex: none; width: 26px; height: 26px; margin-right: 6px; border-radius: 50%; border: 1px solid var(--ed-line); background: var(--ed-surface); color: var(--ed-muted); font-size: 16px; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0; }
.cr-draft-delete:hover { color: var(--ed-warn); border-color: var(--ed-warn); }
@media (min-width: 1000px) {
  .cr-layout { grid-template-columns: 260px minmax(0, 1fr); }
  .cr-sidebar { position: sticky; top: 16px; max-height: calc(100vh - 32px); }
}
.cr-photo-search { width: 100%; margin: 4px 0 8px; }
.lib-asset-group-row { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.lib-asset-group { flex: 1; min-width: 0; }

/* Settings: who did what (D47). */
.ed-activity { margin-top: 12px; }
.ed-activity summary { cursor: pointer; font-weight: 600; }
.ed-activity-list { margin: 8px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 0.9rem; color: var(--ed-text-2); max-height: 260px; overflow-y: auto; }
a.ed-secondary { display: inline-flex; align-items: center; text-decoration: none; white-space: nowrap; }
.ed-row a.ed-secondary { min-height: 38px; padding: 0 14px; font-size: 14px; }
.ps-boost-input { width: 72px; min-height: 38px; padding: 0 8px; border: 1px solid #DDD3C4; border-radius: 10px; font-size: 15px; }
.ps-boost-label { font-size: 14px; color: var(--ed-muted, #6b6259); align-self: center; }
/* Schema 33: boost audience choices (age, Speakers of, custom audience) and the Settings audience form. */
.ps-boost-select { min-height: 38px; max-width: 100%; min-width: 0; padding: 0 8px; border: 1px solid #8A8F8C; border-radius: 10px; font: inherit; font-size: 15px; background: var(--ed-surface); }
.ed-audiences { display: grid; gap: 8px; min-width: 0; }
.ed-audience-list { margin: 0; padding-left: 18px; font-size: 14px; }
.rs-weeks { overflow-x: auto; }
.rs-aud + .rs-aud { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ed-line-soft); }
.rs-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.rs-table th, .rs-table td { text-align: right; padding: 8px 10px; border-bottom: 1px solid var(--ed-line-soft); white-space: nowrap; }
.rs-table th:first-child, .rs-table td:first-child { text-align: left; }
.rs-list { margin: 0; padding-left: 18px; }
.ps-progress { display: flex; align-items: center; gap: 10px; margin: 10px 0 0; font-size: 15px; font-weight: 500; }
.ps-spinner { width: 18px; height: 18px; border-radius: 50%; border: 3px solid var(--ed-line-soft, #e8e0d4); border-top-color: var(--ed-accent, #b5651d); animation: ps-spin 0.9s linear infinite; flex: none; }
@keyframes ps-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ps-spinner { animation-duration: 2.5s; } }
.ps-post-done { font-weight: 500; }

/* Post screen: technical connection details folded away (Apple-style, 11 Nov 2026). */
.ps-details > summary { cursor: pointer; color: var(--ed-text-2); font-size: 15px; min-height: 44px; display: flex; align-items: center; }

/* Astra review (11 Nov 2026): the post review is one column on phones (the preview rule below 130 forced two). */
.cr-where { margin: 0; font-size: 16px; }
.cr-options .cr-label { margin: 0; }
@media (max-width: 860px) { .cr-preview-columns { grid-template-columns: 1fr; } }
/* Post result at the top (Astra review, 11 Nov 2026). */
.ps-done { padding: 20px; display: flex; flex-direction: column; gap: 8px; border-color: var(--ed-accent); }
.ps-done .ed-h2 { margin: 0 0 4px; }
.ps-done-row { margin: 0; font-size: 16px; }
.ps-steps-box > summary { cursor: pointer; list-style-position: outside; margin-bottom: 12px; }
.ps-confirm-photo { display: block; max-width: 100%; max-height: 220px; margin: 0 auto 12px; border-radius: 12px; object-fit: contain; }
.ad-extra > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }
/* Touch targets of at least 44 points (Astra review, 11 Nov 2026). */
.lib-small { min-height: 44px; }
.lib-asset-delete { width: 44px; height: 44px; top: 4px; right: 4px; }
.cr-draft-delete { width: 44px; height: 44px; margin-right: 0; }
.ps-step-edit { min-height: 44px; padding: 4px 12px; }
.ad-input, select.ad-input, #cr-photo-search, #lib-search { min-height: 44px; }
input[type="text"], input[type="search"], input[type="url"], input:not([type]), textarea, select { border-color: #8A8F8C; }
/* Drafts panel (owner, 11 Nov 2026): hidden when empty; heading on its own line so nothing squeezes. */
.cr-layout.cr-solo { grid-template-columns: 1fr; }
.cr-sidebar-head { flex-wrap: wrap; }
#cr-delete-text { white-space: pre-line; }
/* Working circle on the button that started the work (owner, 11 Nov 2026). Clicks are ignored until it finishes. */
button.is-working { pointer-events: none; opacity: 0.85; }
button.is-working::before { content: ''; display: inline-block; width: 0.9em; height: 0.9em; margin-right: 0.5em; vertical-align: -0.12em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ed-spin 0.8s linear infinite; }
@media (prefers-reduced-motion: reduce) { button.is-working::before { animation-duration: 2.4s; } }
/* Home top (owner, 11 Nov 2026): slim figure bars, an 8-week strip of nights and folding date rows. Teal headings. */
#home-greeting { color: var(--ed-accent); }
#tab-home.ed-stack { gap: 20px; }
.hm-section { gap: 6px; }
.hm-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.hm-h { margin: 0; font-size: 17px; font-weight: 600; color: var(--ed-accent); }
.hm-small { font-size: 12px; color: var(--ed-muted); }
.hm-bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hm-bar3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hm-box { padding: 10px 16px; display: flex; flex-direction: column; gap: 1px; border-left: 1px solid var(--ed-line); min-width: 0; }
.hm-box:first-child { border-left: none; }
.hm-label { font-size: 13px; color: var(--ed-muted); }
.hm-value { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; }
.hm-dates { overflow: hidden; }
.hm-dates-top { padding: 12px 16px 10px; display: flex; flex-direction: column; gap: 6px; }
.hm-strip { display: grid; grid-template-columns: repeat(56, minmax(0, 1fr)); gap: 2px; }
.hm-night { height: 16px; border-radius: 2px; }
.hm-night.booked, .hm-key.booked { background: var(--ed-accent); }
.hm-night.risk, .hm-key.risk { background: #B3412E; }
.hm-night.open, .hm-key.open { background: #EBC556; }
.hm-night.closed, .hm-key.closed { background: #C9C0B2; }
.hm-night.unknown { background: var(--ed-later); }
.hm-night.past { border: 1px dashed var(--ed-line); }
.hm-marks { font-size: 11px; color: var(--ed-muted); height: 14px; }
.hm-marks span { white-space: nowrap; }
.hm-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--ed-text-2); }
.hm-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.hm-key { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.hm-row { border-top: 1px solid var(--ed-line); }
.hm-row > summary { list-style: none; cursor: pointer; padding: 10px 16px; display: flex; gap: 8px; align-items: flex-start; min-height: 44px; }
.hm-row > summary::-webkit-details-marker { display: none; }
.hm-row > summary::after { content: '›'; margin-left: auto; color: var(--ed-muted); font-size: 20px; line-height: 1; transition: transform .15s; }
.hm-row[open] > summary::after { transform: rotate(90deg); }
.hm-row[open], .hm-row[open] > summary { background: #FFFCF5; }
.hm-row-title { font-size: 15px; font-weight: 600; color: var(--ed-accent); }
.hm-row-line { font-size: 13px; color: var(--ed-text-2); }
.hm-tag { font-size: 11.5px; padding: 1px 8px; border-radius: 999px; white-space: nowrap; margin-left: 6px; vertical-align: 1px; }
.hm-tag.risk { background: #F7DFD9; color: #8E2F20; }
.hm-tag.holiday { background: var(--ed-accent-soft); color: var(--ed-accent-dark); }
.hm-tag.gap { background: var(--ed-later); color: var(--ed-muted); }
.hm-row-body { padding: 0 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.hm-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.hm-empty { padding: 10px 16px; border-top: 1px solid var(--ed-line); font-size: 13px; color: var(--ed-muted); }
@media (max-width: 700px) {
  .hm-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-bar3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hm-box:nth-child(3) { border-left: none; } .hm-bar3 .hm-box:nth-child(3) { border-left: 1px solid var(--ed-line); }
  .hm-box { padding: 8px 10px; } .hm-value { font-size: 19px; }
  .hm-bar:not(.hm-bar3) .hm-box:nth-child(n+3) { border-top: 1px solid var(--ed-line); }
}
/* The menu button exists only on a phone; a dot on it means unread Inbox comments. */
@media (min-width: 701px) { .ed-menu-toggle { display: none; } }
.ed-menu-dot { position: absolute; top: 8px; right: 8px; width: 9px; height: 9px; border-radius: 50%; background: #c62828; }
.ed-menu-dot[hidden] { display: none; }
/* Write it for me under a promotion's offer text (owner, 11 Nov 2026). */
.lib-write-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
/* Promotion prices (schema 33): one calm row per price, wrapping on a phone. */
.lib-form-part { display: flex; flex-direction: column; gap: 6px; }
.lib-prices { display: flex; flex-direction: column; gap: 8px; }
.lib-price-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.lib-form .lib-price-row input { width: 6.5em; }
.lib-price-row span { font-weight: 500; }

/* Posts as Ads Manager (owner, 12 Nov 2026) */
.ps-table-scroll { overflow-x: auto; border: 1px solid var(--ed-line); border-radius: 16px; background: var(--ed-surface); }
.ps-table { border-collapse: collapse; width: 100%; min-width: 880px; font-size: 14px; font-variant-numeric: tabular-nums; }
.ps-table th { text-align: left; font-size: 12px; font-weight: 600; color: var(--ed-muted); padding: 10px 12px; background: var(--ed-line-soft); border-bottom: 1px solid var(--ed-line); white-space: nowrap; }
.ps-table td { padding: 8px 12px; border-bottom: 1px solid var(--ed-line-soft); color: var(--ed-text-2); vertical-align: middle; }
.ps-table .ps-n { text-align: right; }
.ps-group td { font-weight: 700; color: var(--ed-text); padding-top: 14px; }
.ps-total td { font-weight: 700; color: var(--ed-text); background: var(--ed-line-soft); }
.ps-row { cursor: pointer; } .ps-row:hover td, .ps-row:focus-visible td { background: var(--ed-accent-soft); }
.ps-pt { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.ps-pt-text { display: flex; flex-direction: column; } .ps-pt-text b { color: var(--ed-text); font-weight: 600; }
.ps-mini { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; background: var(--ed-line-soft); display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--ed-muted); }
.ps-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; }
.ps-dot-facebook { background: #1877F2; } .ps-dot-instagram { background: #C13584; } .ps-dot-google { background: #1A73E8; }
.ps-table .lib-chip { white-space: nowrap; }
.lib-lodgify-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }

/* Last night's check (site audit, 12 Nov 2026): read-only list, no buttons. */
.hm-check-line { padding: 12px 16px; font-size: 15px; font-weight: 600; }
.hm-check-item { border-top: 1px solid var(--ed-line); padding: 10px 16px; display: flex; flex-direction: column; gap: 2px; }
.hm-check-more > summary { cursor: pointer; padding: 10px 16px; min-height: 44px; border-top: 1px solid var(--ed-line); color: var(--ed-accent); font-weight: 600; }
.hm-tag.today { background: #F7DFD9; color: #8E2F20; }
.hm-tag.check { background: #FBEBD0; color: #7A4B00; }
.hm-check-caveat { padding: 0 16px 10px; }
/* Live prices on booking sites (mock-up approved 13 Nov 2026): a box per site, then the prices to look at. */
#hm-live-sites { margin: 0 16px 12px; }
#hm-live .hm-value.hm-live-ok { color: #1E6B34; }
#hm-live .hm-value.hm-live-warn { color: #7A4B00; }
#hm-live .hm-value.hm-live-note { color: var(--ed-muted); }
#hm-live .ed-card > .hm-small:last-child { padding: 10px 16px 12px; border-top: 1px solid var(--ed-line); }
.hm-tag.week { background: var(--ed-accent-soft); color: var(--ed-accent-dark); }
.hm-tag.soon, .hm-tag.note, .hm-tag.cover { background: var(--ed-later); color: var(--ed-muted); }
/* Five menu groups (approved redesign, 12 Nov 2026): Home, Inbox, Marketing, Results, More. On a computer the menu is a
   sidebar with the group names; on a phone the three-bar menu shows the same groups. */
.ed-nav-group { display: none; }
@media (min-width: 1100px) {
  #ed-app:not([hidden]) { display: grid; grid-template-columns: 232px minmax(0, 1fr); grid-template-rows: auto 1fr; min-height: 100vh; }
  .ed-header { grid-column: 1; grid-row: 1 / -1; align-self: start; position: sticky; top: 0; height: 100vh; overflow-y: auto; border-bottom: none; border-right: 1px solid var(--ed-line); }
  .ed-header-inner { flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; gap: 20px; height: 100%; max-width: none; margin: 0; padding: 24px 14px; }
  .ed-brand { padding-left: 10px; }
  .ed-logo { height: 56px; }
  .ed-nav { flex-direction: column; flex-wrap: nowrap; gap: 2px; padding: 0; background: none; border-radius: 0; }
  .ed-nav-group { display: block; margin: 18px 12px 4px; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ed-muted); }
  .ed-tab { min-height: 40px; padding: 0 12px; border-radius: 10px; text-align: left; position: relative; }
  .ed-tab:hover { background: var(--ed-chip); }
  .ed-tab[aria-current="page"] { background: var(--ed-accent-soft); color: var(--ed-accent-dark); box-shadow: none; }
  .ed-header-actions { margin-top: auto; justify-content: space-between; padding: 0 6px; }
  .ed-settings-wrap { grid-column: 2; grid-row: 1; }
  .ed-main { grid-column: 2; grid-row: 2; }
  .ed-settings-wrap, .ed-main { width: 100%; max-width: 1180px; margin: 0 auto; padding-left: 40px; padding-right: 40px; }
}
@media (max-width: 700px) {
  .ed-nav-group { display: block; grid-column: 1 / -1; margin: 10px 10px 0; font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ed-muted); }
}
/* Posts tabs: In progress / Live & past (approved redesign, 12 Nov 2026). */
.ps-tabs { display: inline-flex; gap: 4px; padding: 4px; background: var(--ed-chip); border-radius: 999px; align-self: flex-start; }
.ps-tab { min-height: 44px; padding: 0 20px; border: none; border-radius: 999px; background: transparent; color: var(--ed-text-2); font-size: 15px; font-weight: 500; }
.ps-tab[aria-selected="true"] { background: var(--ed-surface); color: var(--ed-text); font-weight: 600; box-shadow: 0 1px 3px rgba(30,42,44,0.12); }
/* Shared review screen and receipts (approved redesign, 12 Nov 2026). */
.rv { display: flex; flex-direction: column; gap: 12px; }
.rv-title { margin: 0; font-family: var(--ed-serif); font-size: 24px; line-height: 1.25; font-weight: 600; color: var(--ed-text); }
.rv-facts { margin: 0; display: grid; gap: 0; border: 1px solid var(--ed-line); border-radius: 12px; overflow: hidden; }
.rv-fact { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 10px 14px; }
.rv-fact + .rv-fact { border-top: 1px solid var(--ed-line-soft); }
.rv-fact dt { color: var(--ed-muted); font-size: 14px; } .rv-fact dd { margin: 0; font-weight: 500; }
.rv-photo { display: block; max-width: 100%; max-height: 240px; border-radius: 12px; object-fit: contain; align-self: center; }
.rv-label { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ed-muted); }
.rv-text { margin: 0; white-space: pre-wrap; padding: 12px 14px; background: var(--ed-ground); border-radius: 12px; }
.rv-note { margin: 0; font-size: 14px; color: var(--ed-text-2); }
@media (max-width: 480px) { .rv-fact { grid-template-columns: 1fr; gap: 2px; } .rv-title { font-size: 21px; } }
.rc-list { list-style: none; margin: 10px 0 0; padding: 0; border: 1px solid var(--ed-line); border-radius: 12px; overflow: hidden; }
.rc-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 10px 14px; }
.rc-row + .rc-row { border-top: 1px solid var(--ed-line-soft); }
.rc-icon { width: 1.2em; text-align: center; font-weight: 700; }
.rc-done .rc-icon, .rc-hidden .rc-icon { color: var(--ed-ok); } .rc-refused .rc-icon { color: #b3261e; } .rc-unclear .rc-icon { color: var(--ed-warn); } .rc-skipped .rc-icon { color: var(--ed-muted); }
.rc-text { color: var(--ed-text-2); flex: 1 1 200px; }
/* The review's buttons stay in view while the summary scrolls (round 3: the final click must always be reachable). */
.ed-confirm-dialog > .lib-actions { position: sticky; bottom: -1px; background: var(--ed-surface); padding-top: 12px; padding-bottom: 4px; margin-top: 12px; }
@media (max-width: 480px) { .rv-photo { max-height: 150px; } }
/* Email (schema 28). */
.em-card { display: flex; flex-direction: column; gap: 6px; text-align: left; border: 1px solid var(--ed-line); background: var(--ed-surface); padding: 16px 18px; border-radius: 16px; }
.em-select { min-height: 44px; border-radius: 10px; border: 1px solid var(--ed-line); background: var(--ed-surface); padding: 0 10px; font: inherit; max-width: 100%; }
.em-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px; align-items: start; }
.em-form { display: flex; flex-direction: column; gap: 6px; }
.em-form input, .em-form textarea { font: inherit; padding: 10px 12px; border: 1px solid var(--ed-line); border-radius: 10px; background: var(--ed-surface); color: var(--ed-text); }
.em-send { border-top: 1px solid var(--ed-line); margin-top: 12px; padding-top: 12px; }
.em-preview { position: sticky; top: 16px; }
.em-frame { width: 100%; height: 720px; border: 1px solid var(--ed-line); border-radius: 16px; background: #F6F1E9; }
@media (max-width: 900px) { .em-columns { grid-template-columns: 1fr; } .em-preview { position: static; } .em-frame { height: 560px; } }
/* Blog (schema 29). */
.bl-topic { font: inherit; padding: 10px 12px; border: 1px solid var(--ed-line); border-radius: 10px; background: var(--ed-surface); width: 100%; margin-bottom: 8px; }
/* Guest messages in Inbox (schema 30). */
.ms-columns { display: grid; grid-template-columns: minmax(240px, 340px) minmax(0, 1fr); gap: 20px; align-items: start; }
.ms-list { display: flex; flex-direction: column; gap: 6px; }
.ms-item { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--ed-line); background: var(--ed-surface); min-height: 44px; }
.ms-item.on { border-color: var(--ed-accent); box-shadow: 0 0 0 1px var(--ed-accent); }
.ms-item-head { display: flex; justify-content: space-between; gap: 8px; }
.ms-preview { color: var(--ed-text-2); font-size: 14px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ms-thread { display: flex; flex-direction: column; gap: 12px; }
.ms-thread-head { display: flex; align-items: center; gap: 10px; }
.ms-bubbles { display: flex; flex-direction: column; gap: 8px; }
.ms-bubble { max-width: 80%; padding: 10px 14px; border-radius: 16px; background: var(--ed-ground); }
.ms-bubble p { margin: 0; white-space: pre-wrap; }
.ms-bubble.us { align-self: flex-end; background: var(--ed-accent-soft); }
.ms-time { display: block; margin-top: 4px; font-size: 12px; color: var(--ed-muted); }
@media (max-width: 860px) { .ms-columns { grid-template-columns: 1fr; } }
.ms-thread { padding: 20px 22px; }
.em-english { margin-top: 16px; } .em-english-text { margin: 0; white-space: pre-wrap; color: var(--ed-text-2); }
.em-card-wrap { position: relative; } .em-card-wrap > .em-card { width: 100%; height: 100%; }
.em-remove { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--ed-line); background: var(--ed-surface); color: var(--ed-text-2); font-size: 20px; line-height: 1; }
.em-remove:hover { background: var(--ed-chip); }

/* One page per post (owner, 12 Nov 2026): English and every translation on one screen. */
.pf { display: grid; gap: 14px; }
.pf-head { display: flex; gap: 14px; align-items: flex-start; }
.pf-photo { width: 104px; height: 78px; object-fit: cover; border-radius: 10px; flex: none; }
.pf-rows { display: grid; gap: 10px; }
.pf-row { border: 1px solid #DDD3C4; border-radius: 14px; padding: 12px 14px; display: grid; gap: 8px; background: var(--ed-surface); }
.pf-row.pf-missing { border-style: dashed; }
.pf-row-head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pf-row-head .pf-end { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.pf-name { font-weight: 600; }
.pf-text { white-space: pre-wrap; margin: 0; font-size: 15px; line-height: 1.5; }
.pf-en { margin: 0; font-size: 14px; color: var(--ed-muted); white-space: pre-wrap; }
.pf-ctl { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; font-size: 14px; color: var(--ed-muted); }
.pf-ctl .cr-chip { min-height: 34px; padding: 0 12px; font-size: 14px; }
.pf-mk { padding: 4px 10px; border: 1px solid #DDD3C4; border-radius: 10px; color: var(--ed-text); }
.pf-bar { display: grid; gap: 8px; border-top: 1px solid #DDD3C4; padding-top: 12px; }
.pf-summary { margin: 0; white-space: pre-wrap; }
.pf-check { width: 20px; height: 20px; }
@media (max-width: 640px) { .pf-head { flex-direction: column; } .pf-row-head .pf-end { margin-left: 0; } }
.ps-muted { color: var(--ed-muted); text-align: left; }
.ps-card-wrap { position: relative; }
.ps-card-wrap > .ps-card { width: 100%; padding-right: 52px; }
.em-remove.em-remove-inline { position: static; flex: none; }
.lib-past > summary { cursor: pointer; padding: 10px 0; color: var(--ed-muted); }
.ps-table .ps-span { text-align: left; white-space: normal; }
.ps-details-link { font-size: 13px; margin-top: 2px; align-self: flex-start; }
