/* Consulting development progress (client page + shared hub card).
   The premium theme forces light text on h1-h3/p with !important, so card text
   colours are declared explicitly here. */
body.up-premium-page.consulting-progress > main { padding:1.25rem 1rem 3.5rem !important; max-width:980px; margin-inline:auto; }

body .cp-root { display:grid; gap:1.75rem; }
body .cp-kicker { margin:0; color:#67e8f9 !important; font-size:.7rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
body .cp-h1 { margin:.35rem 0 0; color:#f8fafc !important; font-size:2rem; font-weight:900; line-height:1.3; letter-spacing:0; }
body .cp-lead { margin:.75rem 0 0; max-width:44rem; color:#cbd5e1 !important; font-size:1rem; font-weight:700; line-height:1.9; }
body .cp-hero { border:1px solid rgba(255,255,255,.1); border-radius:1.5rem; background:rgba(255,255,255,.045); padding:1.5rem; }

body .cp-section { display:grid; gap:.85rem; }
body .cp-section-head { display:grid; gap:.2rem; }
body .cp-h2 { margin:0; color:#f8fafc !important; font-size:1.25rem; font-weight:900; line-height:1.5; }

body .cp-card { border:1px solid #e2e8f0; border-radius:1.25rem; background:#fbfcfe; padding:1.25rem; box-shadow:0 10px 30px rgba(2,6,23,.18); min-width:0; }
body .cp-card-primary { border-color:#bae6fd; }
body .cp-card-muted { background:#f1f5f9; }
body .cp-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; }
body .cp-h3 { margin:0; color:#0f172a !important; font-size:1.15rem; font-weight:900; line-height:1.6; min-width:0; }
body .cp-h3-small { font-size:1rem; }
body .cp-track { margin:.35rem 0 0; color:#475569 !important; font-size:.85rem; font-weight:700; line-height:1.7; }
body .cp-body { margin:.6rem 0 0; color:#1e293b !important; font-size:1rem; font-weight:500; line-height:1.9; }

body .cp-chip { display:inline-flex; flex-shrink:0; align-items:center; white-space:nowrap; border-radius:999px; padding:.3rem .65rem; font-size:.75rem; font-weight:900; line-height:1.2; }
body .cp-chip.cp-chip-complete { background:#dcfce7; color:#065f46 !important; }
body .cp-chip.cp-chip-partial { background:#fef3c7; color:#78350f !important; }
body .cp-chip.cp-chip-in_progress { background:#e0f2fe; color:#075985 !important; }
body .cp-chip.cp-chip-not_started { background:#e2e8f0; color:#334155 !important; }
body .cp-chip.cp-chip-planned { background:#ede9fe; color:#4c1d95 !important; }

body .cp-progress { margin-top:1rem; display:grid; gap:.5rem; }
body .cp-progress-text { margin:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem; color:#334155 !important; font-size:.9rem; font-weight:700; }
body .cp-progress-count { color:#0f172a !important; font-size:1.5rem; font-weight:900; font-variant-numeric:tabular-nums; }
body .cp-progress-unit { color:#475569 !important; }
body .cp-bar { height:.6rem; border-radius:999px; background:#e2e8f0; overflow:hidden; }
body .cp-bar-fill { height:100%; min-width:0; border-radius:999px; background:linear-gradient(90deg,#0ea5e9,#6366f1); }

body .cp-facts { margin-top:1rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
body .cp-fact { border:1px solid #e2e8f0; border-radius:1rem; background:#fff; padding:.85rem 1rem; min-width:0; }
body .cp-fact-label { margin:0; color:#475569 !important; font-size:.78rem; font-weight:800; }
body .cp-fact-value { margin:.25rem 0 0; color:#0f172a !important; font-size:1rem; font-weight:900; line-height:1.6; overflow-wrap:break-word; }
body .cp-fact-note { margin:.25rem 0 0; color:#475569 !important; font-size:.8rem; font-weight:600; line-height:1.7; }

body .cp-list { margin:0; padding:0; list-style:none; display:grid; gap:.75rem; }
body .cp-list > .cp-item { border:1px solid #e2e8f0; border-radius:1rem; background:#fbfcfe; padding:1rem 1.1rem; }
body .cp-card .cp-list > .cp-item { background:#fff; }
body .cp-item-title { margin:0; color:#0f172a !important; font-size:1rem; font-weight:900; line-height:1.7; }
body .cp-item-detail { margin:.35rem 0 0; color:#334155 !important; font-size:.95rem; font-weight:500; line-height:1.85; }
body .cp-empty { margin:0; border:1px dashed rgba(148,163,184,.5); border-radius:1rem; padding:1rem; color:#cbd5e1 !important; font-size:.95rem; font-weight:700; line-height:1.8; }
body .cp-card .cp-empty { color:#475569 !important; border-color:#cbd5e1; }

body .cp-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
body .cp-grid-2 .cp-h3 { margin-bottom:.75rem; }

body .cp-note { margin:1rem 0 0; display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; color:#334155 !important; font-size:.9rem; font-weight:700; line-height:1.7; }
body .cp-note span { color:#334155 !important; }
body .cp-note .cp-note-label { border-radius:.5rem; background:#e2e8f0; padding:.2rem .5rem; color:#0f172a !important; font-size:.75rem; font-weight:900; }
body .cp-note-plain { margin:1rem 0 0; color:#475569 !important; font-size:.9rem; font-weight:600; line-height:1.8; }

body .cp-roadmap { margin:0; padding:0; list-style:none; display:grid; gap:.5rem; }
body .cp-roadmap-item { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border:1px solid rgba(255,255,255,.1); border-radius:1rem; background:rgba(255,255,255,.05); padding:.8rem 1rem; }
body .cp-roadmap-body { min-width:0; }
body .cp-roadmap-title { margin:0; color:#f1f5f9 !important; font-size:.95rem; font-weight:800; line-height:1.7; }
body .cp-roadmap-meta { margin:.1rem 0 0; color:#94a3b8 !important; font-size:.8rem; font-weight:700; }
body .cp-roadmap-complete .cp-roadmap-title { color:#ffffff !important; }
body .cp-roadmap-planned .cp-roadmap-title { color:#cbd5e1 !important; }

body .cp-mini-list { margin:1rem 0 0; padding:0; list-style:none; display:grid; gap:.4rem; }
body .cp-mini-item { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border-top:1px solid #e2e8f0; padding-top:.45rem; }
body .cp-mini-item > span:first-child { min-width:0; color:#1e293b !important; font-size:.9rem; font-weight:700; line-height:1.7; }

body .cp-footer { display:grid; gap:.2rem; border-top:1px solid rgba(255,255,255,.1); padding-top:1rem; }
body .cp-footer p { margin:0; color:#94a3b8 !important; font-size:.8rem; font-weight:700; line-height:1.7; }
body .cp-integrity { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }

body .cp-state { border:1px solid rgba(255,255,255,.12); border-radius:1.25rem; background:rgba(255,255,255,.05); padding:1.5rem; }
body .cp-state h1 { margin:0; color:#f8fafc !important; font-size:1.25rem; font-weight:900; line-height:1.6; }
body .cp-state p { margin:.5rem 0 0; color:#cbd5e1 !important; font-size:.95rem; font-weight:600; line-height:1.8; }

body .cp-phrase { word-break:keep-all; overflow-wrap:anywhere; }

body .cp-section-lead { margin:0; max-width:44rem; color:#cbd5e1 !important; font-size:1rem; font-weight:600; line-height:1.9; }
/* Comparison players: one full-width column by default; two columns only where each player
   stays wide enough for Drive's controls and readable telops (see the >=1280px rule below). */
body .cp-media-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
body .cp-media { margin:0; display:grid; gap:.6rem; border:1px solid #e2e8f0; border-radius:1rem; background:#fbfcfe; padding:.75rem; min-width:0; }
body .cp-media-head { display:flex; align-items:baseline; justify-content:space-between; gap:.75rem; }
body .cp-media-duration { flex-shrink:0; color:#475569 !important; font-size:.85rem; font-weight:800; font-variant-numeric:tabular-nums; }
/* Native 16:9 video area plus a bottom allowance for Google Drive's player chrome, which overlays
   the bottom of the iframe. No overflow clipping or rounded corners here: they cut the controls. */
body .cp-media-frame { --cp-player-chrome:56px; position:relative; box-sizing:content-box; width:100%; aspect-ratio:16 / 9; padding-bottom:var(--cp-player-chrome); background:#000; }
body .cp-media-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
body .cp-media-caption { color:#334155 !important; font-size:.92rem; font-weight:600; line-height:1.8; }
body .cp-shared-media { display:grid; gap:.75rem; }
body .cp-media-open { display:inline-flex; width:max-content; min-height:44px; align-items:center; border-radius:.75rem; border:1px solid #cbd5e1; background:#fff; padding:0 .9rem; color:#075985 !important; font-size:.85rem; font-weight:800; text-decoration:none; }
body .cp-media-note { margin:0; color:#cbd5e1 !important; font-size:.85rem; font-weight:600; line-height:1.8; }
@media (min-width:1280px) {
  /* Let the comparison break out of the 980px reading column so side-by-side players stay large. */
  body #cp-compare { --cp-compare-width:min(1400px, calc(100vw - 64px)); width:var(--cp-compare-width); margin-inline:calc((100% - var(--cp-compare-width)) / 2); }
  body #cp-compare .cp-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Shared (other consulting students) card on the hub. */
body .cp-shared { display:grid; gap:.75rem; border:1px solid #e2e8f0; border-radius:1.25rem; background:#fff; padding:1.15rem; box-shadow:0 10px 30px rgba(15,23,42,.05); }
body .cp-shared-kicker { margin:0; color:#0369a1 !important; font-size:.7rem; font-weight:900; letter-spacing:.08em; }
body .cp-shared-title { margin:.2rem 0 0; color:#0f172a !important; font-size:1.1rem; font-weight:900; line-height:1.6; }
body .cp-shared-summary { margin:0; color:#334155 !important; font-size:.92rem; font-weight:600; line-height:1.85; }
body .cp-shared-row { margin:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:.6rem; align-items:baseline; color:#0f172a !important; font-size:.92rem; font-weight:700; line-height:1.75; }
body .cp-shared-row span { color:#0f172a !important; }
body .cp-shared-label { display:inline-block; border-radius:.45rem; background:#f1f5f9; padding:.1rem .45rem; color:#334155 !important; font-size:.72rem; font-weight:900; white-space:nowrap; }
body .cp-shared-block { margin:0; width:max-content; }
body .cp-shared-list { margin:0; padding-left:1.1rem; display:grid; gap:.2rem; }
body .cp-shared-list li { color:#1e293b !important; font-size:.9rem; font-weight:700; line-height:1.7; }
body .cp-shared-details summary { cursor:pointer; color:#0369a1 !important; font-size:.85rem; font-weight:900; min-height:44px; display:flex; align-items:center; }
body .cp-shared-roadmap { margin:.25rem 0 0; padding:0; list-style:none; display:grid; gap:.35rem; }
body .cp-shared-roadmap li { display:flex; align-items:center; justify-content:space-between; gap:.6rem; border-top:1px solid #f1f5f9; padding-top:.35rem; }
body .cp-shared-roadmap li > span:first-child { min-width:0; color:#1e293b !important; font-size:.88rem; font-weight:700; line-height:1.7; }
body .cp-shared-updated { margin:0; color:#475569 !important; font-size:.75rem; font-weight:700; }

/* Phase history: newest-left tabs (horizontal scroll on narrow screens), roadmap rail, per-phase panel. */
body .cp-rail { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2fr); gap:.6rem; }
body .cp-rail-group { min-width:0; border:1px solid rgba(255,255,255,.12); border-radius:1rem; background:rgba(255,255,255,.04); padding:.75rem; }
body .cp-rail-now { border-color:#67e8f9; background:rgba(103,232,249,.08); }
body .cp-rail-label { margin:0 0 .4rem; color:#94a3b8 !important; font-size:.7rem; font-weight:900; letter-spacing:.12em; }
body .cp-rail-now .cp-rail-label { color:#67e8f9 !important; }
body .cp-rail-steps { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:.35rem; }
body .cp-rail-step { display:inline-flex; min-width:0; max-width:100%; align-items:baseline; gap:.35rem; border-radius:.6rem; background:rgba(255,255,255,.07); padding:.25rem .5rem; }
body .cp-rail-id { flex-shrink:0; color:#f8fafc !important; font-size:.75rem; font-weight:900; }
body .cp-rail-name { min-width:0; overflow-wrap:anywhere; color:#cbd5e1 !important; font-size:.72rem; font-weight:700; line-height:1.5; }
body .cp-rail-done .cp-rail-id { color:#86efac !important; }
body .cp-rail-empty { margin:0; color:#64748b !important; font-size:.8rem; }
body .cp-tabs { display:flex; gap:.5rem; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; padding:.15rem .1rem .55rem; -webkit-overflow-scrolling:touch; }
body .cp-tab { flex:0 0 auto; scroll-snap-align:start; display:grid; grid-template-columns:auto auto; align-items:center; gap:.2rem .5rem; min-height:44px; max-width:15rem; border:1px solid rgba(255,255,255,.14); border-radius:.9rem; background:rgba(255,255,255,.05); padding:.55rem .8rem; text-align:left; cursor:pointer; }
body .cp-tab[aria-selected="true"] { border-color:#67e8f9; background:#f8fafc; box-shadow:0 0 0 2px rgba(103,232,249,.35); }
body .cp-tab:focus-visible { outline:3px solid #67e8f9; outline-offset:2px; }
body .cp-tab-id { color:#f8fafc !important; font-size:.85rem; font-weight:900; }
body .cp-tab-label { grid-column:1 / -1; color:#cbd5e1 !important; font-size:.78rem; font-weight:700; line-height:1.45; white-space:normal; }
body .cp-tab[aria-selected="true"] .cp-tab-id { color:#0f172a !important; }
body .cp-tab[aria-selected="true"] .cp-tab-label { color:#334155 !important; }
body .cp-tab-latest { justify-self:start; border-radius:999px; background:#0891b2; padding:.1rem .45rem; color:#fff !important; font-size:.65rem; font-weight:900; }
body .cp-tab .cp-chip { justify-self:start; font-size:.68rem; padding:.2rem .5rem; }
body .cp-tabpanel { display:grid; gap:.85rem; outline:none; }
body .cp-phase-names { min-width:0; }
body .cp-phase-id { margin:0; color:#0369a1 !important; font-size:.75rem; font-weight:900; letter-spacing:.08em; }
body .cp-change { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:.6rem; align-items:stretch; }
body .cp-change-side { border-radius:.9rem; padding:.75rem; min-width:0; }
body .cp-change-before { background:#f1f5f9; }
body .cp-change-after { background:#ecfeff; }
body .cp-change-label { margin:0; color:#475569 !important; font-size:.72rem; font-weight:900; }
body .cp-change-text { margin:.25rem 0 0; color:#0f172a !important; font-size:.95rem; font-weight:700; line-height:1.75; overflow-wrap:anywhere; }
body .cp-change-arrow { align-self:center; color:#0891b2 !important; font-size:1.2rem; font-weight:900; }
body .cp-phase-next { margin:0; display:flex; flex-wrap:wrap; gap:.5rem; align-items:baseline; color:#e2e8f0 !important; font-size:.95rem; font-weight:700; line-height:1.75; }
body .cp-past-open { border:0; background:none; padding:0; color:#075985 !important; font-size:.9rem; font-weight:900; text-align:left; cursor:pointer; text-decoration:underline; min-height:44px; }
body .cp-past-meta { color:#475569 !important; font-size:.78rem; font-weight:700; }
@media (max-width:767px) {
  body .cp-rail { grid-template-columns:minmax(0,1fr); }
  body .cp-change { grid-template-columns:minmax(0,1fr); }
  body .cp-change-arrow { justify-self:center; transform:rotate(90deg); }
}

@media (max-width:767px) {
  body .cp-facts, body .cp-grid-2 { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:560px) {
  body.up-premium-page.consulting-progress > main { padding:1rem 16px 3rem !important; }
  body .cp-root { gap:1.5rem; }
  body .cp-hero { padding:1.25rem 1rem; border-radius:1.25rem; }
  body .cp-h1 { font-size:1.6rem; }
  body .cp-card { padding:1rem; }
  body .cp-roadmap-item { padding:.75rem .85rem; }
}
body .cp-past .cp-mini-item { flex-wrap:wrap; justify-content:flex-start; }
