/* ── Variables ─────────────────────────────────────────── */
:root {
  --bg:      #f1f4f8;
  --s1:      #ffffff;
  --s2:      #f8f9fb;
  --b1:      #e5e7eb;
  --b2:      #d1d5db;
  --b3:      #9ca3af;
  --accent:  #2a6be8;
  --a2:      #1d4ed8;
  --t1:      #111827;
  --t2:      #4b5563;
  --t3:      #9ca3af;
  --green:   #059669;
  --red:     #dc2626;
  --amber:   #d97706;
  --radius:  7px;
  --shadow:  0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);
  --shadow-md: 0 4px 12px rgba(0,0,0,.1);
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-body); background: var(--bg); color: var(--t1);
       min-height: 100vh; font-size: 15px; line-height: 1.5; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── Nav ───────────────────────────────────────────────── */
.nav { background: var(--s1); border-bottom: 1px solid var(--b1);
       padding: 0 28px; height: 54px; display: flex; align-items: center;
       justify-content: space-between; position: sticky; top: 0; z-index: 100;
       box-shadow: var(--shadow); }
.nav-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.nav-brand:hover .nav-title { color: var(--accent); }
.nav-hex   { width: 28px; height: 28px; background: var(--accent); flex-shrink: 0;
             clip-path: polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
             display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; color: #fff; }
.nav-title { font-weight: 700; font-size: 15px;
             letter-spacing: .08em; text-transform: uppercase; color: var(--t1); }
.nav-title span { color: var(--accent); }
.nav-links  { display: flex; align-items: center; gap: 16px; }
.nav-link   { color: var(--t2); font-size: 15px; }
.nav-link.active { color: var(--accent); font-weight: 600; }
.nav-link--muted { color: var(--t3); }
.nav-link--muted:hover { color: var(--t2); }
.nav-sep    { color: var(--b2); }
.nav-generating-pill { display: inline-flex; align-items: center; gap: 6px;
                       background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 20px;
                       padding: 3px 10px; font-size: 15px; color: var(--accent);
                       font-weight: 600; text-decoration: none; }
.nav-generating-pill:hover { background: #dbeafe; text-decoration: none; }
.nav-gen-btn { display: inline-flex; align-items: center; gap: 7px; }
.nav-gen-spinner { width: 10px; height: 10px; border: 2px solid #bfdbfe;
                   border-top-color: var(--accent); border-radius: 50%;
                   display: inline-block; animation: spin .7s linear infinite; flex-shrink: 0; }
@keyframes spin { to { transform: rotate(360deg); } }
.nav-user   { color: var(--t2); font-size: 15px; }

/* ── Flash messages ────────────────────────────────────── */
.flash { padding: 10px 28px; font-size: 15px; border-bottom: 1px solid transparent; }
.flash--success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.flash--error   { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.flash--info    { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }

/* ── Main ──────────────────────────────────────────────── */
.main { min-height: calc(100vh - 54px); }

/* ── Page layout ───────────────────────────────────────── */
.page         { max-width: 1100px; margin: 0 auto; padding: 32px 28px; }
.page--narrow { max-width: 760px; }
.page-header  { display: flex; align-items: flex-start; justify-content: space-between;
                gap: 16px; margin-bottom: 28px; }
.page-title   { font-weight: 800; font-size: 24px;
                color: var(--t1); display: flex; align-items: center; gap: 10px; }
.page-sub     { font-size: 15px; color: var(--t3); margin-top: 4px; }
.page-breadcrumb { font-size: 15px; color: var(--t3); margin-bottom: 4px; }
.page-breadcrumb a { color: var(--t2); }
.page-breadcrumb a:hover { color: var(--accent); }
.header-actions { display: flex; gap: 8px; flex-shrink: 0; align-items: flex-start; }

/* ── Buttons ───────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px;
       border-radius: var(--radius); font-weight: 700;
       font-size: 15px; letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
       border: none; text-decoration: none; transition: background .15s, box-shadow .15s; }
.btn--primary  { background: var(--accent); color: #fff; box-shadow: 0 1px 3px rgba(42,107,232,.3); }
.btn--primary:hover { background: var(--a2); text-decoration: none; color: #fff; }
.btn--secondary { background: var(--s1); color: var(--t1); border: 1px solid var(--b1);
                  box-shadow: var(--shadow); }
.btn--secondary:hover { background: var(--s2); text-decoration: none; }
.btn--ghost    { background: transparent; color: var(--t2); border: 1px solid var(--b1); }
.btn--ghost:hover { background: var(--s2); color: var(--t1); text-decoration: none; }
.btn--full     { width: 100%; justify-content: center; }
.btn--sm       { padding: 5px 12px; font-size: 15px; }
.btn--danger   { color: var(--red); border-color: #fecaca; }
.btn--danger:hover { background: #fef2f2; text-decoration: none; }

/* ── Badges ────────────────────────────────────────────── */
.badge { display: inline-block; padding: 2px 8px; border-radius: 20px;
         font-size: 15px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.badge--active      { background: #d1fae5; color: #065f46; }
.badge--concluded   { background: #dbeafe; color: #1e40af; }
.badge--archived    { background: #f3f4f6; color: var(--t3); }
.badge--planned     { background: #f3f4f6; color: var(--t2); }
.badge--in_progress { background: #fef3c7; color: #92400e; }
.badge--completed   { background: #d1fae5; color: #065f46; }
.badge--generating  { background: #fef3c7; color: #92400e; }
.badge--draft       { background: #f3f4f6; color: var(--t2); }
.badge--final       { background: #d1fae5; color: #065f46; }
.badge--report      { background: #dbeafe; color: #1e40af; }
.badge--pending     { background: #f3f4f6; color: var(--t3); }
.badge--muted       { background: #f3f4f6; color: var(--t3); }

/* ── Prospect detail header — company logo ─────────────── */
.prospect-header { display: flex; align-items: center; gap: 18px; }
.prospect-logo {
  position: relative; width: 64px; height: 64px;
  background: var(--glass-bg); border: 1px solid var(--glass-border);
  border-radius: 14px; flex-shrink: 0; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 28px; color: var(--accent);
  box-shadow: var(--glass-shadow);
}
.prospect-logo__letter { line-height: 1; }
.prospect-logo__img    { position: absolute; inset: 0; width: 100%; height: 100%;
                         object-fit: contain; padding: 8px; background: #fff; }

/* Final-report cover company logo */
.fr-cover__logo {
  width: 88px; height: 88px; background: #fff; border-radius: 18px;
  padding: 12px; margin-bottom: 22px; box-shadow: 0 14px 40px -12px rgba(0,0,0,.45);
  display: flex; align-items: center; justify-content: center;
}
.fr-cover__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ── Assessment-type tag (badge variant shown in report sub-header) ───── */
.assessment-tag { display: inline-block; padding: 2px 9px; border-radius: 20px;
                  font-size: 12px; font-weight: 700; letter-spacing: .06em;
                  text-transform: uppercase; margin-right: 8px; vertical-align: middle; }
.assessment-tag--ai_readiness  { background: #ede9fe; color: #5b21b6; }
.assessment-tag--cybersecurity { background: #fee2e2; color: #991b1b; }

/* ── Assessment picker (prospect detail page) ─────────────────────────── */
.assessment-picker { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
                     gap: 14px; margin: 18px 0 24px; }
.assessment-card { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                   padding: 18px 20px; box-shadow: var(--shadow); display: flex;
                   flex-direction: column; gap: 14px; border-left: 4px solid var(--b1); }
.assessment-card--ai_readiness  { border-left-color: #7c3aed; }
.assessment-card--cybersecurity { border-left-color: #dc2626; }
.assessment-card__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.assessment-card__label { font-weight: 700; font-size: 15px; color: var(--t1); }
.assessment-card__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.badge--active.badge--lg, .badge--final.badge--lg, .badge--completed.badge--lg { font-size: 15px; padding: 4px 10px; }
.badge--lg          { font-size: 15px; padding: 4px 10px; }

/* ── Filter tabs ───────────────────────────────────────── */
.filter-tabs { display: flex; gap: 4px; margin-bottom: 20px; }
.filter-tab  { padding: 5px 14px; border-radius: 20px; font-size: 15px; color: var(--t2);
               border: 1px solid var(--b1); background: var(--s1); text-decoration: none; }
.filter-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.filter-tab:hover  { text-decoration: none; background: var(--s2); }
.filter-tab.active:hover { background: var(--a2); }

/* ── Prospect card grid ────────────────────────────────── */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.prospect-card { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                 padding: 20px 22px; text-decoration: none; color: var(--t1); display: block;
                 box-shadow: var(--shadow); transition: border-color .15s, box-shadow .15s; }
.prospect-card:hover { border-color: var(--accent); box-shadow: var(--shadow-md); text-decoration: none; }
.prospect-card__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.prospect-card__logo   { position: relative; width: 38px; height: 38px;
                         background: #eff6ff; border-radius: 8px;
                         display: flex; align-items: center; justify-content: center;
                         font-weight: 800; font-size: 15px; color: var(--accent);
                         overflow: hidden; flex-shrink: 0; }
.prospect-card__logo-letter { line-height: 1; }
.prospect-card__logo-img    { position: absolute; inset: 0; width: 100%; height: 100%;
                              object-fit: contain; padding: 5px; background: #fff; }
.prospect-card__name   { font-weight: 700; font-size: 15px; color: var(--t1); margin-bottom: 3px; }
.prospect-card__domain { font-size: 15px; color: var(--t3); margin-bottom: 10px; }
.prospect-card__meta   { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; font-size: 15px; color: var(--t3); }

/* ── Empty state ───────────────────────────────────────── */
.empty-state { text-align: center; padding: 60px 24px; color: var(--t2); }
.empty-state p { margin-bottom: 16px; }
.empty-text { color: var(--t3); font-size: 15px; padding: 12px 0; }

/* ── Auth ──────────────────────────────────────────────── */
.auth-wrap    { min-height: 100vh; background: var(--bg); display: flex;
                align-items: center; justify-content: center; padding: 24px; }
.auth-card    { background: var(--s1); border: 1px solid var(--b1); border-radius: 10px;
                padding: 40px 36px; width: 100%; max-width: 400px; box-shadow: var(--shadow-md); }
.auth-brand   { display: flex; align-items: center; gap: 8px; margin-bottom: 28px; }
.auth-heading { font-weight: 800; font-size: 24px;
                color: var(--t1); margin-bottom: 24px; }
.auth-footer  { margin-top: 20px; font-size: 15px; color: var(--t2); text-align: center; }

/* ── Forms ─────────────────────────────────────────────── */
.form-card { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
             padding: 28px 32px; box-shadow: var(--shadow); }
.form-section-label { font-size: 15px; letter-spacing: .12em; text-transform: uppercase;
                      color: var(--t3); margin: 0 0 14px; padding-bottom: 6px;
                      border-bottom: 1px solid var(--b1); }
.form-section-label + .field-row,
.form-section-label + .field { margin-top: 0; }
.field       { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px; }
.field-row   { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field-label { font-size: 15px; letter-spacing: .06em; text-transform: uppercase;
               color: var(--t2); font-weight: 600; }
.field-label--inline { display: inline; margin-left: 6px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.field-input { background: var(--s1); border: 1px solid var(--b1); border-radius: 5px;
               color: var(--t1); font-family: var(--font-body); font-size: 15px;
               padding: 8px 11px; width: 100%; outline: none;
               transition: border-color .15s, box-shadow .15s; }
.field-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(42,107,232,.1); }
.field-input--textarea { resize: vertical; min-height: 72px; }
.field-input--sm { font-size: 15px; padding: 6px 9px; }
.field-hint  { font-size: 15px; color: var(--t3); margin-top: 2px; }
.field-error { font-size: 15px; color: var(--red); margin-top: 2px; }
.field--inline { flex-direction: row; align-items: center; }
.check-label { display: flex; align-items: center; gap: 8px; font-size: 15px;
               color: var(--t2); cursor: pointer; margin-top: 8px; }
.form-actions { margin-top: 24px; display: flex; justify-content: flex-end; gap: 10px; }

/* ── Report generation progress page ──────────────────── */
.gen-wrap  { min-height: calc(100vh - 54px); display: flex; align-items: center;
             justify-content: center; padding: 32px 24px; background: var(--bg); }
.gen-card  { background: var(--s1); border: 1px solid var(--b1); border-radius: 12px;
             padding: 44px 48px; max-width: 560px; width: 100%;
             box-shadow: var(--shadow-md); text-align: center; }

.gen-company      { display: flex; align-items: center; gap: 14px; margin-bottom: 28px;
                    justify-content: center; }
.gen-logo         { width: 44px; height: 44px; background: #eff6ff; border-radius: 10px;
                    display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 24px;
                    color: var(--accent); flex-shrink: 0; }
.gen-company-name { font-weight: 700; font-size: 16px;
                    color: var(--t1); text-align: left; }
.gen-company-domain { font-size: 15px; color: var(--t3); text-align: left; margin-top: 2px; }

.gen-title { font-weight: 800; font-size: 24px;
             color: var(--t1); margin-bottom: 10px; }
.gen-sub   { font-size: 15px; color: var(--t2); line-height: 1.7; margin-bottom: 28px; }

/* Progress bar */
.gen-progress-wrap { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.gen-progress-bar  { flex: 1; height: 8px; background: var(--b1); border-radius: 99px;
                     overflow: hidden; }
.gen-progress-fill { height: 100%; width: 0%; border-radius: 99px;
                     background: linear-gradient(90deg, var(--accent), #60a5fa);
                     transition: width 1.2s ease; }
.gen-progress-pct  { font-size: 15px; font-weight: 700; color: var(--accent);
                     min-width: 36px; text-align: right; }
.gen-stage { font-size: 15px; color: var(--t2); margin-bottom: 24px;
             min-height: 18px; font-style: italic; }

/* Steps list */
.gen-steps { display: flex; flex-direction: column; gap: 10px;
             text-align: left; margin-bottom: 28px; }
.gen-step  { display: flex; align-items: center; gap: 12px; }
.gen-step__dot { width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0;
                 border: 2px solid var(--b2); background: var(--s1);
                 transition: all .3s; position: relative; }
.gen-step__dot.active { border-color: var(--accent); background: #eff6ff;
                        box-shadow: 0 0 0 3px rgba(42,107,232,.15); }
.gen-step__dot.active::after { content: ''; position: absolute; top: 50%; left: 50%;
                                width: 6px; height: 6px; background: var(--accent);
                                border-radius: 50%; transform: translate(-50%,-50%);
                                animation: pulse 1s infinite; }
.gen-step__dot.done { border-color: var(--green); background: #d1fae5; }
.gen-step__dot.done::after { content: '✓'; position: absolute; top: 50%; left: 50%;
                              transform: translate(-50%,-50%); font-size: 15px;
                              color: var(--green); font-weight: 700; }
.gen-step__label { font-size: 15px; color: var(--t2); }
.gen-step__dot.active ~ .gen-step__label { color: var(--t1); font-weight: 500; }
.gen-step__dot.done ~ .gen-step__label   { color: var(--green); }

@keyframes pulse {
  0%, 100% { opacity: 1; transform: translate(-50%,-50%) scale(1); }
  50%       { opacity: .5; transform: translate(-50%,-50%) scale(1.4); }
}

.gen-notice { background: #f8f9fb; border: 1px solid var(--b1); border-radius: 6px;
              padding: 12px 16px; font-size: 15px; color: var(--t3); line-height: 1.65; }
.gen-error  { background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px;
              padding: 16px; font-size: 15px; color: #991b1b; line-height: 1.65;
              margin-top: 16px; text-align: center; }

/* ── Prospect lookup bar ───────────────────────────────── */
.lookup-bar    { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 6px; }
.lookup-btn    { flex-shrink: 0; height: 38px; margin-bottom: 20px; }
.lookup-error  { background: #fef2f2; border: 1px solid #fecaca; border-radius: 5px;
                 padding: 10px 14px; font-size: 15px; color: #991b1b; margin-bottom: 14px; }
.lookup-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0 18px;
                  font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--t3); }
.lookup-divider::before, .lookup-divider::after { content: ''; flex: 1; height: 1px; background: var(--b1); }

/* ── Detail page ───────────────────────────────────────── */
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.detail-card { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
               padding: 22px 24px; box-shadow: var(--shadow); }
.detail-card__title { font-weight: 700; font-size: 15px;
                      text-transform: uppercase; letter-spacing: .06em; color: var(--t3);
                      margin-bottom: 16px; display: flex; justify-content: space-between; }
.detail-card__edit  { font-size: 15px; color: var(--accent);
                      font-weight: 400; text-transform: none; letter-spacing: 0; }
.profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.profile-item      { background: var(--s2); border-radius: 5px; padding: 10px 14px; }
.profile-item__label { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                       color: var(--t3); margin-bottom: 2px; }
.profile-item__val   { font-size: 15px; color: var(--t1); font-weight: 500; }
.detail-notes { font-size: 15px; color: var(--t2); line-height: 1.65; margin-top: 10px;
                padding-top: 10px; border-top: 1px solid var(--b1); }
.session-list { display: flex; flex-direction: column; gap: 6px; }
.session-row  { display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; align-items: center;
                background: var(--s2); border: 1px solid var(--b1); border-radius: 5px;
                padding: 10px 14px; text-decoration: none; color: var(--t1);
                transition: border-color .15s; }
.session-row:hover { border-color: var(--accent); text-decoration: none; }
.session-row__num  { font-size: 15px; color: var(--t3); text-align: right; }
.session-row__title { font-size: 15px; color: var(--t1); font-weight: 500; }
.session-row__date  { font-size: 15px; color: var(--t3); margin-top: 2px; }

/* ── Report view ───────────────────────────────────────── */
.rpt-exec-panel  { background: #eff6ff; border: 1px solid #bfdbfe;
                   border-left: 4px solid var(--accent);
                   border-radius: var(--radius); padding: 18px 22px; margin-bottom: 16px; }
.rpt-exec-label  { font-size: 15px; letter-spacing: .12em; text-transform: uppercase;
                   color: #3b82f6; margin-bottom: 8px; font-weight: 600; }
.rpt-exec-panel p { font-size: 15px; color: #1e3a5f; line-height: 1.75; }

/* Risk cards */
.rpt-risk-cards      { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 18px; }
.rpt-risk-card       { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                       padding: 16px 18px; text-align: center; box-shadow: var(--shadow); }
.rpt-risk-card--high   { border-top: 3px solid #dc2626; }
.rpt-risk-card--medium { border-top: 3px solid #d97706; }
.rpt-risk-card--low    { border-top: 3px solid #059669; }
.rpt-risk-label      { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                       color: var(--t3); margin-bottom: 5px; }
.rpt-risk-level      { font-weight: 800; font-size: 24px; margin-bottom: 4px; }
.rpt-risk-level--high   { color: #dc2626; }
.rpt-risk-level--medium { color: #d97706; }
.rpt-risk-level--low    { color: #059669; }
.rpt-risk-sub        { font-size: 15px; color: var(--t2); line-height: 1.5; }

/* Profile panel */
.rpt-profile-panel   { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                       padding: 20px 24px; margin-bottom: 16px; box-shadow: var(--shadow); }
.rpt-narrative       { font-size: 15px; color: var(--t2); line-height: 1.75; margin-bottom: 16px; }

/* Signals panel */
.rpt-signals-panel { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                     padding: 18px 22px; margin-bottom: 24px; box-shadow: var(--shadow); }
.panel-title     { font-weight: 700; font-size: 15px;
                   text-transform: uppercase; letter-spacing: .06em; color: var(--t2); margin-bottom: 10px; }
.signals-list    { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.signals-list li { font-size: 15px; color: var(--t2); display: flex; gap: 8px; line-height: 1.55; }
.signals-list li::before { content: '→'; color: var(--accent); flex-shrink: 0; font-size: 15px; margin-top: 1px; }

/* Lens rows */
.lens-group-label { font-size: 15px; letter-spacing: .14em; text-transform: uppercase;
                    color: var(--t3); padding: 10px 0 6px; margin-top: 10px;
                    border-bottom: 1px solid var(--b1); margin-bottom: 6px; }
.lens-row   { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
              margin-bottom: 5px; overflow: hidden; box-shadow: var(--shadow); }
.lens-row.open { border-color: var(--accent); box-shadow: 0 2px 12px rgba(42,107,232,.1); }
.lens-header { display: grid; grid-template-columns: 28px 1fr auto auto auto 20px;
               align-items: center; gap: 10px; padding: 11px 14px; cursor: pointer;
               background: var(--s1); user-select: none; transition: background .12s; }
.lens-header:hover { background: var(--s2); }
.lens-row.open .lens-header { background: #eff6ff; }
.lens-n      { font-size: 15px; color: var(--t3); text-align: right; font-weight: 600; }
.lens-name   { font-size: 15px; font-weight: 600; color: var(--t1); }
.lens-group-tag { font-size: 15px; color: var(--t3); margin-top: 1px; }
.lens-chevron { font-size: 15px; color: var(--t3); transition: transform .2s; }
.lens-row.open .lens-chevron { transform: rotate(180deg); color: var(--accent); }
.lens-body   { padding: 0 14px 18px; background: #fafbfc; border-top: 1px solid var(--b1); }
.lens-body-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 16px; }
.lens-intel-label { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                    color: var(--t3); margin-bottom: 5px; margin-top: 2px; font-weight: 600; }
.lens-intel-text  { font-size: 15px; color: var(--t2); line-height: 1.75; }
.completed-tag { font-size: 15px; color: var(--green); font-weight: 600; }
.dq-list { list-style: none; display: flex; flex-direction: column; gap: 7px; margin-top: 6px; }
.dq-list li { font-size: 15px; color: var(--t2); display: flex; gap: 7px; line-height: 1.55; }
.dq-list li::before { content: '?'; color: var(--accent); flex-shrink: 0; font-weight: 700; font-size: 15px; }

/* Tier + Score badges */
.tier-badge  { font-size: 15px; font-weight: 600; padding: 2px 7px; border-radius: 10px; white-space: nowrap; }
.tier-1 { background: #dbeafe; color: #1e40af; }
.tier-2 { background: #fef3c7; color: #92400e; }
.tier-3 { background: #f3e8ff; color: #6b21a8; }
.tier-4 { background: #d1fae5; color: #065f46; }
.score-pill  { font-size: 15px; font-weight: 700; padding: 3px 9px; border-radius: 20px;
               text-transform: uppercase; letter-spacing: .04em; }
.score-High   { background: #fee2e2; color: #dc2626; }
.score-Medium { background: #fef3c7; color: #d97706; }
.score-Low    { background: #d1fae5; color: #059669; }

/* Dominant lenses */
.dominant-grid       { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 28px; }
.dominant-card       { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                       padding: 18px 20px; box-shadow: var(--shadow); }
.dominant-card--1    { border-top: 3px solid var(--accent); }
.dominant-card--2    { border-top: 3px solid #d97706; }
.dominant-card--3    { border-top: 3px solid #7c3aed; }
.dominant-rank       { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                       color: var(--t3); margin-bottom: 5px; }
.dominant-name       { font-weight: 700; font-size: 15px; color: var(--t1); margin-bottom: 6px; line-height: 1.3; }
.dominant-why        { font-size: 15px; color: var(--t2); line-height: 1.65; }

/* Advisory products */
.advisory-list       { display: flex; flex-direction: column; gap: 12px; margin-bottom: 28px; }
.advisory-card       { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
                       overflow: hidden; display: flex; box-shadow: var(--shadow); }
.advisory-card__body { padding: 18px 22px; flex: 1; border-left: 5px solid var(--accent); }
.advisory-card--2 .advisory-card__body { border-left-color: #d97706; }
.advisory-card--3 .advisory-card__body { border-left-color: #7c3aed; }
.advisory-card__header { display: flex; align-items: flex-start; justify-content: space-between;
                         gap: 12px; margin-bottom: 8px; }
.advisory-card__name   { font-weight: 700; font-size: 15px; color: var(--t1); }
.advisory-card__reason { font-size: 15px; color: var(--t2); line-height: 1.75; margin-bottom: 9px; }
.advisory-card__pitch  { background: var(--s2); border-left: 3px solid var(--b1); padding: 9px 13px;
                         font-size: 15px; color: var(--t1); font-style: italic;
                         border-radius: 0 4px 4px 0; }
.advisory-card__evidence { margin-top: 9px; font-size: 15px; color: var(--t3); line-height: 1.6; }
.advisory-card__evidence strong { color: var(--t2); font-size: 15px;
                                   text-transform: uppercase; letter-spacing: .05em; }

/* Advisory motion */
.motion-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 40px; }
.motion-card { background: var(--s1); border: 1px solid var(--b1); border-radius: var(--radius);
               padding: 22px 24px; box-shadow: var(--shadow); }
.motion-icon  { font-size: 24px; margin-bottom: 10px; }
.motion-label { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                color: var(--t3); margin-bottom: 8px; font-weight: 600; }
.motion-text  { font-size: 15px; font-weight: 600; color: var(--t1); line-height: 1.55; margin-bottom: 8px; }
.motion-sub   { font-size: 15px; color: var(--t2); line-height: 1.7; }

/* AI suggestion box */
.suggestion-box { margin-top: 10px; background: #eff6ff; border: 1px solid #bfdbfe;
                  border-radius: 5px; padding: 12px 14px; font-size: 15px;
                  color: #1e3a5f; line-height: 1.7; }

/* ── Session workspace ─────────────────────────────────── */
.workspace      { display: flex; flex-direction: column; height: calc(100vh - 54px); overflow: hidden; }
.ws-header      { padding: 16px max(28px, calc(50% - 460px)) 14px;
                  border-bottom: 1px solid var(--b1);
                  display: flex; justify-content: space-between; align-items: flex-start;
                  background: var(--s1); flex-shrink: 0; box-shadow: var(--shadow); }
.ws-body        { flex: 1; overflow-y: auto; padding: 20px 28px; background: var(--bg); }
.ws-group-label { font-size: 15px; letter-spacing: .14em; text-transform: uppercase;
                  color: var(--t3); padding: 14px 0 6px; margin-top: 8px;
                  border-bottom: 1px solid var(--b1); margin-bottom: 8px; }
.ws-lens        { display: grid; grid-template-columns: 1fr 1fr; gap: 0;
                  border: 1px solid var(--b1); border-radius: var(--radius);
                  margin-bottom: 8px; overflow: hidden; box-shadow: var(--shadow); }
.ws-lens__left  { padding: 16px 18px; background: var(--s1); border-right: 1px solid var(--b1); }
.ws-lens__right { padding: 16px 18px; background: var(--s2); }
.ws-lens__num   { font-size: 15px; color: var(--t3); margin-bottom: 4px; font-weight: 600; }
.ws-lens__title { font-size: 15px; font-weight: 600; color: var(--t1); margin-bottom: 8px;
                  display: flex; align-items: center; gap: 8px; }
.ws-lens__score { font-size: 15px; font-weight: 700; text-transform: uppercase; margin-bottom: 8px; }
.ws-lens__score.score-High   { color: #dc2626; }
.ws-lens__score.score-Medium { color: #d97706; }
.ws-lens__score.score-Low    { color: #059669; }
.ws-lens__intel { font-size: 15px; color: var(--t2); line-height: 1.7; }
.ws-lens__intel--muted { color: var(--t3); font-style: italic; }
.ws-lens__dq-label { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                     color: var(--t3); margin: 10px 0 5px; }
.ws-dq-list     { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.ws-dq-list li  { font-size: 15px; color: var(--t2); display: flex; gap: 6px; line-height: 1.55; }
.ws-dq-list li::before { content: '?'; color: var(--accent); flex-shrink: 0; font-weight: 700; }
.ws-input-label { font-size: 15px; letter-spacing: .1em; text-transform: uppercase;
                  color: var(--t3); margin-bottom: 5px; font-weight: 600; }
.ws-save-status { font-size: 15px; color: var(--green); height: 14px; margin-top: 6px; }

/* Severity pills */
.severity-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.sev-pill       { padding: 4px 10px; border-radius: 20px; font-size: 15px; font-weight: 600;
                  cursor: pointer; border: 1px solid var(--b1); background: var(--s1); color: var(--t2);
                  transition: background .15s, color .15s, border-color .15s; }
.sev-pill:hover { border-color: var(--b3); background: var(--s2); }
.sev-pill.active.sev-High   { background: #fee2e2; color: #dc2626; border-color: #fca5a5; }
.sev-pill.active.sev-Medium { background: #fef3c7; color: #d97706; border-color: #fcd34d; }
.sev-pill.active.sev-Low    { background: #d1fae5; color: #059669; border-color: #6ee7b7; }
.sev-pill.active.sev-Not_Applicable { background: #f3f4f6; color: var(--t2); border-color: var(--b2); }

/* ── Share panel ───────────────────────────────────────── */
.share-panel { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: var(--radius);
               padding: 14px 18px; margin-bottom: 20px; }
.share-panel__label { font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
                      color: #1e40af; font-weight: 700; margin-bottom: 8px; }
.share-panel__hint  { font-weight: 400; color: var(--t3); text-transform: none; letter-spacing: 0; font-size: 13px; }
.share-panel__row   { display: flex; gap: 8px; align-items: center; }
.share-panel__input { flex: 1; background: var(--s1); border: 1px solid var(--b1); border-radius: 5px;
                      padding: 7px 10px; font-family: var(--font-body); font-size: 13px;
                      color: var(--t1); outline: none; }
.share-panel__input:focus { border-color: var(--accent); }

/* ── Shared (public) report header ─────────────────────── */
.shared-header { background: var(--s1); border-bottom: 1px solid var(--b1); padding: 14px 0;
                 box-shadow: var(--shadow); }
.shared-header__inner { max-width: 1100px; margin: 0 auto; padding: 0 28px;
                        display: flex; align-items: center; justify-content: space-between; }
.shared-header__sub   { font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
                        color: var(--t3); font-weight: 600; }
.shared-footer { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--b1);
                 font-size: 13px; color: var(--t3); text-align: center; }


/* ═════════════════════════════════════════════════════════════════════════
   GLASSMORPHISM LAYER
   Adds frosted-glass surfaces over a soft animated mesh background.
   Loaded after the base styles so selectors override on equal specificity.
   ═════════════════════════════════════════════════════════════════════════ */

:root {
  --glass-bg:        rgba(255, 255, 255, 0.55);
  --glass-bg-strong: rgba(255, 255, 255, 0.72);
  --glass-bg-tint:   rgba(255, 255, 255, 0.40);
  --glass-border:    rgba(255, 255, 255, 0.55);
  --glass-edge:      rgba(255, 255, 255, 0.85);
  --glass-blur:      saturate(180%) blur(20px);
  --glass-blur-sm:   saturate(160%) blur(10px);
  --glass-shadow:    0 8px 32px rgba(31, 41, 80, 0.10),
                     0 1px 0 rgba(255, 255, 255, 0.6) inset;
  --glass-shadow-md: 0 14px 40px rgba(31, 41, 80, 0.16),
                     0 1px 0 rgba(255, 255, 255, 0.7) inset;
  --glass-radius:    14px;
}

/* Mesh-gradient background — fixed so it stays put while content scrolls. */
body {
  background:
    radial-gradient(at 18% 14%, rgba(165, 180, 252, 0.55) 0px, transparent 45%),
    radial-gradient(at 88% 18%, rgba(252, 165, 224, 0.45) 0px, transparent 50%),
    radial-gradient(at 12% 88%, rgba(167, 243, 208, 0.45) 0px, transparent 50%),
    radial-gradient(at 92% 80%, rgba(186, 230, 253, 0.55) 0px, transparent 50%),
    linear-gradient(135deg, #eef2ff 0%, #f5f3ff 50%, #fdf4ff 100%);
  background-attachment: fixed;
  color: var(--t1);
}

/* Nav becomes a frosted glass strip. */
.nav {
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border);
  box-shadow: 0 4px 20px rgba(31, 41, 80, 0.06);
}

/* Generic glass-surface helper — used by many cards below. */
.detail-card,
.rpt-exec-panel,
.rpt-profile-panel,
.rpt-signals-panel,
.rpt-risk-card,
.lens-row,
.dominant-card,
.advisory-card,
.motion-card,
.gen-card,
.prospect-card,
.assessment-card,
.share-panel,
.shared-header,
.session-row,
.flash {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--glass-radius);
  box-shadow: var(--glass-shadow);
}

.gen-card { border-radius: 18px; }

/* Tinted variants — preserve color cues but glassed. */
.rpt-exec-panel  { background: rgba(219, 234, 254, 0.55); border-color: rgba(147, 197, 253, 0.55); }
.rpt-exec-panel p { color: #1e3a5f; }
.share-panel     { background: rgba(219, 234, 254, 0.55); border-color: rgba(147, 197, 253, 0.55); }

.rpt-risk-card--high   { border-top: 3px solid #dc2626; }
.rpt-risk-card--medium { border-top: 3px solid #d97706; }
.rpt-risk-card--low    { border-top: 3px solid #059669; }

/* Lens row — frosted, with a slightly stronger surface when open. */
.lens-row { transition: box-shadow .25s, border-color .25s, transform .15s; }
.lens-row:hover { box-shadow: var(--glass-shadow-md); }
.lens-row.open {
  background: var(--glass-bg-strong);
  border-color: rgba(124, 58, 237, 0.35);
  box-shadow: 0 12px 40px rgba(124, 58, 237, 0.18),
              0 1px 0 rgba(255, 255, 255, 0.7) inset;
}
.lens-row.open .lens-header { background: transparent; }

/* Dominant + advisory color edges, but glass elsewhere. */
.dominant-card--1 { border-top: 3px solid var(--accent); }
.dominant-card--2 { border-top: 3px solid #d97706; }
.dominant-card--3 { border-top: 3px solid #7c3aed; }

.advisory-card__body { background: transparent; }
.advisory-card__pitch { background: rgba(255, 255, 255, 0.55); border-left-color: rgba(255,255,255,0.6); }

/* Prospect / assessment cards — softer interactive feel. */
.prospect-card { transition: transform .15s, box-shadow .25s, border-color .25s; }
.prospect-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--glass-shadow-md);
  border-color: rgba(124, 58, 237, 0.45);
}

.assessment-card { backdrop-filter: var(--glass-blur); }
.assessment-card--ai_readiness  { border-left: 4px solid #7c3aed; }
.assessment-card--cybersecurity { border-left: 4px solid #dc2626; }

/* Session list rows on prospect detail — small glassy chips. */
.session-row {
  -webkit-backdrop-filter: var(--glass-blur-sm);
          backdrop-filter: var(--glass-blur-sm);
  border-radius: 10px;
  margin-bottom: 8px;
}

/* Buttons — give the primary a glossy gradient, secondary a glass surface. */
.btn--primary {
  background: linear-gradient(135deg, #6366f1 0%, #2a6be8 60%, #1d4ed8 100%);
  border: 1px solid rgba(255, 255, 255, 0.25);
  box-shadow: 0 6px 18px rgba(42, 107, 232, 0.35),
              0 1px 0 rgba(255, 255, 255, 0.4) inset;
}
.btn--primary:hover {
  background: linear-gradient(135deg, #4f46e5 0%, #1d4ed8 60%, #1e3a8a 100%);
  box-shadow: 0 8px 22px rgba(42, 107, 232, 0.45),
              0 1px 0 rgba(255, 255, 255, 0.4) inset;
}

.btn--secondary, .btn--ghost {
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: var(--glass-blur-sm);
          backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-border);
}
.btn--secondary:hover, .btn--ghost:hover { background: rgba(255, 255, 255, 0.92); }

/* Form inputs stay solid for typing readability, but with a softer surface. */
.field-input, .share-panel__input {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) inset;
}
.field-input:focus, .share-panel__input:focus {
  background: #ffffff;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18);
}

/* Generating-page progress bar gets a glow. */
.gen-progress-bar { background: rgba(255, 255, 255, 0.5); }
.gen-progress-fill {
  background: linear-gradient(90deg, #6366f1 0%, #8b5cf6 50%, #ec4899 100%);
  box-shadow: 0 0 18px rgba(139, 92, 246, 0.45);
}

/* Shared report header — frosted strip across the top. */
.shared-header {
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border);
  border-radius: 0;
}

/* Soft transitions on most surfaces. */
.detail-card, .rpt-exec-panel, .rpt-profile-panel, .rpt-signals-panel,
.rpt-risk-card, .dominant-card, .advisory-card, .motion-card, .assessment-card {
  transition: transform .15s, box-shadow .25s, border-color .25s;
}
.rpt-risk-card:hover, .dominant-card:hover,
.advisory-card:hover, .motion-card:hover, .assessment-card:hover {
  transform: translateY(-1px);
  box-shadow: var(--glass-shadow-md);
}

/* Fallback — older browsers without backdrop-filter get a solid translucent surface. */
@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  .nav, .detail-card, .rpt-exec-panel, .rpt-profile-panel, .rpt-signals-panel,
  .rpt-risk-card, .lens-row, .dominant-card, .advisory-card, .motion-card,
  .gen-card, .prospect-card, .assessment-card, .share-panel, .shared-header,
  .session-row, .btn--secondary, .btn--ghost, .field-input, .share-panel__input {
    background: var(--s1);
  }
}

/* ── Roadmap progress arrows — per-step spectrum colour ─ */
.roadmap-arrows {
  display: flex;
  gap: 4px;            /* small gap, the chevrons close it visually */
  margin: 14px 0 22px;
  flex-wrap: nowrap;
  align-items: stretch;
  overflow-x: auto;     /* scroll instead of wrap on narrow screens */
  padding: 10px 14px 14px 0;   /* room for the chevron point + glow */
}
.roadmap-arrow {
  position: relative;
  flex: 1 1 0; min-width: 130px;
  padding: 12px 16px 12px 22px;
  background: linear-gradient(135deg, var(--c1, #6366f1), var(--c2, #8b5cf6));
  border: 0;
  border-radius: 8px;
  color: var(--text, #fff);
  display: flex; flex-direction: column; gap: 6px;
  box-shadow: 0 6px 14px -6px rgba(0, 0, 0, 0.18),
              0 1px 0 rgba(255,255,255,0.18) inset;
  transition: transform .2s, box-shadow .25s, opacity .2s, filter .2s;
}
.roadmap-arrow:hover { transform: translateY(-2px);
                        box-shadow: 0 12px 22px -8px rgba(0,0,0,0.25),
                                    0 1px 0 rgba(255,255,255,0.25) inset; }

/* Right-pointing chevron tip — colour matches arrow's right-edge gradient stop */
.roadmap-arrow::after {
  content: ""; position: absolute;
  right: -12px; top: 0; bottom: 0; width: 12px;
  background: var(--c2, #8b5cf6);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  z-index: 1;
}
.roadmap-arrow:last-child { border-radius: 8px 8px 8px 8px; }
.roadmap-arrow:last-child::after { display: none; }

/* Inner content */
.roadmap-arrow__head { display: flex; justify-content: space-between; align-items: center; }
.roadmap-arrow__chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 18px; padding: 0 7px;
  background: color-mix(in srgb, currentColor 18%, transparent);
  border: 1px solid color-mix(in srgb, currentColor 32%, transparent);
  color: currentColor; font-weight: 800; font-size: 10px; letter-spacing: .12em;
  border-radius: 999px;
}
.roadmap-arrow__check {
  width: 18px; height: 18px; border-radius: 50%;
  background: #fff; color: #047857;
  font-size: 11px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.25);
}
.roadmap-arrow__label {
  font-weight: 700; font-size: 13px; line-height: 1.25;
  color: currentColor; opacity: 0.96; letter-spacing: -0.005em;
}
.roadmap-arrow__opt {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  font-weight: 700; color: currentColor; opacity: 0.72;
  min-height: 12px;
}

/* States — colour stays the same; intensity changes */
.roadmap-arrow--pending  { opacity: 0.42; filter: saturate(0.85); }
.roadmap-arrow--pending:hover { opacity: 0.7; }

.roadmap-arrow--complete {
  box-shadow: 0 6px 14px -4px rgba(0, 0, 0, 0.22),
              0 1px 0 rgba(255,255,255,0.25) inset;
}

.roadmap-arrow--active {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.85),
              0 12px 28px -8px var(--c2, rgba(99,102,241,0.6)),
              0 1px 0 rgba(255,255,255,0.3) inset;
  transform: translateY(-1px) scale(1.03);
  z-index: 5;
  animation: roadmapPulse 2.2s ease-in-out infinite;
}
@keyframes roadmapPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(255,255,255,0.85),
                          0 10px 24px -10px var(--c2, rgba(99,102,241,0.55)),
                          0 1px 0 rgba(255,255,255,0.25) inset; }
  50%      { box-shadow: 0 0 0 5px rgba(255,255,255,0.7),
                          0 16px 30px -8px var(--c2, rgba(99,102,241,0.85)),
                          0 1px 0 rgba(255,255,255,0.35) inset; }
}

/* Optional steps get a faint dashed inner indicator */
.roadmap-arrow--optional::before {
  content: ""; position: absolute; inset: 4px 6px 4px 4px;
  border: 1px dashed color-mix(in srgb, currentColor 35%, transparent);
  border-radius: 5px; pointer-events: none;
}

/* ── Pillar dot row (used in prospect list) ─────────────── */
.pillar-dots { display: flex; gap: 4px; margin-top: 8px; }
.pillar-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: #e5e7eb; border: 1px solid rgba(0,0,0,0.05);
}
.pillar-dot--in_progress { background: #fbbf24; }
.pillar-dot--complete    { background: #10b981; }
.pillar-dot--blocked     { background: #ef4444; }
.pillar-dots__label { font-size: 11px; color: var(--t3); margin-left: 6px; align-self: center; }

/* ── Pillar cards (prospect detail) ─────────────────────── */
.pillars-section { margin: 22px 0 28px; }
.pillars-section__title { font-weight: 700; font-size: 15px; color: var(--t1);
                          margin-bottom: 4px; }
.pillars-section__sub   { font-size: 13px; color: var(--t3); margin-bottom: 14px; }
.pillars-grid {
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.pillar-card {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--glass-radius);
  padding: 14px 16px;
  display: flex; flex-direction: column; gap: 8px;
  border-top: 4px solid var(--b2);
}
.pillar-card--infrastructure { border-top-color: #ef4444; }
.pillar-card--data           { border-top-color: #6366f1; }
.pillar-card--governance     { border-top-color: #10b981; }
.pillar-card--talent         { border-top-color: #f59e0b; }
.pillar-card--cs_identity    { border-top-color: #dc2626; }
.pillar-card--cs_endpoint    { border-top-color: #ea580c; }
.pillar-card--cs_detection   { border-top-color: #0ea5e9; }
.pillar-card--cs_governance  { border-top-color: #7c3aed; }
.pillar-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.pillar-card__name { font-weight: 700; font-size: 14px; letter-spacing: .04em;
                     text-transform: uppercase; color: var(--t1); }
.pillar-card__desc { font-size: 12px; color: var(--t3); line-height: 1.45; }
.pillar-card__row  { display: flex; gap: 6px; align-items: center; }
.pillar-card__select {
  flex: 1; background: rgba(255,255,255,0.85); border: 1px solid var(--glass-border);
  border-radius: 5px; padding: 5px 8px; font-family: var(--font-body);
  font-size: 13px; color: var(--t1); outline: none;
}
.pillar-card__notes {
  width: 100%; background: rgba(255,255,255,0.85); border: 1px solid var(--glass-border);
  border-radius: 5px; padding: 6px 8px; font-family: var(--font-body); font-size: 13px;
  resize: vertical; min-height: 50px; color: var(--t1); outline: none;
}
.pillar-card__save-status { font-size: 11px; color: var(--t3); height: 14px; }
.pillar-card__status-pill {
  font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 20px;
}
.pillar-card__status-pill--not_started { background: #f3f4f6; color: var(--t3); }
.pillar-card__status-pill--in_progress { background: #fef3c7; color: #92400e; }
.pillar-card__status-pill--complete    { background: #d1fae5; color: #065f46; }
.pillar-card__status-pill--blocked     { background: #fee2e2; color: #991b1b; }

/* Rich pillar card variant */
.pillars-grid--rich   { grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 720px) {
  .pillars-grid--rich { grid-template-columns: 1fr; }
}
.pillar-card--rich    { gap: 10px; padding: 16px 18px; }
.pillar-card--rich .pillar-card__head { align-items: flex-start; }
.pillar-field         { display: flex; flex-direction: column; gap: 4px; }
.pillar-field__label  { font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
                        color: var(--t3); font-weight: 700; }
.pillar-card--rich .pillar-card__notes { min-height: 56px; }

.pillar-scores        { display: grid; grid-template-columns: 1fr 1fr;
                        column-gap: 10px; row-gap: 4px;
                        padding-top: 8px; border-top: 1px dashed rgba(0,0,0,.08); margin-top: 4px;
                        align-items: end; }
.pillar-scores .pillar-score__gap { grid-column: 1 / -1; font-size: 12px;
                        color: var(--t2); text-align: right; font-weight: 600;
                        margin-top: 4px; }
.pillar-score__header { display: flex; justify-content: space-between; align-items: end;
                        gap: 6px; min-height: 32px; }
.pillar-score__val    { font-weight: 700; font-size: 14px; color: var(--t1); white-space: nowrap; }
.pillar-range         { width: 100%; -webkit-appearance: none; appearance: none;
                        height: 6px; border-radius: 999px; background: rgba(0,0,0,.08);
                        outline: none; }
.pillar-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none;
                        width: 16px; height: 16px; border-radius: 50%;
                        background: var(--accent); border: 2px solid #fff;
                        box-shadow: 0 1px 4px rgba(0,0,0,.18); cursor: pointer; }
.pillar-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%;
                        background: var(--accent); border: 2px solid #fff;
                        box-shadow: 0 1px 4px rgba(0,0,0,.18); cursor: pointer; }
.pillar-range--ideal::-webkit-slider-thumb { background: #10b981; }
.pillar-range--ideal::-moz-range-thumb     { background: #10b981; }

/* ── Workspace step block (notes-only, used by AI Readiness sessions) ─ */
.ws-step {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur-sm);
          backdrop-filter: var(--glass-blur-sm);
  border: 1px solid var(--glass-border);
  border-radius: var(--glass-radius);
  padding: 14px 16px;
  margin-bottom: 12px;
}
.ws-step__head    { display: flex; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.ws-step__num     { font-size: 11px; font-weight: 800; color: var(--t3);
                    letter-spacing: .1em; text-transform: uppercase; flex-shrink: 0; }
.ws-step__title   { font-weight: 700; font-size: 15px; color: var(--t1);
                    display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ws-step__chip    { font-size: 10px; font-weight: 700; letter-spacing: .06em;
                    text-transform: uppercase; padding: 2px 8px; border-radius: 20px; }
.ws-step__chip--mandatory { background: #ede9fe; color: #5b21b6; }
.ws-step__chip--optional  { background: #f3f4f6; color: var(--t3); font-style: italic; }
.ws-step__intel   { font-size: 13px; color: var(--t2); line-height: 1.5; margin: 6px 0 10px;
                    padding-left: 10px; border-left: 2px solid rgba(124, 58, 237, 0.25); }
.ws-step__done-toggle {
  margin-left: auto; display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--t3); cursor: pointer; user-select: none;
  white-space: nowrap;
}
.ws-step__done-toggle input { cursor: pointer; }
.ws-step__done-label { letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.ws-step--done {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.10), rgba(5, 150, 105, 0.10));
  border-color: rgba(5, 150, 105, 0.45);
}
.ws-step--done .ws-step__num   { color: #065f46; }
.ws-step--done .ws-step__title { color: #065f46; }
.ws-step--done .ws-step__done-label { color: #065f46; }
.ws-step--done .ws-step__done-toggle::before {
  content: "✓"; font-weight: 800; color: #10b981; font-size: 14px;
}

.step-progress-count {
  font-size: 12px; font-weight: 600; color: var(--t3);
  background: rgba(0,0,0,.05); padding: 3px 10px; border-radius: 999px;
  letter-spacing: .04em;
}

/* ════════════════════════════════════════════════════════════════════════
   COMPACT SESSION WORKSPACE — collapsible rows + power-user nav
   ════════════════════════════════════════════════════════════════════════ */
.wsx { padding: 14px 22px 80px; outline: none;
        max-width: 920px; margin: 0 auto; width: 100%; }
.wsx-block { margin-bottom: 22px; }
.wsx-block__head { display: flex; justify-content: space-between; align-items: center;
                   gap: 10px; padding: 6px 4px 8px; border-bottom: 1px solid var(--b1);
                   margin-bottom: 8px; }
.wsx-block__title { font-size: 13px; font-weight: 800; letter-spacing: .12em;
                     text-transform: uppercase; color: var(--t1);
                     display: flex; align-items: center; gap: 10px; }
.wsx-counter { font-size: 11px; color: var(--t3); font-weight: 700;
                background: rgba(99,102,241,0.10); color: #4338ca;
                padding: 2px 9px; border-radius: 999px; letter-spacing: 0; }
.wsx-block__actions { display: flex; gap: 4px; }
.wsx-icon-btn { width: 26px; height: 26px; border-radius: 6px;
                background: var(--glass-bg); border: 1px solid var(--glass-border);
                color: var(--t2); font-size: 13px; cursor: pointer;
                display: inline-flex; align-items: center; justify-content: center;
                transition: background .15s, border-color .15s; }
.wsx-icon-btn:hover { background: #fff; border-color: var(--accent); color: var(--accent); }

.wsx-rows { display: flex; flex-direction: column; gap: 4px; }

/* ── Row (shared base) ── */
.wsx-row { background: var(--glass-bg);
           -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
           border: 1px solid var(--glass-border); border-radius: 10px;
           overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.wsx-row--focus { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(99,102,241,.15); }
.wsx-row__head { width: 100%; background: transparent; border: 0; cursor: pointer;
                  text-align: left; padding: 10px 14px; display: flex; align-items: center;
                  gap: 10px; font-family: inherit; font-size: 13px; color: var(--t1); }
.wsx-row__head:hover { background: rgba(0,0,0,0.025); }
.wsx-row__chev { margin-left: auto; color: var(--t3); font-size: 13px;
                  transition: transform .2s; }
.wsx-row--open .wsx-row__chev { transform: rotate(180deg); color: var(--accent); }
.wsx-row__body { display: none; padding: 0 16px 14px; }
.wsx-row--open .wsx-row__body { display: block; }
.wsx-row__foot { display: flex; justify-content: flex-end; margin-top: 6px;
                  font-size: 11px; color: var(--t3); }

/* ── Step row ── */
.wsx-row--step .wsx-row__num   { font-size: 10px; font-weight: 800; letter-spacing: .12em;
                                  color: var(--t3); flex-shrink: 0; min-width: 22px; }
.wsx-row--step .wsx-row__name  { font-weight: 700; color: var(--t1); flex: 1;
                                  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wsx-row__chip { display: inline-flex; align-items: center; gap: 5px;
                  padding: 3px 9px 3px 7px; border-radius: 999px;
                  background: rgba(99,102,241,0.10); color: #4338ca;
                  font-size: 10px; font-weight: 800; letter-spacing: .04em;
                  text-transform: uppercase; cursor: pointer;
                  border: 1px solid rgba(99,102,241,0.18); }
.wsx-row__chip input { width: 11px; height: 11px; cursor: pointer; }
.wsx-row__chip.is-done { background: #d1fae5; color: #065f46; border-color: rgba(16,185,129,0.35); }
.wsx-row__meta { font-size: 11px; color: var(--t3); font-weight: 600; min-width: 64px;
                  text-align: right; }

.wsx-row--done { background: linear-gradient(135deg, rgba(16,185,129,.06), rgba(5,150,105,.06));
                  border-color: rgba(16,185,129,.32); }
.wsx-row--done .wsx-row__name  { color: #065f46; }
.wsx-row--done .wsx-row__num   { color: #047857; }

.wsx-step__intel { font-size: 12px; color: var(--t2); line-height: 1.55; margin: 6px 0 10px;
                    padding-left: 10px; border-left: 2px solid rgba(99,102,241,.25); }
.wsx-textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--b1);
                 border-radius: 6px; font-family: var(--font-body); font-size: 13px;
                 resize: vertical; background: rgba(255,255,255,.85); }
.wsx-textarea:focus { background: #fff; border-color: var(--accent);
                       box-shadow: 0 0 0 3px rgba(99,102,241,.15); outline: none; }

/* ── Pillar row ── */
.wsx-row__head--pill { padding: 8px 14px; cursor: default; }
.wsx-row__head--pill .wsx-row__head-btn { background: transparent; border: 0; padding: 0;
                                            display: flex; align-items: center; gap: 10px;
                                            cursor: pointer; flex: 1;
                                            font-family: inherit; color: var(--t1); font-size: 13px; }
.wsx-row__pill-stripe { width: 4px; height: 22px; border-radius: 999px; background: var(--b2); flex-shrink: 0; }
.wsx-row--infrastructure .wsx-row__pill-stripe { background: linear-gradient(180deg,#ef4444,#dc2626); }
.wsx-row--data           .wsx-row__pill-stripe { background: linear-gradient(180deg,#6366f1,#4338ca); }
.wsx-row--governance     .wsx-row__pill-stripe { background: linear-gradient(180deg,#10b981,#059669); }
.wsx-row--talent         .wsx-row__pill-stripe { background: linear-gradient(180deg,#f59e0b,#d97706); }
.wsx-row__pill-name   { font-weight: 700; flex: 1; }
.wsx-row__pill-status { background: rgba(255,255,255,.85); border: 1px solid var(--b1);
                         border-radius: 6px; padding: 4px 8px; font-size: 12px;
                         font-family: inherit; color: var(--t2); cursor: pointer; }
.wsx-row__pill-mini   { display: flex; align-items: center; gap: 8px; }
.wsx-row__pill-meta   { font-size: 11px; color: var(--t3); font-weight: 700;
                         min-width: 90px; text-align: right; }
.wsx-row__chev--pill  { background: transparent; border: 0; cursor: pointer;
                         color: var(--t3); font-size: 14px; padding: 4px 6px;
                         transition: transform .2s; }
.wsx-row--open .wsx-row__chev--pill { transform: rotate(180deg); color: var(--accent); }

/* Pillar status row tints (collapsed visual cue) */
.wsx-row--p-complete    { border-left: 3px solid #10b981; }
.wsx-row--p-in_progress { border-left: 3px solid #fbbf24; }
.wsx-row--p-blocked     { border-left: 3px solid #ef4444; }
.wsx-row--p-not_started { border-left: 3px solid var(--b2); }

/* Pillar expanded body */
.wsx-pill-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 6px; }
.wsx-pill-field { display: flex; flex-direction: column; gap: 3px; }
.wsx-pill-field--wide { grid-column: 1 / -1; }
.wsx-pill-field label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; }
.wsx-pill-field textarea { width: 100%; padding: 6px 8px; border: 1px solid var(--b1);
                            border-radius: 6px; font-family: var(--font-body); font-size: 12px;
                            background: rgba(255,255,255,.85); resize: vertical; }
.wsx-pill-field textarea:focus { background: #fff; border-color: var(--accent); outline: none; }
.wsx-pill-scores { grid-column: 1 / -1;
                    display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
                    padding-top: 4px; border-top: 1px dashed rgba(0,0,0,.06); }
.wsx-pill-score { display: flex; flex-direction: column; gap: 4px; }
.wsx-pill-score label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; }
.wsx-pill-score input[type=range] { width: 100%; -webkit-appearance: none;
                                     height: 5px; border-radius: 999px; background: rgba(0,0,0,.08); outline: none; }
.wsx-pill-score input[type=range]::-webkit-slider-thumb { -webkit-appearance: none;
  width: 14px; height: 14px; border-radius: 50%; background: var(--accent);
  border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); cursor: pointer; }

/* Keyboard help footer */
.wsx-keys { margin-top: 14px; padding: 8px 12px; font-size: 11px; color: var(--t3);
             text-align: center; background: rgba(99,102,241,.04); border-radius: 8px; }
.wsx-keys kbd { display: inline-block; padding: 1px 5px; margin: 0 2px;
                 background: #fff; border: 1px solid var(--b1); border-radius: 4px;
                 font-family: ui-monospace, monospace; font-size: 10px; color: var(--t1); }

/* ── Initiatives list (input page) ─────────────────────── */
.page--wide { max-width: 1280px; }
.initiatives-list { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.init-row {
  background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border); border-radius: var(--glass-radius);
  padding: 14px 18px;
}
.init-row__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.init-row__head > div:first-child { display: flex; gap: 12px; align-items: center; flex: 1; }
.init-row__num  { font-weight: 800; color: var(--t3); font-size: 13px; }
.init-row__name { flex: 1; background: rgba(255,255,255,0.85); border: 1px solid var(--glass-border);
                  border-radius: 6px; padding: 6px 10px; font-family: var(--font-body);
                  font-size: 16px; font-weight: 700; color: var(--t1); }
.init-row__actions { display: flex; gap: 8px; align-items: center; }
.init-row__status { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
                    padding: 2px 9px; border-radius: 999px; background: #f3f4f6; color: var(--t3); }
.init-row__status--draft      { background: #f3f4f6; color: var(--t3); }
.init-row__status--generating { background: #fef3c7; color: #92400e; }
.init-row__status--generated  { background: #d1fae5; color: #065f46; }
.init-row__status--final      { background: #dbeafe; color: #1e40af; }

.init-row__body { display: flex; flex-direction: column; gap: 12px; }
.init-row__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.init-field      { display: flex; flex-direction: column; gap: 4px; }
.init-field label { font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                    color: var(--t3); font-weight: 700; }
.init-field input[type=text], .init-field select, .init-field textarea {
  background: rgba(255,255,255,0.85); border: 1px solid var(--glass-border);
  border-radius: 6px; padding: 6px 9px; font-family: var(--font-body);
  font-size: 13px; color: var(--t1); outline: none;
}
.init-field input[type=text]:focus, .init-field select:focus, .init-field textarea:focus {
  background: #ffffff; border-color: var(--accent);
}
.init-field input[type=range] { -webkit-appearance: none; height: 6px; background: rgba(0,0,0,.1);
                                border-radius: 999px; outline: none; }
.init-field input[type=range]::-webkit-slider-thumb { -webkit-appearance: none;
  width: 14px; height: 14px; border-radius: 50%; background: var(--accent);
  border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); cursor: pointer; }
.init-field .muted { font-size: 11px; color: var(--t3); font-weight: 600; }
.init-save-status { font-size: 11px; color: var(--t3); }
.init-field__add  { margin-left: 8px; font-size: 10px; font-weight: 700;
                     letter-spacing: .04em; padding: 1px 8px; border-radius: 999px;
                     background: rgba(99,102,241,0.12); color: var(--accent);
                     border: 1px solid rgba(99,102,241,0.28); cursor: pointer; }
.init-field__add:hover { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ── Add-driver modal ─────────────────────────────────── */
.vd-modal { position: fixed; inset: 0; z-index: 200;
             display: flex; align-items: center; justify-content: center; padding: 20px; }
.vd-modal[hidden] { display: none; }
.vd-modal__backdrop { position: absolute; inset: 0; background: rgba(11, 20, 55, 0.55);
                       -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.vd-modal__panel    { position: relative; max-width: 460px; width: 100%;
                       background: #fff; border-radius: 16px;
                       box-shadow: 0 24px 60px -16px rgba(0,0,0,0.4);
                       overflow: hidden; }
.vd-modal__head     { display: flex; justify-content: space-between; align-items: center;
                       padding: 16px 20px; border-bottom: 1px solid var(--b1); }
.vd-modal__head h3  { margin: 0; font-size: 15px; font-weight: 800;
                       letter-spacing: .04em; }
.vd-modal__close    { background: transparent; border: 0; font-size: 22px;
                       color: var(--t3); cursor: pointer; line-height: 1; }
.vd-modal__close:hover { color: var(--t1); }
.vd-modal__hint     { font-size: 12px; color: var(--t3); padding: 12px 20px 0; line-height: 1.5; }
.vd-modal__body     { padding: 12px 20px; display: flex; flex-direction: column; gap: 10px; }
.vd-modal__foot     { padding: 12px 20px; border-top: 1px solid var(--b1);
                       display: flex; justify-content: flex-end; gap: 8px; }
.vd-modal__error    { background: #fee2e2; color: #991b1b; padding: 8px 12px;
                       border-radius: 8px; font-size: 12px; }
.vd-field           { display: flex; flex-direction: column; gap: 4px; }
.vd-field label     { font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                       color: var(--t3); font-weight: 700; }
.vd-field input[type=text], .vd-field textarea {
  padding: 8px 10px; border: 1px solid var(--b1); border-radius: 6px;
  font-family: var(--font-body); font-size: 13px; outline: none; resize: vertical;
}
.vd-field input[type=text]:focus, .vd-field textarea:focus { border-color: var(--accent); }
.vd-field input[type=color] { width: 60px; height: 32px; padding: 0; border: 1px solid var(--b1);
                               border-radius: 6px; background: transparent; cursor: pointer; }

/* ════════════════════════════════════════════════════════════════════════
   INITIATIVE CARD — premium "AI Transformation on a page"
   Hero header → metrics strip → scores → 8-panel body grid.
   ════════════════════════════════════════════════════════════════════════ */
.card-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 14px;
                margin-bottom: 18px; flex-wrap: wrap; }
.card-toolbar__nav  { display: flex; gap: 8px; align-items: center; }
.card-toolbar__count { font-size: 12px; color: var(--t3); letter-spacing: .04em;
                       text-transform: uppercase; font-weight: 700; }
.card-toolbar__right { display: flex; gap: 8px; }

.ic { background: #fff; border-radius: 22px; overflow: hidden;
      border: 1px solid rgba(15, 23, 42, 0.08);
      box-shadow: 0 30px 60px -25px rgba(31, 41, 80, 0.30),
                  0 8px 24px -8px rgba(31, 41, 80, 0.12); }

/* ── HERO ─────────────────────────────────────────────── */
.ic-hero { position: relative; padding: 36px 44px 32px;
           background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 45%, #4338ca 100%);
           color: #fff; overflow: hidden; }
.ic-hero__bg { position: absolute; inset: 0; pointer-events: none; opacity: 0.55;
               background:
                 radial-gradient(at 90% 0%, rgba(236, 72, 153, 0.45), transparent 45%),
                 radial-gradient(at 10% 100%, rgba(34, 211, 238, 0.30), transparent 50%); }
.ic-hero--market_revenue_growth  { background: linear-gradient(135deg, #052e16 0%, #047857 50%, #10b981 100%); }
.ic-hero--operational_excellence { background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 50%, #4338ca 100%); }
.ic-hero--customer_experience    { background: linear-gradient(135deg, #4a044e 0%, #86198f 50%, #ec4899 100%); }
.ic-hero--innovation             { background: linear-gradient(135deg, #422006 0%, #b45309 50%, #f59e0b 100%); }
.ic-hero--risk_mitigation        { background: linear-gradient(135deg, #450a0a 0%, #b91c1c 50%, #ef4444 100%); }

.ic-hero__inner { position: relative; }

.ic-hero__overline { display: flex; align-items: center; gap: 10px;
                     font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                     font-weight: 700; color: rgba(255,255,255,0.78); margin-bottom: 14px; }
.ic-hero__sep      { opacity: 0.5; }
.ic-hero__driver-chip { background: rgba(255,255,255,0.16); padding: 4px 12px; border-radius: 999px;
                         border: 1px solid rgba(255,255,255,0.18); }

.ic-hero__title { display: flex; align-items: flex-start; gap: 18px;
                  font-size: 42px; font-weight: 800; line-height: 1.05;
                  letter-spacing: -0.015em; margin: 0; flex-wrap: wrap; }
.ic-hero__num   { font-size: 18px; font-weight: 700; color: rgba(255,255,255,0.55);
                  letter-spacing: .12em; padding-top: 14px; }
.ic-hero__title-input { flex: 1; background: rgba(255,255,255,0.10); color: #fff;
                        border: 1px solid rgba(255,255,255,0.25); border-radius: 8px;
                        padding: 6px 12px; font-family: var(--font-body);
                        font-size: 32px; font-weight: 800; }

.ic-hero__sub { margin-top: 8px; font-size: 14px; color: rgba(255,255,255,0.82);
                font-weight: 400; }
.ic-hero__sub strong { color: rgba(255,255,255,0.95); font-weight: 700;
                        letter-spacing: .04em; text-transform: uppercase; font-size: 11px; }
.ic-hero__sub-input { background: rgba(255,255,255,0.10); color: #fff;
                       border: 1px solid rgba(255,255,255,0.25); border-radius: 6px;
                       padding: 3px 8px; font-family: var(--font-body); font-size: 13px;
                       min-width: 280px; }

/* Hero metrics strip */
.ic-hero__metrics { margin-top: 26px; display: grid; gap: 12px;
                    grid-template-columns: 1.4fr 1fr 1fr 1fr; }
.ic-hero__metric  { background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.18);
                     border-radius: 14px; padding: 14px 18px;
                     -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ic-hero__metric--value { background: rgba(255,255,255,0.22); border-color: rgba(255,255,255,0.35); }
.ic-hero__metric-label { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                          font-weight: 700; color: rgba(255,255,255,0.78); margin-bottom: 6px; }
.ic-hero__metric-value { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ic-hero__metric-text  { font-size: 22px; font-weight: 800; line-height: 1.15; color: #fff;
                          letter-spacing: -0.01em; }
.ic-hero__metric--value .ic-hero__metric-text { font-size: 26px; }
.ic-hero__metric-input { background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.25);
                          border-radius: 6px; padding: 4px 8px; font-family: var(--font-body);
                          font-size: 16px; font-weight: 700; flex: 1; min-width: 140px; }
.ic-hero__metric-select { background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.25);
                           border-radius: 6px; padding: 3px 6px; }
.ic-hero__arrow         { font-size: 26px; line-height: 1; }
.ic-hero__arrow--up     { color: #34d399; }
.ic-hero__arrow--down   { color: #f87171; }
.ic-hero__arrow--flat   { color: rgba(255,255,255,0.6); }

/* ── SCORES strip (just under hero) ───────────────────── */
.ic-scores { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0;
             background: #fafbff; border-bottom: 1px solid rgba(15, 23, 42, 0.08);
             padding: 16px 44px; }
.ic-score  { display: flex; flex-direction: column; gap: 6px; }
.ic-score + .ic-score { padding-left: 22px; border-left: 1px solid rgba(15, 23, 42, 0.08); }
.ic-score__label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
                    color: var(--t3); font-weight: 700; }
.ic-score__pill  { display: inline-block; align-self: flex-start;
                    padding: 5px 14px; border-radius: 999px;
                    font-size: 13px; font-weight: 800; letter-spacing: .04em;
                    text-transform: uppercase; background: #f3f4f6; color: var(--t3); }
.ic-score__pill--high   { background: #d1fae5; color: #065f46; box-shadow: 0 4px 12px -4px rgba(5,150,105,.4); }
.ic-score__pill--medium { background: #fef3c7; color: #92400e; box-shadow: 0 4px 12px -4px rgba(217,119,6,.4); }
.ic-score__pill--low    { background: #fee2e2; color: #991b1b; box-shadow: 0 4px 12px -4px rgba(220,38,38,.4); }
.ic-score__pill--inline { font-size: 11px; padding: 3px 10px; }
.ic-score__select { padding: 5px 10px; border: 1px solid var(--b1); border-radius: 8px;
                     font-family: var(--font-body); font-weight: 700; font-size: 13px;
                     background: #fff; align-self: flex-start; }
.ic-score--driver .ic-score__driver-name {
  font-size: 14px; font-weight: 700; color: var(--t1);
}

/* ── BODY grid ────────────────────────────────────────── */
.ic-body { padding: 28px 44px 36px; display: grid; gap: 18px;
           grid-template-columns: 1.4fr 1fr;
           grid-template-areas:
             "desc      cost"
             "feas      timeline"
             "bv        benefits"
             "complex   sponsors"; }
.ic-panel--desc     { grid-area: desc; }
.ic-panel--cost     { grid-area: cost; }
.ic-panel--feas     { grid-area: feas; }
.ic-panel--timeline { grid-area: timeline; }
.ic-panel--bv       { grid-area: bv; }
.ic-panel--benefits { grid-area: benefits; }
.ic-panel--complex  { grid-area: complex; }
.ic-panel--sponsors { grid-area: sponsors; }

.ic-panel { background: #fff; border: 1px solid rgba(15, 23, 42, 0.08);
            border-radius: 14px; padding: 18px 20px;
            box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); }
.ic-panel__header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px;
                     padding-bottom: 10px; border-bottom: 1px solid rgba(15, 23, 42, 0.06); }
.ic-panel__icon { display: inline-block; width: 22px; height: 22px; border-radius: 6px;
                   background: linear-gradient(135deg, #6366f1, #8b5cf6); color: #fff;
                   text-align: center; line-height: 22px; font-size: 13px; font-weight: 800;
                   flex-shrink: 0; }
.ic-panel--cost     .ic-panel__icon { background: linear-gradient(135deg, #10b981, #059669); }
.ic-panel--timeline .ic-panel__icon { background: linear-gradient(135deg, #f59e0b, #d97706); }
.ic-panel--bv       .ic-panel__icon { background: linear-gradient(135deg, #ec4899, #db2777); }
.ic-panel--complex  .ic-panel__icon { background: linear-gradient(135deg, #ef4444, #dc2626); }
.ic-panel--sponsors .ic-panel__icon { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.ic-panel__header h2 { font-size: 13px; font-weight: 800; letter-spacing: .08em;
                        text-transform: uppercase; color: var(--t1); margin: 0; flex: 1; }
.ic-panel__total  { font-size: 16px; font-weight: 800; color: var(--t1);
                     letter-spacing: -0.01em; }

/* Edit mode inputs in panels */
.ic-panel textarea, .ic-panel input[type=text], .ic-panel input[type=number] {
  width: 100%; padding: 8px 10px; border: 1px solid var(--b1); border-radius: 8px;
  font-family: var(--font-body); font-size: 13px; color: var(--t1); resize: vertical;
  outline: none; background: #fafbff;
}
.ic-panel textarea:focus, .ic-panel input:focus { border-color: var(--accent); background: #fff; }

/* Bullets */
.ic-bullets { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 9px; }
.ic-bullets li { font-size: 14px; line-height: 1.55; color: var(--t1);
                 padding-left: 18px; position: relative; }
.ic-bullets li::before { content: ""; position: absolute; left: 0; top: 9px;
                          width: 6px; height: 6px; border-radius: 50%;
                          background: linear-gradient(135deg, #6366f1, #8b5cf6); }
.ic-bullets li.muted { color: var(--t3); }
.ic-bullets li.muted::before { background: var(--t3); opacity: 0.4; }

/* Cost breakdown */
.ic-costbar { display: flex; height: 14px; border-radius: 999px; overflow: hidden;
               background: #f3f4f6; margin-bottom: 14px; }
.ic-costbar__seg { transition: opacity .2s; }
.ic-costbar__seg:hover { opacity: 0.85; }
.ic-costbar__seg--labor      { background: linear-gradient(135deg, #6366f1, #4338ca); }
.ic-costbar__seg--systems    { background: linear-gradient(135deg, #10b981, #047857); }
.ic-costbar__seg--consulting { background: linear-gradient(135deg, #f59e0b, #d97706); }
.ic-cost-rows { display: flex; flex-direction: column; gap: 8px; }
.ic-cost-row  { display: grid; grid-template-columns: 14px 1fr auto auto;
                gap: 10px; align-items: center; font-size: 13px; }
.ic-cost-row__dot { width: 10px; height: 10px; border-radius: 3px; }
.ic-cost-row__dot--labor      { background: linear-gradient(135deg, #6366f1, #4338ca); }
.ic-cost-row__dot--systems    { background: linear-gradient(135deg, #10b981, #047857); }
.ic-cost-row__dot--consulting { background: linear-gradient(135deg, #f59e0b, #d97706); }
.ic-cost-row__label { color: var(--t2); }
.ic-cost-row__val   { font-weight: 700; color: var(--t1); }
.ic-cost-row__pct   { color: var(--t3); font-size: 11px; font-weight: 600;
                       min-width: 36px; text-align: right; }
.ic-cost-edit { display: flex; flex-direction: column; gap: 8px; }
.ic-cost-edit label { display: flex; flex-direction: column; gap: 3px;
                       font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                       color: var(--t3); font-weight: 700; }

/* Feasibility factor meters */
.ic-factors { display: flex; flex-direction: column; gap: 12px; }
.ic-factor  { display: grid; grid-template-columns: 1fr 110px 60px; gap: 12px;
               align-items: center; }
.ic-factor__label { font-size: 13px; color: var(--t2); }
.ic-factor__meter { height: 8px; background: #f3f4f6; border-radius: 999px; overflow: hidden; }
.ic-factor__meter-fill { display: block; height: 100%; border-radius: 999px;
                          background: linear-gradient(90deg, #6366f1, #8b5cf6); }
.ic-factor--high  .ic-factor__meter-fill { background: linear-gradient(90deg, #10b981, #059669); }
.ic-factor--medium .ic-factor__meter-fill { background: linear-gradient(90deg, #f59e0b, #d97706); }
.ic-factor--low   .ic-factor__meter-fill { background: linear-gradient(90deg, #ef4444, #dc2626); }
.ic-factor__level { font-size: 11px; font-weight: 800; letter-spacing: .04em;
                     text-transform: uppercase; text-align: right; color: var(--t1); }
.ic-factor--high  .ic-factor__level { color: #065f46; }
.ic-factor--medium .ic-factor__level { color: #92400e; }
.ic-factor--low   .ic-factor__level { color: #991b1b; }

/* Timeline */
.ic-timeline { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px;
                background: linear-gradient(135deg, #fafbff 0%, #f3f4f6 100%);
                padding: 8px; border-radius: 10px;
                border: 1px solid rgba(15, 23, 42, 0.06); }
.ic-tl-cell  { position: relative; height: 38px; border-radius: 6px;
                background: #fff; border: 1px solid rgba(15, 23, 42, 0.04);
                display: flex; align-items: center; justify-content: center;
                font-size: 11px; font-weight: 700; color: var(--t3); }
.ic-tl-cell.is-active { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
                         color: #fff; border-color: #d97706;
                         box-shadow: 0 4px 10px -3px rgba(217, 119, 6, .45); }
.ic-tl-cell.is-start { border-radius: 6px 2px 2px 6px; }
.ic-tl-cell.is-end   { border-radius: 2px 6px 6px 2px; }
.ic-tl-cell.is-active.is-start.is-end { border-radius: 6px; }
.ic-tl-edit { display: flex; gap: 12px; margin-top: 10px; flex-wrap: wrap; font-size: 11px;
               letter-spacing: .06em; text-transform: uppercase; color: var(--t3); font-weight: 700; }
.ic-tl-edit input { width: 70px; padding: 4px 6px; }

/* Business Value text */
.ic-bv-text { font-size: 14px; line-height: 1.6; color: var(--t1); margin: 0; }

/* Sponsors */
.ic-sponsors { display: flex; flex-direction: column; gap: 12px; }
.ic-sponsor  { display: flex; gap: 12px; align-items: center; }
.ic-sponsor__avatar { width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
                       display: flex; align-items: center; justify-content: center;
                       font-weight: 800; color: #fff; font-size: 16px;
                       letter-spacing: -0.02em; }
.ic-sponsor__avatar--biz { background: linear-gradient(135deg, #6366f1, #4338ca); }
.ic-sponsor__avatar--it  { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.ic-sponsor__role { font-size: 11px; letter-spacing: .08em; text-transform: uppercase;
                     color: var(--t3); font-weight: 700; }
.ic-sponsor__name { font-size: 14px; font-weight: 700; color: var(--t1); }
.ic-sponsor-edit { display: flex; flex-direction: column; gap: 8px; }
.ic-sponsor-edit label { display: flex; flex-direction: column; gap: 3px;
                          font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                          color: var(--t3); font-weight: 700; }

/* Edit save bar */
.ic-edit-bar { display: flex; justify-content: flex-end; align-items: center; gap: 14px;
                padding: 14px 44px 24px; }
.ic-edit-bar__save { font-size: 12px; color: var(--t3); }

/* Responsive */
@media (max-width: 980px) {
  .ic-hero { padding: 28px 24px; }
  .ic-hero__title { font-size: 32px; }
  .ic-hero__metrics { grid-template-columns: 1fr 1fr; }
  .ic-scores { padding: 14px 24px; grid-template-columns: 1fr; }
  .ic-score + .ic-score { padding-left: 0; padding-top: 12px; margin-top: 12px;
                          border-left: 0; border-top: 1px solid rgba(15, 23, 42, 0.08); }
  .ic-body  { padding: 20px 24px 28px; grid-template-columns: 1fr;
              grid-template-areas: "desc" "cost" "feas" "timeline" "bv" "benefits" "complex" "sponsors"; }
}

/* ════════════════════════════════════════════════════════════════════════
   INITIATIVE DASHBOARD — data-viz-heavy per-initiative view
   Hero · KPI tiles · Donut · Gantt · Gauges · Quadrant · Content panels
   ════════════════════════════════════════════════════════════════════════ */
.id { display: flex; flex-direction: column; gap: 14px;
      padding: 0; }

/* Hero */
.id-hero { position: relative; padding: 32px 40px 28px;
           background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 45%, #4338ca 100%);
           color: #fff; overflow: hidden; border-radius: 22px;
           box-shadow: 0 30px 60px -25px rgba(31, 41, 80, 0.30); }
.id-hero__bg { position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
               background:
                 radial-gradient(at 88% 0%, rgba(236, 72, 153, 0.45), transparent 45%),
                 radial-gradient(at 10% 100%, rgba(34, 211, 238, 0.30), transparent 50%); }
.id-hero--market_revenue_growth  { background: linear-gradient(135deg, #052e16 0%, #047857 50%, #10b981 100%); }
.id-hero--operational_excellence { background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 50%, #4338ca 100%); }
.id-hero--customer_experience    { background: linear-gradient(135deg, #4a044e 0%, #86198f 50%, #ec4899 100%); }
.id-hero--innovation             { background: linear-gradient(135deg, #422006 0%, #b45309 50%, #f59e0b 100%); }
.id-hero--risk_mitigation        { background: linear-gradient(135deg, #450a0a 0%, #b91c1c 50%, #ef4444 100%); }
.id-hero__inner    { position: relative; }
.id-hero__overline { display: flex; align-items: center; gap: 10px;
                     font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                     font-weight: 700; color: rgba(255,255,255,0.78); margin-bottom: 10px; }
.id-hero__sep      { opacity: 0.5; }
.id-hero__driver-chip { background: rgba(255,255,255,0.16); padding: 4px 12px; border-radius: 999px;
                         border: 1px solid rgba(255,255,255,0.18); }
.id-hero__title    { display: flex; align-items: flex-start; gap: 16px;
                     font-size: 38px; font-weight: 800; line-height: 1.05;
                     letter-spacing: -0.015em; margin: 0; flex-wrap: wrap; }
.id-hero__num      { font-size: 16px; font-weight: 700; color: rgba(255,255,255,0.5);
                     letter-spacing: .12em; padding-top: 12px; }
.id-hero__title-input { flex: 1; background: rgba(255,255,255,0.10); color: #fff;
                        border: 1px solid rgba(255,255,255,0.25); border-radius: 8px;
                        padding: 6px 12px; font-family: var(--font-body);
                        font-size: 30px; font-weight: 800; }
.id-hero__sub      { margin-top: 8px; font-size: 13px; color: rgba(255,255,255,0.82); }
.id-hero__sub strong { color: rgba(255,255,255,0.95); font-weight: 700;
                        letter-spacing: .06em; text-transform: uppercase; font-size: 10px;
                        margin-right: 4px; }
.id-hero__sub-input { background: rgba(255,255,255,0.10); color: #fff;
                       border: 1px solid rgba(255,255,255,0.25); border-radius: 6px;
                       padding: 3px 8px; font-family: var(--font-body); font-size: 13px;
                       min-width: 320px; }

/* KPI tiles */
.id-kpis { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1.1fr; gap: 10px; }
.id-kpi  { position: relative; background: var(--glass-bg);
           -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
           border: 1px solid var(--glass-border); border-radius: 16px;
           padding: 14px 16px; display: flex; flex-direction: column; gap: 4px;
           box-shadow: 0 8px 24px -12px rgba(31, 41, 80, 0.15); overflow: hidden; }
.id-kpi--value { background: linear-gradient(135deg, rgba(99, 102, 241, 0.12), rgba(139, 92, 246, 0.12));
                 border-color: rgba(99, 102, 241, 0.35); }
.id-kpi--payback { background: linear-gradient(135deg, rgba(16, 185, 129, 0.10), rgba(5, 150, 105, 0.10));
                   border-color: rgba(16, 185, 129, 0.35); }
.id-kpi__label { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                  font-weight: 700; color: var(--t3); }
.id-kpi__value { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
                  font-size: 22px; font-weight: 800; color: var(--t1); line-height: 1.15;
                  letter-spacing: -0.01em; }
.id-kpi__value--row { flex-direction: row; }
.id-kpi__text { font-size: 22px; font-weight: 800; color: var(--t1); }
.id-kpi__text--sm { font-size: 15px; font-weight: 700; }
.id-kpi__arrow { font-size: 22px; line-height: 1; }
.id-kpi__arrow--up   { color: #10b981; }
.id-kpi__arrow--down { color: #ef4444; }
.id-kpi__arrow--flat { color: var(--t3); }
.id-kpi__input { background: rgba(255,255,255,0.85); border: 1px solid var(--b1);
                  border-radius: 6px; padding: 3px 8px; font-family: var(--font-body);
                  font-size: 14px; font-weight: 700; flex: 1; min-width: 120px; }
.id-kpi__select { background: rgba(255,255,255,0.9); border: 1px solid var(--b1);
                   border-radius: 6px; padding: 3px 6px; font-size: 12px; }
.id-kpi__hint   { font-size: 11px; color: var(--t3); margin-top: 2px; }

.id-score-pill { display: inline-block; padding: 4px 12px; border-radius: 999px;
                  font-size: 12px; font-weight: 800; letter-spacing: .04em;
                  text-transform: uppercase; background: #f3f4f6; color: var(--t3); }
.id-score-pill--sm    { font-size: 10px; padding: 2px 9px; }
.id-score-pill--high   { background: #d1fae5; color: #065f46; box-shadow: 0 4px 10px -3px rgba(5,150,105,.4); }
.id-score-pill--medium { background: #fef3c7; color: #92400e; box-shadow: 0 4px 10px -3px rgba(217,119,6,.4); }
.id-score-pill--low    { background: #fee2e2; color: #991b1b; box-shadow: 0 4px 10px -3px rgba(220,38,38,.4); }

/* Generic panel */
.id-row { display: grid; gap: 14px; }
.id-row--2 { grid-template-columns: 1fr 1fr; }
.id-panel { background: #fff; border: 1px solid rgba(15, 23, 42, 0.08);
            border-radius: 16px; padding: 18px 20px;
            box-shadow: 0 8px 20px -12px rgba(31, 41, 80, 0.1); }
.id-panel__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px;
                   padding-bottom: 10px; border-bottom: 1px solid rgba(15, 23, 42, 0.06); }
.id-panel__icon { width: 22px; height: 22px; border-radius: 6px;
                   background: linear-gradient(135deg, #6366f1, #8b5cf6); color: #fff;
                   text-align: center; line-height: 22px; font-size: 13px; font-weight: 800;
                   flex-shrink: 0; }
.id-panel__icon--cost     { background: linear-gradient(135deg, #10b981, #059669); }
.id-panel__icon--timeline { background: linear-gradient(135deg, #f59e0b, #d97706); }
.id-panel__icon--feas     { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.id-panel__icon--pos      { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
.id-panel__icon--desc     { background: linear-gradient(135deg, #6366f1, #4f46e5); }
.id-panel__icon--bv       { background: linear-gradient(135deg, #ec4899, #db2777); }
.id-panel__icon--benefits { background: linear-gradient(135deg, #10b981, #059669); }
.id-panel__icon--complex  { background: linear-gradient(135deg, #ef4444, #dc2626); }
.id-panel__icon--sponsors { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.id-panel__head h2 { font-size: 12px; font-weight: 800; letter-spacing: .1em;
                      text-transform: uppercase; color: var(--t1); margin: 0; flex: 1; }
.id-panel__figure { font-size: 16px; font-weight: 800; color: var(--t1);
                     letter-spacing: -0.01em; }

.id-panel textarea, .id-panel input[type=text], .id-panel input[type=number] {
  width: 100%; padding: 8px 10px; border: 1px solid var(--b1); border-radius: 8px;
  font-family: var(--font-body); font-size: 13px; color: var(--t1); resize: vertical;
  outline: none; background: #fafbff;
}
.id-panel textarea:focus, .id-panel input:focus { border-color: var(--accent); background: #fff; }

/* Cost donut */
.id-cost { display: grid; grid-template-columns: 180px 1fr; gap: 20px; align-items: center; }
.id-donut {
  position: relative; width: 180px; height: 180px; border-radius: 50%;
  background: conic-gradient(
    #4338ca 0 var(--p-labor),
    #059669 var(--p-labor) var(--p-systems),
    #d97706 var(--p-systems) var(--p-consulting)
  );
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 30px -10px rgba(99, 102, 241, 0.3);
}
.id-donut__hole { width: 120px; height: 120px; border-radius: 50%;
                   background: #fff;
                   display: flex; flex-direction: column; align-items: center; justify-content: center; }
.id-donut__hole-label { font-size: 9px; letter-spacing: .14em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; }
.id-donut__hole-value { font-size: 14px; font-weight: 700; color: var(--t1);
                         letter-spacing: 0; margin-top: 2px; }
.id-donut__hole-pct   { font-size: 22px; font-weight: 800; color: var(--accent);
                         letter-spacing: -0.02em; margin-top: 2px; }
.id-cost__legend { display: flex; flex-direction: column; gap: 10px; }
.id-cost-row     { display: grid; grid-template-columns: 12px 1fr auto auto;
                    gap: 10px; align-items: center; font-size: 13px; }
.id-cost-row__dot { width: 10px; height: 10px; border-radius: 3px; }
.id-cost-row__dot--labor      { background: linear-gradient(135deg, #6366f1, #4338ca); }
.id-cost-row__dot--systems    { background: linear-gradient(135deg, #10b981, #059669); }
.id-cost-row__dot--consulting { background: linear-gradient(135deg, #f59e0b, #d97706); }
.id-cost-row__label { color: var(--t2); }
.id-cost-row__val   { font-weight: 700; color: var(--t1); }
.id-cost-row__pct   { color: var(--t3); font-size: 11px; font-weight: 600;
                       min-width: 42px; text-align: right;
                       background: #f3f4f6; padding: 1px 7px; border-radius: 999px; }
.id-cost-edit { display: flex; flex-direction: column; gap: 10px; }
.id-cost-edit label { display: flex; flex-direction: column; gap: 3px;
                       font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                       color: var(--t3); font-weight: 700; }

/* Timeline */
.id-timeline { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px;
                background: linear-gradient(135deg, #fafbff 0%, #f3f4f6 100%);
                padding: 8px; border-radius: 10px;
                border: 1px solid rgba(15, 23, 42, 0.06); }
.id-tl-cell  { position: relative; height: 42px; border-radius: 6px;
                background: #fff; border: 1px solid rgba(15, 23, 42, 0.04);
                display: flex; align-items: center; justify-content: center;
                font-size: 11px; font-weight: 700; color: var(--t3); }
.id-tl-cell.is-active { background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
                         color: #fff; border-color: #d97706;
                         box-shadow: 0 4px 10px -3px rgba(217, 119, 6, .45); }
.id-timeline__summary { margin-top: 10px; font-size: 12px; color: var(--t2); text-align: right; }
.id-tl-edit { display: flex; gap: 12px; margin-top: 10px; flex-wrap: wrap; font-size: 11px;
               letter-spacing: .06em; text-transform: uppercase; color: var(--t3); font-weight: 700; }
.id-tl-edit input { width: 70px; padding: 4px 6px; }

/* Feasibility gauges */
.id-gauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 14px; }
.id-gauge  { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.id-gauge__circle {
  position: relative;
  width: 96px; height: 96px; border-radius: 50%;
  background: conic-gradient(var(--gauge-color, #6366f1) 0 var(--pct), rgba(0,0,0,0.06) var(--pct) 100%);
  display: flex; align-items: center; justify-content: center;
}
.id-gauge__circle::before {
  content: ""; position: absolute; inset: 10px; background: #fff; border-radius: 50%;
}
.id-gauge__value { position: relative; font-size: 18px; font-weight: 800; color: var(--t1);
                    letter-spacing: -0.01em; }
.id-gauge__label { font-size: 12px; font-weight: 700; color: var(--t1); line-height: 1.2; }
.id-gauge__level { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                    font-weight: 800; }
.id-gauge--high   { --gauge-color: #10b981; }
.id-gauge--medium { --gauge-color: #f59e0b; }
.id-gauge--low    { --gauge-color: #ef4444; }
.id-gauge--high   .id-gauge__level { color: #065f46; }
.id-gauge--medium .id-gauge__level { color: #92400e; }
.id-gauge--low    .id-gauge__level { color: #991b1b; }

/* Strategic position quadrant */
.id-quadrant { display: flex; flex-direction: column; gap: 12px; }
.id-quadrant__grid {
  position: relative; width: 100%; aspect-ratio: 1 / 1;
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr;
  gap: 3px; background: rgba(0,0,0,0.08); border-radius: 10px; padding: 3px;
}
.id-quadrant__cell {
  position: relative; border-radius: 8px; padding: 10px 12px;
  display: flex; flex-direction: column; gap: 2px;
  font-size: 11px;
}
/* Quadrant cells — distinct color per cell so a glance reads correctly:
   top-right = solid green (GO), bottom-left = solid red (SKIP),
   top-left = amber (hard but worthwhile), bottom-right = pale blue (quick wins). */
.id-quadrant__cell--lvlf { background: #fee2e2; color: #7f1d1d;
                           grid-column: 1; grid-row: 2; }
.id-quadrant__cell--lvhf { background: #dbeafe; color: #1e40af;
                           grid-column: 2; grid-row: 2; }
.id-quadrant__cell--hvlf { background: #fef3c7; color: #78350f;
                           grid-column: 1; grid-row: 1; }
.id-quadrant__cell--hvhf { background: #d1fae5; color: #065f46;
                           grid-column: 2; grid-row: 1; }
.id-quadrant__label { font-size: 11px; font-weight: 800; letter-spacing: .04em;
                       text-transform: uppercase; }
.id-quadrant__desc  { font-size: 10px; opacity: 0.75; }

.id-quadrant__dot {
  position: absolute; width: 10px; height: 10px; border-radius: 50%;
  background: rgba(107, 114, 128, 0.4);
  transform: translate(-50%, 50%);
  z-index: 2;
}
.id-quadrant__dot--ghost  { opacity: 0.4; }
.id-quadrant__dot--active {
  width: 28px; height: 28px; z-index: 3;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  border: 3px solid #fff;
  box-shadow: 0 6px 16px rgba(99, 102, 241, 0.55);
  display: flex; align-items: center; justify-content: center;
}
.id-quadrant__dot--active.id-quadrant__dot--market_revenue_growth  { background: linear-gradient(135deg, #10b981, #059669); }
.id-quadrant__dot--active.id-quadrant__dot--operational_excellence { background: linear-gradient(135deg, #6366f1, #4338ca); }
.id-quadrant__dot--active.id-quadrant__dot--customer_experience    { background: linear-gradient(135deg, #ec4899, #db2777); }
.id-quadrant__dot--active.id-quadrant__dot--innovation             { background: linear-gradient(135deg, #f59e0b, #d97706); }
.id-quadrant__dot--active.id-quadrant__dot--risk_mitigation        { background: linear-gradient(135deg, #ef4444, #dc2626); }
.id-quadrant__dot-label { color: #fff; font-size: 10px; font-weight: 800; }

.id-quadrant__y-label, .id-quadrant__x-label {
  position: absolute; font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--t3); font-weight: 700; z-index: 1;
}
.id-quadrant__y-label { left: -22px; top: 50%; transform: rotate(-90deg) translateX(50%); transform-origin: left center; }
.id-quadrant__x-label { right: 3px; bottom: -18px; }

.id-quadrant__summary { font-size: 13px; color: var(--t2); text-align: center;
                         padding-top: 12px; }
.id-quadrant__summary strong { color: var(--t1); }
.id-quadrant__tag { padding: 2px 9px; border-radius: 999px; font-size: 11px;
                     font-weight: 800; letter-spacing: .04em; }
.id-quadrant__tag--go       { background: #d1fae5; color: #065f46; }
.id-quadrant__tag--quick    { background: #dbeafe; color: #1e40af; }
.id-quadrant__tag--caution  { background: #fef3c7; color: #92400e; }
.id-quadrant__tag--skip     { background: #fee2e2; color: #991b1b; }

/* Plain bullets (description, benefits, complexity) */
.id-bullets { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.id-bullets li { font-size: 14px; line-height: 1.55; color: var(--t1);
                 padding-left: 18px; position: relative; }
.id-bullets li::before { content: ""; position: absolute; left: 0; top: 9px;
                          width: 6px; height: 6px; border-radius: 50%;
                          background: linear-gradient(135deg, #6366f1, #8b5cf6); }
.id-bullets li.muted { color: var(--t3); }
.id-bullets li.muted::before { background: var(--t3); opacity: 0.4; }

.id-bv-text { font-size: 15px; line-height: 1.6; color: var(--t1); margin: 0; }

/* Sponsors */
.id-sponsors { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.id-sponsor  { display: flex; gap: 14px; align-items: center;
               background: linear-gradient(135deg, #fafbff, #fff);
               border: 1px solid var(--b1); border-radius: 12px;
               padding: 12px 16px; }
.id-sponsor__avatar { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
                       display: flex; align-items: center; justify-content: center;
                       font-weight: 800; color: #fff; font-size: 18px;
                       letter-spacing: -0.02em;
                       box-shadow: 0 4px 12px -4px rgba(99, 102, 241, 0.4); }
.id-sponsor__avatar--biz { background: linear-gradient(135deg, #6366f1, #4338ca); }
.id-sponsor__avatar--it  { background: linear-gradient(135deg, #0ea5e9, #0284c7);
                            box-shadow: 0 4px 12px -4px rgba(14, 165, 233, 0.4); }
.id-sponsor__role { font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
                     color: var(--t3); font-weight: 700; }
.id-sponsor__name { font-size: 15px; font-weight: 700; color: var(--t1); margin-top: 2px; }
.id-sponsor-edit { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.id-sponsor-edit label { display: flex; flex-direction: column; gap: 3px;
                          font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
                          color: var(--t3); font-weight: 700; }

.id-edit-bar { display: flex; justify-content: flex-end; align-items: center; gap: 14px;
                padding: 8px 0 16px; }
.id-edit-bar__save { font-size: 12px; color: var(--t3); }

/* Responsive */
@media (max-width: 1100px) {
  .id-kpis { grid-template-columns: 1fr 1fr; }
  .id-row--2 { grid-template-columns: 1fr; }
  .id-cost { grid-template-columns: 140px 1fr; }
  .id-donut { width: 140px; height: 140px; }
  .id-donut__hole { width: 96px; height: 96px; }
}
@media (max-width: 720px) {
  .id-hero { padding: 24px 20px; }
  .id-hero__title { font-size: 28px; }
  .id-sponsors, .id-sponsor-edit { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════════
   PERSPECTIVE TABS — switch between AI Readiness and Cybersecurity views
   ════════════════════════════════════════════════════════════════════════ */
.ptabs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
          margin: 18px 0 22px; }
.ptabs__tab { position: relative;
              display: flex; flex-direction: column; gap: 4px;
              padding: 14px 18px;
              background: var(--glass-bg);
              -webkit-backdrop-filter: var(--glass-blur);
                      backdrop-filter: var(--glass-blur);
              border: 1px solid var(--glass-border);
              border-radius: 14px;
              text-decoration: none;
              color: var(--t2);
              transition: transform .15s, box-shadow .25s, border-color .25s, color .15s;
              border-left: 4px solid transparent; }
.ptabs__tab:hover { transform: translateY(-1px);
                     box-shadow: 0 8px 22px -10px rgba(31, 41, 80, 0.18);
                     text-decoration: none; }
.ptabs__tab.is-active { color: var(--t1); background: #fff;
                         border-color: rgba(99, 102, 241, 0.4);
                         box-shadow: 0 12px 26px -10px rgba(99, 102, 241, 0.25); }
.ptabs__tab--ai_readiness.is-active  { border-left-color: #6366f1; }
.ptabs__tab--cybersecurity.is-active { border-left-color: #dc2626; }
.ptabs__tab--ai_readiness  .ptabs__dot { background: linear-gradient(135deg, #6366f1, #8b5cf6); }
.ptabs__tab--cybersecurity .ptabs__dot { background: linear-gradient(135deg, #ef4444, #b91c1c); }
.ptabs__dot { width: 10px; height: 10px; border-radius: 50%; opacity: 0.55;
               position: absolute; top: 16px; right: 18px;
               transition: opacity .15s, box-shadow .15s; }
.ptabs__tab.is-active .ptabs__dot { opacity: 1;
                                     box-shadow: 0 0 0 3px rgba(255,255,255,0.5); }
.ptabs__name { font-size: 16px; font-weight: 800; color: inherit; letter-spacing: -0.01em; }
.ptabs__hint { font-size: 12px; color: var(--t3); }


/* ════════════════════════════════════════════════════════════════════════
   PROSPECT DASHBOARD — per-prospect one-page summary
   ════════════════════════════════════════════════════════════════════════ */

/* ── COACH PANEL — onboarding "where to focus next" guide ────────────── */
.coach {
  background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 50%, #4338ca 100%);
  border-radius: 22px; padding: 26px 32px; color: #fff;
  margin: 18px 0 22px;
  position: relative; overflow: hidden;
  box-shadow: 0 24px 50px -20px rgba(31, 41, 80, 0.45);
}
.coach::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
  background:
    radial-gradient(at 92% 0%, rgba(236, 72, 153, 0.45), transparent 45%),
    radial-gradient(at 5% 100%, rgba(34, 211, 238, 0.30), transparent 50%);
}
.coach__head { position: relative; margin-bottom: 18px; }
.coach__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                    font-weight: 800; color: rgba(255,255,255,0.65); margin-bottom: 4px; }
.coach__title    { font-size: 24px; font-weight: 800; letter-spacing: -0.015em; margin: 0; }

/* Step strip — circles connected by progress lines */
.coach__steps { position: relative; list-style: none; margin: 0; padding: 0;
                display: grid; grid-template-columns: repeat(7, 1fr); gap: 0;
                margin-bottom: 22px; }
.coach__step  { position: relative; display: flex; flex-direction: column;
                align-items: center; gap: 6px; padding: 0 4px; }
/* Connector line behind each step (skip the first) */
.coach__step + .coach__step::before {
  content: ""; position: absolute; left: -50%; right: 50%; top: 17px;
  height: 2px; background: rgba(255, 255, 255, 0.14); z-index: 0;
}
.coach__step--done + .coach__step::before,
.coach__step--done + .coach__step--done::before { background: rgba(16, 185, 129, 0.85); }
.coach__step-marker {
  position: relative; z-index: 1;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255, 255, 255, 0.10); border: 2px solid rgba(255, 255, 255, 0.20);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 14px; color: rgba(255, 255, 255, 0.65);
  transition: transform .2s, box-shadow .25s;
}
.coach__step-name { position: relative; z-index: 1;
                     font-size: 11px; font-weight: 600; line-height: 1.25;
                     color: rgba(255, 255, 255, 0.65); text-align: center;
                     letter-spacing: -0.01em; }
.coach__step--done    .coach__step-marker { background: #10b981; border-color: #10b981; color: #fff; }
.coach__step--done    .coach__step-name   { color: rgba(255, 255, 255, 0.78); }
.coach__step--active  .coach__step-marker {
  background: linear-gradient(135deg, #fde047, #facc15);
  border-color: #fde047; color: #1c1917;
  box-shadow: 0 0 0 4px rgba(253, 224, 71, 0.25),
              0 8px 24px -6px rgba(253, 224, 71, 0.55);
  animation: coachPulse 2.4s ease-in-out infinite;
  transform: scale(1.05);
}
.coach__step--active  .coach__step-name   { color: #fff; font-weight: 700; }
@keyframes coachPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(253, 224, 71, 0.25),
                          0 8px 24px -6px rgba(253, 224, 71, 0.55); }
  50%      { box-shadow: 0 0 0 7px rgba(253, 224, 71, 0.35),
                          0 12px 30px -6px rgba(253, 224, 71, 0.85); }
}
.coach__step-check { font-size: 16px; }
.coach__step-num   { font-size: 14px; font-weight: 800; }

/* Next action card */
.coach__next {
  position: relative;
  display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
  background: rgba(255, 255, 255, 0.10); border: 1px solid rgba(255, 255, 255, 0.18);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-radius: 14px; padding: 18px 22px;
}
.coach__next-kicker { font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
                       font-weight: 800; color: rgba(253, 224, 71, 0.95); margin-bottom: 4px; }
.coach__next-title  { font-size: 20px; font-weight: 800; color: #fff; margin: 0 0 6px;
                       letter-spacing: -0.01em; }
.coach__next-desc   { font-size: 13px; line-height: 1.55; color: rgba(255, 255, 255, 0.78);
                       margin: 0; max-width: 70ch; }
.coach__next-btn    { background: linear-gradient(135deg, #fde047, #facc15) !important;
                       color: #1c1917 !important; border: 0 !important;
                       box-shadow: 0 8px 22px -8px rgba(253, 224, 71, 0.65),
                                   0 1px 0 rgba(255,255,255,0.4) inset !important;
                       font-weight: 800; padding: 10px 20px; }
.coach__next-btn:hover { background: linear-gradient(135deg, #facc15, #eab308) !important;
                          color: #1c1917 !important; }

/* Done banner */
.coach__done-banner {
  position: relative;
  display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center;
  background: rgba(16, 185, 129, 0.18); border: 1px solid rgba(16, 185, 129, 0.45);
  border-radius: 14px; padding: 18px 22px;
}
.coach__done-emoji { font-size: 36px; line-height: 1; }
.coach__done-title { font-size: 18px; font-weight: 800; color: #fff; }
.coach__done-desc  { font-size: 13px; color: rgba(255, 255, 255, 0.82); margin-top: 4px; }

/* Anchor offset so #pillars / #exec-summary land below the sticky nav */
#pillars, #exec-summary { scroll-margin-top: 70px; }

/* Inline empty-state hints inside dashboard sections */
.pd-empty-hint {
  font-size: 13px; line-height: 1.6; color: var(--t2);
  background: rgba(99, 102, 241, 0.06); border: 1px dashed rgba(99, 102, 241, 0.35);
  border-radius: 10px; padding: 12px 16px; margin-top: 12px;
}
.pd-empty-hint strong { color: var(--t1); font-weight: 700; }

@media (max-width: 880px) {
  .coach__steps { grid-template-columns: repeat(7, minmax(60px, 1fr));
                   overflow-x: auto; padding-bottom: 6px; }
  .coach__next  { grid-template-columns: 1fr; }
}


.pd-execsummary {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(139, 92, 246, 0.06));
  border: 1px solid rgba(99, 102, 241, 0.25);
  border-radius: 18px; padding: 22px 26px; margin: 18px 0 22px;
  box-shadow: 0 12px 30px -15px rgba(99, 102, 241, 0.3);
}
.pd-execsummary--empty {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border-style: dashed;
}
.pd-execsummary__head { display: flex; justify-content: space-between; align-items: flex-start;
                         gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.pd-execsummary__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                             color: var(--accent); font-weight: 800; margin-bottom: 4px; }
.pd-execsummary__title    { font-size: 18px; font-weight: 700; color: var(--t1); margin: 0; }
.pd-execsummary__actions  { display: flex; gap: 10px; align-items: center; }
.pd-execsummary__meta     { font-size: 11px; color: var(--t3); letter-spacing: .04em; }
.pd-execsummary__body p   { font-size: 14px; line-height: 1.7; color: var(--t1); margin: 0 0 10px; }
.pd-execsummary__body p:last-child { margin-bottom: 0; }
.pd-execsummary__empty p  { font-size: 13px; color: var(--t2); margin: 0; line-height: 1.6; }

/* KPI strip */
.pd-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 22px; }
.pd-kpi  { position: relative; background: var(--glass-bg);
           -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
           border: 1px solid var(--glass-border); border-radius: 14px;
           padding: 14px 16px; overflow: hidden; }
.pd-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.pd-kpi--roadmap::before     { background: linear-gradient(180deg, #6366f1, #4f46e5); }
.pd-kpi--initiatives::before { background: linear-gradient(180deg, #f59e0b, #d97706); }
.pd-kpi--sessions::before    { background: linear-gradient(180deg, #0ea5e9, #0284c7); }
.pd-kpi--value::before       { background: linear-gradient(180deg, #10b981, #059669); }
.pd-kpi__label { font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
                 color: var(--t3); font-weight: 700; }
.pd-kpi__value { font-size: 28px; font-weight: 800; letter-spacing: -0.01em;
                 color: var(--t1); line-height: 1.1; margin-top: 4px; }
.pd-kpi__denom { font-size: 16px; color: var(--t3); font-weight: 700; margin-left: 4px; }
.pd-kpi__sub   { font-size: 11px; color: var(--t2); margin-top: 4px; }
.pd-kpi__bar   { height: 4px; background: rgba(0,0,0,.06); border-radius: 999px;
                 overflow: hidden; margin-top: 10px; }
.pd-kpi__bar span { display: block; height: 100%; border-radius: 999px; }
.pd-kpi--roadmap     .pd-kpi__bar span { background: linear-gradient(90deg, #6366f1, #4f46e5); }
.pd-kpi--initiatives .pd-kpi__bar span { background: linear-gradient(90deg, #f59e0b, #d97706); }

/* Sections */
.pd-section { margin-bottom: 22px; }
.pd-section__head { display: flex; justify-content: space-between; align-items: baseline;
                    margin-bottom: 10px; padding-bottom: 6px; }
.pd-section__head h2 { font-size: 13px; font-weight: 800; letter-spacing: .08em;
                        text-transform: uppercase; color: var(--t1); margin: 0; }
.pd-section__link { font-size: 12px; color: var(--accent); font-weight: 600; text-decoration: none; }
.pd-section__link:hover { text-decoration: underline; }
.pd-section__sub  { font-size: 13px; line-height: 1.55; color: var(--t2);
                     margin: -4px 0 12px; max-width: 80ch; }
.pd-section__sub strong { color: var(--t1); }

/* Row layout for reports + sessions */
.pd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 22px; }

/* Initiatives mini-grid */
.pd-inits-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pd-init { position: relative; display: flex; flex-direction: column; gap: 6px;
           background: var(--glass-bg);
           -webkit-backdrop-filter: var(--glass-blur-sm); backdrop-filter: var(--glass-blur-sm);
           border: 1px solid var(--glass-border); border-radius: 12px;
           padding: 12px 14px; text-decoration: none; color: var(--t1);
           transition: transform .15s, box-shadow .25s, border-color .2s;
           border-left: 3px solid var(--b2);
           overflow: hidden;
}
.pd-init:hover { transform: translateY(-2px); box-shadow: var(--glass-shadow-md);
                 text-decoration: none; border-color: rgba(99,102,241,0.4); }
.pd-init--market_revenue_growth  { border-left-color: #10b981; }
.pd-init--operational_excellence { border-left-color: #6366f1; }
.pd-init--customer_experience    { border-left-color: #ec4899; }
.pd-init--innovation             { border-left-color: #f59e0b; }
.pd-init--risk_mitigation        { border-left-color: #ef4444; }
.pd-init--ready::after {
  content: "✓"; position: absolute; top: 8px; right: 10px;
  font-size: 11px; font-weight: 800; color: #059669;
  background: #d1fae5; width: 18px; height: 18px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.pd-init__num    { font-size: 10px; letter-spacing: .12em; color: var(--t3); font-weight: 800;
                    text-transform: uppercase; }
.pd-init__name   { font-weight: 700; font-size: 14px; color: var(--t1); line-height: 1.3; }
.pd-init__driver { font-size: 11px; color: var(--t3); font-weight: 600;
                    letter-spacing: .02em; }
.pd-init__foot   { display: flex; justify-content: space-between; align-items: center;
                    padding-top: 6px; margin-top: auto;
                    border-top: 1px solid rgba(15, 23, 42, 0.06);
                    font-size: 12px; }
.pd-init__value  { font-weight: 700; color: var(--t1); max-width: 55%;
                    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-init__cost   { color: var(--t2); font-weight: 600; }
.pd-init__status { font-size: 10px; font-weight: 800; letter-spacing: .06em;
                    text-transform: uppercase; color: var(--t3); }

/* Responsive */
@media (max-width: 960px) {
  .pd-kpis      { grid-template-columns: 1fr 1fr; }
  .pd-row       { grid-template-columns: 1fr; }
  .pd-inits-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .pd-inits-grid { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════════
   PRACTICE DASHBOARD — single-page overview across all prospects
   ════════════════════════════════════════════════════════════════════════ */
.dash-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
             margin-bottom: 22px; }
.dash-kpi  { position: relative; background: var(--glass-bg);
             -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
             border: 1px solid var(--glass-border); border-radius: 16px;
             padding: 18px 20px; overflow: hidden;
             box-shadow: 0 8px 24px -10px rgba(31, 41, 80, 0.15); }
.dash-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
                    background: linear-gradient(180deg, var(--accent), #4f46e5); }
.dash-kpi--prospects::before    { background: linear-gradient(180deg, #6366f1, #4f46e5); }
.dash-kpi--reports::before      { background: linear-gradient(180deg, #8b5cf6, #7c3aed); }
.dash-kpi--sessions::before     { background: linear-gradient(180deg, #0ea5e9, #0284c7); }
.dash-kpi--initiatives::before  { background: linear-gradient(180deg, #f59e0b, #d97706); }
.dash-kpi--value::before        { background: linear-gradient(180deg, #10b981, #059669); }
.dash-kpi__label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase;
                   color: var(--t3); font-weight: 700; margin-bottom: 8px; }
.dash-kpi__value { font-size: 32px; font-weight: 800; letter-spacing: -0.02em;
                   color: var(--t1); line-height: 1.05; }
.dash-kpi__denom { font-size: 18px; color: var(--t3); font-weight: 700; margin-left: 4px; }
.dash-kpi__sub   { margin-top: 6px; font-size: 12px; color: var(--t2);
                   display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }

/* Two-column body */
.dash-body { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; align-items: start; }
.dash-side { display: flex; flex-direction: column; gap: 18px; }

.dash-panel { background: var(--glass-bg);
              -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
              border: 1px solid var(--glass-border); border-radius: 16px;
              padding: 18px 20px;
              box-shadow: 0 8px 24px -10px rgba(31, 41, 80, 0.12); }
.dash-panel__head { display: flex; justify-content: space-between; align-items: baseline;
                     margin-bottom: 14px; padding-bottom: 10px;
                     border-bottom: 1px solid rgba(15, 23, 42, 0.06); }
.dash-panel__head h2 { font-size: 13px; font-weight: 800; letter-spacing: .08em;
                        text-transform: uppercase; color: var(--t1); margin: 0; }
.dash-panel__link  { font-size: 12px; color: var(--accent); text-decoration: none; font-weight: 600; }
.dash-panel__link:hover { text-decoration: underline; }

/* ── Prospect summary table ─────────────────────────────── */
.dash-table { display: flex; flex-direction: column; gap: 4px; }
.dash-table__head, .dash-table__row {
  display: grid;
  grid-template-columns: 38px 2fr 110px 100px 130px 110px 100px 56px;
  gap: 12px; align-items: center;
}
.dash-table__head { padding: 6px 12px; font-size: 10px; letter-spacing: .08em;
                     text-transform: uppercase; color: var(--t3); font-weight: 700; }
.dash-table__row {
  padding: 10px 12px; border-radius: 12px;
  background: rgba(255,255,255,0.5); border: 1px solid transparent;
  text-decoration: none; color: var(--t1); cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
}
.dash-table__row:hover { background: #fff; border-color: rgba(99,102,241,0.4);
                          text-decoration: none; transform: translateX(2px); }
.dash-table__row:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.dash-table__actions { display: flex; gap: 6px; align-items: center; justify-content: flex-end; }
.dash-table__action  { display: inline-flex; align-items: center; justify-content: center;
                        width: 24px; height: 24px; border-radius: 6px;
                        text-decoration: none; font-size: 14px; line-height: 1;
                        background: rgba(99,102,241,0.10); color: var(--accent);
                        transition: background .15s, transform .15s; }
.dash-table__action:hover { background: var(--accent); color: #fff; transform: scale(1.1);
                             text-decoration: none; }
.dash-table__logo { position: relative; width: 38px; height: 38px;
                     background: #eff6ff; border-radius: 8px;
                     display: flex; align-items: center; justify-content: center;
                     font-weight: 800; font-size: 15px; color: var(--accent);
                     overflow: hidden; }
.dash-table__logo-letter { line-height: 1; }
.dash-table__logo-img    { position: absolute; inset: 0; width: 100%; height: 100%;
                            object-fit: contain; padding: 5px; background: #fff; }
.dash-table__co       { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dash-table__name     { font-weight: 700; font-size: 14px; color: var(--t1);
                         overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-table__sub      { font-size: 11px; color: var(--t3);
                         overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-table__reports  { display: flex; gap: 4px; flex-wrap: wrap; }
.dash-tag             { font-size: 10px; font-weight: 800; letter-spacing: .04em;
                         padding: 2px 8px; border-radius: 999px; }
.dash-tag--ai         { background: #ede9fe; color: #5b21b6; }
.dash-tag--cyber      { background: #fee2e2; color: #991b1b; }
.dash-tag--missing    { background: #f3f4f6; color: var(--t3); }
.dash-table__pillars  { display: flex; gap: 4px; }
.dash-table__roadmap  { display: flex; flex-direction: column; gap: 4px; }
.dash-progress        { height: 6px; background: rgba(0,0,0,.06); border-radius: 999px;
                         overflow: hidden; }
.dash-progress__fill  { display: block; height: 100%;
                         background: linear-gradient(90deg, #6366f1, #10b981);
                         border-radius: 999px; }
.dash-progress__text  { font-size: 11px; color: var(--t2); font-weight: 600; }
.dash-progress__text.muted { color: var(--t3); font-weight: 400; }
.dash-table__inits         { display: flex; flex-direction: column; gap: 4px; }
.dash-table__inits-num     { font-weight: 700; font-size: 14px; color: var(--t1); }
.dash-table__inits-split   { display: flex; flex-wrap: wrap; gap: 4px; }
.dash-table__inits-sub     { font-size: 11px; }
.dash-mini-tag             { font-size: 10px; font-weight: 700; padding: 2px 6px;
                              border-radius: 4px; letter-spacing: .02em;
                              white-space: nowrap; }
.dash-mini-tag--ai         { background: rgba(99,102,241,.12); color: #4338ca;
                              border: 1px solid rgba(99,102,241,.25); }
.dash-mini-tag--cyber      { background: rgba(244,63,94,.10); color: #be123c;
                              border: 1px solid rgba(244,63,94,.22); }
.dash-mini-tag .muted      { color: inherit; opacity: .55; font-weight: 600; }
.dash-table__pipeline-num  { font-weight: 700; color: var(--t1); font-size: 14px;
                              letter-spacing: -0.01em; }
.dash-table__pipeline-split { font-size: 10px; margin-top: 2px; line-height: 1.2; }
.dash-table__chev          { color: var(--t3); font-size: 14px; text-align: right; }

/* ── Pipeline by Value Driver (split AI / Cyber) ────────── */
.dash-driver-legend { display: flex; gap: 10px; font-size: 11px; color: var(--t3); }
.dash-driver-legend span { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.dash-driver__sw    { display: inline-block; width: 10px; height: 10px; border-radius: 2px; }
.dash-driver__sw--ai    { background: linear-gradient(90deg, #6366f1, #4338ca); }
.dash-driver__sw--cyber { background: linear-gradient(90deg, #f43f5e, #be123c); }

.dash-drivers { display: flex; flex-direction: column; gap: 14px; }
.dash-driver  { display: flex; flex-direction: column; gap: 6px; }
.dash-driver__head    { display: flex; align-items: center; gap: 8px; }
.dash-driver__swatch  { display: inline-block; width: 10px; height: 10px;
                         border-radius: 3px; flex: 0 0 auto; }
.dash-driver__name    { font-size: 12px; font-weight: 700; color: var(--t1); flex: 1 1 auto; }
.dash-driver__count   { font-size: 11px; color: var(--t3); font-weight: 600; }

.dash-driver__bars    { display: flex; flex-direction: column; gap: 4px; }
.dash-driver__row     { display: grid; grid-template-columns: 22px 1fr 70px;
                         gap: 6px; align-items: center; }
.dash-driver__row-tag { font-size: 10px; font-weight: 700; letter-spacing: .03em;
                         text-align: center; padding: 1px 0; border-radius: 3px; }
.dash-driver__row-tag--ai    { background: rgba(99,102,241,.12); color: #4338ca; }
.dash-driver__row-tag--cyber { background: rgba(244,63,94,.10); color: #be123c; }
.dash-driver__bar     { height: 7px; background: rgba(0,0,0,.06); border-radius: 999px;
                         overflow: hidden; }
.dash-driver__bar span { display: block; height: 100%; border-radius: 999px;
                          transition: width .4s; }
.dash-driver__bar--ai    span { background: linear-gradient(90deg, #6366f1, #4338ca); }
.dash-driver__bar--cyber span { background: linear-gradient(90deg, #f43f5e, #be123c); }
.dash-driver__row-val { font-size: 11px; color: var(--t2); font-weight: 600; text-align: right; }

/* ── Pillar Maturity Distribution ───────────────────────── */
.dash-pillars { display: flex; flex-direction: column; gap: 12px; }
.dash-pillar  { display: flex; flex-direction: column; gap: 4px; }
.dash-pillar__head  { display: flex; justify-content: space-between; align-items: baseline; }
.dash-pillar__name  { font-size: 12px; font-weight: 700; color: var(--t1); }
.dash-pillar__total { font-size: 11px; color: var(--t3); font-weight: 600; }
.dash-pillar__bar   { display: flex; height: 10px; border-radius: 999px;
                       background: rgba(0,0,0,.04); overflow: hidden; }
.dash-pillar__seg   { transition: opacity .15s; }
.dash-pillar__seg:hover { opacity: 0.85; }
.dash-pillar__seg--complete    { background: #10b981; }
.dash-pillar__seg--in_progress { background: #fbbf24; }
.dash-pillar__seg--blocked     { background: #ef4444; }
.dash-pillar__seg--not_started { background: #d1d5db; }
.dash-pillar__legend { display: flex; gap: 10px; font-size: 11px; color: var(--t3); }
.dash-pillar__legend span { display: flex; align-items: center; gap: 4px; }
.dash-pillar__dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dash-pillar__dot--complete    { background: #10b981; }
.dash-pillar__dot--in_progress { background: #fbbf24; }
.dash-pillar__dot--blocked     { background: #ef4444; }
.dash-pillar__dot--not_started { background: #d1d5db; }

/* ── Recent activity ────────────────────────────────────── */
.dash-activity { display: flex; flex-direction: column; gap: 4px; }
.dash-activity__row {
  display: grid; grid-template-columns: 26px 1fr auto; gap: 10px;
  padding: 8px 10px; border-radius: 8px; align-items: center;
  text-decoration: none; color: var(--t1);
  transition: background .15s;
}
.dash-activity__row:hover { background: rgba(99,102,241,0.06); text-decoration: none; }
.dash-activity__icon  { font-size: 16px; line-height: 1; }
.dash-activity__co    { font-size: 13px; font-weight: 700; color: var(--t1); }
.dash-activity__label { font-size: 11px; color: var(--t3); margin-top: 1px; }
.dash-activity__when  { font-size: 11px; color: var(--t3); font-weight: 600; }

/* Responsive */
@media (max-width: 1100px) {
  .dash-kpis { grid-template-columns: repeat(3, 1fr); }
  .dash-body { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .dash-kpis { grid-template-columns: 1fr 1fr; }
  .dash-table__head, .dash-table__row {
    grid-template-columns: 38px 1fr 80px;
  }
  .dash-table__reports, .dash-table__pillars, .dash-table__roadmap,
  .dash-table__inits, .dash-table__pipeline, .dash-table__chev { display: none; }
  .dash-table__head > *:nth-child(n+3) { display: none; }
  .dash-table__head > *:nth-child(3) { display: block; text-align: right; }
}

/* ════════════════════════════════════════════════════════════════════════
   TACTICAL IMPLEMENTATION ROADMAP — the deliverable
   Hero · narrative · phases · master Gantt · investment · pillar map · gates
   ════════════════════════════════════════════════════════════════════════ */
.rm { max-width: 1240px; margin: 24px auto 80px; padding: 0 24px;
      color: var(--t1); display: flex; flex-direction: column; gap: 22px; }

/* Hero */
.rm-hero { position: relative; border-radius: 22px; padding: 38px 44px 34px;
           background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 45%, #4338ca 100%);
           color: #fff; overflow: hidden;
           box-shadow: 0 30px 60px -25px rgba(31, 41, 80, 0.45); }
.rm-hero__bg { position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
               background:
                 radial-gradient(at 90% 0%, rgba(236, 72, 153, 0.45), transparent 45%),
                 radial-gradient(at 5% 100%, rgba(34, 211, 238, 0.35), transparent 50%); }
.rm-hero__inner { position: relative; }
.rm-hero__overline { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.rm-hero__logo { width: 48px; height: 48px; background: #fff; border-radius: 12px;
                 padding: 6px; display: flex; align-items: center; justify-content: center;
                 box-shadow: 0 8px 20px -6px rgba(0,0,0,.4); }
.rm-hero__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.rm-hero__overline-text { display: flex; gap: 8px; font-size: 11px;
                           letter-spacing: .14em; text-transform: uppercase;
                           color: rgba(255,255,255,0.78); font-weight: 700; }
.rm-hero__sep    { opacity: 0.5; }
.rm-hero__title  { font-size: 44px; font-weight: 800; letter-spacing: -0.02em;
                   line-height: 1.05; margin: 0; }
.rm-hero__sub    { font-size: 15px; color: rgba(255,255,255,0.78); margin-top: 8px; }
.rm-hero__metrics { margin-top: 26px; display: grid; gap: 12px;
                    grid-template-columns: repeat(4, 1fr); }
.rm-hero__metric  { background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.18);
                     border-radius: 14px; padding: 14px 18px;
                     -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.rm-hero__metric-label { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                          font-weight: 700; color: rgba(255,255,255,0.78); margin-bottom: 6px; }
.rm-hero__metric-value { font-size: 26px; font-weight: 800; color: #fff;
                          letter-spacing: -0.01em; line-height: 1.1; }
.rm-hero__metric-hint  { font-size: 11px; color: rgba(255,255,255,0.7); margin-top: 4px; }

/* Narrative */
.rm-narrative { background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(139, 92, 246, 0.06));
                border: 1px solid rgba(99, 102, 241, 0.25); border-radius: 18px;
                padding: 22px 26px; }
.rm-narrative--empty { background: var(--glass-bg); border-style: dashed; }
.rm-narrative__head { display: flex; justify-content: space-between; align-items: flex-start;
                       gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.rm-narrative__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                           color: var(--accent); font-weight: 800; margin-bottom: 4px; }
.rm-narrative__title    { font-size: 18px; font-weight: 700; color: var(--t1); margin: 0; }
.rm-narrative__body p   { font-size: 14px; line-height: 1.7; color: var(--t1); margin: 0 0 10px; }
.rm-narrative__body p:last-child { margin-bottom: 0; }
.rm-narrative__empty    { font-size: 13px; color: var(--t2); margin: 0; line-height: 1.6; }
.rm-narrative__meta     { font-size: 11px; color: var(--t3); letter-spacing: .04em; margin-top: 12px;
                           padding-top: 10px; border-top: 1px solid rgba(99,102,241,.12); }

/* Generic section header */
.rm-section { background: #fff; border: 1px solid rgba(15, 23, 42, 0.08);
              border-radius: 18px; padding: 22px 26px;
              box-shadow: 0 8px 24px -16px rgba(31, 41, 80, 0.15); }
.rm-section__head { display: flex; justify-content: space-between; align-items: baseline;
                     gap: 14px; margin-bottom: 16px; padding-bottom: 12px;
                     border-bottom: 1px solid rgba(15, 23, 42, 0.06); }
.rm-section__head h2 { font-size: 14px; font-weight: 800; letter-spacing: .1em;
                        text-transform: uppercase; color: var(--t1); margin: 0; }
.rm-section__hint    { font-size: 12px; color: var(--t3); }

/* Phases */
.rm-phases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.rm-phase  { position: relative; background: linear-gradient(135deg, #fafbff, #fff);
              border: 1px solid var(--b1); border-radius: 14px;
              padding: 16px 18px; display: flex; flex-direction: column; gap: 6px;
              border-top: 4px solid var(--b2); }
.rm-phase--quick     { border-top-color: #10b981; }
.rm-phase--strategic { border-top-color: #6366f1; }
.rm-phase--transform { border-top-color: #f59e0b; }
.rm-phase__kicker { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                     color: var(--t3); font-weight: 800; }
.rm-phase__name   { font-size: 18px; font-weight: 800; color: var(--t1); letter-spacing: -0.01em; }
.rm-phase__dates  { font-size: 12px; color: var(--accent); font-weight: 700; }
.rm-phase__blurb  { font-size: 13px; color: var(--t2); line-height: 1.5; margin: 4px 0 6px; }
.rm-phase__stats  { display: flex; gap: 16px; font-size: 12px; color: var(--t2); }
.rm-phase__stats strong { color: var(--t1); font-size: 13px; }
.rm-phase__list   { list-style: none; padding: 8px 0 0; margin: 0;
                     border-top: 1px dashed rgba(0,0,0,.08); display: flex; flex-direction: column; gap: 6px; }
.rm-phase__list li { font-size: 13px; display: flex; align-items: center; gap: 8px; }
.rm-phase__list a  { color: var(--t1); text-decoration: none; }
.rm-phase__list a:hover { color: var(--accent); text-decoration: underline; }
.rm-phase__dot     { width: 8px; height: 8px; border-radius: 50%; background: var(--b2); flex-shrink: 0; }
.rm-phase__dot--market_revenue_growth  { background: linear-gradient(135deg, #10b981, #059669); }
.rm-phase__dot--operational_excellence { background: linear-gradient(135deg, #6366f1, #4338ca); }
.rm-phase__dot--customer_experience    { background: linear-gradient(135deg, #ec4899, #db2777); }
.rm-phase__dot--innovation             { background: linear-gradient(135deg, #f59e0b, #d97706); }
.rm-phase__dot--risk_mitigation        { background: linear-gradient(135deg, #ef4444, #dc2626); }
.rm-phase__empty { font-size: 12px; color: var(--t3); font-style: italic; }

/* Master Gantt */
.rm-gantt-wrap { overflow-x: auto; padding-bottom: 4px; }
.rm-gantt {
  display: grid;
  /* 220px label column + N month columns */
  grid-template-columns: 220px repeat(var(--cols), minmax(36px, 1fr));
  gap: 0;
  position: relative;
  background: #fafbff;
  border: 1px solid var(--b1); border-radius: 12px;
  overflow: hidden;
  min-width: 720px;
}
.rm-gantt__phase {
  grid-row: 3 / -1;
  pointer-events: none;
}
.rm-gantt__phase--quick     { background: rgba(16, 185, 129, 0.06); }
.rm-gantt__phase--strategic { background: rgba(99, 102, 241, 0.06); }
.rm-gantt__phase--transform { background: rgba(245, 158, 11, 0.06); }
.rm-gantt__phase-label {
  position: sticky; top: 0;
  font-size: 9px; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(0,0,0,.35); font-weight: 800; padding: 4px 8px;
  text-align: center;
}

.rm-gantt__corner {
  grid-row: 1 / 3; grid-column: 1;
  background: linear-gradient(180deg, #fafbff, #f3f4f6);
  border-right: 1px solid var(--b1); border-bottom: 1px solid var(--b1);
  font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--t3);
  display: flex; align-items: center; padding: 10px 14px;
}
.rm-gantt__year {
  grid-row: 1;
  text-align: center; font-size: 13px; font-weight: 800; color: var(--t1);
  padding: 8px 4px; background: linear-gradient(180deg, #f3f4f6, #fafbff);
  border-bottom: 1px solid var(--b1); border-right: 1px solid var(--b1);
  letter-spacing: -0.01em;
}
.rm-gantt__row-head {
  background: #fff; border-right: 1px solid var(--b1); border-bottom: 1px solid var(--b1);
  padding: 10px 12px; display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600; color: var(--t1);
  position: sticky; left: 0; z-index: 4;
}
.rm-gantt__row-num { font-size: 10px; font-weight: 800; color: var(--t3);
                     letter-spacing: .08em; }
.rm-gantt__row-name { color: var(--t1); text-decoration: none;
                      overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.rm-gantt__row-name:hover { color: var(--accent); }
.rm-gantt__row-driver { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.rm-gantt__row-driver--market_revenue_growth  { background: #10b981; }
.rm-gantt__row-driver--operational_excellence { background: #6366f1; }
.rm-gantt__row-driver--customer_experience    { background: #ec4899; }
.rm-gantt__row-driver--innovation             { background: #f59e0b; }
.rm-gantt__row-driver--risk_mitigation        { background: #ef4444; }

.rm-gantt__month {
  grid-row: 2;
  font-size: 10px; font-weight: 700; color: var(--t3);
  text-align: center; padding: 6px 2px;
  background: #fafbff;
  border-bottom: 1px solid var(--b1); border-right: 1px solid rgba(0,0,0,.04);
  letter-spacing: .04em; text-transform: uppercase;
}
.rm-gantt__month.is-q { border-left: 2px solid rgba(99, 102, 241, 0.25); }

.rm-gantt__bar {
  margin: 8px 4px; padding: 8px 12px; border-radius: 8px;
  display: flex; flex-direction: column; gap: 2px; justify-content: center;
  min-height: 44px; color: #fff; font-weight: 700; font-size: 12px;
  z-index: 2; position: relative;
  box-shadow: 0 4px 12px -3px rgba(0,0,0,.25);
  transition: transform .15s, box-shadow .25s;
}
.rm-gantt__bar:hover { transform: translateY(-1px); box-shadow: 0 8px 16px -3px rgba(0,0,0,.35); }
.rm-gantt__bar--market_revenue_growth  { background: linear-gradient(135deg, #10b981, #059669); }
.rm-gantt__bar--operational_excellence { background: linear-gradient(135deg, #6366f1, #4338ca); }
.rm-gantt__bar--customer_experience    { background: linear-gradient(135deg, #ec4899, #db2777); }
.rm-gantt__bar--innovation             { background: linear-gradient(135deg, #f59e0b, #d97706); }
.rm-gantt__bar--risk_mitigation        { background: linear-gradient(135deg, #ef4444, #dc2626); }
.rm-gantt__bar-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2; }
.rm-gantt__bar-meta { font-size: 10px; font-weight: 600; opacity: 0.82; letter-spacing: .04em; }

.rm-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px;
              font-size: 11px; color: var(--t2); }
.rm-legend__item { display: flex; align-items: center; gap: 6px; }
.rm-legend__swatch { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }

/* Investment curve */
.rm-invest { display: grid; grid-template-columns: repeat(auto-fit, minmax(60px, 1fr)); gap: 10px;
              padding: 8px 0; }
.rm-invest__col { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.rm-invest__bar-track {
  position: relative; width: 100%; max-width: 60px; height: 180px;
  background: #f3f4f6; border-radius: 8px; overflow: hidden;
  display: flex; align-items: flex-end;
}
.rm-invest__bar { display: block; width: 100%;
                   background: linear-gradient(180deg, #6366f1, #4338ca);
                   border-radius: 8px 8px 0 0;
                   transition: height .3s; }
.rm-invest__cum  { position: absolute; left: 0; right: 0; height: 2px;
                    background: linear-gradient(90deg, #ec4899, #db2777);
                    border-radius: 2px;
                    box-shadow: 0 0 6px rgba(236, 72, 153, 0.45); }
.rm-invest__cum::after { content: ""; position: absolute; right: 0; top: -3px;
                         width: 8px; height: 8px; border-radius: 50%; background: #ec4899;
                         box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0,0,0,.2); }
.rm-invest__label { font-size: 11px; font-weight: 700; color: var(--t2); letter-spacing: .04em; }
.rm-invest__val   { font-size: 11px; color: var(--t3); font-weight: 600; }
.rm-invest__legend { display: flex; gap: 14px; margin-top: 8px; font-size: 11px; color: var(--t2); }
.rm-invest__legend-swatch { width: 12px; height: 12px; border-radius: 3px; display: inline-block;
                             margin-right: 4px; vertical-align: middle; }
.rm-invest__legend-swatch--bar { background: linear-gradient(180deg, #6366f1, #4338ca); }
.rm-invest__legend-swatch--cum { background: linear-gradient(90deg, #ec4899, #db2777); }

/* Pillar impact map */
.rm-pillar-map { display: flex; flex-direction: column; gap: 4px; }
.rm-pillar-map__head, .rm-pillar-map__row {
  display: grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 4px;
  align-items: stretch;
}
.rm-pillar-map__head { padding: 0 0 4px; border-bottom: 1px solid rgba(0,0,0,.06); }
.rm-pillar-map__col {
  font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  color: #fff; text-align: center; padding: 8px 6px; border-radius: 8px;
}
.rm-pillar-map__col--infrastructure { background: linear-gradient(135deg, #ef4444, #dc2626); }
.rm-pillar-map__col--data           { background: linear-gradient(135deg, #6366f1, #4338ca); }
.rm-pillar-map__col--governance     { background: linear-gradient(135deg, #10b981, #059669); }
.rm-pillar-map__col--talent         { background: linear-gradient(135deg, #f59e0b, #d97706); }
.rm-pillar-map__row { padding: 4px 0; }
.rm-pillar-map__init {
  display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600;
  background: #fafbff; border-radius: 6px; padding: 8px 10px;
}
.rm-pillar-map__init a { color: var(--t1); text-decoration: none; }
.rm-pillar-map__init a:hover { color: var(--accent); }
.rm-pillar-map__cell {
  background: #fafbff; border-radius: 6px; padding: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: transparent; min-height: 36px;
}
.rm-pillar-map__cell.is-on.rm-pillar-map__cell--infrastructure { background: rgba(239, 68, 68, 0.18);  color: #b91c1c; }
.rm-pillar-map__cell.is-on.rm-pillar-map__cell--data           { background: rgba(99, 102, 241, 0.18); color: #4338ca; }
.rm-pillar-map__cell.is-on.rm-pillar-map__cell--governance     { background: rgba(16, 185, 129, 0.18); color: #047857; }
.rm-pillar-map__cell.is-on.rm-pillar-map__cell--talent         { background: rgba(245, 158, 11, 0.18); color: #b45309; }

/* Governance gates */
.rm-gates { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.rm-gate  { background: linear-gradient(135deg, #fafbff, #fff); border: 1px solid var(--b1);
             border-left: 4px solid var(--accent); border-radius: 10px;
             padding: 14px 16px; }
.rm-gate__when { font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
                  color: var(--accent); font-weight: 800; margin-bottom: 10px; }
.rm-gate__block { margin-top: 8px; }
.rm-gate__block-label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; margin-bottom: 4px; }
.rm-gate__block ul    { list-style: none; padding: 0; margin: 0; font-size: 12px;
                         color: var(--t1); line-height: 1.5; }
.rm-gate__block li    { padding: 2px 0; }
.rm-gate__block--end .rm-gate__block-label { color: #b45309; }

/* Initiative strip (compact briefs) */
.rm-init-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.rm-init { background: linear-gradient(135deg, #fafbff, #fff); border: 1px solid var(--b1);
            border-radius: 12px; padding: 14px 16px;
            text-decoration: none; color: var(--t1);
            border-left: 4px solid var(--b2);
            transition: transform .15s, box-shadow .25s, border-color .2s;
            display: flex; flex-direction: column; gap: 8px; }
.rm-init:hover { transform: translateY(-2px); box-shadow: 0 8px 18px -8px rgba(31,41,80,.2);
                  text-decoration: none; }
.rm-init--market_revenue_growth  { border-left-color: #10b981; }
.rm-init--operational_excellence { border-left-color: #6366f1; }
.rm-init--customer_experience    { border-left-color: #ec4899; }
.rm-init--innovation             { border-left-color: #f59e0b; }
.rm-init--risk_mitigation        { border-left-color: #ef4444; }
.rm-init__head { display: flex; gap: 10px; align-items: baseline; }
.rm-init__num  { font-size: 10px; font-weight: 800; letter-spacing: .08em; color: var(--t3); }
.rm-init__name { font-weight: 700; font-size: 14px; color: var(--t1); }
.rm-init__driver { font-size: 11px; color: var(--t3); font-weight: 600;
                    letter-spacing: .04em; }
.rm-init__metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
                     padding-top: 8px; border-top: 1px dashed rgba(0,0,0,.06); }
.rm-init__metrics > div { font-size: 12px; font-weight: 700; color: var(--t1); }
.rm-init__metrics > div span { display: block; font-size: 9px; letter-spacing: .12em;
                                 color: var(--t3); font-weight: 700; text-transform: uppercase;
                                 margin-bottom: 2px; }

/* Print rules — fits on US Letter / A4 portrait */
@media print {
  @page { size: A4 landscape; margin: 10mm; }
  body { background: #fff; }
  .no-print, .fr-toolbar { display: none !important; }
  .rm   { max-width: none; margin: 0; padding: 0; gap: 12px; }
  .rm-section, .rm-narrative {
    background: #fff !important; border: 1px solid #e5e7eb !important; box-shadow: none !important;
    page-break-inside: avoid;
  }
  .rm-hero { background: linear-gradient(135deg, #1e3a8a, #4338ca) !important;
             box-shadow: none !important; }
  .rm-gantt { min-width: 0; }
  .rm-section { page-break-inside: avoid; }
  .rm-phase, .rm-gate, .rm-init { page-break-inside: avoid; }
}

@media (max-width: 980px) {
  .rm-hero__metrics { grid-template-columns: 1fr 1fr; }
  .rm-phases        { grid-template-columns: 1fr; }
}


/* ════════════════════════════════════════════════════════════════════════
   FINAL REPORT — full deliverable, screen + print
   ════════════════════════════════════════════════════════════════════════ */
.fr-toolbar {
  position: sticky; top: 0; z-index: 200;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  padding: 12px 28px; display: flex; align-items: center; gap: 18px;
}
.fr-toolbar__title { font-weight: 800; font-size: 15px; flex: 1;
                     letter-spacing: .04em; text-transform: uppercase; color: var(--t1); }

.fr { max-width: 920px; margin: 24px auto 80px; padding: 0 24px;
      color: var(--t1); }

.fr-page {
  background: #fff; border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px; padding: 44px 56px; margin-bottom: 18px;
  box-shadow: 0 12px 32px -16px rgba(31, 41, 80, 0.18);
  page-break-after: always;
}
.fr-page:last-child { page-break-after: auto; }

/* Section headers used inside fr-pages */
.fr-section-head { display: flex; align-items: baseline; gap: 14px;
                   margin-bottom: 14px; padding-bottom: 12px;
                   border-bottom: 1px solid rgba(15, 23, 42, 0.08); }
.fr-section-num  { font-size: 11px; font-weight: 800; letter-spacing: .14em;
                   color: var(--t3); }
.fr-section-head h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.01em;
                      color: var(--t1); margin: 0; }
.fr-subtitle { font-size: 11px; font-weight: 800; letter-spacing: .12em;
               text-transform: uppercase; color: var(--t3);
               margin: 22px 0 10px; }
.fr-lead { font-size: 14px; line-height: 1.7; color: var(--t2); margin: 0 0 18px; }

/* ── COVER ──────────────────────────────────────────────── */
.fr-cover { background: linear-gradient(180deg, #0b1437 0%, #1e3a8a 60%, #4338ca 100%);
            color: #fff; min-height: 880px;
            padding: 56px 64px 40px; display: flex; flex-direction: column;
            border: 0; box-shadow: 0 30px 60px -25px rgba(31, 41, 80, 0.45); }
.fr-cover__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 64px; }
.fr-cover__brand .nav-hex { width: 32px; height: 32px; font-size: 16px; }
.fr-cover__brand-name { font-weight: 700; letter-spacing: .12em;
                         text-transform: uppercase; color: #fff; font-size: 16px; }
.fr-cover__brand-name span { color: #c7d2fe; }
.fr-cover__body { flex: 1; }
.fr-cover__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                       color: rgba(255, 255, 255, 0.65); font-weight: 700;
                       margin-bottom: 18px; }
.fr-cover__company { font-size: 56px; font-weight: 800; line-height: 1.05;
                      letter-spacing: -0.02em; margin: 0; color: #fff; }
.fr-cover__meta { display: flex; gap: 8px; margin-top: 12px;
                   font-size: 14px; color: rgba(255, 255, 255, 0.78); }
.fr-cover__title-block { margin-top: 70px; padding-top: 32px;
                          border-top: 1px solid rgba(255, 255, 255, 0.18); }
.fr-cover__kicker { font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
                     color: #c7d2fe; font-weight: 700; margin-bottom: 8px; }
.fr-cover__title  { font-size: 32px; font-weight: 700; line-height: 1.2;
                     color: #fff; max-width: 640px; }
.fr-cover__facts  { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
                     margin-top: 56px; }
.fr-cover__fact   { background: rgba(255, 255, 255, 0.10);
                     border: 1px solid rgba(255, 255, 255, 0.18);
                     border-radius: 12px; padding: 14px 16px; }
.fr-cover__fact-label { font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
                         color: rgba(255, 255, 255, 0.65); font-weight: 700; }
.fr-cover__fact-value { font-size: 22px; font-weight: 800; margin-top: 6px;
                         color: #fff; letter-spacing: -0.01em; }
.fr-cover__footer { display: flex; justify-content: space-between;
                     font-size: 11px; color: rgba(255, 255, 255, 0.55);
                     letter-spacing: .04em; margin-top: 24px; }

/* ── EXEC SUMMARY ───────────────────────────────────────── */
.fr-risk-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
               margin: 20px 0 24px; }
.fr-risk     { padding: 14px 18px; border-radius: 10px;
               border: 1px solid var(--b1);
               background: linear-gradient(135deg, #fafbff, #fff); }
.fr-risk--high   { border-top: 3px solid #dc2626; }
.fr-risk--medium { border-top: 3px solid #d97706; }
.fr-risk--low    { border-top: 3px solid #059669; }
.fr-risk__label  { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                   font-weight: 700; color: var(--t3); }
.fr-risk__level  { font-size: 28px; font-weight: 800; margin: 4px 0;
                   letter-spacing: -0.01em; }
.fr-risk--high   .fr-risk__level { color: #dc2626; }
.fr-risk--medium .fr-risk__level { color: #d97706; }
.fr-risk--low    .fr-risk__level { color: #059669; }
.fr-risk__sub    { font-size: 12px; color: var(--t2); line-height: 1.5; }

.fr-dominant-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.fr-dominant     { background: #fafbff; border: 1px solid var(--b1); border-radius: 10px;
                   padding: 14px 18px; }
.fr-dominant__rank { font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
                     font-weight: 700; color: var(--accent); margin-bottom: 6px; }
.fr-dominant__name { font-weight: 700; font-size: 14px; color: var(--t1); margin-bottom: 6px; }
.fr-dominant__why  { font-size: 12px; line-height: 1.55; color: var(--t2); }

/* ── COMPANY PROFILE ────────────────────────────────────── */
.fr-profile-grid { display: grid; grid-template-columns: repeat(3, 1fr);
                   gap: 8px 18px; padding: 14px 0; }
.fr-profile-cell__label { font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
                          font-weight: 700; color: var(--t3); margin-bottom: 2px; }
.fr-profile-cell__val   { font-size: 14px; font-weight: 600; color: var(--t1); }
.fr-signals    { display: flex; flex-direction: column; gap: 6px; font-size: 13px;
                 color: var(--t2); line-height: 1.6; }
.fr-signal     { padding-left: 4px; }

/* ── PILLARS ────────────────────────────────────────────── */
.fr-pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fr-pillar  { background: #fff; border: 1px solid var(--b1); border-radius: 12px;
              padding: 16px 18px; border-top: 4px solid var(--b2); }
.fr-pillar--infrastructure { border-top-color: #ef4444; }
.fr-pillar--data           { border-top-color: #6366f1; }
.fr-pillar--governance     { border-top-color: #10b981; }
.fr-pillar--talent         { border-top-color: #f59e0b; }
.fr-pillar__head  { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fr-pillar__name  { font-weight: 800; font-size: 14px; letter-spacing: .04em;
                    text-transform: uppercase; color: var(--t1); }
.fr-pillar__desc  { font-size: 12px; color: var(--t3); margin: 4px 0 12px; }
.fr-pillar__score-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
                         padding: 8px 0 12px;
                         border-top: 1px dashed rgba(0,0,0,.08); }
.fr-pillar__score      { display: flex; flex-direction: column; gap: 4px; }
.fr-pillar__score-label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                           color: var(--t3); font-weight: 700; }
.fr-pillar__bar        { height: 6px; background: rgba(0,0,0,.06); border-radius: 999px;
                          overflow: hidden; }
.fr-pillar__bar span   { display: block; height: 100%; background: var(--accent); border-radius: 999px; }
.fr-pillar__bar--ideal span { background: #10b981; }
.fr-pillar__score-val  { font-size: 12px; font-weight: 700; color: var(--t1); text-align: right; }
.fr-pillar__field      { font-size: 12px; color: var(--t2); line-height: 1.5; margin-bottom: 6px; }
.fr-pillar__field--muted { color: var(--t3); font-style: italic; }
.fr-pill   { display: inline-block; padding: 2px 9px; border-radius: 999px;
             font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fr-pill--not_started { background: #f3f4f6; color: var(--t3); }
.fr-pill--in_progress { background: #fef3c7; color: #92400e; }
.fr-pill--complete    { background: #d1fae5; color: #065f46; }
.fr-pill--blocked     { background: #fee2e2; color: #991b1b; }

/* ── ROADMAP STEPS ──────────────────────────────────────── */
.fr-steps { display: flex; flex-direction: column; gap: 12px; }
.fr-step  { background: #fafbff; border: 1px solid var(--b1); border-radius: 10px;
            padding: 12px 16px; }
.fr-step--done { border-color: rgba(5, 150, 105, 0.45);
                 background: linear-gradient(135deg, rgba(16, 185, 129, 0.06), rgba(5, 150, 105, 0.06)); }
.fr-step__head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.fr-step__num  { font-size: 10px; font-weight: 800; letter-spacing: .12em;
                 text-transform: uppercase; color: var(--t3); }
.fr-step__name { font-weight: 700; font-size: 14px; color: var(--t1); flex: 1; }
.fr-step__chip { font-size: 9px; font-weight: 800; letter-spacing: .06em;
                 text-transform: uppercase; padding: 2px 8px; border-radius: 999px; }
.fr-step__chip--mandatory { background: #ede9fe; color: #5b21b6; }
.fr-step__chip--optional  { background: #f3f4f6; color: var(--t3); font-style: italic; }
.fr-step__chip--done      { background: #d1fae5; color: #065f46; }
.fr-step__intel { font-size: 12px; color: var(--t2); line-height: 1.5; margin: 8px 0;
                  padding-left: 10px; border-left: 2px solid rgba(124, 58, 237, 0.25); }
.fr-step__cols  { display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
                  font-size: 12px; line-height: 1.5; color: var(--t2); margin: 8px 0; }
.fr-step__cols strong { color: var(--t1); }
.fr-step__notes { margin-top: 8px; padding-top: 8px;
                   border-top: 1px dashed rgba(0,0,0,.08); }
.fr-step__notes-label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; margin-bottom: 4px; }
.fr-step__notes ul { list-style: disc; margin: 0 0 0 18px; font-size: 12px;
                      color: var(--t2); line-height: 1.5; }
.fr-step__notes ul li { margin-bottom: 3px; }

/* ── INITIATIVES TOC ────────────────────────────────────── */
.fr-init-toc { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.fr-init-toc__row { display: grid; grid-template-columns: 30px 1fr auto auto;
                    gap: 12px; align-items: center; padding: 10px 12px;
                    background: #fafbff; border: 1px solid var(--b1); border-radius: 8px; }
.fr-init-toc__num { font-weight: 800; color: var(--t3); font-size: 12px; }
.fr-init-toc__name { font-weight: 700; color: var(--t1); font-size: 13px; }
.fr-init-toc__driver { font-size: 11px; color: var(--t3); letter-spacing: .04em;
                       text-transform: uppercase; font-weight: 700; }
.fr-init-toc__status { font-size: 10px; font-weight: 800; letter-spacing: .06em;
                       text-transform: uppercase; padding: 2px 8px; border-radius: 999px;
                       background: #f3f4f6; color: var(--t3); }
.fr-init-toc__status--draft      { background: #f3f4f6; color: var(--t3); }
.fr-init-toc__status--generating { background: #fef3c7; color: #92400e; }
.fr-init-toc__status--generated  { background: #d1fae5; color: #065f46; }
.fr-init-toc__status--final      { background: #dbeafe; color: #1e40af; }

/* Initiative cards inside the report — slightly tighter */
.fr-page--init { padding: 0; overflow: hidden; }
.ic--report { border-radius: 14px; box-shadow: none; }
.ic--report .ic-hero  { padding: 28px 36px 24px; }
.ic--report .ic-hero__title { font-size: 32px; }
.ic--report .ic-hero__metrics { margin-top: 18px; }
.ic--report .ic-scores { padding: 12px 36px; }
.ic--report .ic-body   { padding: 22px 36px 28px; gap: 14px; }
.ic--report .ic-panel  { padding: 14px 16px; }

/* ── ADVISORY ───────────────────────────────────────────── */
.fr-advisory { background: #fafbff; border: 1px solid var(--b1); border-radius: 10px;
               padding: 14px 18px; margin-bottom: 12px; border-left: 4px solid var(--accent); }
.fr-advisory:nth-of-type(2) { border-left-color: #d97706; }
.fr-advisory:nth-of-type(3) { border-left-color: #7c3aed; }
.fr-advisory__head { display: flex; justify-content: space-between; align-items: center; }
.fr-advisory__name { font-weight: 700; font-size: 14px; color: var(--t1); }
.fr-advisory__rank { font-size: 10px; font-weight: 800; letter-spacing: .06em;
                      text-transform: uppercase; padding: 2px 9px; border-radius: 999px;
                      background: #dbeafe; color: #1e40af; }
.fr-advisory p { font-size: 12px; color: var(--t2); line-height: 1.6; margin: 8px 0; }
.fr-advisory__pitch { background: #fff; border-left: 3px solid var(--b1); padding: 8px 12px;
                       font-style: italic; color: var(--t1); font-size: 12px; }
.fr-advisory__evidence { margin-top: 8px; font-size: 11px; color: var(--t3); }

.fr-motion { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fr-motion__card { background: #fafbff; border: 1px solid var(--b1); border-radius: 10px;
                    padding: 14px 18px; }
.fr-motion__label { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
                     color: var(--t3); font-weight: 700; margin-bottom: 6px; }
.fr-motion__text  { font-size: 13px; color: var(--t1); font-weight: 600; line-height: 1.5; }
.fr-motion__sub   { font-size: 11px; color: var(--t2); margin-top: 6px; line-height: 1.5; }

/* ─── PRINT RULES ──────────────────────────────────────────────── */
@media print {
  @page { size: A4; margin: 14mm; }
  body  { background: #fff; }
  .no-print, .fr-toolbar { display: none !important; }
  .fr   { max-width: none; margin: 0; padding: 0; }
  .fr-page {
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 14mm 12mm;
    margin: 0;
    page-break-after: always;
  }
  .fr-page:last-child { page-break-after: auto; }
  .fr-page--init { padding: 0; }
  .ic, .ic--report { box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
  .ic--report .ic-hero { padding: 16mm 14mm 12mm; }
  .ic--report .ic-scores, .ic--report .ic-body { padding-left: 14mm; padding-right: 14mm; }
  /* keep multi-card sections together when possible */
  .fr-pillar, .fr-step, .fr-risk, .fr-dominant, .fr-advisory, .fr-motion__card,
  .ic-panel, .ic-hero__metric, .ic-cost-row, .ic-factor, .fr-init-toc__row {
    page-break-inside: avoid;
  }
  .fr-section-head { page-break-after: avoid; }
  .fr-toolbar { display: none !important; }
}

/* ════════════════════════════════════════════════════════════════════════
   SHARE — manage page, gate, bundle, watermark
   ════════════════════════════════════════════════════════════════════════ */

/* Body class used on customer-facing pages (no nav, gradient bg) */
.share-shell { background:
                 radial-gradient(at 18% 14%, rgba(165, 180, 252, 0.35) 0px, transparent 45%),
                 radial-gradient(at 88% 18%, rgba(252, 165, 224, 0.28) 0px, transparent 50%),
                 radial-gradient(at 12% 88%, rgba(167, 243, 208, 0.30) 0px, transparent 50%),
                 radial-gradient(at 92% 80%, rgba(186, 230, 253, 0.40) 0px, transparent 50%),
                 linear-gradient(135deg, #eef2ff 0%, #f5f3ff 50%, #fdf4ff 100%);
               background-attachment: fixed; min-height: 100vh; }

/* ── Share manage page (consultant) ─────────────────────── */
.share-block { background: var(--glass-bg);
               -webkit-backdrop-filter: var(--glass-blur);
                       backdrop-filter: var(--glass-blur);
               border: 1px solid var(--glass-border); border-radius: 16px;
               padding: 22px 26px; margin-top: 18px; }
.share-block h2 { font-size: 13px; font-weight: 800; letter-spacing: .1em;
                   text-transform: uppercase; color: var(--t1); margin: 0 0 12px; }
.share-bundle-summary { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.share-bundle-summary__row { display: flex; align-items: center; gap: 14px;
                              padding: 10px 12px; background: rgba(255,255,255,.6);
                              border: 1px solid var(--b1); border-radius: 10px;
                              flex-wrap: wrap; }
.share-bundle-summary__tag { font-size: 11px; font-weight: 800; letter-spacing: .08em;
                              text-transform: uppercase; padding: 4px 10px; border-radius: 999px;
                              flex-shrink: 0; }
.share-bundle-summary__tag--ai_readiness  { background: #ede9fe; color: #5b21b6; }
.share-bundle-summary__tag--cybersecurity { background: #fee2e2; color: #991b1b; }
.share-bundle-summary__items { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px;
                                color: var(--t2); }
.share-bundle-summary__chk { font-weight: 600; }

.share-url { display: flex; gap: 8px; align-items: center; }
.share-url input { flex: 1; padding: 10px 12px; border: 1px solid var(--b1);
                    border-radius: 8px; font-family: ui-monospace, monospace;
                    font-size: 12px; color: var(--t1); background: rgba(255,255,255,.85); }

.email-template { background: #fafbff; border: 1px solid var(--b1);
                   border-radius: 12px; padding: 14px 16px; margin-top: 12px;
                   display: flex; flex-direction: column; gap: 10px; }
.email-template__row { display: flex; align-items: baseline; gap: 8px;
                        font-size: 13px; color: var(--t1); }
.email-template__row strong { color: var(--t3); font-weight: 700; min-width: 60px;
                               letter-spacing: .04em; text-transform: uppercase; font-size: 11px; }
.email-template__row span { flex: 1; word-break: break-all; }
.email-template__body { display: flex; flex-direction: column; gap: 6px; }
.email-template__body textarea { width: 100%; min-height: 220px;
                                  padding: 10px 12px; border: 1px solid var(--b1);
                                  border-radius: 8px; font-family: var(--font-body);
                                  font-size: 13px; color: var(--t1);
                                  background: #fff; resize: vertical; }
.email-template__open { display: flex; gap: 8px; align-items: center; }

.share-log { display: flex; flex-direction: column; gap: 4px; }
.share-log__head, .share-log__row {
  display: grid; grid-template-columns: 130px 110px 1fr 130px;
  gap: 10px; padding: 8px 12px; align-items: center; font-size: 12px;
}
.share-log__head { color: var(--t3); font-weight: 700; letter-spacing: .04em;
                    text-transform: uppercase; font-size: 10px; }
.share-log__row  { background: rgba(255,255,255,.6); border-radius: 8px; }
.share-log__row--ok  { border-left: 3px solid #10b981; }
.share-log__row--bad { border-left: 3px solid #ef4444; }

/* ── Customer gate page ─────────────────────────────────── */
.share-gate { max-width: 480px; margin: 60px auto 0; padding: 0 20px 60px;
              text-align: center; }
.share-gate__brand { display: inline-flex; align-items: center; gap: 10px;
                      margin-bottom: 26px; }
.share-gate__brand .nav-hex { width: 28px; height: 28px; font-size: 14px; }
.share-gate__brand span { font-weight: 700; letter-spacing: .12em;
                           text-transform: uppercase; font-size: 13px; color: var(--t2); }
.share-gate__brand span span { color: var(--accent); }

.share-gate__card { background: rgba(255,255,255,.85);
                     -webkit-backdrop-filter: var(--glass-blur);
                             backdrop-filter: var(--glass-blur);
                     border: 1px solid var(--glass-border); border-radius: 22px;
                     padding: 36px 32px;
                     box-shadow: 0 30px 60px -25px rgba(31, 41, 80, 0.25); }
.share-gate__logo { width: 64px; height: 64px; margin: 0 auto 20px;
                     background: #fff; border-radius: 16px; padding: 10px;
                     display: flex; align-items: center; justify-content: center;
                     box-shadow: 0 8px 22px -8px rgba(0,0,0,.25); }
.share-gate__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.share-gate__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                         color: var(--t3); font-weight: 700; }
.share-gate__company { font-size: 28px; font-weight: 800; color: var(--t1);
                        margin: 4px 0 6px; letter-spacing: -0.01em; }
.share-gate__sub { font-size: 13px; color: var(--t2); margin-bottom: 24px; }
.share-gate__form { display: flex; flex-direction: column; gap: 12px;
                     margin: 22px 0 8px; text-align: left; }
.share-gate__label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
                      color: var(--t3); font-weight: 700; }
.share-gate__input { padding: 12px 14px; border: 1px solid var(--b1);
                      border-radius: 10px; font-family: var(--font-body); font-size: 15px;
                      color: var(--t1); background: #fff; outline: none; }
.share-gate__input:focus { border-color: var(--accent);
                            box-shadow: 0 0 0 3px rgba(99,102,241,.15); }
.share-gate__btn { width: 100%; padding: 12px 18px; font-size: 14px; }
.share-gate__hint { font-size: 12px; color: var(--t3); line-height: 1.5; margin-top: 14px; }
.share-gate__locked { padding: 14px 16px; background: rgba(239, 68, 68, 0.08);
                       border: 1px solid rgba(239, 68, 68, 0.35);
                       border-radius: 10px; font-size: 13px; color: #991b1b;
                       text-align: left; line-height: 1.55; }
.share-gate__flash { padding: 10px 14px; border-radius: 8px;
                      font-size: 13px; text-align: left;
                      background: rgba(239, 68, 68, 0.08);
                      border: 1px solid rgba(239, 68, 68, 0.35); color: #991b1b;
                      margin-bottom: 12px; }
.share-gate__flash--success { background: rgba(16, 185, 129, 0.08);
                              border-color: rgba(16, 185, 129, 0.35); color: #065f46; }
.share-gate__foot { margin-top: 26px; font-size: 11px; color: var(--t3);
                    letter-spacing: .04em; max-width: 420px; margin-left: auto; margin-right: auto; }

/* ── Customer bundle page ───────────────────────────────── */
.share-bundle { max-width: 980px; margin: 40px auto 0; padding: 0 28px 60px; }
.share-bundle__hero { background: linear-gradient(135deg, #0b1437 0%, #1e3a8a 50%, #4338ca 100%);
                       color: #fff; border-radius: 22px; padding: 32px 36px;
                       box-shadow: 0 24px 50px -20px rgba(31, 41, 80, 0.4);
                       margin-bottom: 24px; }
.share-bundle__brand { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.share-bundle__brand .nav-hex { width: 28px; height: 28px; font-size: 14px; }
.share-bundle__brand span { font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
                             font-size: 13px; color: rgba(255,255,255,0.78); }
.share-bundle__brand span span { color: #c7d2fe; }
.share-bundle__company-line { display: flex; align-items: center; gap: 18px; }
.share-bundle__logo { width: 64px; height: 64px; background: #fff; border-radius: 14px;
                       padding: 10px; display: flex; align-items: center; justify-content: center;
                       box-shadow: 0 8px 22px -8px rgba(0,0,0,0.5); flex-shrink: 0; }
.share-bundle__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.share-bundle__overline { font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
                           color: rgba(255,255,255,0.6); font-weight: 700; }
.share-bundle__company { font-size: 32px; font-weight: 800; margin: 2px 0 4px;
                          letter-spacing: -0.015em; }
.share-bundle__sub { font-size: 14px; color: rgba(255,255,255,0.78); }

.share-bundle__perspective { margin-top: 28px; }
.share-bundle__perspective-head { display: flex; flex-direction: column; gap: 6px;
                                   margin-bottom: 14px; }
.share-bundle__perspective-tag {
  align-self: flex-start; font-size: 11px; font-weight: 800; letter-spacing: .12em;
  text-transform: uppercase; padding: 4px 12px; border-radius: 999px;
}
.share-bundle__perspective-tag--ai_readiness  { background: #ede9fe; color: #5b21b6; }
.share-bundle__perspective-tag--cybersecurity { background: #fee2e2; color: #991b1b; }
.share-bundle__perspective-title { font-size: 20px; font-weight: 800; color: var(--t1);
                                    letter-spacing: -0.01em; margin: 0; }
.share-bundle__perspective-stats { display: flex; gap: 14px; flex-wrap: wrap;
                                    font-size: 12px; color: var(--t2); margin-top: 2px; }
.share-bundle__perspective-stats span { font-weight: 600; }

.share-bundle__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.share-bundle__card { background: rgba(255,255,255,0.85);
                       -webkit-backdrop-filter: var(--glass-blur);
                               backdrop-filter: var(--glass-blur);
                       border: 1px solid var(--glass-border); border-radius: 18px;
                       padding: 26px 28px;
                       text-decoration: none; color: var(--t1);
                       display: flex; flex-direction: column; gap: 10px;
                       transition: transform .15s, box-shadow .25s, border-color .25s;
                       border-top: 4px solid var(--accent); }
.share-bundle__card:hover { transform: translateY(-4px); text-decoration: none;
                            box-shadow: 0 16px 40px -16px rgba(31, 41, 80, 0.25); }
.share-bundle__card--roadmap { border-top-color: #f59e0b; }
.share-bundle__card--report  { border-top-color: #6366f1; }
.share-bundle__card-icon { font-size: 30px; line-height: 1; }
.share-bundle__card h2 { font-size: 18px; font-weight: 800; color: var(--t1); margin: 0;
                          letter-spacing: -0.01em; }
.share-bundle__card p  { font-size: 13px; line-height: 1.55; color: var(--t2); margin: 0; }
.share-bundle__card-cta { font-size: 12px; font-weight: 700; color: var(--accent);
                           letter-spacing: .04em; margin-top: 6px; }

.share-bundle__foot { display: flex; justify-content: space-between; align-items: flex-end;
                       margin-top: 28px; padding-top: 20px;
                       border-top: 1px solid rgba(15, 23, 42, 0.08);
                       font-size: 12px; color: var(--t3); line-height: 1.5; }
.share-bundle__foot strong { color: var(--t2); }
.share-bundle__foot-meta { font-style: italic; max-width: 320px; text-align: right; }

/* ── Watermark on gated final-report / roadmap ──────────── */
.share-watermark { position: fixed; bottom: 12px; right: 14px; z-index: 50;
                    background: rgba(15, 23, 42, 0.85); color: #fff;
                    padding: 6px 12px; border-radius: 999px;
                    font-size: 11px; letter-spacing: .04em;
                    box-shadow: 0 6px 20px -8px rgba(0,0,0,0.5);
                    pointer-events: none; }
.share-watermark strong { color: #c7d2fe; font-weight: 700; }
@media print {
  .share-watermark { position: static; background: #f3f4f6 !important;
                     color: #111 !important; box-shadow: none !important;
                     margin: 14mm 0 0; text-align: center; }
}

/* Print / shared-view safety — disable blur in print output. */
@media print {
  body { background: #fff; }
  .nav, .detail-card, .rpt-exec-panel, .rpt-profile-panel, .rpt-signals-panel,
  .rpt-risk-card, .lens-row, .dominant-card, .advisory-card, .motion-card,
  .gen-card, .prospect-card, .assessment-card, .share-panel, .shared-header {
    background: #fff !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    border-color: var(--b1) !important;
  }
}

/* ── Admin: users table ──────────────────────────────────────────── */
.admin-table-wrap { background: #fff; border: 1px solid var(--b1); border-radius: 10px;
                    overflow: hidden; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.admin-table th, .admin-table td { padding: 12px 14px; text-align: left;
                                   border-bottom: 1px solid var(--b1); vertical-align: middle; }
.admin-table thead th { background: var(--s1); font-weight: 600; color: var(--t2);
                        font-size: 13px; text-transform: uppercase; letter-spacing: .03em; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table tbody tr:hover { background: #fafbfc; }
.admin-table__actions { text-align: right; white-space: nowrap; }
.admin-table__actions .btn { margin-left: 6px; }
.admin-table select { padding: 5px 8px; border: 1px solid var(--b1); border-radius: 6px;
                      background: #fff; font-size: 14px; }
.admin-table select:disabled { opacity: .6; cursor: not-allowed; }
.admin-self { color: var(--t3); font-size: 13px; margin-left: 6px; }
.admin-inline { display: inline; margin: 0; }

.admin-dialog { border: 1px solid var(--b1); border-radius: 10px; padding: 22px 24px;
                width: min(440px, 92vw); box-shadow: 0 12px 40px rgba(0,0,0,.18); }
.admin-dialog::backdrop { background: rgba(15, 23, 42, .45); }
.admin-dialog h3 { margin: 0 0 6px; font-size: 18px; }
.admin-dialog label { display: block; margin-top: 14px; font-size: 14px; font-weight: 500; }
.admin-dialog input[type=password] { width: 100%; margin-top: 6px; padding: 8px 10px;
                                     border: 1px solid var(--b1); border-radius: 6px; font: inherit; }
.admin-dialog__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }

.admin-form { background: #fff; border: 1px solid var(--b1); border-radius: 10px;
              padding: 22px 24px; margin-top: 16px; }
.admin-form label { display: block; margin-top: 14px; font-size: 14px; font-weight: 500; }
.admin-form label:first-of-type { margin-top: 0; }
.admin-form input, .admin-form select { width: 100%; margin-top: 6px; padding: 9px 11px;
                                        border: 1px solid var(--b1); border-radius: 6px;
                                        background: #fff; font: inherit; }
.admin-form__actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }

/* ── Admin: membership pills + form checkbox ─────────────────────── */
.admin-mem-pill { display: inline-block; padding: 2px 9px; border-radius: 999px;
                  background: #eef2ff; color: #3730a3; font-size: 13px;
                  margin: 1px 3px 1px 0; }
.admin-mem-pill em { color: #6366f1; font-style: normal; font-weight: 500; }
.admin-form__checkbox { display: flex; align-items: center; gap: 8px;
                        font-weight: 500; margin-top: 18px; cursor: pointer; }
.admin-form__checkbox input[type=checkbox] { width: auto; margin: 0; }

/* ── Admin: list extras (muted rows, slug pill, section, empty state) ── */
.admin-row--muted td  { color: var(--t3); }
.admin-row--muted strong { color: var(--t2); font-weight: 600; }
.admin-slug { background: var(--s1); color: var(--t2); padding: 2px 8px;
              border-radius: 5px; font-size: 13px; }
.admin-section-h { font-size: 18px; font-weight: 700; margin: 28px 0 10px; }
.admin-empty { padding: 36px 24px; text-align: center; background: #fff;
               border: 1px dashed var(--b1); border-radius: 10px;
               color: var(--t3); }
.admin-empty p { margin: 0 0 14px; }
.admin-note { margin-top: 28px; font-style: italic; color: var(--t3); }

/* ── Admin: section header w/ inline action ──────────────────────── */
.admin-section { margin-top: 28px; }
.admin-section-head { display: flex; align-items: center; justify-content: space-between;
                      margin-bottom: 10px; }
.admin-section-head .admin-section-h { margin: 0; }
.admin-form__split { margin-top: 4px; padding-top: 10px; border-top: 1px dashed var(--b1); }

/* ── Nav: tenant switcher dropdown ───────────────────────────────── */
.nav-switcher { display: inline-block; margin: 0 8px 0 4px; }
.nav-switcher select { padding: 5px 22px 5px 10px; border: 1px solid var(--b1);
                       border-radius: 6px; font: inherit; font-size: 14px;
                       background: var(--s1); color: var(--t1); cursor: pointer;
                       appearance: none;
                       background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%236b7280' d='M0 0l5 6 5-6z'/></svg>");
                       background-repeat: no-repeat; background-position: right 8px center; }
.nav-switcher select:hover { border-color: var(--accent); }
.nav-switcher select:focus { outline: none; border-color: var(--accent);
                              box-shadow: 0 0 0 3px rgba(42,107,232,.15); }

/* ── Phase 7: owner line on prospect detail ─────────────────────── */
.prospect-owner-line { margin-top: 4px; font-size: 13px; color: var(--t3); }
.prospect-owner-line strong { color: var(--t2); }
.prospect-owner-line .btn { margin-left: 10px; vertical-align: baseline; }

/* ── AI quota meter ────────────────────────────────────────────── */
.quota-card { background: #fff; border: 1px solid var(--b1); border-radius: 10px;
              padding: 16px 20px; margin: 14px 0; }
.quota-card__head { display: flex; align-items: center; justify-content: space-between;
                    flex-wrap: wrap; gap: 12px; margin-bottom: 10px; }
.quota-card__nums { font-size: 15px; }
.quota-card__used  { font-weight: 700; font-size: 20px; color: var(--t1); }
.quota-card__sep   { color: var(--t3); margin: 0 4px; }
.quota-card__limit { font-weight: 600; color: var(--t2); }
.quota-card__label { color: var(--t3); margin-left: 10px; font-size: 14px; }
.quota-card__input { width: 110px; padding: 6px 10px; border: 1px solid var(--b1);
                     border-radius: 6px; font-size: 14px; margin-right: 6px; }
.quota-bar { width: 100%; height: 10px; background: var(--s1); border-radius: 5px;
             overflow: hidden; }
.quota-bar__fill { height: 100%; transition: width .3s ease; }
.quota-bar__fill--ok   { background: linear-gradient(90deg, #10b981, #34d399); }
.quota-bar__fill--warn { background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.quota-bar__fill--over { background: linear-gradient(90deg, #ef4444, #f87171); }

/* ── Coach strip — "what to do next" below the nav ──────────────── */
.coach-strip { padding: 10px 0; border-bottom: 1px solid var(--b1);
               font-size: 14px; }
.coach-strip__inner { max-width: 1280px; margin: 0 auto; padding: 0 28px;
                      display: flex; align-items: center; flex-wrap: wrap;
                      gap: 10px 14px; }
.coach-strip__icon { font-weight: 800; font-size: 16px; line-height: 1; }
.coach-strip__title { color: var(--t1); font-weight: 500; flex: 1; min-width: 0; }
.coach-strip__primary { font-weight: 600; padding: 5px 12px; border-radius: 6px;
                        text-decoration: none; white-space: nowrap; }
.coach-strip__primary:hover { text-decoration: none; }
.coach-strip__secondaries { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.coach-strip__chip { padding: 4px 10px; border-radius: 6px; font-size: 13px;
                     color: var(--t2); background: rgba(255,255,255,.6);
                     border: 1px solid rgba(0,0,0,.05); text-decoration: none;
                     white-space: nowrap; }
.coach-strip__chip:hover { background: #fff; color: var(--t1); text-decoration: none; }

.coach-strip--primary { background: linear-gradient(90deg, #eef2ff 0%, #f5f3ff 100%); }
.coach-strip--primary .coach-strip__icon  { color: var(--accent); }
.coach-strip--primary .coach-strip__primary { background: var(--accent); color: #fff; }
.coach-strip--primary .coach-strip__primary:hover { background: var(--a2); color: #fff; }

.coach-strip--info { background: linear-gradient(90deg, #fef3c7 0%, #fef9e7 100%); }
.coach-strip--info .coach-strip__icon  { color: #92400e; }
.coach-strip--info .coach-strip__primary { background: #b45309; color: #fff; }
.coach-strip--info .coach-strip__primary:hover { background: #92400e; color: #fff; }

.coach-strip--muted { background: var(--s1); }
.coach-strip--muted .coach-strip__icon { color: var(--t3); }
.coach-strip--muted .coach-strip__primary { background: var(--t2); color: #fff; }

.coach-strip--warn { background: linear-gradient(90deg, #fee2e2 0%, #fef2f2 100%); }
.coach-strip--warn .coach-strip__icon { color: #b91c1c; }
.coach-strip--warn .coach-strip__primary { background: #b91c1c; color: #fff; }

/* ── What's New page ────────────────────────────────────────────── */
.whatsnew-entry { background: #fff; border: 1px solid var(--b1); border-radius: 10px;
                  padding: 18px 22px; margin-top: 16px; }
.whatsnew-entry__h { margin: 0 0 8px; font-size: 17px; font-weight: 700;
                     color: var(--t1); }
.whatsnew-entry__list { margin: 0; padding-left: 18px; line-height: 1.55; color: var(--t2); }
.whatsnew-entry__list li { margin: 4px 0; }
.whatsnew-entry__list code { background: var(--s1); padding: 1px 6px;
                              border-radius: 4px; font-size: 13px; }
