/* ============================================================
   Search Execution phase dashboard (S3, read-only shell).
   All selectors are scoped under `.se-page` and prefixed `se-` to avoid
   colliding with existing surface classes (.coach/.hero/.empty live elsewhere).
   Tokens (--bp-*) and components (.bp-btn/.bp-card/.bp-badge/.t-label) are
   supplied app-wide by application.css / components.css.
   ============================================================ */
.se-page { max-width: 1180px; margin: 0 auto; }
.se-page .se-ic {
  width: 1em; height: 1em; display: inline-block; vertical-align: -.14em;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round; flex: none;
}
.se-page .se-link { font-size: 13px; font-weight: 600; text-decoration: none; color: var(--bp-accent); }
.se-page .is-soon,
.se-page .se-soon-btn[disabled] { opacity: .55; cursor: default; pointer-events: none; }
.se-page .se-kicker {
  font-family: var(--bp-mono-family); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--bp-ink-muted);
}

/* section heads --------------------------------------------------- */
.se-page .se-section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; margin: 0 0 14px;
}

/* coach banner ---------------------------------------------------- */
.se-coach {
  display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start;
  background: var(--bp-paper); border: 1px solid var(--bp-rule);
  border-left-width: 4px; border-left-color: var(--bp-accent);
  border-radius: var(--bp-r-lg); padding: 18px 22px; margin-bottom: 22px;
}
.se-coach__avatar {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--bp-accent-soft); color: var(--bp-accent);
  display: grid; place-items: center;
  font-family: var(--bp-display-family); font-weight: 600; font-size: 16px;
}
.se-coach__label {
  font-family: var(--bp-mono-family); font-size: 10.5px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--bp-ink-muted); margin-bottom: 6px;
}
.se-coach__welcome {
  font-family: var(--bp-display-family); font-weight: 500; font-size: 22px;
  line-height: 1.2; margin: 0 0 8px; letter-spacing: -.01em;
}
.se-coach__msg {
  font-family: var(--bp-serif-family); font-size: 18px; line-height: 1.5;
  color: var(--bp-ink-2); margin: 0; max-width: 62ch;
}
.se-coach__msg b { font-weight: 600; color: var(--bp-ink); }

/* rings hero ------------------------------------------------------ */
.se-hero-card { padding: 16px 22px; }
.se-hero { display: grid; grid-template-columns: auto 1fr; gap: 26px; align-items: center; }
.se-rings { position: relative; width: 118px; height: 118px; flex-shrink: 0; }
.se-rings svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.se-rings__track { fill: none; stroke: var(--bp-surface-2); }
.se-rings__fill { fill: none; stroke-linecap: round; transition: stroke-dashoffset 900ms var(--bp-easing); }
.se-rings__fill--outer { stroke: var(--bp-accent); }
.se-rings__fill--reach { stroke: var(--bp-highlight); }
.se-rings__fill--grow  { stroke: var(--bp-success); }
.se-rings__hint { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; }
.se-rings__hint span {
  font-family: var(--bp-mono-family); font-size: 9px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--bp-ink-subtle);
}

.se-hero__legend { display: flex; flex-direction: column; gap: 5px; }
.se-hero__headline { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
.se-hero__headline .num {
  font-family: var(--bp-display-family); font-weight: 600; font-size: 30px;
  line-height: .9; color: var(--bp-accent);
}
.se-hero__headline .den {
  font-family: var(--bp-display-family); font-weight: 500; font-size: 16px; color: var(--bp-ink-muted);
}
.se-hero__headline .unit {
  font-family: var(--bp-mono-family); font-size: 10px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--bp-ink-muted); white-space: nowrap;
}
.se-leg { display: grid; grid-template-columns: 11px 1fr auto; gap: 10px; align-items: center; font-size: 13px; }
.se-leg .dot { width: 11px; height: 11px; border-radius: 50%; }
.se-leg .name { color: var(--bp-ink-2); }
.se-leg .val { font-family: var(--bp-mono-family); font-size: 11.5px; color: var(--bp-ink); font-weight: 700; }
.se-leg--actions .dot { background: var(--bp-accent); }
.se-leg--reach .dot { background: var(--bp-highlight); }
.se-leg--grow .dot { background: var(--bp-success); }

.se-pace__title { font-family: var(--bp-display-family); font-weight: 500; font-size: 20px; margin: 0 0 6px; }
.se-pace__body { font-size: 14px; color: var(--bp-ink-2); margin: 0 0 14px; max-width: 46ch; }
.se-pace__cta { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.se-pace__note { font-size: 12.5px; color: var(--bp-ink-muted); margin-top: 10px; }

/* two-column body ------------------------------------------------- */
.se-split { display: grid; grid-template-columns: 7fr 5fr; gap: var(--bp-s-5); align-items: start; margin-top: 26px; }

/* plan list ------------------------------------------------------- */
.se-plan { display: flex; flex-direction: column; gap: 10px; }
.se-pa {
  display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center;
  background: var(--bp-paper); border: 1px solid var(--bp-rule);
  border-radius: var(--bp-r-md); padding: 13px 16px;
}
.se-pa--overdue { border-left: 3px solid var(--bp-danger); }
.se-pa--today { border-left: 3px solid var(--bp-highlight); }
.se-pa--done { opacity: .62; }
.se-pa__check {
  width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--bp-rule);
  display: grid; place-items: center; background: transparent; color: transparent;
  font-size: 12px; flex-shrink: 0; font-weight: 700;
}
.se-pa--done .se-pa__check { background: var(--bp-success); border-color: var(--bp-success); color: #fff; }
.se-pa__main .title { font-weight: 600; font-size: 14.5px; }
.se-pa__main .title s { color: var(--bp-ink-muted); font-weight: 500; }
.se-pa__meta {
  font-size: 12.5px; color: var(--bp-ink-muted); margin-top: 2px;
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.se-pa__meta .sep { opacity: .5; }
.se-pa__ctx { display: inline-flex; align-items: center; gap: 6px; }

/* empty plan ------------------------------------------------------ */
.se-empty {
  background: var(--bp-paper); border: 1px dashed var(--bp-rule); border-radius: var(--bp-r-lg);
  padding: 38px 28px; text-align: center; display: grid; justify-items: center; gap: 10px;
}
.se-empty .glyph {
  width: 52px; height: 52px; border-radius: 50%; background: var(--bp-surface-2);
  display: grid; place-items: center; font-size: 22px; color: var(--bp-ink-muted);
}
.se-empty .title { font-family: var(--bp-display-family); font-weight: 500; font-size: 19px; }
.se-empty .body { font-size: 14px; color: var(--bp-ink-2); max-width: 42ch; margin: 0; }

/* starting-point summary ------------------------------------------ */
.se-startpoint {
  margin-top: 16px; background: var(--bp-surface); border: 1px solid var(--bp-rule-soft);
  border-radius: var(--bp-r-md); padding: 14px 18px;
}
.se-startpoint .lead {
  font-size: 12px; font-family: var(--bp-mono-family); letter-spacing: .08em;
  text-transform: uppercase; color: var(--bp-ink-muted); margin: 0 0 10px;
}
.se-sp-row { display: flex; gap: 22px; flex-wrap: wrap; }
.se-sp-stat { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--bp-ink-2); }
.se-sp-stat .n { font-family: var(--bp-display-family); font-weight: 600; font-size: 20px; color: var(--bp-ink); }
.se-sp-stat .ico { font-size: 15px; opacity: .8; }

/* recommendation cards -------------------------------------------- */
.se-recs { display: flex; flex-direction: column; gap: 12px; }
.se-rec { background: var(--bp-paper); border: 1px solid var(--bp-rule); border-radius: var(--bp-r-md); padding: 15px 16px; }
.se-rec--primary { border-color: var(--bp-accent); box-shadow: 0 0 0 1px var(--bp-accent); }
.se-rec__why {
  font-family: var(--bp-mono-family); letter-spacing: .06em; text-transform: uppercase;
  font-size: 10px; color: var(--bp-ink-muted); margin: 0 0 5px;
}
.se-rec__title { font-weight: 600; font-size: 14.5px; margin: 0 0 4px; }
.se-rec__body { font-size: 13px; color: var(--bp-ink-2); margin: 0 0 12px; }
.se-rec__cta { display: flex; gap: 8px; flex-wrap: wrap; }

/* tool shortcuts -------------------------------------------------- */
.se-tools { margin-top: 20px; }
.se-tool-links { display: flex; flex-direction: column; gap: 2px; }
.se-tool-link {
  display: flex; align-items: center; gap: 11px; padding: 9px 10px;
  border-radius: var(--bp-r-md); text-decoration: none; color: var(--bp-ink-2); font-size: 14px;
}
.se-tool-link .ico { width: 24px; text-align: center; opacity: .8; }
.se-tool-link.is-soon { color: var(--bp-ink-subtle); }
.se-tool-link.is-soon .ico { opacity: .5; }
.se-tool-link .soon-tag {
  margin-left: auto; font-family: var(--bp-mono-family); font-size: 9px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--bp-ink-subtle);
  border: 1px solid var(--bp-rule-soft); border-radius: var(--bp-r-pill); padding: 1px 7px;
}

@media (max-width: 860px) {
  .se-split { grid-template-columns: 1fr; }
  .se-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; }
}
