/* ============================================================
   STELLARIA REPORTS  — single-page intelligence report builder
   Dark editor shell (token system) wrapping a white, A4-landscape
   document rendered in Calibri and exported to PDF.
   ============================================================ */

/* ---- Editor overlay (fills the host content area) ---- */
.st-rpt {
  position: absolute; inset: 0; z-index: calc(var(--z-overlay) + 6);
  background: var(--c-elev-1); color-scheme: dark;
  display: flex; flex-direction: column;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity 160ms var(--ease-tactical), transform 160ms var(--ease-tactical), visibility 0s linear 160ms;
}
.st-rpt[data-open="true"] { opacity: 1; visibility: visible; transform: none; transition: opacity 160ms var(--ease-tactical), transform 160ms var(--ease-tactical); }
@media (prefers-reduced-motion: reduce) { .st-rpt { transition: none; transform: none; } }

.st-rpt__bar {
  display: flex; align-items: center; gap: var(--sp-1);
  padding: var(--sp-1) var(--sp-2); min-height: 44px;
  border-bottom: var(--border-1) solid var(--c-border); background: var(--c-elev-2);
}
.st-rpt__bar-title { font-family: var(--f-mono); font-size: 12px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase; color: var(--c-white); }
.st-rpt__bar-spacer { flex: 1; }
.st-rpt__btn {
  display: inline-flex; align-items: center; gap: var(--sp-0_5);
  font-family: var(--f-mono); font-size: 11px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase;
  color: var(--c-white); background: transparent; border: var(--border-1) solid var(--c-border); border-radius: var(--r-2, 6px);
  padding: var(--sp-0_5) var(--sp-2); cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease-tactical), background var(--dur-fast) var(--ease-tactical);
}
.st-rpt__btn:hover { border-color: var(--c-border-h); }
.st-rpt__btn--primary { background: var(--c-accent); border-color: var(--c-accent); }
.st-rpt__btn--primary:hover { background: var(--c-accent); opacity: 0.92; }
.st-rpt__iconbtn { background: transparent; border: var(--border-1) solid transparent; color: var(--c-fg-dim); cursor: pointer; padding: var(--sp-0_5); display: inline-flex; border-radius: var(--r-2, 6px); }
.st-rpt__iconbtn:hover { color: var(--c-white); border-color: var(--c-border); }
.st-rpt__iconbtn svg { width: 16px; height: 16px; stroke-width: var(--icon-stroke); }

/* classification selector in the bar */
.st-rpt__class { position: relative; }
.st-rpt__class-btn {
  font-family: var(--f-mono); font-size: 11px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase;
  background: var(--c-elev-1); border: var(--border-1) solid var(--c-border); border-radius: var(--r-2, 6px);
  padding: var(--sp-0_5) var(--sp-1); cursor: pointer; color: var(--c-white);
}
.st-rpt__class-menu {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 5; display: none;
  background: var(--c-elev-2); border: var(--border-1) solid var(--c-border); min-width: 160px;
}
.st-rpt__class-menu[data-open="true"] { display: block; }
.st-rpt__class-opt {
  display: block; width: 100%; text-align: left; background: transparent; border: 0;
  font-family: var(--f-mono); font-size: 11px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase;
  color: var(--c-fg-dim); padding: var(--sp-0_5) var(--sp-1); cursor: pointer;
}
.st-rpt__class-opt:hover { background: var(--c-elev-1); color: var(--c-white); }

.st-rpt__scroll { flex: 1; overflow: auto; display: flex; justify-content: center; align-items: flex-start; padding: var(--sp-2); }

/* ============================================================
   THE DOCUMENT (white, Calibri, A4 landscape ~1123x794 @96dpi)
   This element is what html2pdf exports.
   ============================================================ */
.st-rpt-doc {
  width: 1123px; min-height: 794px;   /* allow-raw — fixed A4 landscape page */
  background: #ffffff;                  /* allow-raw — printed paper */
  color: #111111;                       /* allow-raw — print ink */
  font-family: Calibri, 'Segoe UI', Arial, sans-serif;
  display: flex; flex-direction: column; box-sizing: border-box;
}
.st-rpt-doc__head {
  display: grid; grid-template-columns: 1fr 1.4fr 1fr; align-items: center;
  padding: 14px 18px; gap: 12px;        /* allow-raw — document layout */
  border-bottom: 2px solid #111;        /* allow-raw */
}
.st-rpt-doc__logo img { height: 42px; display: block; }  /* allow-raw */
.st-rpt-doc__logo-fallback { font-weight: 700; font-size: 22px; letter-spacing: 1px; color: #1a2440; }  /* allow-raw */
.st-rpt-doc__center { text-align: center; }
.st-rpt-doc__class { font-weight: 700; font-size: 17px; color: #c00000; }  /* allow-raw — classification banner */
.st-rpt-doc__title { font-weight: 700; font-size: 19px; color: #111; outline: none; }  /* allow-raw */
.st-rpt-doc__geo { text-align: right; }
.st-rpt-doc__geo-label { font-size: 17px; color: #111; }  /* allow-raw */
.st-rpt-doc__coords { font-size: 16px; color: #111; outline: none; }  /* allow-raw */

.st-rpt-doc__body { flex: 1; display: grid; grid-template-columns: 320px 1fr; }  /* allow-raw — sidebar + image */
.st-rpt-doc__side { border-right: 2px solid #111; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }  /* allow-raw */
.st-rpt-doc__locator { border: 2px dashed #c00000; padding: 2px; }  /* allow-raw */
.st-rpt-doc__locator img { display: block; width: 100%; height: auto; }
.st-rpt-doc__meta { font-size: 14px; line-height: 1.5; border-bottom: 2px solid #111; padding-bottom: 8px; }  /* allow-raw */
.st-rpt-doc__meta > div { margin: 2px 0; }
.st-rpt-doc__lbl { font-weight: 700; }
.st-rpt-doc__meta [contenteditable], .st-rpt-doc__title, .st-rpt-doc__coords { outline: none; }
.st-rpt-doc__h { font-weight: 700; font-size: 15px; margin-bottom: 4px; }  /* allow-raw */
.st-rpt-doc__analysis { font-size: 14px; line-height: 1.5; text-align: justify; outline: none; min-height: 60px; }  /* allow-raw */
.st-rpt-doc__sec { border-bottom: 2px solid #111; padding-bottom: 8px; }  /* allow-raw */
.st-rpt-doc__sec:last-child { border-bottom: 0; }
.st-rpt-doc__key { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; font-weight: 700; }  /* allow-raw */
.st-rpt-doc__key-swatch { width: 14px; height: 14px; background: #c00000; flex: 0 0 auto; margin-top: 2px; }  /* allow-raw */
.st-rpt-doc__main { position: relative; background: #000; overflow: hidden; }  /* allow-raw */
.st-rpt-doc__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.st-rpt-doc__north { position: absolute; top: 10px; right: 14px; color: #fff; font-weight: 700; text-align: center; line-height: 1; }  /* allow-raw */
.st-rpt-doc__north svg { width: 22px; height: 26px; display: block; margin: 0 auto; }  /* allow-raw */

/* editable affordance (screen only; html2pdf ignores :hover) */
.st-rpt-doc [contenteditable]:hover { background: rgba(8,85,224,0.06); }  /* allow-raw — subtle edit hint */
.st-rpt-doc [contenteditable]:focus { background: rgba(8,85,224,0.10); }  /* allow-raw */

/* ---- Capturing / busy state ---- */
.st-rpt__busy {
  position: absolute; inset: 0; display: none; align-items: center; justify-content: center;
  background: var(--c-elev-1); z-index: 10;
  font-family: var(--f-mono); font-size: 12px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase; color: var(--c-fg-dim);
}
.st-rpt[data-busy="true"] .st-rpt__busy { display: flex; }

/* ---- Re-capture floating bar (over the map) ---- */
.st-rpt-recap {
  position: absolute; top: var(--sp-2); left: 50%; transform: translateX(-50%);
  z-index: calc(var(--z-overlay) + 7); display: none; align-items: center; gap: var(--sp-1);
  background: var(--c-elev-2); border: var(--border-1) solid var(--c-border); padding: var(--sp-0_5) var(--sp-1);
}
.st-rpt-recap[data-open="true"] { display: flex; }
.st-rpt-recap span { font-family: var(--f-mono); font-size: 11px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase; color: var(--c-fg-dim); }

/* ---- Library (saved reports) ---- */
.st-rpt__lib { display: none; flex: 1; overflow: auto; padding: var(--sp-2); }
.st-rpt[data-mode="library"] .st-rpt__lib { display: block; }
.st-rpt[data-mode="library"] .st-rpt__scroll { display: none; }
.st-rpt__lib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--sp-2); max-width: 1100px; margin: 0 auto; }
.st-rpt__card { border: var(--border-1) solid var(--c-border); background: var(--c-elev-2); display: flex; flex-direction: column; }
.st-rpt__card-thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--c-elev-1); display: block; }
.st-rpt__card-body { padding: var(--sp-1) var(--sp-2); display: flex; flex-direction: column; gap: 2px; }
.st-rpt__card-title { font-size: 13px; /* allow-raw */ color: var(--c-white); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st-rpt__card-meta { font-family: var(--f-mono); font-size: 11px; /* allow-raw */ color: var(--c-fg-muted); }
.st-rpt__card-actions { display: flex; gap: var(--sp-0_5); padding: var(--sp-0_5) var(--sp-2) var(--sp-1); }
.st-rpt__card-act { font-family: var(--f-mono); font-size: 11px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase; color: var(--c-fg-dim); background: transparent; border: var(--border-1) solid var(--c-border); border-radius: var(--r-2, 6px); padding: 2px var(--sp-1); cursor: pointer; }
.st-rpt__card-act:hover { color: var(--c-white); border-color: var(--c-border-h); }
.st-rpt__lib-empty { text-align: center; color: var(--c-fg-muted); font-family: var(--f-mono); font-size: 12px; /* allow-raw */ letter-spacing: var(--ls-mono-cap); text-transform: uppercase; padding: var(--sp-4); }
