/* Analyst console. Operate mode: scanning, consistency, restraint.
 * Chart room aesthetic: white paper, dark ink, hairline rules, signal red for flagged items.
 */

.strip { border-bottom: 1px solid var(--rule); }
.strip__in { display: flex; flex-wrap: wrap; gap: 0.5rem 0; align-items: center; min-height: 48px; }
.strip__item { padding: 0 1.5rem; border-left: 1px solid var(--rule); font-size: var(--fs-meta); }
.strip__item:first-child { padding-left: 0; border-left: 0; }
.strip__item b { font-weight: 500; margin-left: 0.4rem; }
.strip .tag { margin-left: auto; }

.wrap--wide { max-width: 1600px; width: 100%; margin: 0 auto; padding: 0 var(--gutter); }

.console { display: grid; grid-template-columns: 360px 1fr; min-height: calc(100vh - var(--header-h) - 49px); }
.detail__body-grid { display: block; }

@media (min-width: 1100px) {
  .console { grid-template-columns: 320px minmax(0, 1fr); }
  .detail__body-grid {
    display: grid;
    grid-template-columns: minmax(440px, 1.22fr) minmax(380px, 1fr);
    gap: 2.25rem;
    align-items: start;
  }
  .detail__col { min-width: 0; }
  .detail__col--secondary > .block:first-child {
    margin-top: 1.75rem;
  }
}
.queue { border-right: 1px solid var(--rule); }
.queue__hello { padding: 1rem 1rem 0.25rem 0; font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.01em; }
.queue__filters { display: flex; gap: 0.5rem; padding: 0.75rem 1rem 0.75rem 0; border-bottom: 1px solid var(--rule); }
.queue__filters select { flex: 1; min-width: 0; background: var(--paper); border: 1px solid var(--rule); border-radius: 2px; padding: 0.45rem 0.5rem; font-size: var(--fs-small); color: var(--ink); }
.queue__keys { padding: 0.5rem 1rem 0.75rem 0; font-size: var(--fs-meta); margin: 0; border-bottom: 1px solid var(--rule); }

.row { display: grid; grid-template-columns: 14px 1fr auto; gap: 0 0.5rem; align-items: baseline; width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--rule); padding: 0.85rem 1rem 0.85rem 0; cursor: pointer; transition: background 160ms; }
.row:hover { background: var(--paper-deep); }
.row[aria-current="true"] { background: var(--paper-deep); }
.row__dot { width: 6px; height: 6px; background: var(--signal); align-self: center; border-radius: 50%; }
.row__dot--off { background: transparent; }
.row__name { font-weight: 500; color: var(--ink); }
.row__sub { grid-column: 2 / 3; font-size: var(--fs-meta); color: var(--ink-3); }
.row__num { text-align: right; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.queue__msg { padding: 2rem 1rem 2rem 0; color: var(--ink-3); font-size: var(--fs-small); }

.detail { padding: 1.5rem 0 3rem 2.5rem; min-width: 0; animation: rise 600ms var(--ease) both; }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.map-track { stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: trace 1800ms var(--ease-io) 150ms forwards; }
@keyframes trace { to { stroke-dashoffset: 0; } }
.block { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--rule); animation: rise 700ms var(--ease) both; }
.block:nth-of-type(2) { animation-delay: 80ms; }
.block:nth-of-type(3) { animation-delay: 160ms; }
.block:nth-of-type(4) { animation-delay: 240ms; }
.block:nth-of-type(5) { animation-delay: 320ms; }
.block:nth-of-type(6) { animation-delay: 400ms; }
.row { animation: rise 500ms var(--ease) both; }

@media (prefers-reduced-motion: reduce) {
  .detail, .block, .row { animation: none; }
  .map-track { animation: none; stroke-dashoffset: 0; }
}

.detail__back { display: none; background: none; border: 0; padding: 0 0 1rem; text-decoration: underline; text-underline-offset: 6px; cursor: pointer; font-size: var(--fs-small); }
.detail h2 { font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.75rem); margin: 0.5rem 0 0.25rem; font-family: var(--font-serif); font-weight: 400; line-height: 1.1; }
.detail h2 .flag { color: var(--signal); }
.detail__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; color: var(--ink-3); font-size: var(--fs-meta); }

.block h3 { font-family: var(--font-sans); font-size: var(--fs-small); font-weight: 500; letter-spacing: 0; margin-bottom: 1rem; color: var(--ink); }
.block ul li { padding: 0.35rem 0; max-width: 64ch; color: var(--ink-2); position: relative; padding-left: 1.25rem; }
.block ul li::before { content: "—"; position: absolute; left: 0; color: var(--ink-3); }

/* Table styling */
.tbl { width: 100%; max-width: 64ch; border-collapse: collapse; font-size: var(--fs-small); }
.tbl th { text-align: left; font-weight: 500; padding: 0.5rem 0; border-bottom: 1px solid var(--ink); font-size: var(--fs-meta); color: var(--ink); }
.tbl td { padding: 0.6rem 0; border-bottom: 1px solid var(--rule); color: var(--ink-2); }
.tbl .r { text-align: right; }

/* Log list */
.log { padding: 0; margin: 0; max-width: 64ch; }
.log li { display: flex; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--rule); font-size: var(--fs-small); color: var(--ink-2); }
.log li .mono { flex: 0 0 160px; color: var(--ink-3); }

/* Map container */
.map { width: 100%; height: auto; background: var(--sea-tint); }
.map-container { width: 100%; height: 360px; border-radius: 2px; overflow: hidden; background: var(--sea-tint); position: relative; border: 1px solid var(--rule); }
.maplibregl-canvas { outline: none; }
.map__legend { display: flex; flex-wrap: wrap; gap: 0.35rem 1.5rem; margin-top: 0.6rem; font-size: var(--fs-meta); color: var(--ink-3); }

/* Buttons & Report Box */
.btn--small { padding: 0.4rem 0.85rem; font-size: var(--fs-meta); border-radius: 2px; }
.btn--secondary { background: var(--paper-deep); color: var(--ink); border: 1px solid var(--rule); margin-left: 0.5rem; }
.btn--secondary:hover { background: var(--paper); border-color: var(--ink-2); transform: translateY(-1px); }

.report-box { background: var(--paper-deep); padding: 1.25rem 1.5rem; border-radius: 2px; border-left: 3px solid var(--ink); margin-bottom: 0.75rem; max-width: 68ch; }
.report { white-space: pre-wrap; font-size: var(--fs-small); line-height: 1.6; color: var(--ink-2); margin-bottom: 1rem; font-family: var(--font-sans); }
.candidate-zone-prompt { margin-top: 0.5rem; margin-bottom: 1rem; padding: 0.5rem 0.75rem; background: var(--paper-deep); border-radius: 2px; font-size: var(--fs-small); display: flex; align-items: center; gap: 0.5rem; }

/* Verdict form */
.verdicts { display: grid; gap: 0.5rem; margin-bottom: 1rem; }
.verdicts label { display: flex; gap: 0.6rem; align-items: center; cursor: pointer; font-size: var(--fs-small); color: var(--ink-2); }
.verdicts input { accent-color: var(--ink); }
.notes { width: 100%; max-width: 64ch; min-height: 5rem; background: var(--paper); border: 1px solid var(--rule); border-radius: 2px; padding: 0.6rem; margin-bottom: 1rem; display: block; font-size: var(--fs-small); }
.notes:focus { outline: 2px solid var(--ink); outline-offset: 1px; }

/* Fleet context */
.fleet-ctx { display: flex; gap: 2rem; align-items: center; flex-wrap: wrap; }
.fleet-ctx svg { width: 160px; height: auto; flex: none; }
.skeleton { color: var(--ink-3); padding: 3rem 0; font-size: var(--fs-small); }

/* Quiet Demonstration Modal (Restrained Chart-Room Aesthetic) */
.demo-dialog-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(10, 26, 43, 0.45);
  backdrop-filter: blur(2px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.demo-dialog {
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 2px;
  max-width: 480px;
  width: 100%;
  padding: 1.75rem 2rem;
  box-shadow: 0 12px 32px rgba(10, 26, 43, 0.15);
}
.demo-dialog h3 {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  margin-bottom: 0.75rem;
  color: var(--ink);
}
.demo-dialog p {
  font-size: var(--fs-small);
  color: var(--ink-2);
  line-height: 1.55;
  margin-bottom: 0.75rem;
}

@media (max-width: 860px) {
  .console { grid-template-columns: 1fr; }
  .queue { border-right: 0; }
  .detail { padding-left: 0; display: none; }
  .console[data-view="detail"] .queue { display: none; }
  .console[data-view="detail"] .detail { display: block; }
  .detail__back { display: block; }
  .strip .tag { margin-left: 0; }
}

/* ==========================================================================
   PRINT / PDF EXPORT STYLES (CLASSIFIED CHART-ROOM FORMAT)
   ========================================================================== */
@media print {
  body {
    background: #ffffff !important;
    color: #000000 !important;
    font-size: 11pt !important;
  }
  .header,
  .footer,
  .strip,
  .queue,
  .detail__back,
  [data-module="map"],
  [data-module="review-form"],
  .btn,
  .demo-dialog-backdrop {
    display: none !important;
  }
  .console {
    display: block !important;
    min-height: auto !important;
  }
  .detail {
    padding: 0 !important;
    animation: none !important;
  }
  .report-box {
    background: transparent !important;
    border-left: 2px solid #000 !important;
    padding: 0 0 0 16px !important;
  }
  .report {
    color: #000000 !important;
  }
}
