/* ============================================================
   ΤτΕ — Εργαλείο Αποδελτίωσης
   Institutional redesign — deep navy / warm ivory / antique gold / muted sage
   All selectors preserved 1:1 from the previous stylesheet; only visual
   language changed (color, type, radius, elevation, spacing).
   ============================================================ */

:root {
  /* ---- Surfaces (warm ivory) ---- */
  --bg: #fbf9f3;
  --bg-paper-1: #fefdfa;
  --bg-paper-2: #f3ecdb;
  --surface: #fffdf8;
  --surface-alt: #f4efe3;
  --surface-sage: #eef2ec;
  --border: rgba(16, 31, 61, 0.11);
  --border-strong: rgba(16, 31, 61, 0.22);

  /* ---- Text (ink) ---- */
  --text: #1a2333;
  --text-muted: #5c6674;
  --text-faint: #8d94a0;

  /* ---- Primary: deep institutional navy ---- */
  --primary: #10203e;
  --primary-hover: #0a1730;
  --primary-active: #060f22;
  --primary-soft: #e9edf6;

  /* ---- Antique gold accent — sparse, ceremonial ---- */
  --accent: #a3823a;
  --accent-hover: #8a6b2c;
  --accent-soft: #f6ecd6;

  /* ---- Muted sage / blue-green secondary ---- */
  --sage: #4f7565;
  --sage-soft: #e6ede8;

  --danger: #94382f;
  --success: #3f6b4f;
  --highlight-yellow: #f3dfa0;

  --radius: 12px;
  --radius-lg: 20px;
  --radius-xl: 28px;

  --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05), 0 1px 3px rgba(16, 24, 40, 0.06);
  --shadow-md: 0 10px 28px rgba(16, 24, 45, 0.10);
  --shadow-lg: 0 24px 60px rgba(12, 20, 38, 0.16);

  --muted: var(--text-muted);
  --primary-light: #3a5687;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  font-family: 'Source Sans 3', 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  font-size: 15.5px;
  -webkit-font-smoothing: antialiased;
}

body {
  /* Atmospheric, non-textual "editorial paper" backdrop: soft brightened ivory
     with layered blurred gradients standing in for a paper/light-vignette feel.
     No pseudo-text, no imagery, no OCR-able content -- decorative only and
     kept low-contrast so it never competes with foreground copy or cards. */
  background-color: var(--bg-paper-1);
  background-image:
    radial-gradient(1200px 620px at 14% -12%, rgba(163, 130, 58, 0.07), transparent 62%),
    radial-gradient(1000px 560px at 102% 2%, rgba(16, 32, 62, 0.05), transparent 58%),
    radial-gradient(1400px 900px at 50% 115%, rgba(79, 117, 101, 0.045), transparent 65%),
    linear-gradient(180deg, var(--bg-paper-1) 0%, var(--bg) 45%, var(--bg-paper-2) 100%);
  background-attachment: fixed;
  position: relative;
}

/* Faint blurred "paper grain" layer -- pure decoration, purely visual noise via
   gradients (no text, no image assets, no OCR-able marks). Sits behind all
   content; pointer-events disabled so it never interferes with interaction. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0.5;
  background-image:
    radial-gradient(2px 2px at 20% 30%, rgba(16, 31, 61, 0.035) 0%, transparent 100%),
    radial-gradient(2px 2px at 75% 15%, rgba(16, 31, 61, 0.03) 0%, transparent 100%),
    radial-gradient(2px 2px at 40% 70%, rgba(163, 130, 58, 0.035) 0%, transparent 100%),
    radial-gradient(2px 2px at 88% 62%, rgba(16, 31, 61, 0.03) 0%, transparent 100%),
    radial-gradient(2px 2px at 60% 90%, rgba(79, 117, 101, 0.03) 0%, transparent 100%);
  background-size: 100% 100%;
  filter: blur(18px);
}

@media (prefers-contrast: more) {
  body::before { display: none; }
}

h1, h2, h3 {
  font-family: 'Fraunces', 'Georgia', serif;
  letter-spacing: -0.01em;
}

.container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 24px;
}

header {
  background: var(--primary);
  background-image: linear-gradient(120deg, var(--primary) 0%, #16294c 55%, #10203e 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  padding: 22px 0;
  margin-bottom: 32px;
  box-shadow: 0 6px 24px rgba(10, 18, 36, 0.18);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.brand {
  display: flex;
  align-items: center;
  min-width: 0;
  color: var(--accent-soft);
}

.brand-wordmark {
  display: grid;
  gap: 2px;
  color: #fdfaf3;
  min-width: 0;
}

.brand-kicker {
  margin: 0;
  color: rgba(253, 250, 243, 0.66);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.1;
  text-transform: uppercase;
}

.brand h1 {
  margin: 0;
  color: #fdfaf3;
  display: flex;
  align-items: baseline;
  gap: 0.36em;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 0.95;
  white-space: nowrap;
  position: relative;
  width: max-content;
}

.brand h1 .brand-unit {
  color: var(--accent);
  font-family: 'Source Sans 3', sans-serif;
  font-size: 0.4em;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  transform: translateY(-0.36em);
}

.brand h1 .brand-name {
  color: #fdfaf3;
  font-family: 'Alegreya', 'Fraunces', Georgia, serif;
  font-size: 1em;
  font-style: italic;
  font-weight: 700;
  letter-spacing: -0.035em;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.16);
}

@media (max-width: 700px) {
  header { padding: 18px 0; }
  .brand h1 { font-size: 22px; }
  .brand h1 .brand-unit { font-size: 0.42em; }
  .brand-kicker { font-size: 9px; }
}

@media (max-width: 360px) {
  .brand h1 { font-size: 20px; }
  .brand h1 { gap: 0.28em; }
  .brand h1 .brand-unit { font-size: 0.39em; }
  .brand-kicker { letter-spacing: 0.13em; }
}

.subtitle {
  font-size: 12.5px;
  color: rgba(253, 250, 243, 0.72);
  margin-top: 2px;
  letter-spacing: 0.02em;
}

.header-actions button { font-size: 14px; }
.header-actions .btn-ghost {
  color: rgba(253, 250, 243, 0.85);
  border-color: rgba(253, 250, 243, 0.28);
}
.header-actions .btn-ghost:hover {
  background: rgba(253, 250, 243, 0.12);
  color: #fff;
}

main { padding-bottom: 80px; }

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  margin-bottom: 22px;
  box-shadow: var(--shadow-sm);
}

.card h2 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 16px;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 10px;
}

.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}
.card-header h2 { margin-bottom: 0; }
.card-header-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.counter {
  display: inline-block;
  background: var(--primary-soft);
  color: var(--primary);
  padding: 2px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  min-width: 28px;
  text-align: center;
}

.hint {
  color: var(--text-muted);
  font-size: 13.5px;
  margin-bottom: 16px;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
}

.field { display: flex; flex-direction: column; gap: 6px; }
.field.span-2 { grid-column: 1 / -1; }
.field span {
  font-size: 12.5px;
  color: var(--text-muted);
  font-weight: 600;
  letter-spacing: 0.01em;
}

input:not([type="radio"]):not([type="checkbox"]):not([type="file"]), select, textarea {
  font-family: inherit;
  font-size: 14.5px;
  padding: 10px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
}
input[type="radio"], input[type="checkbox"] { width: auto; accent-color: var(--primary); }
textarea { resize: vertical; min-height: 96px; font-family: 'Source Sans 3', sans-serif; line-height: 1.55; }

input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(16, 32, 62, 0.12);
}

.actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}

button {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

button:disabled,
select:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.btn-primary:disabled {
  background: #7c8494;
  border-color: #7c8494;
}

label.btn-primary, label.btn-secondary {
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 10px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1.3;
}

.btn-primary {
  background: var(--primary);
  color: #fdfaf3;
  border-color: var(--primary);
}
.btn-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); }

.btn-secondary {
  background: var(--surface);
  color: var(--primary);
  border-color: var(--primary);
}
.btn-secondary:hover { background: var(--primary-soft); }

.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border-color: var(--border-strong);
}
.btn-ghost:hover { background: var(--surface-alt); color: var(--text); }

.btn-danger { color: var(--danger); }
.btn-danger:hover { background: #fbeeec; color: var(--danger); border-color: var(--danger); }

.btn-lg { padding: 13px 24px; font-size: 15px; }

/* Article list */
.article-list { display: flex; flex-direction: column; gap: 10px; }

.empty-state {
  padding: 40px 20px;
  text-align: center;
  color: var(--text-faint);
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--radius);
  font-size: 14px;
  background: var(--surface-alt);
}

.article-item {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 16px;
  background: var(--surface-alt);
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px 14px;
  align-items: start;
  transition: box-shadow 0.15s, border-color 0.15s;
}
.article-item:hover { box-shadow: var(--shadow-sm); border-color: var(--border-strong); }

.article-order {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  min-width: 24px;
  padding-top: 2px;
}

.article-info { min-width: 0; }
.article-title {
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;
}
.article-meta {
  font-size: 12.5px;
  color: var(--text-muted);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.article-meta .tag {
  background: var(--primary-soft);
  color: var(--primary);
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 600;
}
.article-meta .tag.lang-el { background: var(--sage-soft); color: var(--sage); }
.article-meta .tag.lang-en { background: var(--accent-soft); color: var(--accent-hover); }

.article-actions {
  display: flex;
  gap: 4px;
}
.article-actions button {
  padding: 5px 9px;
  font-size: 12.5px;
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border);
}
.article-actions button:hover { background: var(--surface); color: var(--text); }
.article-actions .btn-remove:hover { color: var(--danger); border-color: var(--danger); }

/* Status */
.status {
  margin-top: 12px;
  font-size: 13.5px;
  color: var(--text-muted);
  min-height: 20px;
}
.status.success { color: var(--success); }
.status.error { color: var(--danger); }
.status.warn { color: #8a5a22; }

/* Modal */
.modal {
  position: fixed;
  inset: 0;
  background: rgba(16, 24, 40, 0.55);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  padding: 24px;
}
.modal.hidden { display: none; }
.card-highlight {
  border: 1px solid rgba(163, 130, 58, 0.35);
  background: linear-gradient(165deg, var(--accent-soft) 0%, var(--surface) 55%);
}

.dropzone {
  border: 2px dashed rgba(16, 31, 61, 0.24);
  border-radius: var(--radius);
  padding: 26px;
  text-align: center;
  color: var(--text-muted);
  margin-top: 12px;
  background: var(--surface-alt);
  transition: all 0.2s;
}

.dropzone.drag-over {
  border-color: var(--primary);
  background: var(--primary-soft);
  color: var(--primary);
}

.warning {
  color: #8a5a22;
  font-weight: 600;
}

.article-item.no-text {
  background: var(--accent-soft);
  border-color: rgba(163, 130, 58, 0.35);
}

.tag-warn {
  background: var(--accent-soft);
  color: #7a5c1e;
  font-weight: 600;
}

.modal-lg,
.modal .modal-content.modal-lg,
.modal-content.modal-lg {
  max-width: 760px !important;
}

.innews-categories {
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.innews-cat-row {
  display: grid;
  grid-template-columns: 24px 1fr auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-alt);
  cursor: pointer;
}

.innews-cat-row:hover {
  background: var(--primary-soft);
  border-color: var(--border-strong);
}

.innews-cat-name {
  font-weight: 600;
  color: var(--text);
}

.innews-cat-count {
  font-size: 13px;
  color: var(--text-muted);
  background: var(--surface);
  border: 1px solid var(--border);
  padding: 2px 10px;
  border-radius: 999px;
}

.innews-cat-map {
  font-size: 12px;
  color: var(--primary);
  font-weight: 600;
}

.modal-content {
  background: var(--surface);
  border-radius: var(--radius-lg);
  padding: 34px;
  max-width: 580px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  position: relative;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border);
}
.modal-content h2 { font-size: 21px; margin-bottom: 16px; }
.modal-content h3 { font-size: 15.5px; margin: 20px 0 8px; font-family: 'Fraunces', serif; }
.modal-content ol, .modal-content ul {
  margin-left: 20px;
  color: var(--text-muted);
  font-size: 14px;
}
.modal-content li { margin-bottom: 6px; line-height: 1.55; }
.modal-content p { font-size: 14px; color: var(--text-muted); margin-top: 8px; }
.modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  background: var(--surface-alt);
  color: var(--text-muted);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 16px;
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.modal-close:hover { background: var(--primary-soft); color: var(--primary); }

/* Edit mode row */
.article-edit {
  grid-column: 1 / -1;
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px dashed var(--border);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.article-edit label { font-size: 12px; color: var(--text-muted); }
.article-edit .span-2 { grid-column: 1 / -1; }

@media (max-width: 700px) {
  .grid-2 { grid-template-columns: 1fr; }
  .field.span-2 { grid-column: 1; }
  header h1 { font-size: 16px; }
  .card { padding: 20px; border-radius: var(--radius); }
}

/* Import mode radio rows */
.import-mode .radio-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 8px;
  cursor: pointer;
  transition: background 0.1s;
}
.import-mode .radio-row > div {
  flex: 1;
  min-width: 0;
}
.import-mode .radio-row .hint {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
}
.import-mode .radio-row:hover { background: var(--surface-alt); }
.import-mode .radio-row input[type="radio"] {
  margin-top: 3px;
  flex-shrink: 0;
}

/* Preview list (curated) */
.preview-list {
  max-height: 50vh;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 12px 0;
}
.preview-item {
  display: flex;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.preview-item:last-child { border-bottom: none; }
.preview-rank {
  font-weight: 700;
  color: var(--text-muted);
  font-size: 13px;
  min-width: 32px;
}
.preview-body { flex: 1; }
.preview-title {
  font-weight: 600;
  font-size: 14px;
  line-height: 1.35;
  margin-bottom: 4px;
}
.preview-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: var(--text-muted);
}
.tier-badge {
  padding: 2px 10px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 11px;
}
.tier-1 { background: var(--sage-soft); color: var(--sage); }
.tier-2 { background: var(--accent-soft); color: #7a5c1e; }
.tier-3 { background: #f6e6e3; color: #8a3f34; }

/* ============================================================
   Διεθνής αναζήτηση (International search)
   ============================================================ */
.badge-new {
  display: inline-block;
  padding: 2px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  background: var(--sage);
  color: #fff;
  border-radius: 999px;
  vertical-align: middle;
  margin-left: 6px;
}

.intl-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 14px 0;
}
.intl-preset-label {
  font-size: 13px;
  color: var(--muted, #6b7280);
  margin-right: 4px;
}
.btn-chip {
  padding: 7px 14px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  font-size: 13px;
  cursor: pointer;
  color: var(--text);
  transition: all 0.15s;
}
.btn-chip:hover {
  border-color: var(--accent);
  color: var(--accent-hover);
  background: var(--accent-soft);
}
.btn-chip.loading {
  opacity: 0.6;
  cursor: wait;
}

.intl-search-row {
  display: flex;
  gap: 8px;
  margin: 10px 0;
}
.intl-input {
  flex: 1;
  padding: 11px 14px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  font-size: 14px;
  font-family: inherit;
}
.intl-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(163, 130, 58, 0.15);
}

.intl-advanced {
  margin: 8px 0 12px;
  padding: 10px 14px;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
}
.intl-advanced summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--text-muted);
  padding: 4px 0;
  user-select: none;
}
.intl-advanced summary:hover { color: var(--accent-hover); }
.intl-filters {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px 4px 4px;
}
.intl-radio {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
}
.intl-radio select {
  padding: 5px 9px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-size: 13px;
  margin-left: 4px;
}
.intl-range {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding-left: 24px;
}
.intl-range label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--text-muted);
}
.intl-range input[type="date"],
.intl-range input[type="time"] {
  padding: 5px 9px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-size: 13px;
  font-family: inherit;
}
.intl-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  cursor: pointer;
  padding-top: 4px;
  border-top: 1px dashed var(--border);
  margin-top: 4px;
}

.intl-results {
  margin-top: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.intl-results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 11px 16px;
  background: var(--surface-alt);
  border-bottom: 1px solid var(--border);
  font-size: 13px;
  color: var(--text-muted);
}
.intl-results-header .intl-actions {
  display: flex;
  gap: 8px;
}
.intl-results-header button {
  padding: 5px 12px;
  font-size: 12px;
  border: 1px solid var(--border-strong);
  background: var(--surface);
  border-radius: 8px;
  cursor: pointer;
}
.intl-results-header button:hover { border-color: var(--accent); color: var(--accent-hover); }
.intl-results-header button.primary {
  background: var(--primary);
  color: #fdfaf3;
  border-color: var(--primary);
}
.intl-results-header button.primary:hover {
  background: var(--primary-hover);
  color: #fff;
}
.intl-results-header button.primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.intl-item {
  display: flex;
  gap: 10px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: background 0.1s;
}
.intl-item:last-child { border-bottom: none; }
.intl-item:hover { background: var(--surface-alt); }
.intl-item.selected { background: var(--accent-soft); }
.intl-item input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
}
.intl-item-body { flex: 1; min-width: 0; }
.intl-item-title {
  font-weight: 600;
  font-size: 14px;
  color: var(--text);
  margin-bottom: 4px;
  line-height: 1.35;
}
.intl-item-title a {
  color: inherit;
  text-decoration: none;
}
.intl-item-title a:hover {
  color: var(--accent-hover);
  text-decoration: underline;
}
.intl-item-meta {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--text-muted);
}
.intl-badge {
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2px;
}
.intl-badge-priority {
  background: var(--accent-soft);
  color: #7a5c1e;
}
.intl-badge-source {
  background: var(--primary-soft);
  color: var(--primary);
}
.intl-item-snippet {
  font-size: 12.5px;
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.intl-empty, .intl-loading, .intl-error {
  padding: 28px;
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
}
.intl-error {
  color: var(--danger);
  background: #fbeeec;
}

/* ---- Frontpages (Πρωτοσελίδες εφημερίδων) ---- */
.fp-list {
  margin-top: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  max-height: 420px;
  overflow-y: auto;
}
.fp-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
}
.fp-row:last-child { border-bottom: none; }
.fp-row--default { background: var(--accent-soft); }
.fp-row input[type="checkbox"] { flex-shrink: 0; }
.fp-cover-link {
  display: block;
  flex: 0 0 44px;
  text-decoration: none;
}
.fp-cover-wrap {
  display: block;
  width: 44px;
  height: 62px;
  overflow: hidden;
  border: 1px solid var(--border-strong);
  border-radius: 4px;
  background: var(--surface-alt);
  box-shadow: 0 1px 2px rgba(17, 24, 39, .12);
}
.fp-cover {
  display: block;
  width: 44px;
  height: 62px;
  object-fit: cover;
  object-position: top;
}
.fp-cover-wrap--fallback {
  position: relative;
  background: var(--surface-alt);
}
.fp-cover-wrap--fallback::after {
  content: "—";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--text-faint);
  font-size: 20px;
}
.fp-cover-wrap--fallback .fp-cover { display: none; }
.fp-name {
  font-weight: 700;
  font-size: 13px;
  color: var(--text);
  flex: 0 0 160px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fp-headline {
  flex: 1;
  min-width: 0;
  padding: 6px 10px;
  font-size: 13px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
}
.fp-headline-field {
  flex: 1;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.fp-headline-field .fp-headline {
  width: 100%;
  min-width: 0;
}
.fp-ocr-note {
  color: var(--text-muted);
  font-size: 11px;
}
.btn-suggest-summary { margin-top: 8px; }
.fp-topics-preview {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fp-link {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--accent-hover);
  text-decoration: none;
  white-space: nowrap;
}
.fp-link:hover { text-decoration: underline; }
.fp-empty, .fp-loading, .fp-error {
  padding: 22px;
  text-align: center;
  color: var(--text-muted);
  font-size: 13px;
}
.fp-error {
  color: var(--danger);
  background: #fbeeec;
}
@media (max-width: 640px) {
  .fp-row { flex-wrap: wrap; }
  .fp-name { flex: 1 1 calc(100% - 70px); }
  .fp-headline, .fp-headline-field { flex-basis: 100%; }
}

/* ============================================================ */
/* WORKSPACE TABS                                                */
/* ============================================================ */
.tabs-row {
  display:flex; flex-wrap:wrap; gap:6px;
  border-bottom: 2px solid var(--border);
  padding-bottom: 0;
  margin-bottom: 0;
}
.tab-btn {
  background: transparent;
  border: 2px solid transparent;
  border-bottom: none;
  padding: 10px 16px;
  border-radius: 10px 10px 0 0;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-muted);
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: -2px;
  transition: all .15s;
}
.tab-btn:hover { color: var(--primary); background: var(--surface-alt); }
.tab-btn.active {
  color: var(--primary);
  border-color: var(--border) var(--border) transparent var(--border);
  background: var(--surface);
  font-weight: 700;
}
.tab-count {
  display:inline-flex;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--surface-alt);
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 700;
  align-items: center; justify-content: center;
}
.tab-btn.active .tab-count { background: var(--primary); color: #fdfaf3; }

/* ============================================================ */
/* REORDER BUTTONS in article-item                               */
/* ============================================================ */
.article-actions {
  display: flex;
  gap: 4px;
  align-items: flex-start;
}
.btn-move {
  background: var(--surface-alt);
  border: 1px solid var(--border-strong);
  color: var(--text-muted);
  padding: 5px 9px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  min-width: 26px;
}
.btn-move:hover:not(:disabled) {
  background: var(--primary);
  color: #fdfaf3;
  border-color: var(--primary);
}
.btn-move:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.article-order {
  min-width: 32px;
  font-weight: 700;
  color: var(--text-muted);
  font-family: 'Source Sans 3', sans-serif;
}
.article-category-badge {
  display:inline-block;
  padding:2px 10px;
  background: var(--primary-soft);
  color: var(--primary);
  border-radius: 999px;
  font-size:11px;
  font-weight:700;
  margin-left:6px;
}
.article-lang-badge-en {
  display:inline-block;
  padding:2px 8px;
  background: var(--accent-soft);
  color: #7a5c1e;
  border-radius: 999px;
  font-size:11px;
  font-weight:700;
  margin-left:4px;
}

/* Group header μεταξύ κατηγοριών */
.group-header {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--sage);
  margin: 18px 0 8px 0;
  padding: 7px 12px 5px 12px;
  border-bottom: 2px solid var(--sage);
  background: linear-gradient(to right, var(--sage-soft), transparent);
  border-radius: 6px 6px 0 0;
}
.group-header:first-child { margin-top: 0; }

/* ---------- Feed ειδήσεων ΤτΕ ---------- */
.feed-workspace {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.28fr);
  gap: 16px;
  margin-top: 12px;
  align-items: start;
}
.feed-results {
  margin-top: 0;
  max-height: 640px;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.feed-item {
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  content-visibility: auto;
  contain-intrinsic-size: auto 112px;
}
.feed-item:last-child { border-bottom: none; }
.feed-item-title a {
  color: var(--primary);
  text-decoration: none;
  font-weight: 700;
  font-size: 0.96rem;
  line-height: 1.4;
}
.feed-item-title a:hover { color: var(--accent-hover); text-decoration: underline; }
.feed-item-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.feed-preview-button {
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--border-strong);
  border-radius: 7px;
  background: var(--primary-soft);
  color: var(--primary);
  font: inherit;
  font-size: 0.79rem;
  font-weight: 700;
}
.feed-preview-button:hover { background: var(--accent-soft); }
.feed-source-link {
  color: var(--text-muted);
  font-size: 0.8rem;
  text-decoration: none;
}
.feed-source-link:hover { color: var(--primary); text-decoration: underline; }
.feed-item-meta {
  margin-top: 6px;
  font-size: 0.8rem;
  color: var(--text-muted);
}
.feed-item-snippet {
  margin: 7px 0 0;
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.45;
}
.feed-source-badge {
  display: inline-block;
  padding: 1px 7px;
  border: 1px solid color-mix(in srgb, var(--sage) 45%, transparent);
  border-radius: 999px;
  color: var(--sage);
  font-size: 0.72rem;
  font-weight: 700;
  vertical-align: 1px;
}
.feed-source-badge--extended {
  border-color: color-mix(in srgb, var(--accent) 52%, transparent);
  color: color-mix(in srgb, var(--accent-hover) 82%, var(--primary));
  background: color-mix(in srgb, var(--accent-soft) 58%, transparent);
}
.feed-reader {
  min-height: 500px;
  max-height: 640px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-alt);
  box-shadow: var(--shadow-sm);
}
.feed-reader-empty,
.feed-reader-error,
.feed-reader-loading {
  min-height: 500px;
  display: grid;
  place-content: center;
  gap: 10px;
  padding: 32px 28px;
  color: var(--text-muted);
  text-align: center;
}
.feed-reader-empty h3,
.feed-reader-error h3,
.feed-reader-loading h3 { margin: 0; color: var(--text); font-size: 1rem; }
.feed-reader-empty p,
.feed-reader-error p,
.feed-reader-loading p { max-width: 37ch; margin: 0; font-size: 0.88rem; line-height: 1.55; }
.feed-reader-empty-mark {
  margin: 0 auto 2px;
  color: var(--primary);
  font-size: 2rem;
  line-height: 1;
}
.feed-reader-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 10px 12px 0;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  scrollbar-width: thin;
}
.feed-reader-tab {
  flex: 0 0 auto;
  max-width: 210px;
  min-height: 38px;
  padding: 7px 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  background: var(--surface-alt);
  color: var(--text-muted);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.feed-reader-tab[aria-selected="true"] {
  background: var(--primary-soft);
  border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
  color: var(--primary);
}
.feed-reader-content {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 600px;
}
.feed-reader-head {
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--surface-alt);
}
.feed-reader-kicker {
  margin: 0 0 5px;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.feed-reader-title {
  margin: 0;
  color: var(--text);
  font-family: 'Fraunces', serif;
  font-size: 1.16rem;
  line-height: 1.28;
}
.feed-reader-source {
  margin: 7px 0 0;
  color: var(--text-muted);
  font-size: 0.8rem;
}
.feed-reader-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.feed-reader-zoom-wrap {
  display: grid;
  gap: 3px;
  justify-items: center;
}
.feed-reader-zoom {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-alt);
}
.feed-reader-zoom button {
  min-width: 34px;
  min-height: 34px;
  padding: 0 8px;
  border: 0;
  border-radius: 999px;
  color: var(--primary);
  font: inherit;
  font-size: 1.12rem;
  font-weight: 700;
}
.feed-reader-zoom button:hover:not(:disabled) { background: var(--primary-soft); }
.feed-reader-zoom .feed-reader-zoom-level {
  min-width: 54px;
  min-height: 34px;
  padding: 0 7px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
}
.feed-reader-zoom button:disabled { cursor: not-allowed; opacity: .42; }
.feed-reader-zoom-hint {
  margin: 0;
  color: var(--text-muted);
  font-size: .68rem;
  line-height: 1.2;
  white-space: nowrap;
}
.feed-reader-print {
  min-height: 38px;
  margin-left: auto;
  padding: 7px 11px;
  border: 1px solid var(--border-strong);
  border-radius: 7px;
  background: var(--surface-alt);
  color: var(--primary);
  font: inherit;
  font-size: .8rem;
  font-weight: 700;
}
.feed-reader-print:hover:not(:disabled) { background: var(--primary-soft); }
.feed-reader-print:disabled { cursor: not-allowed; opacity: .5; }
.feed-reader-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}
.feed-reader-actions .feed-reader-print { margin-left: 0; }
.feed-reader-body {
  --feed-reader-zoom: 1;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 18px;
  background: var(--surface-alt);
  scroll-behavior: smooth;
}
.feed-reader-article {
  max-width: 70ch;
  margin: 0 auto;
  color: var(--text);
  cursor: zoom-in;
  font-size: calc(1rem * var(--feed-reader-zoom));
  line-height: 1.72;
  transform-origin: top center;
}
.feed-reader-article.is-zoomed { cursor: zoom-out; }
.feed-reader-article p { max-width: none; margin: 0 0 1.1em; }
.feed-reader-source-open {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 11px;
  border-radius: 7px;
  color: var(--primary);
  font-size: .8rem;
  font-weight: 700;
  text-decoration: none;
}
.feed-reader-source-open:hover { background: var(--primary-soft); text-decoration: underline; }
.feed-print-shell { display: none; }

@media (max-width: 920px) {
  .feed-workspace { grid-template-columns: 1fr; }
  .feed-results { max-height: 420px; }
  .feed-reader { max-height: 680px; }
  .feed-reader-content { height: 600px; }
}

@media (max-width: 560px) {
  .feed-reader-head { padding: 14px; }
  .feed-reader-tools { padding: 9px 12px; }
  .feed-reader-body { padding: 14px; }
  .feed-reader-print { margin-left: 0; }
  .feed-reader-content { height: 560px; }
}

@media print {
  body.is-printing-feed-article > *:not(#feedPrintShell) { display: none !important; }
  body.is-printing-feed-article #feedPrintShell {
    display: block !important;
    color: #171717;
    background: #fff;
    font-family: Aptos, Calibri, Arial, sans-serif;
  }
  .feed-print-document { max-width: 176mm; margin: 0 auto; }
  .feed-print-kicker {
    margin: 0 0 5mm;
    color: #51606d;
    font-size: 9.5pt;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .feed-print-title {
    margin: 0 0 4mm;
    color: #10203e;
    font-family: Aptos Display, Aptos, Calibri, Arial, sans-serif;
    font-size: 19pt;
    line-height: 1.22;
  }
  .feed-print-meta { margin: 0 0 8mm; color: #51606d; font-size: 9.5pt; }
  .feed-print-body { color: #171717; font-size: 11pt; line-height: 1.55; }
  .feed-print-body p { margin: 0 0 4mm; orphans: 3; widows: 3; }
  .feed-print-source { margin-top: 8mm; color: #10203e; font-size: 9.5pt; overflow-wrap: anywhere; }
  @page { margin: 18mm 16mm; size: auto; }
}

/* ===================== Dashboard + Wizard ===================== */
/* ===================== Editorial Command Center visual system =====================
   One coherent shell for dashboard and production wizard. The full-bleed moving
   newsroom is intentionally reserved for the home view; functional workspaces use
   the same slate, amber and cool-grey system without competing with user content. */
:root {
  --bg: #edf0f1;
  --bg-paper-1: #edf0f1;
  --bg-paper-2: #e3e8e9;
  --surface: #ffffff;
  --surface-alt: #f7f8f7;
  --surface-sage: #edf4f2;
  --border: rgba(22, 34, 42, 0.14);
  --border-strong: rgba(22, 34, 42, 0.26);
  --text: #16222a;
  --text-muted: #60717a;
  --text-faint: #87959c;
  --primary: #0d1722;
  --primary-hover: #162431;
  --primary-active: #071018;
  --primary-soft: #e7edef;
  --accent: #c99537;
  --accent-hover: #a67622;
  --accent-soft: #f6e9ce;
  --sage: #146d73;
  --sage-soft: #e2f0ef;
  --danger: #a94742;
  --success: #437a55;
  --radius: 12px;
  --radius-lg: 18px;
  --radius-xl: 26px;
  --shadow-sm: 0 1px 2px rgba(12, 25, 35, 0.05), 0 5px 16px rgba(12, 25, 35, 0.04);
  --shadow-md: 0 12px 32px rgba(12, 25, 35, 0.11);
  --shadow-lg: 0 24px 65px rgba(5, 17, 25, 0.22);
  --font-display: "Cabinet Grotesk", "Arial", sans-serif;
  --font-body: "Satoshi", "Arial", sans-serif;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

html, body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
}

body {
  background-image:
    linear-gradient(180deg, #e9eeef 0%, #edf0f1 320px, #edf0f1 100%);
}

body::before { display: none; }

h1, h2, h3,
.tile-count,
.agenda-head h2,
.brand h1,
.feed-reader-title {
  font-family: var(--font-display);
}

.container {
  max-width: 1180px;
  padding-inline: 24px;
}

header {
  position: relative;
  z-index: 20;
  margin-bottom: 24px;
  padding: 18px 0;
  background: #0d1722;
  background-image: none;
  border-bottom-color: rgba(212, 224, 230, 0.18);
  box-shadow: 0 8px 24px rgba(7, 15, 22, 0.18);
  transition: background 240ms var(--ease-out), box-shadow 240ms var(--ease-out);
}

.dashboard-mode header {
  position: absolute;
  inset: 0 0 auto;
  margin: 0;
  background: linear-gradient(180deg, rgba(7, 15, 22, 0.82), rgba(7, 15, 22, 0.38), transparent);
  border-bottom-color: rgba(213, 224, 230, 0.18);
  box-shadow: none;
}

.brand h1 {
  font-family: var(--font-display);
  font-weight: 600;
}

.brand h1 .brand-name {
  color: #f5f7f8;
  font-family: var(--font-display);
  font-style: normal;
  letter-spacing: -0.035em;
  text-shadow: none;
}

.brand h1 .brand-unit { color: #e4c787; font-family: var(--font-body); }
.brand-kicker { color: rgba(229, 238, 241, 0.62); font-family: var(--font-body); }
.header-actions .btn-ghost { min-height: 40px; color: #f5f7f8; border-color: rgba(229, 238, 241, 0.3); }

main { padding-bottom: 72px; }
.dashboard-mode main.container { max-width: none; padding-inline: 0; }
.dashboard-mode #dashView > :not(.dash-hero) {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
}

.card {
  background: var(--surface);
  border-color: var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.card h2 { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.025em; }
.hint, .subtitle { color: var(--text-muted); }

.btn-primary {
  border-color: var(--accent);
  background: var(--accent);
  color: #16222a;
  box-shadow: none;
  transition: background 180ms var(--ease-out), color 180ms var(--ease-out), transform 180ms var(--ease-out), box-shadow 180ms var(--ease-out);
}
.btn-primary:hover:not(:disabled) {
  border-color: var(--accent-hover);
  background: var(--accent-hover);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(159, 110, 25, 0.25);
}
.btn-primary:active:not(:disabled) { transform: translateY(0); box-shadow: none; }
.btn-secondary,
.btn-ghost {
  border-color: var(--border-strong);
  color: var(--text);
  background: rgba(255, 255, 255, 0.68);
}
.btn-secondary:hover:not(:disabled),
.btn-ghost:hover:not(:disabled) { border-color: #9caaaf; background: var(--surface-alt); color: var(--primary); }

input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
select,
textarea {
  border-color: var(--border);
  background: #fff;
  color: var(--text);
}
input:focus, select:focus, textarea:focus {
  border-color: var(--sage);
  box-shadow: 0 0 0 3px rgba(20, 109, 115, 0.14);
}

.dash-hero {
  position: relative;
  min-height: 540px;
  display: block;
  margin: 0 0 34px;
  padding: 0;
  background: #0d1722;
  border: none;
  border-radius: 0;
  color: #f5f7f8;
  box-shadow: none;
  overflow: hidden;
}
.dash-hero-video,
.dash-hero-poster,
.dash-hero-video-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.dash-hero-poster {
  z-index: 0;
  display: block;
  object-fit: cover;
  object-position: center 52%;
}
.dash-hero-video {
  z-index: 1;
  object-fit: cover;
  object-position: center 52%;
  opacity: 0;
  filter: saturate(0.82) contrast(1.08) brightness(0.86);
  transform: scale(1.035);
}
.dash-hero-video-shade {
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(7, 15, 22, 0.95) 0%, rgba(7, 15, 22, 0.86) 38%, rgba(7, 15, 22, 0.46) 72%, rgba(7, 15, 22, 0.28) 100%),
    linear-gradient(0deg, rgba(7, 15, 22, 0.52), transparent 46%);
}
.dash-hero-inner {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: min(1180px, calc(100% - 48px));
  min-height: 540px;
  margin: 0 auto;
  padding: 132px 0 70px;
}
.dash-hero-topline {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  margin: 0 0 16px;
  color: #e4c787;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.dash-hero-signal {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(201, 149, 55, 0.16);
}

.brand-wordmark {
  display: grid;
  gap: 1px;
}

.brand-kicker {
  margin: 0;
  color: #173e4d;
  font-family: "Cabinet Grotesk", sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  line-height: 1.1;
}

.brand-signature {
  margin: 0;
  color: #b6812f;
  font-family: "Alegreya", Georgia, serif;
  font-size: 1.08rem;
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1.12;
}
.dash-hero-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 36px;
}
.dash-date { margin: 0; color: rgba(229, 238, 241, 0.8); font-size: 16px; font-weight: 500; }
.dash-date::first-letter { text-transform: uppercase; }
.dash-hero-actions { display: flex; align-items: center; gap: 18px; }
.dash-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 54px;
  padding: 14px 20px 14px 24px;
  background: var(--accent);
  color: #16222a;
  border: none;
  font-weight: 700;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
}
.dash-cta:hover { background: #e4b657; border: none; color: #16222a; box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28); }
.dash-cta span { font-size: 18px; line-height: 0; }

.dash-tiles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin: 28px auto;
}
.dash-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  min-height: 178px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.18s, box-shadow 0.18s, transform 0.15s;
}
.dash-tile:hover {
  border-color: rgba(20, 109, 115, 0.48);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}
.tile-icon { font-size: 20px; }
.tile-count { font-size: 36px; font-weight: 600; color: var(--primary); line-height: 1.02; font-family: var(--font-display); letter-spacing: -0.06em; }
.tile-label { font-size: 13.5px; font-weight: 700; color: var(--text); }
.tile-hint { font-size: 12px; color: var(--sage); margin-top: auto; font-weight: 700; }

/* ---------- Οικονομική ατζέντα ---------- */
.agenda-card {
  margin-top: 18px;
  padding: 0;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--border) 78%, var(--accent) 22%);
  box-shadow: 0 12px 30px rgba(13, 28, 56, 0.06);
}
.agenda-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 28px 18px;
  background:
    linear-gradient(102deg, rgba(13, 28, 56, 0.98), rgba(20, 42, 79, 0.97)),
    var(--primary);
  color: #fdfaf3;
}
.agenda-kicker,
.agenda-panel-date {
  margin: 0 0 5px;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.agenda-kicker { color: rgba(253, 250, 243, 0.66); }
.agenda-head h2 {
  margin: 0;
  color: #fdfaf3;
  font-family: 'Fraunces', serif;
  font-size: clamp(1.35rem, 1.12rem + 0.8vw, 1.8rem);
  font-weight: 600;
}
.agenda-sub {
  margin: 7px 0 0;
  max-width: 62ch;
  color: rgba(253, 250, 243, 0.79);
  font-size: 0.91rem;
  line-height: 1.5;
}
.agenda-mode {
  display: inline-flex;
  padding: 3px;
  flex: 0 0 auto;
  border: 1px solid rgba(253, 250, 243, 0.23);
  border-radius: 999px;
  background: rgba(253, 250, 243, 0.09);
}
.agenda-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}
.agenda-refresh {
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid rgba(253, 250, 243, 0.4);
  border-radius: 999px;
  color: #fdfaf3;
  background: transparent;
  font-size: 0.78rem;
  font-weight: 750;
}
.agenda-refresh:hover:not(:disabled) {
  border-color: #fdfaf3;
  background: rgba(253, 250, 243, 0.12);
}
.agenda-refresh:disabled { cursor: progress; opacity: 0.7; }

/* Απομαγνητοφώνηση: σαφής, προσβάσιμη ένδειξη των πραγματικών σταδίων εργασίας. */
.tr-progress {
  margin-top: 14px;
  max-width: 760px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--accent, #176f78) 24%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--accent-soft, #e7f2f3) 65%, var(--surface, #fff));
}
.tr-progress[hidden] { display: none; }
#trUploadLabel[aria-disabled="true"] {
  cursor: wait !important;
  opacity: 0.62;
  pointer-events: none;
}
.tr-progress-head,
.tr-progress-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.tr-progress-stage {
  color: var(--text, #172327);
  font-size: 14px;
  font-weight: 800;
}
.tr-progress-percent {
  color: var(--accent, #176f78);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.tr-progress-track {
  position: relative;
  overflow: hidden;
  height: 9px;
  margin: 10px 0 9px;
  border-radius: 99px;
  background: color-mix(in srgb, var(--accent, #176f78) 14%, var(--muted-bg, #eef1f2));
}
.tr-progress-fill {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--accent, #176f78);
  transition: width 360ms ease;
}
.tr-progress.is-indeterminate .tr-progress-fill {
  width: 42%;
  animation: tr-progress-indeterminate 1.5s ease-in-out infinite;
}
@keyframes tr-progress-indeterminate {
  0% { transform: translateX(-120%); }
  100% { transform: translateX(300%); }
}
.tr-progress-meta {
  color: var(--muted, #5e6c70);
  font-size: 13px;
  font-weight: 600;
}
.tr-progress-meta span:first-child { min-width: 0; }
.tr-progress-meta span:last-child {
  flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.tr-progress-note {
  margin: 8px 0 0;
  color: var(--muted, #5e6c70);
  font-size: 12px;
  line-height: 1.45;
}
.tr-progress.is-complete {
  border-color: color-mix(in srgb, var(--success, #2d7a39) 38%, transparent);
}
.tr-progress.is-complete .tr-progress-fill {
  background: var(--success, #2d7a39);
  /* Η τελική τιμή πρέπει να συμφωνεί αμέσως με το εμφανιζόμενο 100%. */
  transition-duration: 0ms;
}
.tr-card #btnTrStart { min-height: 44px; }
.tr-progress.is-error {
  border-color: color-mix(in srgb, var(--danger, #a52d38) 38%, transparent);
}
.tr-progress.is-error .tr-progress-fill { background: var(--danger, #a52d38); }
@media (prefers-reduced-motion: reduce) {
  .tr-progress.is-indeterminate .tr-progress-fill { animation: none; }
}
@media (max-width: 560px) {
  .tr-progress { padding: 12px; }
  .tr-progress-meta { align-items: flex-start; }
}
.agenda-mode-btn {
  min-height: 36px;
  padding: 7px 13px;
  border-radius: 999px;
  color: #fdfaf3;
  background: rgba(253, 250, 243, 0.16);
  font-size: 0.8rem;
  font-weight: 750;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.18);
}
.agenda-mode-btn:hover:not([aria-selected="true"]) {
  background: rgba(253, 250, 243, 0.26);
}
.agenda-mode-btn[aria-selected="true"] {
  background: #fdfaf3;
  color: #112344;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.16);
  text-shadow: none;
}
.agenda-day-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  padding: 16px 28px;
  background: color-mix(in srgb, var(--surface-alt) 78%, #fdfaf3 22%);
  border-bottom: 1px solid var(--border);
}
.agenda-day {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--muted);
  background: transparent;
  font-size: 0.83rem;
  font-weight: 700;
}
.agenda-day strong {
  color: var(--text);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
}
.agenda-day:hover { background: var(--surface); border-color: var(--border); }
.agenda-day.is-selected {
  border-color: color-mix(in srgb, var(--accent) 46%, var(--border) 54%);
  background: color-mix(in srgb, var(--accent-soft) 78%, var(--surface) 22%);
  color: var(--accent-hover);
}
.agenda-day.is-selected strong { color: var(--primary); }
.agenda-day.is-today::after {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--accent);
}
.agenda-panel { padding: 22px 28px 24px; }
.agenda-panel-head { margin-bottom: 16px; }
.agenda-panel-date { color: var(--accent-hover); }
.agenda-panel h3 {
  margin: 0;
  color: var(--primary);
  font-size: 1.07rem;
}
.agenda-panel-theme {
  margin: 5px 0 0;
  color: var(--text-muted);
  font-size: 0.9rem;
}
.agenda-entries {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.agenda-entry {
  display: block;
  min-height: 122px;
  padding: 15px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}
.agenda-entry-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}
.agenda-entry-link:hover {
  border-color: color-mix(in srgb, var(--accent) 48%, var(--border) 52%);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}
.agenda-entry-link:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 40%, transparent);
  outline-offset: 3px;
}
.agenda-entry-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 14px;
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 750;
}
.agenda-tag {
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary);
  font-size: 0.7rem;
  font-weight: 800;
}
.agenda-entry-time {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.agenda-entry-text {
  margin: 0;
  color: var(--text);
  font-size: 0.88rem;
  line-height: 1.48;
}
.agenda-entry-action {
  display: block;
  margin-top: 11px;
  color: var(--accent-hover);
  font-size: 0.72rem;
  font-weight: 750;
}
.agenda-empty {
  grid-column: 1 / -1;
  display: grid;
  gap: 5px;
  min-height: 116px;
  align-content: center;
  padding: 17px;
  border: 1px dashed color-mix(in srgb, var(--border) 72%, var(--accent) 28%);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-alt) 82%, #fdfaf3 18%);
  color: var(--text-muted);
  font-size: 0.86rem;
  line-height: 1.48;
}
.agenda-empty strong { color: var(--primary); font-size: 0.92rem; }
.agenda-week-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}
.agenda-week-item {
  grid-column: span 2;
  min-height: 128px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  text-align: left;
}
.agenda-week-item:nth-child(4) { grid-column: 2 / span 2; }
.agenda-week-item:nth-child(5) { grid-column: 4 / span 2; }
.agenda-week-item:hover,
.agenda-week-item.is-selected {
  border-color: color-mix(in srgb, var(--accent) 46%, var(--border) 54%);
  box-shadow: var(--shadow-sm);
}
.agenda-week-label,
.agenda-week-item > span:last-child {
  display: block;
  color: var(--text-muted);
  font-size: 0.75rem;
  line-height: 1.35;
}
.agenda-week-label { margin-bottom: 12px; font-weight: 750; }
.agenda-week-item strong {
  display: block;
  margin-bottom: 7px;
  color: var(--primary);
  font-size: 0.9rem;
  line-height: 1.32;
}
.agenda-week-events {
  display: grid;
  gap: 7px;
}
.agenda-week-events a,
.agenda-week-events span {
  color: var(--text-muted);
  font-size: 0.76rem;
  line-height: 1.38;
}
.agenda-week-events a {
  text-decoration: none;
}
.agenda-week-events a:hover,
.agenda-week-events a:focus-visible {
  color: var(--accent-hover);
  text-decoration: underline;
}
@media (max-width: 980px) {
  .agenda-head { align-items: stretch; flex-direction: column; }
  .agenda-controls { justify-content: flex-start; }
  .agenda-week-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agenda-week-item,
  .agenda-week-item:nth-child(4),
  .agenda-week-item:nth-child(5) { grid-column: auto; }
  .agenda-week-item:last-child { grid-column: 1 / -1; }
}
.agenda-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 28px;
  background: color-mix(in srgb, var(--surface-alt) 85%, #fdfaf3 15%);
  border-top: 1px solid var(--border);
}
.agenda-note {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.45;
}
.agenda-sources {
  display: flex;
  align-items: center;
  gap: 11px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.agenda-sources a {
  color: var(--primary);
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}
.agenda-sources a:hover { color: var(--accent-hover); text-decoration: underline; }

.wiz-topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 18px;
  position: sticky;
  top: 8px;
  z-index: 40;
  box-shadow: var(--shadow-md);
}
.wiz-stepper {
  display: flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
}
.wiz-step-dot {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
  color: var(--muted);
  transition: background 0.15s, color 0.15s;
}
.wiz-step-dot:hover { background: var(--surface-alt); }
.wiz-step-dot .dot-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid var(--border-strong);
  font-size: 12px;
  font-weight: 700;
  flex: none;
}
.wiz-step-dot .dot-label { font-size: 13px; font-weight: 700; white-space: nowrap; }
.wiz-step-dot.active { color: var(--primary); background: var(--primary-soft); }
.wiz-step-dot.active .dot-num { border-color: var(--primary); background: var(--primary); color: #fdfaf3; }
.wiz-step-dot.done { color: var(--sage); }
.wiz-step-dot.done .dot-num { border-color: var(--sage); background: var(--sage-soft); }
.wiz-step-dot:not(:last-child)::after {
  content: '';
  width: 18px;
  height: 2px;
  background: var(--border);
  margin-left: 8px;
}
.wiz-step-dot.done:not(:last-child)::after { background: var(--sage); }

.wiz-step[hidden] { display: none; }

.wiz-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
}
.wiz-progress { font-size: 13px; color: var(--muted); font-weight: 700; }
#btnWizPrev:disabled { opacity: 0.45; cursor: not-allowed; }

@media (max-width: 720px) {
  .dash-tiles { grid-template-columns: repeat(2, 1fr); }
  .dash-hero { padding: 26px 22px; border-radius: var(--radius-lg); }
  .dash-cta { width: 100%; justify-content: center; text-align: center; }
  .agenda-head { display: block; padding: 22px 20px 18px; }
  .agenda-mode { margin-top: 16px; }
  .agenda-day-strip { padding: 12px 12px; gap: 5px; }
  .agenda-day { min-height: 48px; gap: 4px; font-size: 0.72rem; }
  .agenda-day strong { font-size: 0.95rem; }
  .agenda-panel { padding: 20px; }
  .agenda-entries,
  .agenda-week-grid { grid-template-columns: 1fr; }
  .agenda-entry { min-height: 0; }
  .agenda-week-item { min-height: 0; }
  .agenda-foot { display: block; padding: 14px 20px; }
  .agenda-sources { justify-content: flex-start; margin-top: 10px; }
  .wiz-step-dot .dot-label { display: none; }
  .wiz-step-dot { padding: 4px 4px; }
  .wiz-step-dot .dot-num { width: 22px; height: 22px; font-size: 11px; }
  .wiz-step-dot:not(:last-child)::after { width: 8px; margin-left: 3px; }
  .wiz-stepper { justify-content: flex-end; }
  .wiz-topbar { top: 0; border-radius: 0; margin: 0 -16px; }
}

/* ---------- Dashboard meta chips (καιρός + εορτολόγιο) ---------- */
.dash-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  position: relative;
}
.dash-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(253, 250, 243, 0.12);
  border: 1px solid rgba(253, 250, 243, 0.22);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.82rem;
  color: #fdfaf3;
  line-height: 1.35;
  max-width: 100%;
}
@media (max-width: 720px) {
  .dash-chip { font-size: 0.78rem; padding: 4px 10px; }
}
.dash-hero-text { flex: 1 1 0; min-width: 0; position: relative; z-index: 1; }
.dash-hero .dash-cta { flex: 0 0 auto; position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) {
  .dash-hero-video { display: none; }
  .dash-hero {
    background:
      radial-gradient(560px 320px at 92% -10%, rgba(163, 130, 58, 0.28), transparent 60%),
      linear-gradient(135deg, #0d1c38 0%, #142a4f 55%, #0b1730 100%);
  }
}

/* When reduced motion is enabled the loop never starts automatically. The
   visible play control is an explicit user choice, so the video remains
   renderable if that choice is made instead of being permanently display:none. */
@media (prefers-reduced-motion: reduce) {
  .dashboard-mode .dash-hero-video {
    display: block;
    animation: none !important;
  }
}
@media (max-width: 720px) {
  .dash-hero-text { flex-basis: 100%; }
}

/* ===== Γραφικό καιρού — layered inline SVG (χωρίς bitmap, χωρίς τρίτο API) ===== */
.wx-scene {
  position: relative;
  width: 74px;
  height: 74px;
  flex: 0 0 74px;
  align-self: center;
  z-index: 1;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(253, 250, 243, 0.12), var(--shadow-sm);
}
.wx-svg { width: 100%; height: 100%; display: block; }
.wx-sky { transition: fill 0.4s ease; }

/* Ήλιος */
.wx-sundisc { transform-origin: 37px 37px; animation: wx-sun-pulse 3.2s ease-in-out infinite; }
.wx-sundisc-small { transform-origin: 29px 27px; }
@keyframes wx-sun-pulse {
  0%, 100% { filter: drop-shadow(0 0 2px rgba(163,130,58,.4)); }
  50% { filter: drop-shadow(0 0 7px rgba(214,182,118,.75)); }
}
.wx-sunrays { transform-origin: 37px 37px; animation: wx-rays-spin 22s linear infinite; }
@keyframes wx-rays-spin { to { transform: rotate(360deg); } }

/* Σύννεφα */
.wx-cloudgroup-front { animation: wx-cloud-drift 6s ease-in-out infinite; transform-origin: center; }
.wx-cloudgroup-back { animation: wx-cloud-drift-rev 8s ease-in-out infinite; transform-origin: center; }
@keyframes wx-cloud-drift {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(2.5px); }
}
@keyframes wx-cloud-drift-rev {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-2.5px); }
}

/* Βροχή */
.wx-drop { animation: wx-drop-fall 0.9s linear infinite; opacity: 0; transform-origin: center; }
.wx-drop-1 { animation-delay: 0s; }
.wx-drop-2 { animation-delay: 0.3s; }
.wx-drop-3 { animation-delay: 0.6s; }
@keyframes wx-drop-fall {
  0% { transform: translateY(-4px); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translateY(6px); opacity: 0; }
}

/* Χιόνι */
.wx-flake { animation: wx-flake-fall 2.4s ease-in-out infinite; opacity: 0; }
.wx-flake-1 { animation-delay: 0s; }
.wx-flake-2 { animation-delay: 0.7s; }
.wx-flake-3 { animation-delay: 1.4s; }
@keyframes wx-flake-fall {
  0% { transform: translateY(-4px); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translateY(8px); opacity: 0; }
}

/* Ομίχλη */
.wx-fogline { animation: wx-fogline-move 4s ease-in-out infinite; transform-origin: center; }
.wx-fogline-2 { animation-delay: 0.8s; }
.wx-fogline-3 { animation-delay: 1.6s; }
@keyframes wx-fogline-move {
  0%, 100% { transform: translateX(0); opacity: 0.4; }
  50% { transform: translateX(4px); opacity: 0.75; }
}

/* Καταιγίδα */
.wx-lightning { animation: wx-lightning-flash 2.4s ease-in-out infinite; transform-origin: center; }
@keyframes wx-lightning-flash {
  0%, 52%, 100% { opacity: 0; }
  56%, 70% { opacity: 1; filter: drop-shadow(0 0 5px #f6ecd6); }
  63% { opacity: 0.2; }
}

@media (prefers-reduced-motion: reduce) {
  .wx-sundisc,
  .wx-sunrays,
  .wx-cloudgroup-front,
  .wx-cloudgroup-back,
  .wx-drop,
  .wx-flake,
  .wx-fogline,
  .wx-lightning {
    animation: none !important;
  }
  .wx-drop, .wx-flake { opacity: 0.85; }
  .wx-lightning { opacity: 1; }
}

/* ===== Παγκόσμιες ημέρες εβδομάδας ===== */
.dash-worlddays {
  margin-top: 12px;
  font-size: .8rem;
  line-height: 1.65;
  color: rgba(253, 250, 243, .88);
  position: relative;
  z-index: 1;
}
.dash-worlddays strong { color: #fdfaf3; }
.dash-worlddays .wd-item b {
  color: #fdfaf3;
  font-weight: 700;
  margin-right: 3px;
}
.dash-worlddays .wd-item.wd-today {
  background: rgba(253, 250, 243, .16);
  border-radius: 6px;
  padding: 1px 6px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.dash-worlddays .wd-sep {
  margin: 0 7px;
  opacity: .55;
}

/* ===== Carousel «Πρωτοσέλιδα ημέρας» — images-only, premium ivory card ===== */
.fp-carousel-card.card {
  background: var(--surface-alt);
  border: 1px solid var(--border);
}
.fp-carousel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.fp-carousel-head h2 { margin-bottom: 0; }
.fp-carousel-headright {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.fp-carousel-counter {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
  min-width: 44px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.fp-carousel-openlink { white-space: nowrap; }

.fp-carousel-viewport-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.fp-carousel-nav {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border-strong);
  background: var(--surface);
  color: var(--primary);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, transform 0.15s, box-shadow 0.15s;
}
.fp-carousel-nav:hover:not(:disabled) {
  background: var(--primary-soft);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}
.fp-carousel-nav:disabled { opacity: 0.35; cursor: not-allowed; }
.fp-carousel-nav:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.fp-carousel-viewport-wrap {
  min-width: 0;
}
.fp-carousel-viewport {
  flex: 1 1 0%;
  min-width: 0;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-lg);
}
.fp-carousel-viewport:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
.fp-carousel-viewport::-webkit-scrollbar { height: 8px; }
.fp-carousel-viewport::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 999px;
}

.fp-carousel-track {
  display: flex;
  gap: 14px;
  padding: 2px;
}

.fp-carousel-item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  width: 168px;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  position: relative;
  transition: box-shadow 0.18s, transform 0.18s;
}
.fp-carousel-item:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.fp-carousel-link {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
  font: inherit;
}
.fp-carousel-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
/* Οπτικά η κάρτα δείχνει ΜΟΝΟ την εικόνα πρωτοσέλιδου — το όνομα/τίτλος της
   εφημερίδας μένει διαθέσιμο αποκλειστικά σε screen readers (visually-hidden). */
.fp-carousel-visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.fp-carousel-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: var(--surface-alt);
}
.fp-carousel-item--noimg .fp-carousel-img { display: none; }
.fp-carousel-noimg-fallback {
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 34px;
  background: var(--surface-alt);
  color: var(--text-faint);
}
.fp-carousel-item--noimg .fp-carousel-noimg-fallback { display: flex; }

/* Loading skeleton */
.fp-carousel-item--skeleton {
  background: linear-gradient(100deg, var(--surface-alt) 30%, var(--surface) 50%, var(--surface-alt) 70%);
  background-size: 220% 100%;
  animation: fp-skeleton-shimmer 1.4s ease-in-out infinite;
}
@keyframes fp-skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -20% 0; }
}

/* Empty / error states */
.fp-carousel-emptystate,
.fp-carousel-errorstate {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  padding: 30px 20px;
  width: 100%;
  color: var(--text-muted);
  font-size: 0.92rem;
}
.fp-carousel-emptystate p,
.fp-carousel-errorstate p { margin: 0; }
.fp-carousel-emptystate-note,
.fp-carousel-errorstate-note {
  font-size: 0.82rem;
  color: var(--text-faint);
  max-width: 46ch;
}
.fp-carousel-errorstate p:first-child { color: var(--danger); font-weight: 600; }

.fp-carousel-status {
  margin-top: 10px;
  font-size: 0.78rem;
  color: var(--text-faint);
}

.fp-lightbox {
  width: min(920px, calc(100vw - 32px));
  max-width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: var(--radius-lg);
  background: transparent;
  color: var(--text);
  box-shadow: var(--shadow-lg);
}
.fp-lightbox::backdrop { background: rgba(9, 22, 39, 0.74); }
.fp-lightbox-panel {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 32px);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-alt);
}
.fp-lightbox-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--border);
}
.fp-lightbox-head h2 { margin: 0; font-size: 1.05rem; }
.fp-lightbox-eyebrow {
  margin: 0 0 4px;
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.fp-lightbox-close {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--border-strong);
  border-radius: 50%;
  background: var(--surface);
  color: var(--primary);
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
}
.fp-lightbox-close:hover { background: var(--primary-soft); }
.fp-lightbox-close:focus-visible,
.fp-lightbox-nav:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.fp-lightbox-figure {
  display: grid;
  place-items: center;
  min-height: 0;
  margin: 0;
  padding: 16px;
  overflow: auto;
  background: var(--primary-soft);
  scroll-behavior: smooth;
}
.fp-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: min(66vh, 720px);
  object-fit: contain;
  border-radius: 4px;
  box-shadow: var(--shadow-md);
  background: var(--surface);
  cursor: zoom-in;
  transform: scale(var(--fp-zoom, 1));
  transform-origin: center center;
  transition:
    transform 220ms cubic-bezier(0.4, 0, 0.2, 1),
    width 220ms cubic-bezier(0.4, 0, 0.2, 1);
}
.fp-lightbox-image.is-zoomed {
  max-width: none;
  max-height: none;
  width: calc(var(--fp-natural-width, 300px) * var(--fp-zoom, 1));
  height: auto;
  transform: none;
  cursor: zoom-in;
}
.fp-lightbox-image:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}
.fp-lightbox-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 14px 20px 18px;
  border-top: 1px solid var(--border);
}
.fp-lightbox-nav:last-child { justify-self: end; }
.fp-lightbox-center-controls {
  display: grid;
  justify-items: center;
  gap: 4px;
}
.fp-lightbox-zoom {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.fp-lightbox-zoom-btn,
.fp-lightbox-zoom-level {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  min-width: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--primary);
  cursor: pointer;
  font-family: 'Source Sans 3', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}
.fp-lightbox-zoom-btn {
  background: var(--primary-soft);
}
.fp-lightbox-zoom-btn:hover:not(:disabled),
.fp-lightbox-zoom-level:hover {
  background: var(--accent-soft);
}
.fp-lightbox-zoom-btn:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}
.fp-lightbox-zoom-level {
  width: 52px;
  min-width: 52px;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.78rem;
}
.fp-lightbox-zoom-hint {
  color: var(--text-faint);
  font-size: 0.72rem;
  line-height: 1.2;
  text-align: center;
}
.fp-lightbox-zoom-btn:focus-visible,
.fp-lightbox-zoom-level:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.fp-lightbox-counter {
  min-width: 52px;
  color: var(--text-muted);
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

@media (prefers-reduced-motion: reduce) {
  .fp-carousel-viewport { scroll-behavior: auto; }
  .fp-carousel-item--skeleton { animation: none; }
  .fp-carousel-item:hover { transform: none; }
  .fp-lightbox { transition: none; }
}

@media (max-width: 720px) {
  .fp-carousel-viewport-wrap { gap: 6px; }
  .fp-carousel-nav { width: 44px; height: 44px; font-size: 17px; }
  .fp-carousel-item { width: 132px; }
  .fp-carousel-counter { min-width: auto; }
  .fp-carousel-head { gap: 8px; }
  .fp-carousel-headright { width: 100%; justify-content: space-between; }
  .fp-carousel-openlink { flex: 1 1 auto; text-align: center; }
  .fp-lightbox { width: min(100vw - 20px, 920px); max-width: min(100vw - 20px, 920px); }
  .fp-lightbox-head { padding: 14px; }
  .fp-lightbox-figure { padding: 10px; }
  .fp-lightbox-image { max-height: 60vh; }
  .fp-lightbox-controls { padding: 12px 14px 14px; gap: 6px; }
  .fp-lightbox-nav { font-size: 0.8rem; padding-inline: 10px; }
  .fp-lightbox-zoom-btn { width: 36px; height: 36px; min-width: 36px; }
  .fp-lightbox-zoom-level { width: 48px; min-width: 48px; }
  .fp-lightbox-zoom-hint { font-size: 0.68rem; }
}

/* Εγγύηση: το carousel δεν προκαλεί οριζόντιο overflow σελίδας σε κινητό —
   μόνο η εσωτερική λωρίδα (.fp-carousel-viewport) κάνει scroll/swipe. */
.fp-carousel-card.card { overflow: hidden; max-width: 100%; }
html, body { overflow-x: hidden; }

/* ===== AI box αναζήτησης ΤτΕ ===== */
.ai-box { margin-top: 14px; }
.ai-box-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}
.ai-box-icon { font-size: 1.5rem; line-height: 1.2; }
.ai-box-title { margin: 0 0 2px; font-size: 1.05rem; }
.ai-box-sub {
  margin: 0;
  font-size: .84rem;
  color: var(--text-muted, #6b7280);
}
.ai-form {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.ai-input {
  flex: 1 1 260px;
  min-width: 0;
  padding: 11px 15px;
  border: 1.5px solid var(--border-strong, #d7dbe0);
  border-radius: 10px;
  font: inherit;
  font-size: .92rem;
}
.ai-input:focus {
  outline: none;
  border-color: var(--primary, #10203e);
  box-shadow: 0 0 0 3px rgba(16, 32, 62, .12);
}
.ai-btn { white-space: nowrap; }
.ai-results {
  margin-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ai-loading {
  margin: 0;
  font-size: .88rem;
  color: var(--text-muted, #6b7280);
}
.ai-result {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--border, #e2e6ea);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color .15s, background .15s;
}
.ai-result:hover {
  border-color: var(--primary, #10203e);
  background: var(--primary-soft, #e9edf6);
}
.ai-result-title {
  display: block;
  font-weight: 700;
  font-size: .92rem;
  color: var(--primary, #10203e);
}
.ai-result-snip {
  display: block;
  margin-top: 2px;
  font-size: .82rem;
  color: var(--text, #374151);
}
.ai-result-url {
  display: block;
  margin-top: 3px;
  font-size: .74rem;
  color: var(--text-muted, #9ca3af);
  word-break: break-all;
}
@media (max-width: 720px) {
  .wx-scene { width: 60px; height: 60px; flex-basis: 60px; }
  .dash-worlddays { font-size: .76rem; }
  .ai-form { flex-direction: column; }
  .ai-btn { width: 100%; }
}

/* ===== Guard: το hidden να κρύβει πάντα (υπερισχύει των display κανόνων) ===== */
[hidden] { display: none !important; }

/* Fix: στο κινητό το πεδίο αναζήτησης έπαιρνε ύψος από το flex-basis */
@media (max-width: 720px) {
  .ai-input { flex: 0 0 auto; width: 100%; }
}

/* ===========================================================================
   KPI DASHBOARD — Media Impact Analytics
   =========================================================================== */
.card-analytics {
  position: relative;
  background:
    radial-gradient(ellipse at 100% 0%, rgba(206, 168, 97, .16), transparent 34%),
    radial-gradient(ellipse at 0% 100%, rgba(170, 119, 47, .08), transparent 36%),
    linear-gradient(145deg, rgba(255, 253, 248, .98), rgba(244, 231, 204, .86));
}
.analytics-eyebrow,
.analytics-panel-kicker,
.analytics-insight-label {
  display: block;
  color: var(--accent-deep, #8d6220);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.analytics-eyebrow { margin-bottom: 4px; }
.analytics-range-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.analytics-range-actions select {
  padding: 9px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
  font-size: 13px;
}
.analytics-custom-range {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 10px 0;
  padding: 12px 14px;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
}
.analytics-custom-range label { display: flex; align-items: center; gap: 6px; }
.analytics-custom-range input[type="date"] {
  padding: 6px 8px;
  border: 1px solid var(--border-strong);
  border-radius: 6px;
}
.analytics-disclosure {
  font-size: 12.5px;
  line-height: 1.55;
  color: #6c6252;
  border: 1px solid rgba(142, 102, 41, .16);
  padding: 11px 14px;
  background: linear-gradient(105deg, rgba(255, 252, 244, .92), rgba(245, 231, 202, .72));
  border-radius: 12px;
  margin: 10px 0 18px 0;
  max-width: 106ch;
}

.kpi-grid {
  display: grid;
  grid-template-columns: 1.12fr repeat(2, minmax(0, 1fr));
  gap: 13px;
  margin-bottom: 26px;
}
.kpi-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 136px;
  gap: 6px;
  padding: 20px 20px 18px;
  background:
    radial-gradient(circle at 94% 9%, rgba(255, 248, 224, .88), transparent 26%),
    linear-gradient(132deg, rgba(255, 253, 248, .98), rgba(239, 219, 177, .88)),
    #f8eed9;
  border: 1px solid rgba(126, 86, 28, .18);
  border-radius: 14px;
  box-shadow:
    0 1px 2px rgba(71, 52, 27, .07),
    0 12px 26px rgba(71, 52, 27, .07);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.kpi-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, #8f5a1b, #e1be77 40%, #b5792e 70%, #f0d9a5);
}
.kpi-card-lead {
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 248, 222, .98), transparent 33%),
    linear-gradient(135deg, #f8e6b9, #ead09a 56%, #fbf1db);
  border-color: rgba(129, 84, 24, .3);
  box-shadow: 0 14px 30px rgba(102, 69, 23, .12);
}
.kpi-card[data-state="active"]::after {
  content: "";
  position: absolute;
  width: 58px;
  height: 58px;
  right: -27px;
  bottom: -31px;
  border: 1px solid rgba(149, 102, 31, .19);
  border-radius: 50%;
  pointer-events: none;
}
.kpi-card-momentum .kpi-value { color: #9a6221; }
.kpi-card-momentum .kpi-value.is-positive { color: #3d765d; }
.kpi-card-momentum .kpi-value.is-negative { color: #a95548; }
.kpi-card-momentum .kpi-value.is-neutral { color: #6f6556; }
.kpi-label {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #6f6556;
}
.kpi-value {
  font-size: 34px;
  font-weight: 760;
  color: #293942;
  line-height: 1.15;
  font-variant-numeric: tabular-nums lining-nums;
  font-family: 'Cabinet Grotesk', 'Source Sans 3', sans-serif;
  letter-spacing: -.025em;
}
.kpi-card-lead .kpi-value { font-size: 40px; color: #293942; }
.kpi-value-text { font-size: 19px; line-height: 1.2; font-family: 'Cabinet Grotesk', 'Source Sans 3', sans-serif; font-weight: 750; }
.kpi-sub { font-size: 12px; line-height: 1.45; color: #716653; max-width: 33ch; }

.analytics-insight {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin: 2px 0 18px;
  padding: 13px 16px;
  background: linear-gradient(105deg, #293942, #4c5350 58%, #997031);
  color: #fffaf0;
  border-radius: 14px;
  box-shadow: 0 12px 28px rgba(57, 49, 32, .2);
}
.analytics-insight-label { color: #e6c887; white-space: nowrap; }
.analytics-insight strong { font-size: 13.5px; font-weight: 650; line-height: 1.45; }
.analytics-network {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 245, 222, .18);
}
.analytics-network-item {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 5px 8px;
  border: 1px solid rgba(255, 239, 204, .18);
  border-radius: 999px;
  background: rgba(7, 28, 39, .18);
  color: rgba(255, 250, 240, .78);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .01em;
}
.analytics-network-item b {
  color: #ffe2a4;
  font-family: 'Cabinet Grotesk', 'Source Sans 3', sans-serif;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
.analytics-topic-signals {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 8px 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 245, 222, .18);
}
.analytics-topic-signals-label {
  padding-top: 6px;
  color: rgba(255, 242, 209, .66);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
}
.analytics-topic-signal-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.analytics-topic-signal {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  padding: 5px 8px;
  border: 1px solid rgba(255, 226, 164, .19);
  border-radius: 9px;
  background: rgba(12, 31, 39, .23);
  color: #fff7e8;
  font-size: 11px;
  line-height: 1.25;
}
.analytics-topic-signal strong {
  font-weight: 700;
  color: #ffe0a1;
}
.analytics-topic-signal span {
  color: rgba(255, 248, 235, .73);
  font-size: 10.5px;
  font-variant-numeric: tabular-nums lining-nums;
}

.analytics-panel-lead {
  background:
    radial-gradient(ellipse at 92% 2%, rgba(229, 196, 128, .34), transparent 31%),
    linear-gradient(145deg, rgba(255, 253, 247, .98), rgba(243, 226, 191, .88));
}

.chart-wrap canvas {
  filter: saturate(.94) contrast(1.02);
}

.analytics-panel {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(255, 244, 213, .62), transparent 33%),
    linear-gradient(145deg, rgba(255, 253, 247, .97), rgba(246, 232, 203, .83));
  border: 1px solid rgba(145, 104, 43, .14);
  border-radius: 14px;
  padding: 18px 20px 22px;
  margin-bottom: 20px;
  box-shadow: 0 10px 24px rgba(71, 52, 27, .065);
}
.analytics-panel-lead { padding-top: 20px; }
.analytics-panel-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.analytics-panel h3 {
  font-size: 17px;
  font-weight: 730;
  margin: 3px 0 0;
  color: #293942;
  letter-spacing: -.012em;
}
.analytics-panel-note {
  flex: 0 0 auto;
  color: #7f6d4e;
  font-size: 11.5px;
  font-weight: 700;
  padding: 6px 9px;
  background: rgba(214, 185, 123, .18);
  border: 1px solid rgba(163, 119, 38, .13);
  border-radius: 999px;
}
.hint-inline { font-weight: 400; font-size: 12.5px; color: var(--text-faint); font-family: 'Source Sans 3', sans-serif; }

.analytics-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
@media (max-width: 860px) {
  .analytics-grid-2 { grid-template-columns: 1fr; }
}

.chart-wrap { position: relative; height: 220px; }
.chart-wrap-lg { height: 310px; }
.chart-wrap-sm { height: 200px; }
.chart-wrap-sources { height: 356px; }

.sentiment-table { display: flex; flex-direction: column; gap: 10px; }
.sentiment-row {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) 2fr auto;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}
.sentiment-source {
  color: var(--text);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sentiment-bar {
  display: flex;
  height: 12px;
  border-radius: 999px;
  overflow: hidden;
  background: var(--border);
}
.sentiment-seg { height: 100%; }
.sentiment-pos { background: var(--sage); }
.sentiment-neu { background: #c7c2b3; }
.sentiment-neg { background: #a3544a; }
.sentiment-total { font-variant-numeric: tabular-nums; color: var(--text-muted); font-size: 12.5px; }

.keyword-search-row { display: flex; gap: 10px; margin-bottom: 14px; }
.keyword-search-row input {
  flex: 1;
  padding: 11px 14px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  font-size: 14px;
}
.kw-summary { font-size: 13px; color: var(--text-muted); margin-bottom: 10px; }
.kw-scope-note {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 3px 8px;
  border: 1px solid rgba(156, 111, 42, 0.28);
  border-radius: 999px;
  color: #74541f;
  background: rgba(242, 227, 193, 0.72);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .015em;
}
.kw-trend-chart {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 40px;
  margin-bottom: 14px;
  padding: 0 2px;
}
.kw-trend-bar {
  flex: 1;
  background: linear-gradient(180deg, var(--primary), var(--primary-light, #3a5687));
  border-radius: 3px 3px 0 0;
  min-width: 4px;
}
.kw-result-list { display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow-y: auto; }
.kw-result-item {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 11px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
}
.kw-result-item:hover { background: var(--primary-soft); border-color: var(--primary); }
.kw-result-title { font-size: 13.5px; font-weight: 700; color: var(--text); }
.kw-result-meta { font-size: 12px; color: var(--text-faint); }
.kw-sentiment-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.kw-sentiment-positive { background: var(--sage-soft); color: var(--sage); }
.kw-sentiment-negative { background: #f6e6e3; color: #8a3f34; }
.kw-sentiment-neutral { background: var(--surface-alt); color: var(--text-muted); }

.analytics-disclosure { margin-top: -2px; margin-bottom: 14px; }

@media (max-width: 720px) {
  .analytics-range-actions { width: 100%; }
  .analytics-range-actions select { flex: 1 1 100%; min-height: 44px; }
  .analytics-range-actions .btn-ghost,
  .analytics-range-actions .btn-primary { flex: 1 1 calc(50% - 4px); min-height: 42px; }
  .kpi-grid { grid-template-columns: 1fr; gap: 12px; }
  .kpi-card { min-height: 118px; padding: 17px 16px 15px; }
  .kpi-card-lead .kpi-value { font-size: 34px; }
  .analytics-insight { grid-template-columns: 1fr; gap: 4px; padding: 14px 15px; }
  .analytics-network { gap: 6px; padding-top: 9px; }
  .analytics-network-item { flex: 1 1 calc(50% - 3px); justify-content: center; padding-inline: 6px; }
  .analytics-topic-signals { grid-template-columns: 1fr; gap: 7px; padding-top: 9px; }
  .analytics-topic-signals-label { padding-top: 0; }
  .analytics-topic-signal-list { gap: 6px; }
  .analytics-topic-signal { flex: 1 1 calc(50% - 3px); justify-content: space-between; }
  .analytics-panel { padding: 16px 14px 18px; }
  .analytics-panel-heading { gap: 10px; }
  .analytics-panel h3 { font-size: 15px; }
  .analytics-panel-note { font-size: 10.5px; padding: 5px 7px; }
  .chart-wrap-lg { height: 266px; }
  .chart-wrap-sources { height: 348px; }
}

@media (min-width: 721px) and (max-width: 1040px) {
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===========================================================================
   LIVE INTERNATIONAL NEWS WIDGET — floating, discreet
   =========================================================================== */
.livenews-widget {
  position: fixed;
  z-index: 900;
  right: 20px;
  bottom: 20px;
  font-family: inherit;
}
.livenews-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 14, 22, 0.72);
  backdrop-filter: blur(3px);
  z-index: 899;
}
.livenews-overlay.hidden { display: none; }

.livenews-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 11px 18px 11px 14px;
  border-radius: 999px;
  border: 1px solid rgba(253, 250, 243, 0.14);
  background: linear-gradient(135deg, #0d1c38 0%, #10203e 60%, #16294c 100%);
  color: #fdfaf3;
  font-weight: 700;
  font-size: 12.5px;
  letter-spacing: .05em;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 8px 24px rgba(16, 32, 62, 0.4), 0 0 0 1px rgba(253, 250, 243, 0.06) inset;
  transition: transform .18s ease, box-shadow .18s ease;
  min-height: 44px;
}
.livenews-widget.state-collapsed .livenews-toggle { display: inline-flex; }
.livenews-toggle:hover { transform: translateY(-2px) scale(1.03); box-shadow: 0 12px 30px rgba(16, 32, 62, 0.5); }
.livenews-toggle:focus-visible {
  outline: 2px solid #f6ecd6;
  outline-offset: 2px;
}

.livenews-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #c0554a;
  box-shadow: 0 0 0 0 rgba(192, 85, 74, 0.7);
  animation: livenews-pulse 1.6s infinite;
  flex-shrink: 0;
}
@keyframes livenews-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(192, 85, 74, 0.65); }
  70%  { box-shadow: 0 0 0 9px rgba(192, 85, 74, 0); }
  100% { box-shadow: 0 0 0 0 rgba(192, 85, 74, 0); }
}

.livenews-panel {
  display: none;
  flex-direction: column;
  width: 360px;
  border-radius: 18px;
  overflow: hidden;
  background: rgba(13, 20, 35, 0.94);
  border: 1px solid rgba(253, 250, 243, 0.12);
  box-shadow: 0 20px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(253, 250, 243, 0.04) inset;
  backdrop-filter: blur(14px) saturate(140%);
  animation: livenews-in .25s ease;
}
@keyframes livenews-in {
  from { opacity: 0; transform: translateY(12px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.livenews-widget.state-expanded .livenews-panel,
.livenews-widget.state-maximized .livenews-panel { display: flex; }

.livenews-widget.state-maximized {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 950;
}
.livenews-widget.state-maximized .livenews-panel { width: min(920px, 92vw); }
.livenews-widget.state-maximized .livenews-video-wrap { aspect-ratio: 16/9; height: auto; }

.livenews-panel-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  background: rgba(253, 250, 243, 0.04);
  border-bottom: 1px solid rgba(253, 250, 243, 0.08);
}
.livenews-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(192, 85, 74, 0.18);
  color: #e3a49c;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .06em;
}
.livenews-channel-select {
  flex: 1;
  background: rgba(253, 250, 243, 0.06);
  border: 1px solid rgba(253, 250, 243, 0.14);
  color: #f2f0ea;
  border-radius: 8px;
  padding: 6px 9px;
  font-size: 12px;
}
.livenews-channel-select option { color: #111; }
.livenews-panel-actions { display: flex; gap: 4px; }
.livenews-icon-btn {
  width: 27px;
  height: 27px;
  border-radius: 8px;
  border: 1px solid rgba(253, 250, 243, 0.14);
  background: rgba(253, 250, 243, 0.06);
  color: #f2f0ea;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s ease;
}
.livenews-icon-btn:hover { background: rgba(253, 250, 243, 0.16); }

.livenews-video-wrap {
  position: relative;
  width: 100%;
  height: 202px;
  background: #05070c;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 480px) {
  .livenews-widget { right: 12px; bottom: 12px; }
  .livenews-toggle { padding: 10px 14px 10px 12px; font-size: 11.5px; gap: 6px; }
  .livenews-toggle-label { display: inline; }
  .livenews-panel { width: min(92vw, 340px); }
  .livenews-video-wrap { height: 176px; }
}

.livenews-video-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.livenews-placeholder {
  color: rgba(253, 250, 243, 0.55);
  font-size: 12.5px;
  text-align: center;
  padding: 0 20px;
}
.livenews-blocked {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 20px;
  text-align: center;
}
.livenews-blocked-text {
  color: rgba(253, 250, 243, 0.7);
  font-size: 12.5px;
  line-height: 1.4;
}
.livenews-blocked-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--sage);
  color: #fdfaf3;
  font-size: 12.5px;
  font-weight: 700;
  padding: 9px 18px;
  border-radius: 999px;
  text-decoration: none;
  transition: background .15s ease;
}
.livenews-blocked-btn:hover { background: #3f6155; }
.livenews-note {
  color: rgba(253, 250, 243, 0.42);
  font-size: 10.5px;
  line-height: 1.4;
  padding: 7px 13px 10px;
  text-align: left;
}

@media (max-width: 480px) {
  .livenews-panel { width: min(320px, 84vw); }
  .livenews-widget { right: 12px; bottom: 12px; }
}

/* ================= Editorial Command Center — final visual pass =================
   These declarations deliberately come last: legacy mobile rules above were written
   for the old compact dashboard and must not collapse the full-screen hero. */
:root {
  --ink: #0d1722;
  --ink-soft: #162431;
  --canvas: #edf0f1;
  --paper: #ffffff;
  --paper-soft: #f7f8f7;
  --line: #d5dbdd;
  --muted: #60717a;
  --muted-bg: #e7edef;
}

body.dashboard-mode {
  background:
    radial-gradient(900px 480px at 100% 16%, rgba(20, 109, 115, 0.08), transparent 66%),
    linear-gradient(180deg, #dfe7e9 0, var(--canvas) 520px, #e8edef 100%);
}

.dashboard-mode header {
  margin-bottom: 0;
  border-bottom-color: rgba(228, 199, 135, 0.22);
  background:
    linear-gradient(90deg, rgba(7, 18, 27, 0.99), rgba(13, 31, 42, 0.97)),
    var(--ink);
  box-shadow: 0 10px 32px rgba(8, 20, 29, 0.18);
}
.dashboard-mode .brand-kicker { color: rgba(228, 199, 135, 0.78); }
.dashboard-mode .brand h1 .brand-unit { color: #e4c787; }
.dashboard-mode .header-actions .btn-ghost {
  border-color: rgba(228, 199, 135, 0.38);
  color: #f5f7f8;
}
.dashboard-mode .header-actions .btn-ghost:hover {
  background: rgba(228, 199, 135, 0.13);
  color: #fff;
}
.dashboard-mode #dashView { padding-bottom: 80px; }
.dashboard-mode #dashView > .card:not(.dash-hero),
.dashboard-mode #dashView > .dash-tiles { position: relative; }
.dashboard-mode #dashView > .card:not(.dash-hero) { overflow: hidden; }
.dashboard-mode #dashView > .card:not(.dash-hero)::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--sage), rgba(20, 109, 115, 0.15) 54%, transparent);
  content: "";
}
.dashboard-mode #dashView > .agenda-card::before {
  background: linear-gradient(90deg, var(--accent), rgba(201, 149, 55, 0.18) 54%, transparent);
}
.dashboard-mode .fp-carousel-card,
.dashboard-mode #cardFeed,
.dashboard-mode #aiBox,
.dashboard-mode #cardClippings,
.dashboard-mode #cardTranscribe,
.dashboard-mode #cardMediaReports {
  border-radius: 20px;
  box-shadow: 0 18px 48px rgba(13, 26, 36, 0.09);
}

.dash-hero {
  min-height: min(700px, 80vh);
  margin-bottom: 44px;
  isolation: isolate;
  background: #09131c;
}
.dash-hero::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  opacity: 0.32;
  background:
    linear-gradient(90deg, rgba(215, 226, 230, 0.09) 1px, transparent 1px) 0 0 / 84px 84px,
    linear-gradient(0deg, rgba(215, 226, 230, 0.06) 1px, transparent 1px) 0 0 / 84px 84px;
  mask-image: linear-gradient(90deg, #000 0, #000 43%, transparent 89%);
  content: "";
}
.dash-hero-video {
  opacity: 1;
  object-position: center 52%;
  filter: saturate(0.88) contrast(1.12) brightness(0.78);
  transform: scale(1.035);
}
.dash-hero-video-shade {
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(5, 13, 20, 0.84) 0%, rgba(5, 13, 20, 0.76) 30%, rgba(5, 13, 20, 0.38) 65%, rgba(5, 13, 20, 0.16) 100%),
    linear-gradient(0deg, rgba(5, 13, 20, 0.54), transparent 58%);
}
.dash-hero-inner {
  z-index: 3;
  min-height: min(700px, 80vh);
  padding: 210px 0 88px;
}
.dash-hero-row { gap: 48px; }
.dash-date-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  position: relative;
  z-index: 4;
}
.dash-date {
  color: rgba(235, 241, 242, 0.75);
  font-size: 15px;
  letter-spacing: 0.005em;
}
.dash-hero-actions {
  flex: 0 1 420px;
  flex-direction: column;
  align-items: flex-end;
}
.dash-context-panel {
  width: min(100%, 420px);
  padding: 14px 16px;
  border: 1px solid rgba(229, 198, 126, 0.28);
  border-radius: 15px;
  background: linear-gradient(125deg, rgba(12, 25, 32, 0.58), rgba(82, 63, 35, 0.34));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}
.dash-meta { margin: 0; }
.dash-chip {
  display: block;
  border-color: rgba(228, 199, 135, 0.34);
  background: rgba(13, 23, 34, 0.34);
  color: #f5f7f8;
  backdrop-filter: blur(10px);
}
.dash-worlddays { margin-top: 10px; color: rgba(235, 241, 242, 0.78); font-size: 0.78rem; line-height: 1.55; }
.dash-worlddays strong,
.dash-worlddays .wd-item b { color: #f5f7f8; }
.dash-hero-actions { justify-content: flex-end; gap: 14px; }
.dash-cta {
  min-height: 58px;
  padding: 16px 22px 16px 25px;
  border: 1px solid rgba(255, 237, 192, 0.52);
  border-radius: 999px;
  background: #d5a448;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.dash-cta:hover:not(:disabled) {
  background: #e5bd68;
  color: #0d1722;
  box-shadow: 0 20px 42px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.dash-weather-wrap { position: relative; z-index: 4; }
.dash-weather-trigger {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  min-width: 166px;
  min-height: 44px;
  padding: 6px 11px 7px 13px;
  border: 1px solid rgba(228, 199, 135, 0.48);
  border-radius: 999px;
  background: linear-gradient(125deg, rgba(26, 38, 41, 0.71), rgba(101, 76, 38, 0.56));
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.13);
  color: #f7f2e6;
  text-align: left;
  backdrop-filter: blur(12px);
  transition: border-color 180ms cubic-bezier(0.16, 1, 0.3, 1), background 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}
.dash-weather-trigger:hover,
.dash-weather-wrap.is-open .dash-weather-trigger {
  border-color: rgba(245, 218, 151, 0.88);
  background: linear-gradient(125deg, rgba(38, 53, 54, 0.92), rgba(125, 91, 38, 0.73));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}
.dash-weather-trigger:active { transform: translateY(0); }
.dash-weather-wrap.is-loading .dash-weather-trigger {
  border-color: rgba(234, 205, 135, 0.32);
}
.dash-weather-wrap.is-loading .dash-weather-trigger-icon {
  animation: weather-trigger-wait 1.5s linear infinite;
}
.dash-weather-wrap.is-unavailable .dash-weather-trigger {
  border-color: rgba(239, 212, 153, 0.26);
  color: rgba(247, 242, 230, 0.78);
}
@keyframes weather-trigger-wait {
  to { transform: rotate(360deg); }
}
.dash-weather-trigger-kicker {
  grid-column: 1;
  color: rgba(239, 218, 165, 0.82);
  font-family: var(--font-body);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.dash-weather-trigger-value { grid-column: 1; font-size: 0.77rem; font-weight: 600; line-height: 1.35; }
.dash-weather-trigger-icon {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  color: #e4c787;
  font-size: 1.1rem;
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}
.dash-weather-wrap.is-open .dash-weather-trigger-icon { transform: rotate(45deg); animation: none; }
.dash-weather-popout {
  position: absolute;
  right: 0;
  bottom: calc(100% + 14px);
  display: grid;
  grid-template-columns: 106px minmax(154px, 1fr);
  gap: 15px;
  width: min(348px, calc(100vw - 36px));
  padding: 17px;
  border: 1px solid rgba(238, 211, 147, 0.4);
  border-radius: 19px;
  background:
    linear-gradient(135deg, rgba(8, 22, 31, 0.97), rgba(23, 42, 51, 0.95) 62%, rgba(83, 68, 42, 0.93)),
    #0a1720;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.44), inset 0 1px 0 rgba(255, 255, 255, 0.13);
  color: #faf6ec;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(0.97);
  transform-origin: right bottom;
  visibility: hidden;
  transition: opacity 210ms cubic-bezier(0.16, 1, 0.3, 1), transform 250ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 250ms;
}
.dash-weather-wrap.is-open .dash-weather-popout {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  visibility: visible;
  transition-delay: 0s;
}
.dash-weather-cinema {
  position: relative;
  display: grid;
  min-height: 106px;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(240, 218, 167, 0.24);
  border-radius: 15px;
  background: linear-gradient(150deg, #173a44, #0b1821 58%, #6a532d);
}
.dash-weather-halo {
  position: absolute;
  width: 135px;
  height: 135px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(240, 201, 111, 0.44), rgba(95, 174, 185, 0.18) 34%, transparent 70%);
  animation: weather-cinema-bloom 7s ease-in-out infinite;
}
@keyframes weather-cinema-bloom {
  0%, 100% { transform: scale(0.8) translate3d(-7%, 6%, 0); opacity: 0.72; }
  50% { transform: scale(1.12) translate3d(8%, -7%, 0); opacity: 1; }
}
.dash-weather-cinema .wx-scene {
  width: 90px;
  height: 90px;
  flex: none;
  z-index: 1;
  border: 1px solid rgba(253, 250, 243, 0.22);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34);
}
.dash-weather-copy { align-self: center; min-width: 0; }
.dash-weather-label {
  color: rgba(239, 218, 165, 0.82);
  font-family: var(--font-body);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.dash-weather-temperature { margin-top: 2px; font-size: 2.45rem; font-weight: 600; letter-spacing: -0.065em; line-height: 0.95; }
.dash-weather-description { margin-top: 7px; color: rgba(247, 242, 230, 0.9); font-size: 0.84rem; line-height: 1.35; }
.dash-weather-range { margin-top: 4px; color: rgba(220, 231, 230, 0.76); font-size: 0.72rem; line-height: 1.35; }
.dash-weather-status {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: -3px;
  color: rgba(220, 231, 230, 0.72);
  font-size: 0.68rem;
}
.dash-weather-status span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #e2bb62;
  box-shadow: 0 0 0 4px rgba(226, 187, 98, 0.14), 0 0 14px rgba(226, 187, 98, 0.75);
  animation: weather-status-pulse 2.2s ease-in-out infinite;
}
@keyframes weather-status-pulse {
  0%, 100% { opacity: 0.65; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.08); }
}
.dash-weather-close {
  position: absolute;
  top: 8px;
  right: 10px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: rgba(250, 246, 236, 0.76);
  font-size: 1.35rem;
  line-height: 1;
}
.dash-weather-close:hover { background: rgba(255, 255, 255, 0.11); color: #fffaf0; }

.dash-tiles { gap: 16px; margin: 34px auto; }
.dash-tile {
  min-height: 164px;
  padding: 22px;
  border-color: rgba(13, 23, 34, 0.13);
  border-radius: 16px;
  background:
    linear-gradient(140deg, rgba(255, 255, 255, 0.92), rgba(247, 249, 249, 0.96)),
    var(--paper);
  box-shadow: 0 13px 30px rgba(13, 26, 36, 0.07);
}
.dash-tile:hover {
  border-color: rgba(20, 109, 115, 0.62);
  box-shadow: 0 18px 36px rgba(13, 26, 36, 0.12);
}
.tile-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: var(--sage-soft);
  font-size: 17px;
}
.tile-count { color: var(--ink); }
.tile-label { font-family: var(--font-display); font-size: 15px; letter-spacing: -0.02em; }
.tile-hint { color: var(--sage); }

.dashboard-mode .card-header h2,
.dashboard-mode #cardTranscribe h2,
.dashboard-mode #cardClippings h2,
.dashboard-mode #cardMediaReports h2 {
  color: #152630;
  font-family: var(--font-display);
}
.dashboard-mode .btn-primary:not(.dash-cta) {
  background: #0d1722;
  border-color: #0d1722;
  box-shadow: 0 8px 18px rgba(13, 23, 34, 0.13);
}
.dashboard-mode .btn-primary:not(.dash-cta):hover:not(:disabled) {
  background: #1d3f4d;
  border-color: #1d3f4d;
}
.dashboard-mode .btn-secondary {
  border-color: rgba(13, 23, 34, 0.17);
  background: #f9fbfb;
}
.dashboard-mode .btn-secondary:hover:not(:disabled) {
  background: #e8f0f0;
  border-color: rgba(20, 109, 115, 0.34);
}
.dashboard-mode .card {
  background: linear-gradient(140deg, rgba(255, 255, 255, 0.97), rgba(247, 250, 250, 0.97));
}

.agenda-head {
  background:
    radial-gradient(640px 260px at 100% -30%, rgba(201, 149, 55, 0.24), transparent 62%),
    linear-gradient(115deg, #0d1722, #172b37);
}
.agenda-head h2 { font-family: var(--font-display); letter-spacing: -0.035em; }
.agenda-mode-btn[aria-selected="true"] { color: var(--ink); }
.agenda-tag { background: var(--sage-soft); color: #12585c; }

.feed-workspace,
.feed-reader,
.feed-results { border-color: var(--border); }
.feed-reader-head {
  background: linear-gradient(115deg, #0d1722, #172b37);
  color: #f5f7f8;
}
.feed-reader-title,
.feed-reader-publisher,
.feed-reader-time,
.feed-reader-empty,
.feed-reader-error { color: inherit; }
.feed-reader-tools {
  background: var(--paper-soft);
  border-color: var(--border);
}

.wiz-topbar {
  border-color: rgba(20, 109, 115, 0.18);
  background:
    linear-gradient(115deg, rgba(13, 23, 34, 0.98), rgba(22, 36, 49, 0.98)),
    var(--ink);
  box-shadow: 0 15px 35px rgba(13, 26, 36, 0.16);
}
.wiz-topbar h2,
.wiz-progress,
.wiz-step-dot { color: #f5f7f8; }
.wiz-step-dot.active { color: #0d1722; background: #e4c787; }
.wiz-step-dot.active .dot-num { border-color: #e4c787; background: #0d1722; color: #f5f7f8; }
.wiz-step-dot.done { color: #b9d9d7; }
.wiz-step-dot.done .dot-num { border-color: #5eaaa7; background: rgba(94, 170, 167, 0.16); color: #dff3f1; }
.wiz-step-dot:not(:last-child)::after { background: rgba(228, 199, 135, 0.28); }
.wiz-step-dot.done:not(:last-child)::after { background: #5eaaa7; }

@media (max-width: 720px) {
  .container { padding-inline: 18px; }
  .dashboard-mode #dashView > :not(.dash-hero),
  .dashboard-mode #dashView > .dash-tiles { width: min(100% - 32px, 1180px); }
  .dash-hero {
    min-height: min(680px, 100svh);
    margin-bottom: 30px;
    padding: 0;
    border-radius: 0;
  }
  .dash-hero-inner {
    width: min(100% - 36px, 1180px);
    min-height: min(680px, 100svh);
    padding: 186px 0 54px;
  }
  .dash-hero-video { object-position: 72% 52%; filter: saturate(0.94) contrast(1.06) brightness(0.93); }
  .dash-hero-video-shade {
    background:
      linear-gradient(180deg, rgba(5, 13, 20, 0.3), rgba(5, 13, 20, 0.42) 38%, rgba(5, 13, 20, 0.86) 100%),
      linear-gradient(90deg, rgba(5, 13, 20, 0.35), transparent 72%);
  }
  .dash-hero-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 28px;
  }
  .dash-hero-actions { align-items: flex-start; justify-content: flex-start; width: 100%; flex-wrap: wrap; }
  .dash-context-panel { width: min(100%, 460px); }
  .dash-cta { width: auto; min-width: 178px; justify-content: center; }
  .dash-weather-trigger { min-width: 174px; }
  .dash-weather-popout {
    right: auto;
    bottom: auto;
    left: 0;
    top: calc(100% + 12px);
    transform-origin: left top;
  }
  .dash-weather-wrap.is-open .dash-weather-popout {
    position: relative;
    top: auto;
    left: auto;
    margin-top: 12px;
    width: min(348px, calc(100vw - 36px));
  }
  .dash-weather-cinema .wx-scene { width: 84px; height: 84px; }
  .dash-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-block: 24px; }
  .dash-tile { min-height: 148px; padding: 16px; }
  .tile-count { font-size: 31px; }
  .tile-label { font-size: 13px; }
  .agenda-card { margin-top: 12px; }
  .fp-carousel-card.card,
  #cardFeed.card,
  #aiBox.card,
  #cardClippings.card,
  #cardTranscribe.card,
  #cardMediaReports.card { border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .dash-weather-halo,
  .dash-weather-status span { animation: none !important; }
}

/* -------------------------------------------------------------------------
   COMMAND CENTER — unified live application theme
   The home view and the report workflow deliberately share the same deep
   navy, teal and antique-gold language. The hero remains the dramatic entry
   point; working surfaces stay calm, high-contrast and readable.
   ------------------------------------------------------------------------- */
body {
  background-color: #07111b;
  background-image:
    radial-gradient(980px 540px at 88% -8%, rgba(23, 117, 126, 0.20), transparent 64%),
    radial-gradient(820px 440px at 5% 4%, rgba(201, 149, 55, 0.11), transparent 66%),
    linear-gradient(180deg, #07111b 0%, #0a1723 48%, #07111b 100%);
  color: #eaf1f3;
}

.dashboard-mode,
html {
  background-color: #07111b;
}

body.dashboard-mode {
  background-image:
    radial-gradient(980px 540px at 88% -8%, rgba(23, 117, 126, 0.20), transparent 64%),
    radial-gradient(820px 440px at 5% 4%, rgba(201, 149, 55, 0.11), transparent 66%),
    linear-gradient(180deg, #07111b 0%, #0a1723 48%, #07111b 100%);
}

body::before {
  opacity: 0.72;
  background-image:
    linear-gradient(90deg, rgba(93, 170, 173, 0.024) 1px, transparent 1px),
    linear-gradient(0deg, rgba(93, 170, 173, 0.02) 1px, transparent 1px),
    radial-gradient(2px 2px at 20% 30%, rgba(228, 199, 135, 0.12) 0%, transparent 100%),
    radial-gradient(2px 2px at 75% 15%, rgba(121, 207, 205, 0.10) 0%, transparent 100%);
  background-size: 80px 80px, 80px 80px, 100% 100%, 100% 100%;
  filter: none;
}

.dashboard-mode .card:not(.dash-hero),
#wizView .card,
.dashboard-mode .dash-tile {
  color: #eaf1f3;
  border-color: rgba(146, 194, 198, 0.18);
  background:
    linear-gradient(145deg, rgba(20, 38, 52, 0.96), rgba(10, 24, 35, 0.97));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24), inset 0 1px 0 rgba(230, 252, 252, 0.035);
}

.dashboard-mode #dashView > .card:not(.dash-hero)::before {
  height: 2px;
  background: linear-gradient(90deg, #d5a448 0%, #4eb5b2 48%, transparent 88%);
}

.dashboard-mode .card:not(.dash-hero) h1,
.dashboard-mode .card:not(.dash-hero) h2,
.dashboard-mode .card:not(.dash-hero) h3,
#wizView .card h1,
#wizView .card h2,
#wizView .card h3,
.dashboard-mode .card-header h2,
.dashboard-mode #cardTranscribe h2,
.dashboard-mode #cardClippings h2,
.dashboard-mode #cardMediaReports h2 {
  color: #f5f8f8;
}

.dashboard-mode .hint,
.dashboard-mode .subtitle,
.dashboard-mode .ai-box-sub,
.dashboard-mode .agenda-sub,
.dashboard-mode .feed-reader-empty,
.dashboard-mode .feed-reader-error,
#wizView .hint,
#wizView .subtitle {
  color: rgba(215, 230, 232, 0.68);
}

.dashboard-mode .btn-secondary,
.dashboard-mode .btn-ghost,
#wizView .btn-secondary,
#wizView .btn-ghost {
  color: #eaf1f3;
  border-color: rgba(151, 202, 205, 0.28);
  background: rgba(18, 43, 54, 0.72);
}

.dashboard-mode .btn-secondary:hover:not(:disabled),
.dashboard-mode .btn-ghost:hover:not(:disabled),
#wizView .btn-secondary:hover:not(:disabled),
#wizView .btn-ghost:hover:not(:disabled) {
  color: #fff;
  border-color: rgba(213, 164, 72, 0.76);
  background: rgba(33, 75, 82, 0.92);
}

.dashboard-mode .btn-primary:not(.dash-cta),
#wizView .btn-primary {
  color: #06121b;
  border-color: #d5a448;
  background: linear-gradient(135deg, #e0b45d, #bd8330);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.30);
}

.dashboard-mode .btn-primary:not(.dash-cta):hover:not(:disabled),
#wizView .btn-primary:hover:not(:disabled) {
  color: #06121b;
  border-color: #f3cb7a;
  background: linear-gradient(135deg, #f0ca78, #d39a43);
}

.dashboard-mode input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.dashboard-mode select,
.dashboard-mode textarea,
#wizView input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
#wizView select,
#wizView textarea {
  color: #ecf5f5;
  border-color: rgba(151, 202, 205, 0.26);
  background: rgba(5, 17, 26, 0.72);
}

.dashboard-mode input:focus,
.dashboard-mode select:focus,
.dashboard-mode textarea:focus,
#wizView input:focus,
#wizView select:focus,
#wizView textarea:focus {
  border-color: #57b6b2;
  box-shadow: 0 0 0 3px rgba(87, 182, 178, 0.18);
}

.dashboard-mode .dash-hero {
  min-height: min(720px, 84vh);
  background: #020a10;
}

.dashboard-mode .dash-hero::before {
  z-index: 2;
  opacity: 0.44;
  background:
    linear-gradient(90deg, rgba(105, 192, 193, 0.12) 1px, transparent 1px) 0 0 / 76px 76px,
    linear-gradient(0deg, rgba(105, 192, 193, 0.075) 1px, transparent 1px) 0 0 / 76px 76px;
  mask-image: linear-gradient(90deg, #000 0%, #000 34%, transparent 76%);
}

.dashboard-mode .dash-hero::after {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(42vw, 580px);
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent 0%, rgba(64, 201, 199, 0.12) 52%, transparent 100%);
  mix-blend-mode: screen;
  opacity: 0.28;
  content: "";
  animation: command-scan 8s linear infinite;
}

.dashboard-mode .dash-hero-video {
  object-position: 58% center;
  filter: saturate(1.08) contrast(1.08) brightness(1.01);
  transform: scale(1.035);
  animation: hero-drift 18s ease-in-out infinite alternate;
}

.dashboard-mode .dash-hero-video-shade {
  background:
    linear-gradient(90deg, rgba(2, 10, 16, 0.93) 0%, rgba(2, 10, 16, 0.79) 30%, rgba(2, 10, 16, 0.43) 54%, rgba(2, 10, 16, 0.06) 100%),
    linear-gradient(0deg, rgba(2, 10, 16, 0.55), transparent 62%);
}

.dashboard-mode .dash-hero-inner {
  min-height: min(720px, 84vh);
  padding: 176px 0 86px;
}

.dashboard-mode .dash-hero-topline {
  color: #e5bf70;
  text-shadow: 0 3px 18px rgba(0, 0, 0, 0.46);
}

.dashboard-mode .dash-hero-signal {
  background: #e2b355;
  box-shadow: 0 0 0 6px rgba(226, 179, 85, 0.14), 0 0 32px rgba(226, 179, 85, 0.72);
  animation: live-pulse 2.4s ease-in-out infinite;
}

.dashboard-mode .dash-date,
.dashboard-mode .dash-worlddays {
  color: rgba(224, 239, 240, 0.76);
}

.dashboard-mode .dash-chip {
  color: #eaf4f4;
  border-color: rgba(214, 191, 121, 0.36);
  background: rgba(7, 23, 33, 0.62);
}

.dashboard-mode .dash-cta {
  color: #07121a;
  border-color: rgba(255, 234, 180, 0.58);
  background: linear-gradient(135deg, #edc36f, #bd8330);
  box-shadow: 0 20px 42px rgba(0, 0, 0, 0.36), inset 0 1px 0 rgba(255, 255, 255, 0.36);
}

.dashboard-mode .dash-cta:hover:not(:disabled) {
  color: #07121a;
  background: linear-gradient(135deg, #f5d48c, #d69d41);
}

/* Keep the hero as a clean cinematic surface. Daily context belongs immediately
   below it, where it remains useful without covering the video composition. */
.dashboard-mode .dash-hero {
  margin-bottom: 18px;
}

.dashboard-mode .dash-hero::before {
  opacity: 0.2;
  mask-image: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.55) 27%, transparent 62%);
}

.dashboard-mode .dash-hero::after {
  opacity: 0.13;
}

.dashboard-mode .dash-hero-video {
  object-position: center center;
  filter: saturate(1.04) contrast(1.04) brightness(1.06);
}

.dashboard-mode .dash-hero-video-shade {
  background:
    linear-gradient(90deg, rgba(2, 10, 16, 0.66) 0%, rgba(2, 10, 16, 0.38) 29%, rgba(2, 10, 16, 0.14) 55%, rgba(2, 10, 16, 0.02) 100%),
    linear-gradient(0deg, rgba(2, 10, 16, 0.5), transparent 48%);
}

.dashboard-mode .dash-hero-inner {
  padding: 0 0 48px;
}

.dashboard-mode .dash-hero-row {
  align-items: flex-end;
}

.dashboard-mode .dash-hero-actions {
  flex: 0 0 auto;
  align-items: flex-end;
}

.dashboard-mode #dashView > .dash-context-strip {
  position: relative;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto 38px;
}

.dash-context-strip {
  overflow: hidden;
  border: 1px solid rgba(152, 115, 57, 0.24);
  border-radius: 18px;
  background:
    radial-gradient(520px 160px at 100% 0%, rgba(255, 246, 215, 0.82), transparent 68%),
    linear-gradient(112deg, #e8d7b0 0%, #f5ead2 48%, #dfc693 100%);
  box-shadow: 0 14px 32px rgba(58, 42, 18, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.dash-context-strip::before {
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(168, 116, 35, 0.74), rgba(237, 204, 128, 0.92), rgba(168, 116, 35, 0.74), transparent);
  content: "";
}

.dash-context-strip-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.5fr);
  gap: 0;
  align-items: stretch;
}

.dash-context-item {
  display: flex;
  min-width: 0;
  min-height: 76px;
  padding: 17px 21px 18px;
  flex-direction: column;
  justify-content: center;
}

.dash-context-item + .dash-context-item {
  border-left: 1px solid rgba(131, 94, 40, 0.18);
}

.dash-context-kicker {
  margin-bottom: 5px;
  color: rgba(94, 67, 29, 0.72);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.dash-context-strip .dash-meta {
  margin: 0;
}

.dash-context-strip .dash-chip {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #3e301c;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.5;
}

.dash-context-strip .dash-worlddays {
  margin: 0;
  color: rgba(69, 52, 29, 0.86);
  font-size: 0.82rem;
  line-height: 1.55;
}

.dash-context-strip .dash-worlddays strong,
.dash-context-strip .dash-worlddays .wd-item b {
  color: #3a2c19;
}

.dash-context-strip .dash-worlddays .wd-sep {
  margin: 0 8px;
  color: rgba(138, 97, 38, 0.72);
}

@media (max-width: 720px) {
  .dashboard-mode .dash-hero {
    min-height: min(620px, 84svh);
    margin-bottom: 14px;
  }

  .dashboard-mode .dash-hero-inner {
    min-height: min(620px, 84svh);
    padding: 0 0 30px;
  }

  .dashboard-mode .dash-hero-video {
    object-position: center center;
    transform: scale(1.01);
  }

  .dashboard-mode .dash-hero-video-shade {
    background:
      linear-gradient(0deg, rgba(2, 10, 16, 0.7), rgba(2, 10, 16, 0.16) 55%, transparent 88%),
      linear-gradient(90deg, rgba(2, 10, 16, 0.35), transparent 64%);
  }

  .dashboard-mode .dash-hero-row {
    gap: 18px;
  }

  .dashboard-mode .dash-hero-actions {
    width: auto;
    align-items: flex-end;
  }

  .dashboard-mode #dashView > .dash-context-strip {
    width: min(100% - 32px, 1180px);
    margin: 0 auto 26px;
  }

  .dash-context-strip-inner {
    grid-template-columns: 1fr;
  }

  .dash-context-item {
    min-height: auto;
    padding: 15px 17px;
  }

  .dash-context-item + .dash-context-item {
    border-top: 1px solid rgba(131, 94, 40, 0.18);
    border-left: 0;
  }
}

.dashboard-mode .dash-tile {
  border-radius: 18px;
}

.dashboard-mode .dash-tile:hover {
  border-color: rgba(94, 191, 187, 0.68);
  background: linear-gradient(145deg, rgba(25, 54, 65, 0.98), rgba(10, 29, 40, 0.99));
  box-shadow: 0 22px 44px rgba(0, 0, 0, 0.31), inset 0 1px 0 rgba(230, 252, 252, 0.06);
}

.dashboard-mode .tile-icon {
  background: rgba(74, 169, 164, 0.15);
}

.dashboard-mode .tile-count,
.dashboard-mode .tile-label {
  color: #f2f8f8;
}

.dashboard-mode .tile-hint {
  color: #78c5c1;
}

.dashboard-mode .agenda-head,
.dashboard-mode .feed-reader-head {
  background:
    radial-gradient(620px 260px at 100% -20%, rgba(213, 164, 72, 0.25), transparent 62%),
    linear-gradient(115deg, #0a1723, #123842);
}

.dashboard-mode .feed-workspace,
.dashboard-mode .feed-results,
.dashboard-mode .feed-reader,
.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-panel,
.dashboard-mode .agenda-foot {
  color: #eaf1f3;
  border-color: rgba(151, 202, 205, 0.18);
  background: rgba(6, 18, 28, 0.56);
}

.dashboard-mode .agenda-tag {
  color: #d8f3f1;
  background: rgba(74, 169, 164, 0.18);
}

#wizView .wiz-topbar {
  border-color: rgba(94, 191, 187, 0.25);
  background:
    radial-gradient(540px 180px at 100% 0%, rgba(213, 164, 72, 0.21), transparent 70%),
    linear-gradient(115deg, #081520, #113540);
}

@keyframes hero-drift {
  from { transform: scale(1.035) translate3d(-0.6%, 0, 0); }
  to { transform: scale(1.075) translate3d(0.7%, -0.5%, 0); }
}

@keyframes command-scan {
  from { transform: translateX(42%); opacity: 0; }
  12%, 76% { opacity: 0.65; }
  to { transform: translateX(-150%); opacity: 0; }
}

@keyframes live-pulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(226, 179, 85, 0.14), 0 0 20px rgba(226, 179, 85, 0.42); }
  50% { box-shadow: 0 0 0 10px rgba(226, 179, 85, 0.04), 0 0 34px rgba(226, 179, 85, 0.86); }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-mode .dash-hero-video,
  .dashboard-mode .dash-hero::after,
  .dashboard-mode .dash-hero-signal {
    animation: none;
  }
}

@media (max-width: 720px) {
  .dashboard-mode .dash-hero,
  .dashboard-mode .dash-hero-inner {
    min-height: min(660px, 100svh);
  }

  .dashboard-mode .dash-hero-inner {
    padding: 136px 0 50px;
  }

  .dashboard-mode .dash-hero-video {
    object-position: 61% center;
  }
}

/* -------------------------------------------------------------------------
   CALM WORKSPACE SURFACES
   Keep the cinematic newsroom treatment in the hero only. The report and
   monitoring workspaces use bright, low-fatigue paper surfaces so they remain
   comfortable during long editorial sessions.
   ------------------------------------------------------------------------- */
body,
body.dashboard-mode {
  background-color: #eef3f4;
  background-image:
    radial-gradient(920px 440px at 100% -12%, rgba(99, 184, 183, 0.11), transparent 66%),
    radial-gradient(760px 420px at 0% 18%, rgba(232, 191, 113, 0.10), transparent 67%),
    linear-gradient(180deg, #f5f8f8 0%, #edf3f4 52%, #e8f0f1 100%);
  color: #17303a;
}

.dashboard-mode,
html {
  background-color: #eef3f4;
}

.dashboard-mode .card:not(.dash-hero),
#wizView .card,
.dashboard-mode .dash-tile {
  position: relative;
  overflow: hidden;
  color: #17303a;
  border-color: rgba(35, 84, 94, 0.14);
  background:
    radial-gradient(420px 180px at 100% 0%, rgba(120, 204, 201, 0.07), transparent 72%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 251, 0.96));
  box-shadow:
    0 12px 30px rgba(21, 54, 64, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
}

/* A quiet moving signal, not a distracting neon effect. */
.dashboard-mode #dashView > .card:not(.dash-hero)::before,
#wizView .card::before,
.dashboard-mode .dash-tile::before {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  pointer-events: none;
  opacity: 0.7;
  background:
    linear-gradient(90deg,
      rgba(71, 168, 166, 0) 0%,
      #63b8b5 18%,
      #75a8d3 39%,
      #dbb35f 57%,
      #b987b5 74%,
      rgba(71, 168, 166, 0) 100%);
  background-size: 260% 100%;
  animation: calm-led-sweep 13s linear infinite;
}

.dashboard-mode .card h1,
.dashboard-mode .card h2,
.dashboard-mode .card h3,
#wizView .card h1,
#wizView .card h2,
#wizView .card h3,
.dashboard-mode .card-header h2,
.dashboard-mode #cardTranscribe h2,
.dashboard-mode #cardClippings h2,
.dashboard-mode #cardMediaReports h2 {
  color: #16313a;
}

.dashboard-mode .hint,
.dashboard-mode .subtitle,
.dashboard-mode .ai-box-sub,
.dashboard-mode .agenda-sub,
.dashboard-mode .feed-reader-empty,
.dashboard-mode .feed-reader-error,
#wizView .hint,
#wizView .subtitle {
  color: #58717a;
}

.dashboard-mode .dash-tile:hover {
  border-color: rgba(47, 139, 142, 0.45);
  background:
    radial-gradient(400px 170px at 100% 0%, rgba(108, 201, 198, 0.12), transparent 70%),
    #ffffff;
  box-shadow:
    0 18px 38px rgba(21, 62, 72, 0.12),
    inset 0 1px 0 #ffffff;
}

.dashboard-mode .tile-count,
.dashboard-mode .tile-label {
  color: #16313a;
}

.dashboard-mode .tile-hint {
  color: #287f80;
}

/* The working panes intentionally stay paper-bright. The dark treatment belongs
   to the hero/video and the compact panel headers only, never to reading areas. */
.dashboard-mode .fp-carousel-card.card,
.dashboard-mode #cardFeed.card,
.dashboard-mode #aiBox.card,
.dashboard-mode #cardClippings.card,
.dashboard-mode #cardTranscribe.card,
.dashboard-mode #cardMediaReports.card,
.dashboard-mode .agenda-card.card {
  background:
    radial-gradient(500px 190px at 100% 0%, rgba(121, 204, 201, 0.09), transparent 72%),
    linear-gradient(145deg, #ffffff, #f6fbfb) !important;
}

.dashboard-mode .feed-workspace,
.dashboard-mode .feed-results,
.dashboard-mode .feed-reader,
.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-panel,
.dashboard-mode .agenda-foot,
.dashboard-mode .fp-carousel-viewport {
  color: #1c3841;
  border-color: rgba(37, 85, 96, 0.13);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(239, 247, 247, 0.92));
}

.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-foot {
  background: #f3f8f8;
}

.dashboard-mode .fp-carousel-item,
.dashboard-mode .fp-carousel-link,
.dashboard-mode .fp-carousel-emptystate,
.dashboard-mode .fp-carousel-errorstate {
  color: #1c3841;
  border-color: rgba(37, 85, 96, 0.15);
  background: #fbfdfd;
}

/* Brighter tabs: the active view is clear without relying on a dark slab. */
#wizView #cardTabs.card {
  padding: 10px 14px !important;
  background:
    radial-gradient(500px 120px at 100% 0%, rgba(119, 195, 193, 0.08), transparent 75%),
    rgba(255, 255, 255, 0.94);
}

#wizView .tabs-row {
  gap: 8px;
  border-bottom: 1px solid rgba(35, 84, 94, 0.13);
}

#wizView .tab-btn {
  min-height: 44px;
  margin-bottom: 7px;
  padding: 10px 15px;
  color: #526a72;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
  transition:
    color 180ms var(--ease-out),
    background 180ms var(--ease-out),
    border-color 180ms var(--ease-out),
    box-shadow 180ms var(--ease-out);
}

#wizView .tab-btn:hover {
  color: #164d56;
  border-color: rgba(55, 132, 136, 0.17);
  background: #edf7f7;
}

#wizView .tab-btn.active {
  color: #123f48;
  border-color: rgba(49, 130, 135, 0.28);
  background:
    linear-gradient(135deg, rgba(220, 244, 243, 0.97), rgba(246, 239, 218, 0.92));
  box-shadow: 0 5px 14px rgba(26, 89, 95, 0.09);
  font-weight: 700;
}

#wizView .tab-count {
  min-width: 23px;
  height: 23px;
  color: #49666d;
  background: #e7eff0;
}

#wizView .tab-btn.active .tab-count {
  color: #ffffff;
  background: #276f75;
}

#wizView .wiz-topbar {
  border-color: rgba(53, 141, 143, 0.18);
  background:
    radial-gradient(520px 180px at 100% 0%, rgba(235, 193, 108, 0.18), transparent 70%),
    linear-gradient(115deg, #15333e, #245660);
  box-shadow: 0 14px 30px rgba(21, 65, 74, 0.18);
}

header::before {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  content: "";
  pointer-events: none;
  opacity: 0.78;
  background:
    linear-gradient(90deg,
      rgba(74, 178, 175, 0) 0%,
      #64bbb7 18%,
      #74a8d1 40%,
      #dbb45f 58%,
      #bd8cb4 76%,
      rgba(74, 178, 175, 0) 100%);
  background-size: 260% 100%;
  box-shadow: 0 1px 8px rgba(113, 184, 182, 0.26);
  animation: calm-led-sweep 15s linear infinite;
}

@keyframes calm-led-sweep {
  from { background-position: 100% 0; }
  to { background-position: -160% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .dashboard-mode #dashView > .card:not(.dash-hero)::before,
  #wizView .card::before,
  .dashboard-mode .dash-tile::before,
  header::before {
    animation: none;
    background-position: 50% 0;
  }
}

/* -------------------------------------------------------------------------
   CINEMATIC CONTINUATION
   The interface continues the command-center atmosphere of the hero through
   a soft dusk-blue workspace. This is deliberately lighter than the video:
   editorial work needs calm contrast and comfortable reading for long sessions.
   ------------------------------------------------------------------------- */
body,
body.dashboard-mode,
.dashboard-mode,
html {
  color: #e7f0f1;
  background-color: #084258;
  background-image:
    radial-gradient(760px 520px at 44% -22%, rgba(127, 184, 190, 0.21), transparent 66%),
    radial-gradient(860px 620px at 100% 58%, rgba(16, 106, 125, 0.34), transparent 70%),
    linear-gradient(135deg, #043446 0%, #0b6271 49%, #063c52 100%);
}

.dashboard-mode #dashView {
  padding-bottom: 96px;
}

.dashboard-mode .card:not(.dash-hero),
#wizView .card,
.dashboard-mode .dash-tile {
  color: #1c3a44;
  border-color: rgba(226, 248, 249, 0.3);
  background:
    radial-gradient(560px 260px at 100% 0%, rgba(207, 236, 236, 0.32), transparent 72%),
    linear-gradient(145deg, rgba(226, 239, 240, 0.94), rgba(170, 203, 209, 0.94)) !important;
  box-shadow:
    0 20px 45px rgba(1, 34, 47, 0.26),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

.dashboard-mode .card:not(.dash-hero) h1,
.dashboard-mode .card:not(.dash-hero) h2,
.dashboard-mode .card:not(.dash-hero) h3,
#wizView .card h1,
#wizView .card h2,
#wizView .card h3,
.dashboard-mode .card-header h2,
.dashboard-mode #cardTranscribe h2,
.dashboard-mode #cardClippings h2,
.dashboard-mode #cardMediaReports h2,
.dashboard-mode .tile-count,
.dashboard-mode .tile-label {
  color: #173a45;
}

.dashboard-mode .hint,
.dashboard-mode .subtitle,
.dashboard-mode .ai-box-sub,
.dashboard-mode .agenda-sub,
.dashboard-mode .feed-reader-empty,
.dashboard-mode .feed-reader-error,
#wizView .hint,
#wizView .subtitle {
  color: #54727b;
}

.dashboard-mode .dash-tile {
  border-radius: 18px;
  background:
    radial-gradient(340px 170px at 100% 0%, rgba(211, 241, 241, 0.24), transparent 72%),
    linear-gradient(145deg, rgba(215, 231, 232, 0.95), rgba(150, 190, 199, 0.95)) !important;
}

.dashboard-mode .fp-carousel-card.card,
.dashboard-mode #cardFeed.card,
.dashboard-mode #aiBox.card,
.dashboard-mode #cardClippings.card,
.dashboard-mode #cardTranscribe.card,
.dashboard-mode #cardMediaReports.card,
.dashboard-mode .agenda-card.card {
  background:
    radial-gradient(560px 260px at 100% 0%, rgba(207, 236, 236, 0.32), transparent 72%),
    linear-gradient(145deg, rgba(226, 239, 240, 0.94), rgba(170, 203, 209, 0.94)) !important;
}

.dashboard-mode .dash-tile:hover {
  border-color: rgba(237, 252, 252, 0.68);
  background:
    radial-gradient(380px 180px at 100% 0%, rgba(232, 250, 250, 0.36), transparent 70%),
    linear-gradient(145deg, rgba(229, 242, 242, 0.98), rgba(168, 205, 211, 0.98)) !important;
  box-shadow:
    0 24px 48px rgba(1, 31, 44, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
}

.dashboard-mode .tile-hint {
  color: #26777e;
}

.dashboard-mode .feed-workspace,
.dashboard-mode .feed-results,
.dashboard-mode .feed-reader,
.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-panel,
.dashboard-mode .agenda-foot,
.dashboard-mode .fp-carousel-viewport {
  color: #23434d;
  border-color: rgba(216, 243, 244, 0.3);
  background:
    linear-gradient(145deg, rgba(225, 240, 241, 0.82), rgba(167, 204, 211, 0.84));
}

.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-foot {
  background: rgba(181, 211, 216, 0.86);
}

.dashboard-mode .fp-carousel-item,
.dashboard-mode .fp-carousel-link,
.dashboard-mode .fp-carousel-emptystate,
.dashboard-mode .fp-carousel-errorstate {
  color: #23434d;
  border-color: rgba(216, 243, 244, 0.3);
  background: rgba(205, 226, 229, 0.88);
}

.dashboard-mode .agenda-tag {
  color: #14545c;
  background: rgba(96, 187, 183, 0.18);
}

/* The wizard is a cool, brighter slate-blue instrument panel with a very clear
   selected tab. It is intentionally lighter than the hero and surrounding canvas. */
#wizView #cardTabs.card {
  border-color: rgba(226, 248, 249, 0.34);
  background:
    radial-gradient(520px 150px at 100% 0%, rgba(225, 247, 247, 0.3), transparent 72%),
    linear-gradient(145deg, rgba(210, 232, 233, 0.95), rgba(140, 181, 191, 0.95)) !important;
}

#wizView .wiz-topbar.card {
  color: #eff8f9;
  border-color: rgba(118, 199, 199, 0.32);
  background:
    radial-gradient(520px 170px at 100% 0%, rgba(212, 165, 76, 0.23), transparent 72%),
    linear-gradient(115deg, #153d49, #1d5863) !important;
  box-shadow:
    0 16px 32px rgba(31, 77, 87, 0.22),
    inset 0 1px 0 rgba(228, 253, 252, 0.12);
}

#wizView .wiz-topbar h2,
#wizView .wiz-topbar .wiz-progress,
#wizView .wiz-topbar .wiz-step-dot {
  color: #eff8f9;
}

#wizView .wiz-topbar .wiz-step-dot:not(:last-child)::after {
  background: rgba(220, 245, 244, 0.28);
}

#wizView .wiz-topbar .wiz-step-dot.active {
  color: #14343f;
  background: #edca79;
}

#wizView .wiz-topbar .wiz-step-dot.active .dot-num {
  color: #f9fdfd;
  border-color: #edca79;
  background: #164952;
}

#wizView .wiz-topbar .wiz-step-dot.done {
  color: #d6f4f1;
}

#wizView .wiz-topbar .wiz-step-dot.done .dot-num {
  color: #e8fbfa;
  border-color: #72c5c0;
  background: rgba(102, 188, 183, 0.21);
}

#wizView .wiz-nav .wiz-progress {
  color: #53727a;
}

#wizView .tabs-row {
  border-bottom-color: rgba(37, 97, 108, 0.17);
}

#wizView .tab-btn {
  color: #244d58;
}

#wizView .tab-btn:hover {
  color: #102f3a;
  border-color: rgba(231, 250, 250, 0.42);
  background: rgba(222, 242, 242, 0.28);
}

#wizView .tab-btn.active {
  color: #153b45;
  border-color: rgba(235, 213, 165, 0.74);
  background:
    linear-gradient(135deg, rgba(214, 235, 233, 0.98), rgba(224, 205, 166, 0.97));
  box-shadow:
    0 9px 20px rgba(5, 48, 61, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.54);
}

#wizView .tab-count {
  color: #365d66;
  background: rgba(92, 171, 173, 0.16);
}

#wizView .tab-btn.active .tab-count {
  color: #f5fcfc;
  background: #14545c;
}

.dashboard-mode .btn-secondary {
  color: #1f4c57;
  border-color: rgba(45, 117, 127, 0.25);
  background: rgba(239, 250, 250, 0.72);
}

.dashboard-mode .btn-secondary:hover:not(:disabled) {
  color: #133f49;
  border-color: rgba(45, 126, 133, 0.48);
  background: rgba(218, 242, 241, 0.94);
}

/* Warm sand action surfaces.
   The workspace remains cool and calm, while selection and date controls are
   deliberately warmer so the next usable action is evident at a glance. */
.dashboard-mode input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
.dashboard-mode select,
#wizView input:not([type="radio"]):not([type="checkbox"]):not([type="file"]),
#wizView select {
  color: #183b44;
  border-color: rgba(112, 77, 31, 0.36);
  background:
    linear-gradient(135deg, rgba(241, 229, 198, 0.98) 0%, rgba(218, 194, 149, 0.98) 54%, rgba(196, 159, 99, 0.98) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.52),
    0 7px 16px rgba(15, 60, 70, 0.1);
}

.dashboard-mode input:not([type="radio"]):not([type="checkbox"]):not([type="file"])::placeholder,
#wizView input:not([type="radio"]):not([type="checkbox"]):not([type="file"])::placeholder {
  color: rgba(33, 72, 79, 0.66);
}

.dashboard-mode select option,
#wizView select option {
  color: #183b44;
  background: #ead7ad;
}

.dashboard-mode input:focus,
.dashboard-mode select:focus,
#wizView input:focus,
#wizView select:focus {
  border-color: #a47737;
  box-shadow:
    0 0 0 3px rgba(185, 143, 70, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.58);
}

.dashboard-mode select:disabled,
#wizView select:disabled,
.dashboard-mode input:disabled,
#wizView input:disabled {
  color: #3b5b61;
  opacity: 0.78;
}

.dashboard-mode #cardAnalytics #btnAnalyticsRefresh,
.dashboard-mode #cardAnalytics #btnAnalyticsApplyRange {
  color: #1b4750;
  border-color: rgba(112, 77, 31, 0.3);
  background:
    linear-gradient(135deg, rgba(246, 237, 215, 0.96), rgba(221, 199, 157, 0.96));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.56),
    0 6px 14px rgba(15, 60, 70, 0.08);
}

.dashboard-mode #cardAnalytics #btnAnalyticsRefresh:hover:not(:disabled),
.dashboard-mode #cardAnalytics #btnAnalyticsApplyRange:hover:not(:disabled) {
  color: #102f37;
  border-color: rgba(126, 85, 31, 0.48);
  background:
    linear-gradient(135deg, rgba(250, 242, 221, 1), rgba(226, 188, 118, 0.98));
}

/* A single, warm material system for the actionable panels throughout the
   dashboard. The surrounding cards stay cool; all call-to-action surfaces
   become unmistakably sand/gold rather than another shade of teal. */
.dashboard-mode #dashView .card .btn-primary:not(:disabled),
.dashboard-mode #dashView .card .btn-secondary:not(:disabled),
.dashboard-mode #dashView .card .btn-ghost:not(:disabled),
.dashboard-mode #dashView .card label.btn-primary,
.dashboard-mode #dashView .card label.btn-secondary {
  color: #21383d;
  border-color: rgba(122, 82, 27, 0.42);
  background:
    linear-gradient(135deg, #f5e6bf 0%, #e8ca8a 52%, #c9973c 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.58),
    0 8px 17px rgba(7, 54, 63, 0.13);
}

.dashboard-mode #dashView .card .btn-primary:hover:not(:disabled),
.dashboard-mode #dashView .card .btn-secondary:hover:not(:disabled),
.dashboard-mode #dashView .card .btn-ghost:hover:not(:disabled),
.dashboard-mode #dashView .card label.btn-primary:hover,
.dashboard-mode #dashView .card label.btn-secondary:hover {
  color: #162e34;
  border-color: rgba(115, 73, 18, 0.58);
  background:
    linear-gradient(135deg, #fff1cc 0%, #eac16e 52%, #bd8427 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.68),
    0 11px 22px rgba(7, 54, 63, 0.18);
}

.dashboard-mode #dashView .card .btn-danger:not(:disabled) {
  color: #682922;
  border-color: rgba(137, 50, 40, 0.38);
  background: linear-gradient(135deg, #f5d7ca, #e9ad96);
}

/* Sandstone editorial workspace.
   The hero and page canvas retain their deep petrol identity. All productive
   interiors move to quiet ivory/sand layers, with gold used only to orient
   action and selection — never the prior cool cyan surface treatment. */
.dashboard-mode .card:not(.dash-hero),
#wizView .card,
.dashboard-mode .dash-tile,
.dashboard-mode .fp-carousel-card.card,
.dashboard-mode #cardFeed.card,
.dashboard-mode #aiBox.card,
.dashboard-mode #cardClippings.card,
.dashboard-mode #cardTranscribe.card,
.dashboard-mode #cardMediaReports.card,
.dashboard-mode .agenda-card.card {
  color: #3d352d;
  border-color: rgba(113, 83, 38, 0.22);
  background:
    radial-gradient(620px 280px at 100% 0%, rgba(255, 248, 229, 0.58), transparent 72%),
    linear-gradient(145deg, rgba(249, 243, 229, 0.97), rgba(222, 206, 170, 0.97)) !important;
  box-shadow:
    0 20px 45px rgba(1, 34, 47, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.58);
}

.dashboard-mode .dash-tile {
  background:
    radial-gradient(340px 170px at 100% 0%, rgba(255, 250, 233, 0.62), transparent 72%),
    linear-gradient(145deg, rgba(247, 239, 219, 0.98), rgba(216, 194, 147, 0.98)) !important;
}

.dashboard-mode .dash-tile:hover {
  border-color: rgba(163, 118, 51, 0.38);
  background:
    radial-gradient(380px 180px at 100% 0%, rgba(255, 252, 239, 0.72), transparent 70%),
    linear-gradient(145deg, rgba(252, 246, 230, 1), rgba(227, 205, 160, 1)) !important;
  box-shadow:
    0 24px 48px rgba(1, 31, 44, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

.dashboard-mode .card:not(.dash-hero) h1,
.dashboard-mode .card:not(.dash-hero) h2,
.dashboard-mode .card:not(.dash-hero) h3,
#wizView .card h1,
#wizView .card h2,
#wizView .card h3,
.dashboard-mode .card-header h2,
.dashboard-mode #cardTranscribe h2,
.dashboard-mode #cardClippings h2,
.dashboard-mode #cardMediaReports h2,
.dashboard-mode .tile-count,
.dashboard-mode .tile-label {
  color: #3b332c;
}

.dashboard-mode .hint,
.dashboard-mode .subtitle,
.dashboard-mode .ai-box-sub,
.dashboard-mode .agenda-sub,
.dashboard-mode .feed-reader-empty,
.dashboard-mode .feed-reader-error,
#wizView .hint,
#wizView .subtitle {
  color: #6e6253;
}

.dashboard-mode .feed-workspace,
.dashboard-mode .feed-results,
.dashboard-mode .feed-reader,
.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-panel,
.dashboard-mode .agenda-foot,
.dashboard-mode .fp-carousel-viewport,
.dashboard-mode .fp-carousel-item,
.dashboard-mode .fp-carousel-link,
.dashboard-mode .fp-carousel-emptystate,
.dashboard-mode .fp-carousel-errorstate {
  color: #4a4035;
  border-color: rgba(117, 83, 34, 0.18);
  background:
    linear-gradient(145deg, rgba(250, 245, 231, 0.89), rgba(225, 209, 174, 0.9));
}

.dashboard-mode .feed-reader-tools,
.dashboard-mode .agenda-foot {
  background: rgba(229, 211, 173, 0.88);
}

.dashboard-mode .agenda-tag,
.dashboard-mode .tile-hint {
  color: #79581f;
  background: rgba(190, 142, 57, 0.14);
}

#wizView #cardTabs.card {
  border-color: rgba(132, 94, 34, 0.24);
  background:
    radial-gradient(520px 150px at 100% 0%, rgba(255, 246, 218, 0.54), transparent 72%),
    linear-gradient(145deg, rgba(245, 235, 211, 0.98), rgba(214, 191, 146, 0.98)) !important;
}

#wizView .tabs-row {
  border-bottom-color: rgba(127, 93, 40, 0.2);
}

#wizView .tab-btn {
  color: #5c4a34;
}

#wizView .tab-btn:hover {
  color: #3d3021;
  border-color: rgba(165, 119, 45, 0.34);
  background: rgba(247, 235, 204, 0.62);
}

#wizView .tab-btn.active {
  color: #3c3022;
  border-color: rgba(174, 124, 41, 0.62);
  background:
    linear-gradient(135deg, rgba(250, 240, 210, 0.99), rgba(218, 181, 103, 0.98));
  box-shadow:
    0 9px 20px rgba(82, 53, 14, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

#wizView .tab-count {
  color: #675234;
  background: rgba(174, 125, 43, 0.15);
}

#wizView .tab-btn.active .tab-count {
  color: #fffaf0;
  background: #8f6728;
}

/* The film remains the uninterrupted opening composition. Supplemental daily
   context lives beside the newspaper workspace rather than stealing any hero
   height or laying a panel over the footage. */
@media (min-width: 961px) {
  .dashboard-mode .dash-hero,
  .dashboard-mode .dash-hero-inner {
    min-height: clamp(620px, 56.25vw, 810px);
  }

  .dashboard-mode .dash-hero-video {
    object-fit: contain;
    transform: none;
    animation: none;
  }

  .dashboard-mode .livenews-widget {
    position: absolute;
    top: calc(clamp(620px, 56.25vw, 810px) - 150px);
    right: 32px;
    bottom: auto;
  }
}

.dashboard-mode .dash-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.34fr);
  gap: 20px;
  align-items: start;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto 38px;
}

.dashboard-mode .dash-dashboard-grid .fp-carousel-card {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.dashboard-mode .dash-dashboard-grid .dash-context-strip {
  position: sticky;
  top: 88px;
  width: 100%;
  margin: 0;
}

.dashboard-mode .dash-dashboard-grid .dash-context-strip-inner {
  grid-template-columns: 1fr;
}

.dashboard-mode .dash-dashboard-grid .dash-context-item {
  min-height: 0;
  padding: 18px 20px;
}

.dashboard-mode .dash-dashboard-grid .dash-context-item + .dash-context-item {
  border-top: 1px solid rgba(131, 94, 40, 0.18);
  border-left: 0;
}

@media (max-width: 960px) {
  .dashboard-mode .dash-dashboard-grid {
    grid-template-columns: 1fr;
    width: min(100% - 32px, 760px);
    gap: 16px;
    margin-bottom: 28px;
  }

  .dashboard-mode .dash-dashboard-grid .dash-context-strip {
    position: relative;
    top: auto;
  }

  .dashboard-mode .dash-dashboard-grid .dash-context-strip-inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.5fr);
  }

  .dashboard-mode .dash-dashboard-grid .dash-context-item + .dash-context-item {
    border-top: 0;
    border-left: 1px solid rgba(131, 94, 40, 0.18);
  }
}

@media (max-width: 620px) {
  .dashboard-mode .dash-dashboard-grid .dash-context-strip-inner {
    grid-template-columns: 1fr;
  }

  .dashboard-mode .dash-dashboard-grid .dash-context-item + .dash-context-item {
    border-top: 1px solid rgba(131, 94, 40, 0.18);
    border-left: 0;
  }
}

/* Lower control rail: on wide and landscape screens the working controls form
   one quiet, horizontal line at the foot of the footage. This preserves the
   editorial composition rather than scattering buttons across the video. */
.dashboard-mode .dash-hero-inner {
  width: 100%;
  min-height: inherit;
  padding: 0;
  justify-content: flex-end;
  background:
    linear-gradient(90deg, rgba(5, 13, 20, 0.9), rgba(12, 25, 33, 0.76) 54%, rgba(33, 43, 37, 0.68)),
    linear-gradient(0deg, rgba(5, 13, 20, 0.42), transparent);
  border-top: 1px solid rgba(237, 213, 155, 0.2);
  backdrop-filter: blur(13px) saturate(115%);
}

.dashboard-mode .dash-hero-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1180px, calc(100% - 48px));
  min-height: 78px;
  margin: 0 auto;
  gap: 20px;
}

.dashboard-mode .dash-hero-text,
.dashboard-mode .dash-date-line,
.dashboard-mode .dash-hero-actions {
  display: flex;
  align-items: center;
}

.dashboard-mode .dash-date-line {
  flex-wrap: nowrap;
  gap: 16px;
}

.dashboard-mode .dash-date {
  white-space: nowrap;
  color: rgba(242, 245, 241, 0.82);
}

.dashboard-mode .dash-hero-actions {
  flex: 0 0 auto;
  flex-direction: row;
  justify-content: flex-end;
  gap: 12px;
}

.dashboard-mode .dash-live-news-slot {
  display: flex;
  align-items: center;
}

.dashboard-mode .dash-live-news-slot .livenews-widget {
  position: relative !important;
  z-index: 8;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  inset: auto !important;
}

.dashboard-mode .dash-live-news-slot .livenews-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 12px);
}

.dashboard-mode .dash-live-news-slot .livenews-widget.state-maximized {
  position: fixed !important;
  inset: 0 !important;
}

.dashboard-mode .dash-live-news-slot .livenews-widget.state-maximized .livenews-panel {
  position: relative;
  right: auto;
  bottom: auto;
}

@media (max-width: 720px) and (orientation: portrait) {
  .dashboard-mode .dash-hero-inner {
    padding: 0;
  }

  .dashboard-mode .dash-hero-row {
    align-items: flex-start;
    flex-direction: column;
    width: min(100% - 36px, 640px);
    min-height: 0;
    padding: 14px 0 16px;
    gap: 12px;
  }

  .dashboard-mode .dash-date-line {
    flex-wrap: wrap;
    gap: 9px 12px;
  }

  .dashboard-mode .dash-hero-actions {
    width: 100%;
    justify-content: space-between;
  }

  .dashboard-mode .dash-live-news-slot .livenews-panel {
    right: auto;
    left: 0;
  }
}

/* ==========================================================================
   FINAL HERO / BRAND / TABS FINISH
   The video is the first visual priority. At desktop width the operational
   context occupies a single glass rail along the lower edge, never a floating
   card over the footage. The same restrained gold language links the wordmark
   and workspace tabs without turning the editing surface into a dark UI.
   ========================================================================== */

header {
  overflow: hidden;
}

.brand-wordmark {
  gap: 0;
  padding: 2px 0 3px;
}

.brand-kicker,
.brand-signature {
  display: inline-block;
  width: max-content;
  max-width: 100%;
  color: #ead18e;
  background:
    linear-gradient(
      105deg,
      #b98731 0%,
      #f9e7ae 25%,
      #fff4cb 41%,
      #d3a852 57%,
      #f5dc97 76%,
      #b98731 100%
    );
  background-size: 240% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 18px rgba(227, 186, 91, 0.19);
  animation: brand-gold-shimmer 9s linear infinite;
}

.brand-kicker {
  font-family: 'Cormorant Garamond', 'Alegreya', Georgia, serif;
  font-size: clamp(0.94rem, 0.85rem + 0.18vw, 1.08rem);
  font-style: italic;
  font-weight: 600;
  letter-spacing: 0.055em;
  line-height: 1.02;
  text-transform: none;
}

.brand-signature {
  margin-top: -1px;
  font-family: 'Alegreya', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.15rem, 1.03rem + 0.3vw, 1.42rem);
  font-style: italic;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 0.98;
}

@keyframes brand-gold-shimmer {
  from {
    background-position: 180% 0;
    filter: brightness(0.98);
  }
  50% {
    filter: brightness(1.12);
  }
  to {
    background-position: -80% 0;
    filter: brightness(0.98);
  }
}

/* Restore the quiet moving LED rail specifically to the working tabs. */
#wizView #cardTabs.card {
  position: relative;
  overflow: hidden;
}

#wizView #cardTabs.card::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  content: '';
  pointer-events: none;
  opacity: 0.78;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      #c28a3b 16%,
      #e7c168 28%,
      #84b8bb 47%,
      #d7a66b 66%,
      #b786c1 81%,
      transparent 100%
    );
  background-size: 260% 100%;
  box-shadow: 0 1px 9px rgba(224, 178, 83, 0.24);
  animation: tabs-led-sweep 16s linear infinite;
}

@keyframes tabs-led-sweep {
  from { background-position: 130% 0; }
  to { background-position: -130% 0; }
}

#wizView .tabs-row {
  position: relative;
  z-index: 1;
}

/* On wide displays, keep the entire video visible and use just one low rail. */
@media (min-width: 961px) {
  .dashboard-mode .dash-hero {
    min-height: clamp(540px, 47vw, 720px);
  }

  .dashboard-mode .dash-hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 50%;
    transform: none;
    filter: saturate(0.94) contrast(1.05) brightness(0.87);
  }

  .dashboard-mode .dash-hero-video-shade {
    background:
      linear-gradient(90deg, rgba(5, 13, 20, 0.2) 0%, transparent 42%, rgba(5, 13, 20, 0.14) 100%),
      linear-gradient(0deg, rgba(4, 12, 18, 0.62) 0%, rgba(4, 12, 18, 0.13) 27%, transparent 56%);
  }

  .dashboard-mode .dash-hero-inner {
    width: 100%;
    min-height: inherit;
    padding: 0;
    justify-content: flex-end;
    background: transparent;
    border: 0;
    backdrop-filter: none;
  }

  .dashboard-mode .dash-hero-row {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) auto auto;
    align-items: center;
    width: 100%;
    min-height: 82px;
    margin: 0 auto;
    padding-inline: max(28px, calc((100vw - 1180px) / 2));
    gap: 18px;
    background:
      linear-gradient(90deg, rgba(5, 13, 20, 0.9), rgba(12, 25, 33, 0.74) 58%, rgba(27, 39, 35, 0.6));
    border-top: 1px solid rgba(240, 216, 157, 0.2);
    backdrop-filter: blur(13px) saturate(115%);
  }

  .dashboard-mode .dash-hero-text,
  .dashboard-mode .dash-date-line,
  .dashboard-mode .dash-hero-actions {
    display: flex;
    align-items: center;
  }

  .dashboard-mode .dash-date-line {
    flex-wrap: nowrap;
    gap: 14px;
  }

  .dashboard-mode .dash-date {
    margin: 0;
    white-space: nowrap;
    color: rgba(246, 247, 240, 0.88);
    font-size: 0.97rem;
    font-weight: 600;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
  }

  .dashboard-mode .dash-hero-actions {
    flex: none;
    flex-direction: row;
    justify-content: end;
    width: auto;
    gap: 12px;
  }

  .dashboard-mode .dash-weather-trigger {
    min-width: 171px;
    min-height: 46px;
  }

  .dashboard-mode .dash-live-news-slot {
    display: flex;
    align-items: center;
  }

  .dashboard-mode .dash-cta {
    min-height: 48px;
    padding: 12px 18px 12px 21px;
    white-space: nowrap;
  }
}

@media (max-width: 960px) {
  .brand-kicker { font-size: 0.91rem; }
  .brand-signature { font-size: 1.13rem; }
}

@media (prefers-reduced-motion: reduce) {
  .brand-kicker,
  .brand-signature,
  #wizView #cardTabs.card::before {
    animation: none;
    background-position: 50% 0;
  }
}

/* The first hero frame is always available, including on networks or mobile
   browser modes that defer autoplay. The video simply replaces it when ready. */
.dash-hero,
.dashboard-mode .dash-hero {
  background-color: #020a10;
  background-image: url("assets/newsroom-hero-poster.jpg?v=cc18");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.dash-hero-video {
  transition: opacity 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.dash-hero.is-video-ready .dash-hero-video,
.dashboard-mode .dash-hero.is-video-ready .dash-hero-video {
  opacity: 1;
}

.dash-hero.has-video-fallback .dash-hero-video,
.dashboard-mode .dash-hero.has-video-fallback .dash-hero-video {
  opacity: 0 !important;
}

.dash-hero-motion-btn {
  position: absolute;
  z-index: 4;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid rgba(249, 224, 163, 0.54);
  border-radius: 999px;
  background: rgba(3, 12, 19, 0.56);
  color: #f9dfa3;
  font: 600 0.71rem/1 var(--font-body, sans-serif);
  letter-spacing: 0.02em;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.23);
  backdrop-filter: blur(8px);
}

.dash-hero-motion-btn:hover,
.dash-hero-motion-btn:focus-visible {
  border-color: #f7d483;
  background: rgba(8, 24, 34, 0.82);
  color: #fff7e4;
}

@media (max-width: 720px) {
  .dash-hero,
  .dashboard-mode .dash-hero {
    background-position: 61% center;
  }
  .dash-hero-poster {
    object-position: 61% center;
  }
  .dash-hero-motion-btn {
    right: 14px;
    bottom: 14px;
    min-height: 32px;
    padding: 6px 10px;
    font-size: 0.68rem;
  }

  .dashboard-mode .dash-hero-motion-btn {
    display: inline-flex !important;
  }
}

/* Mobile weather opens into its own full line, rather than competing with the
   date and the hero controls. This keeps the cinematic panel readable and
   prevents it from being clipped by the hero composition. */
@media (max-width: 960px) {
  .dashboard-mode .dash-hero,
  .dashboard-mode .dash-hero-inner,
  .dashboard-mode .dash-hero-row,
  .dashboard-mode .dash-date-line {
    overflow: visible;
  }

  .dashboard-mode .dash-date-line {
    align-items: flex-start;
  }

  .dashboard-mode .dash-weather-wrap.is-open {
    flex: 0 0 100%;
    width: min(100%, 348px);
  }

  .dashboard-mode .dash-weather-wrap.is-open .dash-weather-popout {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    margin-top: 12px;
    z-index: 35;
    transform-origin: left top;
  }

  .dashboard-mode .dash-weather-wrap.is-open {
    margin-bottom: 10px;
  }
}

@media (max-width: 720px) {
  .dash-hero-motion-btn,
  .dashboard-mode .dash-hero-motion-btn {
    top: 92px;
    right: 14px;
    bottom: auto;
  }
}

/* Mobile hero: render the newsroom footage at its natural landscape ratio.
   The operational controls sit in their own lower rail, so neither a crop nor
   a translucent layer can turn the film into a blurred moving background. */
@media (max-width: 720px) and (orientation: portrait) {
  .dashboard-mode header {
    position: relative;
    inset: auto;
    margin: 0;
    background: #0b151d;
    border-bottom-color: rgba(229, 238, 241, 0.14);
  }

  .dashboard-mode .dash-hero {
    min-height: 0;
    height: auto;
    margin-bottom: 24px;
    padding-top: 56.25vw;
    overflow: visible;
    background: #07121a;
  }

  .dashboard-mode .dash-hero-video,
  .dashboard-mode .dash-hero-poster,
  .dashboard-mode .dash-hero-video-shade {
    bottom: auto;
    height: 56.25vw;
  }

  .dashboard-mode .dash-hero-video,
  .dashboard-mode .dash-hero-poster {
    object-position: center center;
    object-fit: cover;
    transform: none;
    filter: none;
    animation: none;
  }

  .dashboard-mode .dash-hero-video-shade {
    display: none;
  }

  .dashboard-mode .dash-hero::before,
  .dashboard-mode .dash-hero::after {
    display: none;
  }

  .dashboard-mode .dash-hero-inner {
    width: 100%;
    min-height: 0;
    padding: 0;
    background: #07121a;
    border-top: 0;
    backdrop-filter: none;
  }

  .dashboard-mode .dash-hero-row {
    width: min(100% - 32px, 640px);
    margin: 0 auto;
    padding: 16px 0 20px;
    background: transparent;
    backdrop-filter: none;
  }
}

/* Mobile uses the same high-quality source as desktop. The poster remains
   available only until the video proves it is progressing, or if playback
   genuinely fails on a constrained connection/device. */
@media (max-width: 720px) {
  .dashboard-mode .dash-hero-video {
    display: block !important;
  }

  .dashboard-mode .dash-hero-poster {
    display: block;
    opacity: 1;
    object-position: center center;
    filter: none;
    transform: none;
  }

  .dashboard-mode .dash-hero-motion-btn {
    display: none !important;
  }
}

/* Final mobile guard for the analytics pairs.  Chart.js keeps an intrinsic
   canvas width, so the parent grid must explicitly collapse after all other
   dashboard rules have been applied; otherwise the second column can be
   clipped inside the card even though the page itself has no horizontal scroll. */
@media (max-width: 860px) {
  #cardAnalytics .analytics-grid-2 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0;
  }
  #cardAnalytics .analytics-grid-2 > .analytics-panel {
    min-width: 0;
  }
  #cardAnalytics .analytics-grid-2 .chart-wrap,
  #cardAnalytics .analytics-grid-2 canvas {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
  }
}

/* General assistant. The invite remains in the header, while the assistant
   itself is a non-modal floating workspace that never blocks the dashboard. */
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}
.assistant-nudge {
  min-width: 0;
  max-width: min(440px, 48vw);
}
.assistant-nudge-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 8px 10px 8px 14px;
  border: 1px solid rgba(197, 155, 74, 0.52);
  border-radius: 999px;
  background: linear-gradient(120deg, rgba(14, 29, 38, 0.94), rgba(64, 54, 36, 0.92));
  box-shadow: 0 12px 28px rgba(4, 14, 20, 0.23), inset 0 1px 0 rgba(255, 255, 255, 0.13);
  color: #f7f1e3;
  font-family: var(--font-body);
  text-align: left;
  transition: transform 180ms var(--ease-out), border-color 180ms var(--ease-out), box-shadow 180ms var(--ease-out);
}
.assistant-nudge-button:hover,
.assistant-nudge-button:focus-visible {
  transform: translateY(-2px);
  border-color: #f0cf8a;
  box-shadow: 0 16px 34px rgba(4, 14, 20, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
.assistant-nudge-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e8bc62;
  box-shadow: 0 0 0 5px rgba(232, 188, 98, 0.13);
}
.assistant-greeting {
  overflow: hidden;
  color: #faf6ec;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.28;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.assistant-greeting.is-typing::after {
  display: inline-block;
  width: 1px;
  height: 1em;
  margin-left: 2px;
  background: #e8bc62;
  vertical-align: -0.16em;
  animation: assistant-caret 760ms steps(1, end) infinite;
  content: "";
}
.assistant-nudge-action {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(229, 190, 107, 0.17);
  color: #f2d596;
  font-size: 0.73rem;
  font-weight: 700;
}
@keyframes assistant-caret { 50% { opacity: 0; } }

.assistant-dialog {
  position: fixed;
  z-index: 1800;
  right: 24px;
  bottom: 24px;
  left: auto;
  top: auto;
  display: none;
  width: min(430px, calc(100vw - 32px));
  max-height: min(560px, calc(100dvh - 48px));
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(188, 145, 64, 0.45);
  border-radius: 22px;
  background: linear-gradient(150deg, #f9f5eb, #efe8d8);
  color: #1c2a30;
  box-shadow: 0 26px 80px rgba(2, 12, 18, 0.42);
  animation: assistant-panel-in 240ms var(--ease-out, ease-out);
}
.assistant-dialog.is-open { display: flex; flex-direction: column; }
@keyframes assistant-panel-in {
  from { opacity: 0; transform: translateY(12px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.assistant-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 22px 14px;
  border-bottom: 1px solid rgba(153, 119, 56, 0.16);
  background: linear-gradient(115deg, #142934, #3c392d);
  color: #fbf5e8;
}
.assistant-eyebrow {
  margin: 0 0 4px;
  color: #e7c57e;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}
.assistant-dialog h2 { margin: 0; color: inherit; font-family: var(--font-display); font-size: 1.45rem; }
.assistant-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}
.assistant-header-control {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(247, 232, 191, 0.3);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff8ea;
  font-size: 1.35rem;
  line-height: 1;
}
.assistant-header-control:hover,
.assistant-header-control:focus-visible { background: rgba(255, 255, 255, 0.18); }
.assistant-mode-switch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.24fr);
  gap: 6px;
  margin: 12px 18px 0;
  padding: 4px;
  border: 1px solid rgba(153, 119, 56, 0.18);
  border-radius: 13px;
  background: rgba(203, 184, 146, 0.18);
}
.assistant-mode-button {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #4e574f;
  font-size: 0.75rem;
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
}
.assistant-mode-button.is-active {
  border-color: rgba(167, 121, 36, 0.42);
  background: #fffdf8;
  color: #1d3d43;
  box-shadow: 0 2px 7px rgba(50, 42, 27, 0.12);
}
.assistant-intro { margin: 13px 22px 8px; color: #5a5b54; font-size: 0.84rem; line-height: 1.42; }
.assistant-messages {
  display: flex;
  min-height: 82px;
  max-height: 260px;
  margin: 0 18px;
  padding: 8px 4px 8px;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
}
.assistant-message {
  max-width: 92%;
  padding: 11px 13px;
  border-radius: 13px;
  font-size: 0.9rem;
  line-height: 1.48;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.assistant-message--user {
  align-self: flex-end;
  border: 1px solid rgba(148, 112, 44, 0.2);
  background: #e6d2a7;
  color: #252720;
  border-bottom-right-radius: 4px;
}
.assistant-message--answer {
  align-self: flex-start;
  background: #fffdf8;
  box-shadow: 0 4px 12px rgba(22, 35, 39, 0.07);
  border-bottom-left-radius: 4px;
}
.assistant-message--loading { color: #6c675d; font-style: italic; }
.assistant-bog-results,
.assistant-fallback-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 4px 4px;
}
.assistant-bog-result,
.assistant-fallback-action {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 11px 12px;
  border: 1px solid rgba(121, 96, 50, 0.2);
  border-radius: 12px;
  background: rgba(255, 253, 248, 0.84);
  color: #1c2a30;
  text-decoration: none;
  text-align: left;
}
.assistant-bog-result:hover,
.assistant-bog-result:focus-visible,
.assistant-fallback-action:hover,
.assistant-fallback-action:focus-visible {
  border-color: rgba(176, 127, 40, 0.7);
  background: #fffdf8;
}
.assistant-bog-result strong,
.assistant-fallback-action strong { color: #173b42; font-size: 0.82rem; line-height: 1.28; }
.assistant-bog-result span,
.assistant-fallback-action span { color: #5a5b54; font-size: 0.76rem; line-height: 1.35; }
.assistant-bog-result small { color: #8a6729; font-size: 0.7rem; font-weight: 700; }
.assistant-form { display: flex; gap: 10px; padding: 12px 18px 8px; border-top: 1px solid rgba(153, 119, 56, 0.16); }
.assistant-form .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.assistant-form textarea {
  min-height: 48px;
  max-height: 112px;
  flex: 1;
  resize: none;
  border: 1px solid #719d9e !important;
  border-radius: 12px;
  background: #fffdf8 !important;
  color: #1c2a30 !important;
  -webkit-text-fill-color: #1c2a30;
  caret-color: #7a551b;
  opacity: 1 !important;
  padding: 11px 12px;
  font: inherit;
  line-height: 1.35;
}
.assistant-form textarea::placeholder {
  color: #6a7069 !important;
  -webkit-text-fill-color: #6a7069 !important;
  opacity: 1;
}
.assistant-form textarea:focus {
  border-color: #b98a35 !important;
  box-shadow: 0 0 0 3px rgba(203, 161, 75, 0.20) !important;
  outline: none;
}
.assistant-send { align-self: stretch; min-width: 92px; border-radius: 12px; }
.assistant-status { min-height: 20px; margin: 0 22px 16px; color: #8a4a3a; font-size: 0.78rem; }
.assistant-status:empty { display: none; }
.assistant-dialog.is-minimized {
  width: min(306px, calc(100vw - 32px));
  max-height: 72px;
  min-height: 72px;
  border-radius: 16px;
}
.assistant-dialog.is-minimized .assistant-dialog-head {
  align-items: center;
  min-height: 70px;
  padding: 12px 14px;
  border-bottom: 0;
}
.assistant-dialog.is-minimized .assistant-eyebrow { margin: 0; }
.assistant-dialog.is-minimized h2,
.assistant-dialog.is-minimized .assistant-mode-switch,
.assistant-dialog.is-minimized .assistant-intro,
.assistant-dialog.is-minimized .assistant-messages,
.assistant-dialog.is-minimized .assistant-form,
.assistant-dialog.is-minimized .assistant-status { display: none; }
@media (max-width: 720px) {
  .header-inner {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .header-inner .brand {
    flex: 1 1 100%;
  }
  .header-inner .header-actions {
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }
  .assistant-nudge {
    flex: 1 1 auto;
    width: auto;
    max-width: calc(100% - 92px);
  }
  .assistant-nudge-button { width: 100%; justify-content: flex-start; min-height: 48px; }
  .assistant-greeting {
    flex: 1;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    white-space: normal;
    text-overflow: clip;
  }
  .assistant-dialog {
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom) + var(--assistant-keyboard-offset, 0px));
    width: calc(100vw - 24px);
    max-height: min(470px, calc(100dvh - 24px - env(safe-area-inset-bottom)));
    border-radius: 18px;
  }
  .assistant-dialog-head { padding: 16px 18px 11px; }
  .assistant-mode-switch { margin: 9px 14px 0; }
  .assistant-mode-button { min-height: 42px; padding: 7px 8px; font-size: 0.72rem; }
  .assistant-intro { margin: 10px 18px 6px; }
  .assistant-messages { min-height: 66px; max-height: min(168px, 25dvh); margin: 0 14px; }
  .assistant-message { max-width: 94%; padding: 9px 11px; font-size: 0.88rem; }
  .assistant-form { gap: 8px; padding: 9px 14px 7px; }
  .assistant-form textarea { min-height: 54px; padding: 10px 12px; }
  .assistant-form { align-items: stretch; flex-direction: column; }
  .assistant-send { min-height: 44px; }
  .assistant-dialog.is-minimized { width: min(284px, calc(100vw - 24px)); }
}

/* Mobile assistant: compact by default and deliberately high-contrast. The
   input rules use the concrete id to override broad dashboard form styling. */
#assistantInput,
#assistantInput:focus,
#assistantInput:-webkit-autofill {
  color: #182f35 !important;
  -webkit-text-fill-color: #182f35 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
#assistantInput::placeholder {
  color: #596861 !important;
  -webkit-text-fill-color: #596861 !important;
  opacity: 1 !important;
}
@media (max-width: 720px) {
  .assistant-dialog {
    width: min(390px, calc(100vw - 24px));
    height: min(400px, var(--assistant-visual-height, calc(100dvh - 24px - env(safe-area-inset-bottom))));
    max-height: min(400px, var(--assistant-visual-height, calc(100dvh - 24px - env(safe-area-inset-bottom))));
    min-height: 0;
  }
  .assistant-dialog-head { padding: 13px 15px 9px; }
  .assistant-dialog h2 { font-size: 1.22rem; }
  .assistant-intro { margin: 8px 16px 4px; font-size: 0.81rem; }
  .assistant-messages {
    flex: 1 1 auto;
    min-height: 54px;
    max-height: none;
    margin: 0 12px;
    padding-top: 6px;
    padding-bottom: 6px;
  }
  .assistant-form { flex: 0 0 auto; padding: 8px 12px 7px; }
  #assistantInput {
    min-height: 50px;
    font-size: 16px !important;
    font-weight: 500;
  }
  .assistant-status { margin: 0 16px 10px; }

  /* When a phone keyboard is open, preserve the composer first; only the
     conversation body becomes scrollable. */
  .assistant-dialog.has-keyboard {
    height: var(--assistant-visual-height);
    max-height: var(--assistant-visual-height);
  }
  .assistant-dialog.has-keyboard .assistant-dialog-head {
    min-height: 58px;
    padding: 8px 12px 7px;
  }
  .assistant-dialog.has-keyboard .assistant-eyebrow {
    display: none;
  }
  .assistant-dialog.has-keyboard .assistant-dialog h2 {
    font-size: 1rem;
    line-height: 1.2;
  }
  .assistant-dialog.has-keyboard .assistant-header-control {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 1.18rem;
  }
  .assistant-dialog.has-keyboard .assistant-intro {
    display: none;
  }
  .assistant-dialog.has-keyboard .assistant-mode-switch {
    display: none;
  }
  .assistant-dialog.has-keyboard .assistant-messages {
    min-height: 0;
    padding: 4px 0;
  }
  .assistant-dialog.has-keyboard .assistant-form {
    flex-direction: row;
    align-items: stretch;
    gap: 7px;
    padding: 7px 10px 6px;
  }
  .assistant-dialog.has-keyboard #assistantInput {
    width: auto;
    min-width: 0;
    min-height: 52px;
    max-height: 64px;
    padding: 9px 10px;
  }
  .assistant-dialog.has-keyboard .assistant-send {
    min-width: 78px;
    min-height: 52px;
    padding: 0 10px;
  }
  .assistant-dialog.has-keyboard .assistant-status {
    min-height: 0;
    margin: 0 12px 6px;
    font-size: 0.72rem;
    line-height: 1.25;
  }
}
@media (prefers-reduced-motion: reduce) {
  .assistant-nudge-button,
  .assistant-greeting.is-typing::after { animation: none; transition: none; }
}
