:root,
html[data-theme="night"] {
  --ink: #edf0f4;
  --sidebar: #edf0f4;
  --surface: #f1f3f6;
  --surface-strong: #f6f7f9;
  --field: #eef1f5;
  --deep-field: #e8ecf1;
  --text: #132946;
  --text-soft: #4b617e;
  --muted: #546984;
  --line: #d8dee7;
  --line-soft: #e1e6ed;
  --cyan: #2f69bd;
  --cyan-soft: #e0e9f6;
  --green: #147958;
  --green-soft: #dbece5;
  --red: #bd4852;
  --gold: #a77316;
  --gold-soft: #f4e9ce;
  --shadow-panel: 8px 8px 18px rgba(182, 190, 201, .48), -7px -7px 16px rgba(255, 255, 255, .83);
  --shadow-control: 4px 4px 9px rgba(181, 190, 202, .52), -4px -4px 9px rgba(255, 255, 255, .86);
  --shadow-input: inset 3px 3px 7px rgba(181, 190, 202, .52), inset -3px -3px 7px rgba(255,255,255,.84);
  --emboss-high: rgba(255, 255, 255, .92);
  --emboss-low: rgba(184, 193, 205, .55);
  color-scheme: light;
}

body {
  color: var(--text);
  background: var(--ink);
  font-family: "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
}

body::before,
body::after,
.workspace::before,
.workspace::after { display: none !important; content: none !important; }

.app-shell { grid-template-columns: 204px minmax(0, 1fr); background: var(--ink); }
.sidebar {
  padding: 20px 15px 14px;
  border: 0;
  background: var(--sidebar);
  box-shadow: inset -1px 0 rgba(177, 187, 199, .45), 10px 0 26px rgba(164, 174, 188, .12);
  overflow: hidden;
}
.brand { padding: 0 8px 18px; }
.brand img { filter: none; }
.nav-item {
  grid-template-columns: 22px 1fr;
  min-height: 44px;
  margin: 5px 0;
  padding: 0 12px;
  color: var(--text-soft);
  border-radius: 11px;
  font-weight: 650;
}
.nav-item:hover { color: var(--cyan); background: transparent; }
.nav-item.active {
  color: var(--cyan);
  background: #edf0f4;
  box-shadow: inset 3px 3px 7px rgba(182, 191, 203, .58), inset -3px -3px 7px rgba(255, 255, 255, .9);
}
.nav-item svg { stroke-width: 1.65; }
.source-status-compact { max-height: 165px; overflow: auto; scrollbar-width: thin; }
.sidebar-source { min-height: 28px; padding: 0 4px; font-size: 10px; }
.sidebar-source em { font-size: 9px; }
.sidebar-foot { padding-top: 10px; }
.permission-note { display: none; }

.workspace { background: var(--ink); }
.topbar {
  min-height: 70px;
  padding: 0 28px;
  color: var(--text);
  border: 0;
  background: #f2f4f7;
  backdrop-filter: none;
  box-shadow: 0 1px 0 rgba(176, 186, 199, .38), 0 8px 22px rgba(171, 181, 194, .12);
}
.topbar strong, .topbar span { color: inherit; }
.main-content { width: min(1640px, 100%); max-width: none; padding: 26px 30px 58px; }
.page-heading { align-items: center; margin-bottom: 24px; }
.page-kicker { color: var(--cyan) !important; font-size: 10px !important; font-weight: 750; letter-spacing: .06em; }
.page-heading h1 { font-size: clamp(27px, 2.3vw, 38px); color: var(--text); }
.page-heading > div > p:last-child { margin-top: 7px; color: var(--text-soft); }
.heading-title-line span, .section-badge, .version-chip, .status-chip {
  border: 0;
  color: var(--text-soft);
  background: var(--field);
  box-shadow: inset 2px 2px 4px rgba(185, 194, 205, .5), inset -2px -2px 4px rgba(255, 255, 255, .82);
}

.panel,
.run-strip,
.calendar-palette-panel,
.calendar-toolbar,
.calendar-workbench,
.unified-uploader,
.target-maintenance,
.readiness-rail,
.metric-ribbon,
.report-type-toolbar,
.poster-mode-tabs {
  border: 0 !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow-panel);
}
.panel { border-radius: 15px; }

.btn,
button,
input,
select,
textarea { font: inherit; }
.btn {
  border: 0;
  color: var(--text-soft);
  background: var(--surface);
  box-shadow: var(--shadow-control);
}
.btn:hover { color: var(--cyan); transform: translateY(-1px); }
.btn:active { transform: none; box-shadow: inset 3px 3px 7px rgba(181, 190, 202, .55), inset -3px -3px 7px rgba(255,255,255,.86); }
.btn.primary { color: #fff; background: #2f69bd; box-shadow: 5px 5px 11px rgba(129, 145, 168, .5), -4px -4px 9px rgba(255,255,255,.82); }
.btn.primary:hover { color: #fff; background: #275eaa; }
input, select, textarea, .search-field {
  border: 0 !important;
  color: var(--text);
  background: var(--field) !important;
  box-shadow: var(--shadow-input) !important;
}
:focus-visible { outline: 2px solid var(--cyan) !important; outline-offset: 2px; }

.run-strip { padding: 12px 16px; border-radius: 14px; }
.workflow-tabs { display: none; }
.section-heading { margin-bottom: 16px; }
.section-heading > div > p, .panel-heading p { color: var(--muted); }
.source-workbench { gap: 22px; }
.unified-uploader { border-radius: 16px; }
.unified-source-status { background: transparent; border: 0; }
.unified-source-status > div { border-color: var(--line-soft); }
.data-source-grid > [data-source-card="relations"] { grid-column: 1 / -1; }
.source-version-actions label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.source-version-actions input { min-height: 40px; padding: 0 10px; }
.upload-ledger > summary { cursor: pointer; list-style: none; margin: 0; padding: 15px 18px; }
.upload-ledger > summary::-webkit-details-marker { display: none; }

.metric-ribbon { overflow: visible; gap: 1px; }
.metric-ribbon > div { border: 0; background: transparent; }
.metric-ribbon > div:nth-child(2) {
  border-radius: 12px;
  box-shadow: inset 4px 4px 9px rgba(181,190,202,.5), inset -4px -4px 9px rgba(255,255,255,.85);
}
.metric-ribbon strong { color: var(--text); }
.data-table th { color: var(--text-soft); background: #e8ecf1; }
.data-table td { color: var(--text); background: transparent; border-color: var(--line); }
.data-table tbody tr:hover td { background: rgba(47, 105, 189, .045); }
.table-scroll { scrollbar-color: #b9c3d0 transparent; }

.redesigned-module { display: none; }
.redesigned-module.active { display: block; }
.module-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.module-heading span { color: var(--cyan); font-size: 10px; font-weight: 760; letter-spacing: .08em; }
.module-heading h1 { margin: 4px 0 0; color: var(--text); font-size: clamp(28px, 2.4vw, 38px); line-height: 1; }
.data-version-bar { display: grid; grid-template-columns: minmax(300px, 1fr) auto auto; align-items: center; gap: 24px; margin-bottom: 22px; padding: 16px 18px; border-radius: 15px; background: var(--surface); box-shadow: 8px 8px 18px rgba(182,190,201,.48), -7px -7px 16px rgba(255,255,255,.83); }
.data-version-primary { display: flex; align-items: center; gap: 12px; min-width: 0; }
.data-version-primary > div { min-width: 0; }
.data-version-primary strong { display: block; font-size: 20px; color: var(--text); }
.data-version-primary small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.data-version-meta { display: flex; align-items: center; gap: 12px; color: var(--text-soft); font-size: 10px; }
.data-version-meta span { white-space: nowrap; }
.data-version-meta span + span { padding-left: 12px; border-left: 1px solid var(--line); }
.data-version-meta b { color: var(--text); }
.data-update-panel { margin: -8px 0 24px; padding: 20px; border-radius: 16px; background: var(--surface); box-shadow: inset 4px 4px 10px rgba(181,190,202,.5), inset -4px -4px 10px rgba(255,255,255,.86); }
.data-update-panel[hidden] { display: none; }
.data-update-panel > header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.data-update-panel > header > div { margin-right: auto; }
.data-update-panel > header span { color: var(--cyan); font-size: 10px; font-weight: 750; }
.data-update-panel > header h2 { margin: 2px 0 0; font-size: 20px; }
.data-update-actions { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.data-update-actions > label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.data-update-actions input[type="date"] { min-height: 40px; padding: 0 10px; }
.data-source-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; margin-bottom: 14px; overflow: hidden; border-radius: 12px; background: var(--line); }
.data-source-grid > div { min-height: 72px; padding: 12px 14px; background: var(--surface-strong); }
.data-source-grid strong { display: block; margin-bottom: 6px; font-size: 12px; }
.data-source-grid small { color: var(--muted); font-size: 9px; }
.data-source-grid .status-chip { margin-top: 7px; }
.data-readiness-details, .data-advanced-settings, .data-audit-details { margin-top: 10px; border-top: 1px solid var(--line); }
.data-readiness-details > summary, .data-advanced-settings > summary, .data-audit-details > summary, .dashboard-secondary-metrics > summary { padding: 12px 2px; cursor: pointer; color: var(--text-soft); font-size: 11px; font-weight: 700; list-style: none; }
.data-readiness-details > summary::-webkit-details-marker, .data-advanced-settings > summary::-webkit-details-marker, .data-audit-details > summary::-webkit-details-marker, .dashboard-secondary-metrics > summary::-webkit-details-marker { display: none; }
.data-readiness-details .readiness-rail { margin: 0 0 12px; box-shadow: none; }
.data-advanced-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.data-advanced-settings .rules-layout { margin-top: 0; }
.data-audit-details #auditPanel { margin-top: 0; box-shadow: none; }
.module-heading-actions, .dashboard-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.dashboard-actions .btn { min-height: 34px; padding-inline: 12px; }
.dashboard-secondary-metrics { margin: 0 0 18px; }
.dashboard-secondary-metrics .metric-ribbon { margin: 0 0 12px; }
.dashboard-secondary-metrics .metric-ribbon { overflow: hidden; border: 1px solid var(--line-soft); background: var(--surface); box-shadow: none; }
.dashboard-secondary-metrics .metric-ribbon > div { border-radius: 0; background: transparent; box-shadow: none; }
.dashboard-secondary-metrics .metric-ribbon > div + div { border-left: 1px solid var(--line-soft); }
#publish-daily .broadcast-pack { margin-bottom: 18px; }

.account-advanced-settings { margin-top: 18px; padding: 0 18px 18px; border-radius: 15px; background: var(--surface); box-shadow: 7px 7px 16px rgba(182,190,201,.42), -6px -6px 14px rgba(255,255,255,.78); }
.account-advanced-settings > summary { padding: 16px 0; cursor: pointer; list-style: none; color: var(--text-soft); font-size: 12px; font-weight: 750; }
.account-advanced-settings > summary::-webkit-details-marker { display: none; }
.account-advanced-settings .rules-layout { margin-top: 0; }
.audit-log-dialog { width: min(1080px, calc(100vw - 48px)); }
.audit-log-dialog #auditPanel { margin: 0; box-shadow: none; }

.report-layout { grid-template-columns: minmax(250px, 300px) minmax(0, 1fr); }
.report-layout, .poster-layout, .auto-poster-grid { --editor-room: calc(100dvh - 112px); --preview-room: calc(100dvh - 220px); }
.report-settings, .poster-library-panel, .poster-settings, .auto-poster-list,
.ppt-preview-panel, .poster-preview-panel, .auto-poster-preview {
  position: sticky; top: 84px; min-width: 0; max-height: var(--editor-room);
  overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
}
.ppt-preview-panel, .poster-preview-panel { display: flex; flex-direction: column; }
.ppt-preview-toolbar { flex-shrink: 0; }
.ppt-stage-wrap { min-height: 0; overflow: auto; overscroll-behavior: contain; }
.ppt-stage-wrap:not(:has(.special-portrait, .promotion-list-poster, .warning-list-poster)) {
  max-width: calc(var(--preview-room) * 1.777778); margin-inline: auto; flex-shrink: 0;
}
.poster-stage-shell { min-height: 0; flex-shrink: 0; }
.poster-canvas { width: auto; max-height: var(--preview-room); object-fit: contain; }
.report-options, .setting-section { border-color: var(--line-soft); }

.publish-tabs, .poster-mode-tabs { display: inline-flex; gap: 4px; padding: 5px; margin-bottom: 20px; border-radius: 12px; background: var(--deep-field); box-shadow: inset 3px 3px 7px rgba(181,190,202,.42), inset -3px -3px 7px rgba(255,255,255,.75); }
.publish-tabs button, .poster-mode-tabs button { min-height: 34px; padding: 0 18px; border: 0; border-radius: 9px; color: var(--text-soft); background: transparent; box-shadow: none; font-weight: 720; }
.publish-tabs button.active, .poster-mode-tabs button.active { color: var(--cyan); background: var(--surface-strong); box-shadow: 4px 4px 9px rgba(181,190,202,.42), -3px -3px 8px rgba(255,255,255,.8); }
.poster-workspace > .panel, .poster-template-panel, .poster-editor-panel { box-shadow: 7px 7px 16px rgba(182,190,201,.42), -6px -6px 14px rgba(255,255,255,.78); }
.poster-template-card, .poster-template-item { box-shadow: none; }
.poster-template-card.active, .poster-template-item.active { box-shadow: inset 0 0 0 2px var(--cyan); }
.poster-editor-panel input, .poster-editor-panel textarea, .poster-editor-panel select { box-shadow: inset 2px 2px 5px rgba(181,190,202,.3), inset -2px -2px 5px rgba(255,255,255,.66); }
.org-data-table tbody tr.selected td { background: #e9f1fc; }
.org-name-button small { color: var(--muted); font-size: 11px; font-weight: 500; }
.publish-view { display: none; }
.publish-view.active { display: block; }
#publish-custom > .section-badge { display: inline-flex; margin: 0 0 12px auto; }
.publish-scope-field { display: grid !important; gap: 4px; min-width: 210px; }
.publish-scope-field select { min-height: 34px; }
.publish-celebration-picker { margin-bottom: 18px; padding: 16px 18px; }
.publish-celebration-events { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.publish-celebration-item { padding: 12px; border-radius: 11px; background: var(--surface-strong); box-shadow: inset 2px 2px 5px rgba(181,190,202,.35), inset -2px -2px 5px rgba(255,255,255,.72); }
.publish-celebration-item label { display: flex; align-items: flex-start; gap: 9px; }
.publish-celebration-item span, .publish-celebration-item strong, .publish-celebration-item small { display: block; }
.publish-celebration-item small { margin-top: 3px; color: var(--muted); }
.publish-celebration-item textarea { width: 100%; margin-top: 9px; resize: vertical; }
.publish-celebration-bulk { display: flex; gap: 8px; margin: 0 0 14px; }
.publish-celebration-bulk { min-width: 0; flex-wrap: wrap; }
.publish-celebration-bulk input { flex: 1 1 240px; min-width: 0; }
.publish-auto-poster-workspace { margin-top: 22px; }
.celebration-template-editor { margin: 14px 0 22px; }
.celebration-template-editor[hidden] { display: none; }
.celebration-template-editor h3 { margin: 0 0 8px; font-size: 15px; }
.celebration-template-editor p, #celebrationTemplateHint { font-size: 12px; line-height: 1.6; color: var(--text-soft); }
.celebration-template-editor textarea { width: 100%; resize: vertical; font: inherit; line-height: 1.6; }
.celebration-placeholder-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.celebration-template-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.celebration-ai-instruction { display: grid; gap: 5px; margin-top: 10px; }
.celebration-ai-instruction[hidden] { display: none; }
.celebration-ai-instruction span { color: var(--text); font-size: 12px; font-weight: 750; }
.celebration-ai-instruction textarea { min-height: 62px; }
.celebration-ai-status { min-height: 1.6em; margin: 6px 0 0; }
#celebrationTemplatePreview { overflow-wrap: anywhere; }
.publish-auto-poster-workspace .auto-poster-heading { padding-top: 4px; }
.celebration-filter-label { align-self: center; margin-left: 6px; color: var(--muted); font-size: 10px; font-weight: 750; }
.celebration-filter-label + button { margin-left: 2px; }
.auto-poster-heading .heading-actions { flex-wrap: wrap; justify-content: flex-end; }

.dashboard-overview { display: grid; gap: 22px; margin-bottom: 22px; }
.dashboard-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; }
.dashboard-metrics > button { min-height: 104px; padding: 17px 18px; border: 0; text-align: left; color: inherit; border-radius: 14px; background: var(--surface); box-shadow: 7px 7px 16px rgba(182,190,201,.5), -6px -6px 14px rgba(255,255,255,.82); }
.dashboard-metrics > button:hover { color: inherit; transform: translateY(-1px); }
.dashboard-metrics > button.active,
.dashboard-metrics > button:active { outline: 2px solid color-mix(in srgb, var(--cyan) 72%, transparent); outline-offset: -2px; box-shadow: 7px 7px 16px rgba(182,190,201,.5), -6px -6px 14px rgba(255,255,255,.82); }
.dashboard-metrics span { display: block; color: var(--text-soft); font-size: 11px; font-weight: 700; }
.dashboard-metrics strong { display: block; margin-top: 6px; color: var(--text); font-size: clamp(25px, 2.3vw, 36px); line-height: 1; }
.dashboard-metrics small { display: flex; gap: 10px; margin-top: 9px; color: var(--muted); font-size: 10px; }
.dashboard-metrics small i { color: var(--green); font-style: normal; }
.dashboard-metrics small b { color: var(--red); font-weight: 650; }
.dashboard-changes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.dashboard-changes > .panel:first-child { grid-column: span 3; }
.dashboard-changes > .panel:last-child { grid-column: span 2; }
.dashboard-changes .panel { padding: 17px 18px; }
.dashboard-change-list { display: grid; }
.dashboard-change-list > div { display: grid; grid-template-columns: minmax(90px,.7fr) 1fr auto; gap: 12px; align-items: center; min-height: 39px; border-top: 1px solid var(--line); }
.dashboard-change-list span { color: var(--text-soft); font-size: 11px; }
.dashboard-change-list strong { font-size: 12px; }
.dashboard-change-list em { color: var(--green); font-size: 10px; font-style: normal; }
#dashboardExited .dashboard-change-list em, #dashboardExited em { color: var(--red); }
.dashboard-change-list > p { margin: 18px 0 4px; color: var(--muted); font-size: 11px; }
.dashboard-change-list button { width: 100%; display: grid; grid-template-columns: minmax(82px, .55fr) 1fr auto; align-items: center; gap: 12px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--line-soft); color: var(--text); text-align: left; background: transparent; box-shadow: none; }
.dashboard-changes > .panel:first-child .dashboard-change-list button { grid-template-columns: minmax(82px, 1fr) 2fr auto; }
.dashboard-changes > .panel:last-child .dashboard-change-list button { grid-template-columns: minmax(82px, .42fr) 1fr auto; }
.dashboard-change-list button:hover { color: var(--cyan); transform: none; }
.dashboard-change-list button strong { font-size: 12px; }
.dashboard-change-list button em { font-size: 11px; font-style: normal; }
.people-results .table-scroll { overflow-x: auto; }
.architecture-people-table { min-width: 2180px; }
.architecture-people-table th:first-child,
.architecture-people-table td:first-child { position: sticky; left: 0; z-index: 3; min-width: 132px; background: var(--surface-strong); }
.architecture-people-table th:nth-child(2),
.architecture-people-table td:nth-child(2) { position: sticky; left: 132px; z-index: 3; min-width: 112px; background: var(--surface-strong); box-shadow: 7px 0 9px -9px rgba(44,57,74,.6); }
.architecture-people-table th:first-child,
.architecture-people-table th:nth-child(2) { z-index: 5; background: var(--field); }
.architecture-name-list { min-width: 260px; max-width: 360px; white-space: normal; line-height: 1.55; }
.broadcast-pack { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 18px 20px; }
.broadcast-pack > div:first-child > span { color: var(--cyan); font-size: 10px; font-weight: 750; }
.broadcast-pack h2 { margin: 3px 0; font-size: 18px; }
.broadcast-pack p { margin: 0; color: var(--muted); font-size: 11px; }
.broadcast-pack-options { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.broadcast-pack-options label { display: flex; align-items: center; gap: 6px; color: var(--text-soft); font-size: 11px; }
.org-panel-actions select { min-height: 34px; padding: 0 28px 0 10px; }
.org-favorite-button { width: 28px; height: 28px; padding: 0; margin-right: 6px; border: 0; border-radius: 50%; color: #98a6b7; background: transparent; box-shadow: none; }
.org-favorite-button.active { color: #b68120; }
.poster-mode-tabs button, .auto-poster-filter button {
  min-height: 34px; padding: 0 15px; border: 0; border-radius: 9px; color: var(--text-soft); background: transparent; box-shadow: none;
}
.poster-mode-tabs button.active, .auto-poster-filter button.active {
  color: var(--cyan); background: var(--field); box-shadow: inset 3px 3px 6px rgba(181,190,202,.5), inset -3px -3px 6px rgba(255,255,255,.85);
}
.auto-poster-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.auto-poster-heading h2 { margin: 0; font-size: 18px; }
.auto-poster-heading p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.auto-poster-grid { display: grid; grid-template-columns: minmax(360px, .78fr) minmax(360px, 1fr); gap: 22px; align-items: start; }
.auto-poster-list, .auto-poster-preview { padding: 18px; }
.auto-poster-filter { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 14px; }
.auto-poster-filter b { margin-left: 4px; }
.celebration-events { display: grid; gap: 9px; max-height: 680px; overflow: auto; padding: 4px; }
.celebration-event { display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 11px; }
.celebration-event.active { box-shadow: inset 3px 3px 7px rgba(181,190,202,.52), inset -3px -3px 7px rgba(255,255,255,.85); }
.celebration-event > button { display: grid; grid-template-columns: 96px 1fr; gap: 2px 10px; padding: 0; border: 0; color: var(--text); background: transparent; box-shadow: none; text-align: left; }
.celebration-event span { grid-row: 1 / span 2; align-self: center; color: var(--muted); font-size: 10px; }
.celebration-event strong { font-size: 13px; }
.celebration-event small { color: var(--text-soft); font-size: 10px; }
.celebration-event-content { min-width: 0; }
.celebration-event-content > button { width: 100%; display: grid; grid-template-columns: 96px 1fr; gap: 2px 10px; padding: 0; border: 0; color: var(--text); background: transparent; box-shadow: none; text-align: left; }
.celebration-event-content > p { margin: 6px 0; color: var(--text-soft); font-size: 10px; line-height: 1.55; }
.celebration-event-content > div { display: flex; gap: 8px; }
.celebration-event-content > div button { padding: 0; border: 0; color: var(--cyan); background: transparent; box-shadow: none; font-size: 10px; }
.celebration-empty { padding: 42px 16px; color: var(--muted); text-align: center; }
.celebration-history-filters { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.celebration-history-filters label { display: grid; gap: 4px; color: var(--text-soft); font-size: 12px; min-width: 0; }
.celebration-history-filters input, .celebration-history-filters select { max-width: 100%; }
.celebration-event-content > .celebration-management-status, #celebrationPreviewStatus { white-space: pre-line; overflow-wrap: anywhere; color: var(--text-soft); font-size: 12px; line-height: 1.6; }
[data-celebration-publication-action][hidden] { display: none; }
.auto-poster-preview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 20px; }
.auto-poster-preview > .ppt-preview-toolbar { min-width: 0; max-height: calc(var(--editor-room) - 36px); margin: 0; overflow: auto; overscroll-behavior: contain; }
.auto-poster-preview > .ppt-preview-toolbar > div { width: 100%; min-width: 0; }
.auto-poster-preview .celebration-copy-actions { flex-wrap: wrap; }
.auto-poster-preview canvas { display: block; min-width: 0; max-width: 390px; width: 100%; height: auto; max-height: calc(var(--editor-room) - 36px); object-fit: contain; object-position: top; margin: 0 auto; border-radius: 10px; box-shadow: 7px 7px 16px rgba(170,179,192,.52), -5px -5px 12px rgba(255,255,255,.8); }
#autoPosterPreviewCopy { width: min(520px, 100%); margin-top: 10px; resize: vertical; }
.celebration-copy-actions { display: flex; gap: 8px; margin-top: 8px; }
#autoPosterEvents > nav { align-items: center; flex-wrap: wrap; }
.calendar-summary-content pre { margin: 0; white-space: pre-wrap; font: inherit; line-height: 1.8; }

.calendar-palette-panel { margin-bottom: 14px; }
.calendar-workbench { overflow: hidden; }

@media (max-width: 1180px) {
  body { min-width: 320px; }
  .app-shell { grid-template-columns: 176px minmax(0, 1fr); }
  .data-version-bar { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .auto-poster-grid { grid-template-columns: minmax(0, .78fr) minmax(0, 1fr); }
  .metric-ribbon { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .dashboard-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-changes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-changes > .panel:first-child,
  .dashboard-changes > .panel:last-child { grid-column: 1 / -1; }
}

@media (max-width: 780px) {
  .app-shell { display: block; }
  .sidebar { position: relative; width: auto; height: auto; overflow: visible; }
  .module-nav { display: flex; overflow-x: auto; gap: 6px; padding: 4px; }
  .nav-item { flex: 0 0 auto; width: auto; }
  .source-status-compact, .sidebar-foot { display: none; }
  .main-content { padding: 20px 14px 44px; }
  .topbar { padding: 0 14px; }
  .report-layout { grid-template-columns: 1fr; }
  .report-layout, .poster-layout, .auto-poster-grid { --editor-room: 44dvh; --preview-room: calc(38dvh - 100px); }
  .auto-poster-grid { grid-template-columns: 1fr; }
  .report-settings, .poster-library-panel, .poster-settings, .auto-poster-list { position: static; }
  .ppt-preview-panel, .poster-preview-panel, .auto-poster-preview { grid-row: 1; z-index: 5; max-height: 38dvh; }
  .auto-poster-preview > .ppt-preview-toolbar, .auto-poster-preview canvas { max-height: calc(38dvh - 36px); }
  .dashboard-metrics, .dashboard-changes { grid-template-columns: 1fr; }
  .dashboard-changes > .panel:first-child,
  .dashboard-changes > .panel:last-child { grid-column: auto; }
  .source-version-actions { flex-wrap: wrap; justify-content: flex-start; }
  .module-nav .nav-item { display: flex; align-items: center; gap: 8px; padding: 0 12px; min-height: 44px; }
  .module-nav .nav-item span { display: inline; }
  .data-version-bar { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .data-version-primary strong { font-size: 17px; overflow-wrap: anywhere; }
  .data-version-meta { flex-wrap: wrap; justify-content: flex-start; gap: 8px 12px; }
  .data-update-actions > label { flex: 1 1 100%; }
  .data-update-actions input[type="date"] { width: 100%; }
  .publish-tabs button, .result-view-tabs button, .report-type-tabs button { min-height: 44px; }
}
