/* Launch controls (turn 18): /admin/launch, /admin/launch/partners, /admin/jobs and the
   student pre-launch states. Builds on finance.css; shared with skida/wwwroot/css/launch.css —
   keep the two files identical. */

/* ── State chips ──────────────────────────────────────────────────────────────────── */
.lc-chip { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; font: 600 11px Inter, sans-serif; padding: 5px 10px; border-radius: 999px; }
.lc-chip-live { background: rgba(0, 119, 73, 0.12); color: var(--fin-green-text); }
.lc-chip-soon { background: rgba(255, 184, 28, 0.22); color: var(--fin-gold-text); }
.lc-chip-hidden { background: rgba(100, 116, 139, 0.14); color: var(--text-2); }
.lc-chip-blue { background: rgba(0, 35, 149, 0.1); color: var(--brand-blue); }
.lc-chip-red { background: rgba(220, 38, 38, 0.1); color: var(--fin-red-text); }
.lc-chip-bold { font-weight: 700; padding: 4px 9px; }

/* ── 18a: status banner and switch cards ──────────────────────────────────────────── */
.lc-status { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 12px; background: #0A1628; margin-bottom: 18px; }
.lc-status-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--brand-yellow); box-shadow: 0 0 0 5px rgba(255, 184, 28, 0.25); flex: none; }
.lc-status-dot.live { background: #22c55e; box-shadow: 0 0 0 5px rgba(34, 197, 94, 0.25); }
.lc-status-title { font: 800 17px Inter, sans-serif; color: #fff; }
.lc-status-sub { font: 400 12.5px Inter, sans-serif; color: rgba(255, 255, 255, 0.75); margin-top: 2px; }
.lc-status-count { font: 800 22px Inter, sans-serif; color: var(--brand-yellow); text-align: right; }
.lc-status-count-label { font: 500 11px Inter, sans-serif; color: rgba(255, 255, 255, 0.7); text-align: right; }

.lc-switches { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.lc-switch-card { background: #fff; border: 1.5px solid rgba(220, 38, 38, 0.3); border-radius: 12px; padding: 16px 18px; }
.lc-switch-card.on { border-color: rgba(0, 119, 73, 0.4); }
.lc-switch-head { display: flex; align-items: flex-start; gap: 12px; }
.lc-switch-icon { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; background: rgba(220, 38, 38, 0.08); color: var(--fin-red-text); flex: none; }
.lc-switch-card.on .lc-switch-icon { background: rgba(0, 119, 73, 0.1); color: var(--fin-green-text); }
.lc-switch-icon .ms { font-size: 22px; }
.lc-switch-title { font: 700 14px Inter, sans-serif; color: var(--text-1); }
.lc-switch-state { font: 700 11.5px Inter, sans-serif; color: var(--fin-red-text); margin-top: 3px; }
.lc-switch-card.on .lc-switch-state { color: var(--fin-green-text); }
.lc-switch-body { font: 400 11.5px/1.55 Inter, sans-serif; color: var(--text-2); margin-top: 12px; }
.lc-preview { margin-top: 12px; padding: 10px 12px; border-radius: 9px; background: #F5F7FC; border: 1px solid var(--border); }
.lc-preview-label { font: 700 9.5px Inter, sans-serif; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fin-text-3); margin-bottom: 6px; }
.lc-preview-btn { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; border-radius: 8px; font: 600 12px Inter, sans-serif; background: #c7cfe3; color: var(--text-2); }
.lc-preview-btn.on { background: var(--brand-blue); color: #fff; }
.lc-switch-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; font: 500 11px Inter, sans-serif; color: var(--fin-text-3); margin-top: 10px; }
/* The launch switch is green when on (finance switches are blue). */
.lc-switch-card .fin-switch[aria-checked="true"] { background: var(--brand-green); }

.lc-split { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 16px; align-items: start; }
.lc-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.lc-demand-row { display: grid; grid-template-columns: minmax(0, 1.4fr) 110px minmax(0, 1.6fr) 70px; gap: 14px; padding: 11px 18px; border-bottom: 1px solid var(--fin-row); align-items: center; }
.lc-bar { height: 8px; border-radius: 4px; background: var(--fin-row); overflow: hidden; }
.lc-bar > span { display: block; height: 100%; background: var(--brand-yellow); }
.lc-bar > span.live { background: var(--brand-green); }
.lc-count { text-align: right; font: 700 13px "JetBrains Mono", monospace; color: var(--text-1); }
.lc-log-row { display: grid; grid-template-columns: 30px 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid var(--fin-row); }
.lc-log-av { width: 30px; height: 30px; border-radius: 50%; background: var(--brand-yellow); color: var(--brand-navy); display: grid; place-items: center; font: 700 10.5px Inter, sans-serif; }
.lc-log-what { font: 500 12px/1.45 Inter, sans-serif; color: var(--text-1); }
.lc-log-when { font: 400 10.5px Inter, sans-serif; color: var(--fin-text-3); margin-top: 2px; }

/* ── 18b: partner visibility ──────────────────────────────────────────────────────── */
.lc-type-tabs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.lc-type-tab { padding: 8px 14px; border-radius: 9px; font: 600 12.5px Inter, sans-serif; background: #fff; border: 1.5px solid var(--border); color: var(--text-2); cursor: pointer; }
.lc-type-tab.on { background: var(--brand-blue); border-color: var(--brand-blue); color: #fff; }
.lc-bulk { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-radius: 10px; background: rgba(0, 35, 149, 0.05); border: 1px solid rgba(0, 35, 149, 0.2); margin-bottom: 12px; font: 500 12.5px Inter, sans-serif; color: var(--text-1); }
.lc-bulk-btn { height: 34px; padding: 0 12px; border-radius: 8px; font: 600 12px Inter, sans-serif; background: #fff; border: 1.5px solid var(--border); color: var(--text-1); cursor: pointer; }
.lc-check { display: inline-flex; align-items: center; gap: 2px; padding: 3px 7px 3px 5px; border-radius: 6px; font: 600 10.5px Inter, sans-serif; background: rgba(220, 38, 38, 0.08); color: var(--fin-red-text); }
.lc-check.ok { background: rgba(0, 119, 73, 0.1); color: var(--fin-green-text); }
.lc-check .ms { font-size: 13px; }
.lc-state-seg { display: flex; padding: 3px; border-radius: 9px; background: #F5F7FC; border: 1px solid var(--border); }
.lc-state-btn { flex: 1; padding: 7px 10px; border: 0; border-radius: 7px; background: transparent; font: 600 11.5px Inter, sans-serif; white-space: nowrap; text-align: center; color: var(--text-2); cursor: pointer; }
.lc-state-btn.on-hidden { background: #0A1628; color: #fff; }
.lc-state-btn.on-soon { background: var(--brand-yellow); color: var(--fin-gold-ink); }
.lc-state-btn.on-live { background: var(--brand-green); color: #fff; }
.lc-state-btn.locked { color: var(--fin-dash); text-decoration: line-through; cursor: not-allowed; }
.lc-row-selected { background: rgba(0, 35, 149, 0.04); }
.lc-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.lc-note { padding: 14px 16px; border-radius: 11px; background: #fff; border: 1px solid var(--border); font: 400 11.5px/1.6 Inter, sans-serif; color: var(--text-2); }
.lc-note.red { border: 1.5px solid rgba(220, 38, 38, 0.3); }
.lc-note strong { font-weight: 600; color: var(--text-1); }
.lc-mini-btn { border: 0; background: none; padding: 0; font: 600 11px Inter, sans-serif; color: var(--brand-blue); cursor: pointer; }

/* ── 18c: all jobs ────────────────────────────────────────────────────────────────── */
.lc-ptag { display: inline-block; padding: 3px 7px; border-radius: 5px; font: 700 9.5px Inter, sans-serif; letter-spacing: 0.05em; text-transform: uppercase; flex: none; color: #fff; background: #0A1628; }
.lc-ptag.institution { background: var(--brand-blue); }
.lc-ptag.housing { background: var(--brand-green); }
.lc-select { height: 38px; padding: 0 30px 0 12px; border-radius: 9px; border: 1.5px solid var(--border); background: #fff; font: 600 12px Inter, sans-serif; color: var(--text-1); }
.lc-expand { padding: 6px 16px 14px 52px; background: var(--fin-head); border-bottom: 1px solid var(--border); }
.lc-app-head, .lc-app-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.4fr) 0.8fr 120px 90px; gap: 12px; padding: 8px 0; align-items: center; }
.lc-app-head { font: 700 9.5px Inter, sans-serif; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fin-text-3); }
.lc-app-row { border-top: 1px dashed var(--border); font: 400 12px Inter, sans-serif; color: var(--text-2); }
.lc-app-name { font: 600 12.5px Inter, sans-serif; color: var(--text-1); }
.lc-caret { border: 0; background: none; padding: 0; cursor: pointer; color: var(--fin-text-3); display: grid; place-items: center; }
.lc-caret .ms { font-size: 18px; }

/* ── 18d: student pre-launch states ───────────────────────────────────────────────── */
.lc-site-banner { display: flex; align-items: center; gap: 10px; padding: 12px 20px; background: #0A1628; font: 500 12.5px/1.45 Inter, sans-serif; color: #fff; }
.lc-site-banner .ms { font-size: 19px; color: var(--brand-yellow); flex: none; }
.lc-site-banner strong { font-weight: 700; color: var(--brand-yellow); }
.lc-notify-card { background: #fff; border: 1.5px solid rgba(255, 184, 28, 0.6); border-radius: 14px; padding: 18px; }
.lc-notify-title { display: flex; align-items: center; gap: 8px; font: 700 14px Inter, sans-serif; color: var(--text-1); }
.lc-notify-title .ms { font-size: 20px; color: var(--fin-gold-text); }
.lc-notify-body { font: 400 12px/1.55 Inter, sans-serif; color: var(--text-2); margin: 8px 0 14px; }
.lc-notify-btn { width: 100%; height: 46px; border-radius: 10px; border: 0; background: var(--brand-blue); color: #fff; font: 700 13.5px Inter, sans-serif; display: flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; text-decoration: none; }
.lc-notify-btn .ms { font-size: 18px; }
.lc-notify-btn.done { background: #fff; color: var(--fin-green-text); border: 1.5px solid rgba(0, 119, 73, 0.4); }
.lc-notify-btn:disabled { opacity: 0.7; cursor: default; }
.lc-apply-closed { width: 100%; height: 42px; border-radius: 10px; border: 1.5px dashed var(--fin-dash); background: #F5F7FC; color: var(--fin-text-3); font: 600 12.5px Inter, sans-serif; margin-top: 8px; cursor: not-allowed; }
.lc-apply-paused { width: 100%; height: 46px; border-radius: 10px; border: 0; background: #c7cfe3; color: var(--text-2); font: 700 13.5px Inter, sans-serif; display: flex; align-items: center; justify-content: center; gap: 7px; cursor: not-allowed; }
.lc-apply-paused .ms { font-size: 18px; }
.lc-get-ready { margin-top: 12px; padding: 10px 12px; border-radius: 9px; background: rgba(0, 119, 73, 0.06); border: 1px solid rgba(0, 119, 73, 0.25); font: 400 11.5px/1.5 Inter, sans-serif; color: var(--text-2); }
.lc-get-ready strong { font-weight: 600; color: var(--fin-green-text); }
.lc-get-ready a { color: var(--fin-green-text); font-weight: 600; }
.lc-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: start; }
.lc-title-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lc-bank { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 10px 0; font: 400 12.5px Inter, sans-serif; color: var(--text-2); }
.lc-bank dt { color: var(--fin-text-3); }
.lc-bank dd { margin: 0; font: 600 12.5px "JetBrains Mono", monospace; color: var(--text-1); }

/* The job detail's desktop apply panel is hidden on phones; its closed state moves inline. */
.lc-phone-only { display: none; }
@media (max-width: 640px) {
  .lc-phone-only { display: block; }
}

@media (max-width: 1100px) {
  .lc-switches, .lc-split, .lc-notes { grid-template-columns: 1fr; }
}
/* On a dark hero the tinted badge disappears, so it goes solid gold there. */
.sk-hero .lc-chip-soon, .inst-hero .lc-chip-soon { background: var(--brand-yellow); color: var(--fin-gold-ink); }

@media (max-width: 767px) {
  /* 18a status banner: the sentence takes the full width; the button and count sit under it. */
  .lc-status { flex-wrap: wrap; row-gap: 12px; }
  .lc-status > div:nth-child(2) { flex: 1 1 calc(100% - 40px) !important; }
  .lc-status .fin-btn { margin-left: 26px; }
  .lc-status > div:last-child { margin-left: auto; }
  .lc-type-tabs .fin-search { flex: 1 1 100%; margin-left: 0 !important; order: 5; }
  .lc-detail-grid { grid-template-columns: 1fr; }
  .lc-demand-row { grid-template-columns: minmax(0, 1fr) auto; }
  .lc-demand-row .lc-bar { grid-column: 1 / -1; order: 3; }
  .lc-state-btn { min-height: 44px; }
  .lc-expand { padding-left: 16px; }
  .lc-app-head { display: none; }
  .lc-app-row { grid-template-columns: 1fr auto; }
  .lc-site-banner { padding: 12px 16px; }
}

/* ── Phone shell (mobile phase M1) ────────────────────────────────────────────────── */
/* Back-office portals on a phone: a darker portal colour on the header and drawer, four
   shortcut tabs, and (employer Home) a floating "Post a job" button above them. */
.bo-fab { display: none; }
.lc-banner-phone { display: none; }

@media (max-width: 640px) {
  .bo-shell .bo-header,
  .bo-shell .bo-mobile-sidebar-header { background: var(--bo-accent-phone, var(--bo-accent, var(--brand-blue))); }
  .bo-shell .bo-tabbar { height: 62px; }
  .bo-shell .bo-tab { min-height: 48px; gap: 3px; font-weight: 600; color: #8996ae; }
  .bo-shell .bo-tab.active { color: var(--bo-accent-phone, var(--bo-accent, var(--brand-blue))); }
  .bo-fab {
    display: grid; place-items: center; position: fixed; right: 16px; bottom: 78px; z-index: 901;
    width: 56px; height: 56px; border-radius: 16px; background: var(--brand-yellow); color: var(--brand-navy);
    box-shadow: 0 8px 20px rgba(10, 22, 40, 0.2); text-decoration: none;
  }
  .bo-fab .ms { font-size: 26px; }
}

/* m24: on a phone the paused banner is a gold strip under the header, on every student
   screen, and says what still works. */
@media (max-width: 960px) {
  .lc-site-banner { gap: 8px; padding: 10px 16px; background: var(--brand-yellow); font: 600 12px/1.4 Inter, sans-serif; color: var(--fin-gold-ink); }
  .lc-site-banner .ms { font-size: 18px; color: var(--fin-gold-ink); }
  .lc-site-banner strong { color: inherit; }
  .lc-banner-desktop { display: none; }
  .lc-banner-phone { display: inline; }
  .student-tab { min-height: 56px; }
}
