/* ════════════════════════════════════════════════════════════════════
   Sightline LCAP 2.0 · styles
   Depends on sightline-tokens.css. Everything here references tokens.
   ════════════════════════════════════════════════════════════════════ */

* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-sans); background: var(--gray-50); color: var(--gray-800); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font-family: inherit; }
a { color: var(--brand-teal); }

/* ─── Shell ─────────────────────────────────────────────────────── */
.lcap-shell { max-width: 1280px; margin: 0 auto; padding: 24px 24px 120px; display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 28px; align-items: start; }
.lcap-main { min-width: 0; }
.lcap-rail { min-width: 0; max-width: 100%; }
.lcap-loading { text-align: center; padding: 80px 20px; color: var(--gray-400); font-size: 14px; }
.lcap-spinner { width: 22px; height: 22px; border: 2.5px solid var(--gray-200); border-top-color: var(--brand-teal); border-radius: 50%; margin: 0 auto 12px; animation: lcap-spin .8s linear infinite; }
@keyframes lcap-spin { to { transform: rotate(360deg); } }

/* ─── Rail ──────────────────────────────────────────────────────── */
.lcap-rail { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 14px; }
.rail-head { padding: 4px 4px 0; }
.rail-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--brand-teal); }
.rail-title { font-size: 22px; font-weight: 700; color: var(--brand-navy); letter-spacing: -.02em; margin-top: 2px; }
.rail-school { font-size: 12.5px; color: var(--gray-500); margin-top: 3px; line-height: 1.4; }
.rail-year { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.rail-year select { font-size: 12.5px; font-weight: 600; color: var(--brand-navy); border: 1px solid var(--gray-200); background: #fff; border-radius: 8px; padding: 6px 28px 6px 10px; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg fill='%2364748B' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 6px center; background-size: 16px; cursor: pointer; max-width: 100%; }
.rail-pill { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 99px; background: var(--brand-teal-soft); color: #036E86; }
.rail-pill.draft { background: var(--gray-100); color: var(--gray-600); }
.rail-list { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 6px; }
.rail-item { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: center; width: 100%; text-align: left; border: none; background: none; padding: 9px 10px; border-radius: 10px; cursor: pointer; color: var(--gray-700); transition: background var(--transition-fast); }
.rail-item:hover { background: var(--gray-50); }
.rail-item.active { background: var(--brand-navy); color: #fff; }
.rail-item.active .rail-status { color: rgba(255,255,255,.65); }
.rail-item.soon { opacity: .5; cursor: default; }
.rail-item.soon:hover { background: none; }
.rail-dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--gray-300); background: #fff; margin: 0 auto; position: relative; }
.rail-dot.progress { border-color: var(--brand-teal); }
.rail-dot.progress::after { content: ''; position: absolute; inset: 2px; border-radius: 50%; background: var(--brand-teal); opacity: .55; }
.rail-dot.done { border-color: var(--success); background: var(--success); }
.rail-dot.done::after { content: ''; position: absolute; left: 3px; top: 1px; width: 3px; height: 5px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rail-item.active .rail-dot { border-color: rgba(255,255,255,.7); background: transparent; }
.rail-item.active .rail-dot.done { background: #fff; border-color: #fff; }
.rail-item.active .rail-dot.done::after { border-color: var(--brand-navy); }
.rail-item.active .rail-dot.progress::after { background: #fff; }
.rail-group { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-400); padding: 12px 10px 4px; }
.rail-group:first-child { padding-top: 6px; }
.rail-name { font-size: 13.5px; font-weight: 600; line-height: 1.2; }
.rail-status { font-size: 11.5px; color: var(--gray-400); margin-top: 2px; font-weight: 500; }
/* Rail · progress and the one next thing */
.rail-progress { background: var(--brand-teal-soft); border-radius: 14px; padding: 14px 14px 12px; }
.rail-progress .rp-pct { font-size: 22px; font-weight: 700; color: var(--brand-teal); letter-spacing: -.02em; line-height: 1.1; }
.rail-progress .rp-pct span { font-size: 13px; font-weight: 700; margin-left: 6px; letter-spacing: 0; }
.rail-progress .rp-bar { height: 6px; background: rgba(255,255,255,.8); border-radius: 99px; overflow: hidden; margin-top: 10px; }
.rail-progress .rp-bar i { display: block; height: 100%; background: var(--brand-teal); border-radius: 99px; transition: width .4s ease; }
.rail-progress .rp-sub { font-size: 11.5px; color: var(--gray-500); margin-top: 6px; }
.rail-progress .rp-next { width: 100%; margin-top: 10px; justify-content: space-between; padding: 9px 12px; border-radius: 10px; text-align: left; white-space: normal; }
.rail-progress .rp-next .rp-k { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .8; flex: none; margin-right: 8px; }
.rail-progress .rp-next .rp-v { font-size: 13px; font-weight: 700; text-align: right; }
.rail-due { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px 14px; }
.rail-due .d-label { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-400); }
.rail-due .d-row { display: block; margin-top: 8px; font-size: 12.5px; color: var(--gray-600); line-height: 1.35; }
.rail-due .d-row b { color: var(--brand-navy); font-weight: 600; }
.rail-due .d-row .d-when { display: block; font-size: 11.5px; color: var(--gray-400); margin-top: 1px; }
.rail-due .d-row .d-when.soon { color: var(--warning); font-weight: 600; }

/* ─── Station header ───────────────────────────────────────────── */
.st-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.st-title { font-size: 24px; font-weight: 700; color: var(--brand-navy); letter-spacing: -.02em; line-height: 1.15; }
.st-blurb { font-size: 13.5px; color: var(--gray-500); margin-top: 5px; line-height: 1.5; max-width: 640px; }
.st-actions { display: flex; gap: 8px; align-items: center; flex: none; flex-wrap: wrap; justify-content: flex-end; }

/* ─── Cards, buttons, forms ────────────────────────────────────── */
.card { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 20px 22px; margin-bottom: 14px; }
.card.tight { padding: 14px 16px; }
.card h3 { font-size: 15.5px; font-weight: 700; color: var(--brand-navy); margin: 0 0 6px; }
.card .muted, .muted { color: var(--gray-500); font-size: 13px; line-height: 1.55; }
.hint { font-size: 12px; color: var(--gray-400); line-height: 1.45; }
.btn { display: inline-flex; align-items: center; gap: 7px; background: var(--brand-teal); color: #fff; border: none; border-radius: 9px; padding: 9px 15px; font-size: 13.5px; font-weight: 600; cursor: pointer; text-decoration: none; line-height: 1.2; transition: background var(--transition-fast), transform var(--transition-fast); white-space: nowrap; }
.btn:hover { background: var(--brand-teal-hover); }
.btn:active { transform: translateY(1px); }
.btn.secondary { background: #fff; color: var(--brand-navy); border: 1px solid var(--gray-300); }
.btn.secondary:hover { background: var(--gray-50); }
.btn.ghost { background: transparent; color: var(--gray-500); padding: 6px 8px; font-weight: 500; }
.btn.ghost:hover { color: var(--brand-navy); background: var(--gray-100); }
.btn.danger-ghost { background: transparent; color: var(--gray-400); padding: 6px 8px; font-weight: 500; }
.btn.danger-ghost:hover { color: var(--danger); background: var(--danger-soft); }
.btn.sm { font-size: 12px; padding: 6px 11px; border-radius: 8px; }
.btn.navy { background: var(--brand-navy); }
.btn.navy:hover { background: var(--brand-navy-deep); }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.field { margin-bottom: 14px; }
.field label { display: block; font-size: 12.5px; font-weight: 600; color: var(--gray-600); margin-bottom: 5px; }
.field input[type=text], .field input[type=number], .field input[type=date], .field textarea, .field select, .input { width: 100%; font-size: 14px; padding: 9px 11px; border: 1px solid var(--gray-300); border-radius: 9px; background: #fff; color: var(--gray-800); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.field input:focus, .field textarea:focus, .field select:focus, .input:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
.field textarea { min-height: 84px; resize: vertical; line-height: 1.5; }
.field .hint { margin-top: 4px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 16px; }
.row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.spacer { flex: 1; }
.pill { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 3px 9px; border-radius: 99px; letter-spacing: .02em; white-space: nowrap; }
.pill.teal { background: var(--brand-teal-soft); color: #036E86; }
.pill.gray { background: var(--gray-100); color: var(--gray-600); }
.pill.green { background: var(--success-soft); color: var(--success); }
.pill.amber { background: var(--warning-soft); color: var(--warning); }
.pill.red { background: var(--danger-soft); color: var(--danger); }
.pill.purple { background: #EDE9FE; color: #6D28D9; }
.pill.navy { background: var(--brand-navy); color: #fff; }
.pill.outline { background: #fff; color: var(--gray-500); border: 1px solid var(--gray-300); }
.num-display { font-family: var(--font-display); font-size: 40px; line-height: 1; color: var(--brand-navy); }
.num-cap { font-size: 12px; color: var(--gray-500); margin-top: 5px; line-height: 1.4; }
.stat-row { display: flex; gap: 28px; flex-wrap: wrap; align-items: flex-start; }
.stat-row > div { min-width: 120px; }
.empty { text-align: center; padding: 44px 20px; }
.empty h3 { font-size: 16px; color: var(--brand-navy); margin: 0 0 8px; }
.empty p { max-width: 480px; margin: 0 auto 18px; }
.divider { height: 1px; background: var(--gray-100); margin: 16px 0; }
.kbd-note { font-size: 11.5px; color: var(--gray-400); }
.callout { background: var(--brand-teal-soft); border: 1px solid #B9E9F2; border-radius: 10px; padding: 10px 14px; font-size: 12.5px; color: var(--gray-700); line-height: 1.5; }
.callout.warn { background: var(--warning-soft); border-color: #FDE68A; }
.callout.good { background: var(--success-soft); border-color: #A7F3D0; }

/* ─── Tables ───────────────────────────────────────────────────── */
.tbl-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
table.tbl th { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-400); text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--gray-200); white-space: nowrap; }
table.tbl td { padding: 9px 10px; border-bottom: 1px solid var(--gray-100); vertical-align: top; }
table.tbl tr:last-child td { border-bottom: none; }
table.tbl td.num, table.tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.tbl tr.total td { font-weight: 700; color: var(--brand-navy); border-top: 2px solid var(--gray-200); }
table.tbl input.cell { width: 100%; min-width: 88px; font-size: 13px; padding: 6px 8px; border: 1px solid var(--gray-200); border-radius: 7px; color: var(--gray-800); background: #fff; }
table.tbl input.cell:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
table.tbl input.cell.num { text-align: right; font-variant-numeric: tabular-nums; }
table.tbl input.cell:disabled { background: var(--gray-50); color: var(--gray-400); }
table.tbl select.cell { font-size: 12.5px; padding: 6px 8px; border: 1px solid var(--gray-200); border-radius: 7px; background: #fff; color: var(--gray-700); max-width: 100%; }
table.tbl textarea.cell { width: 100%; min-width: 220px; font-size: 13px; padding: 6px 8px; border: 1px solid var(--gray-200); border-radius: 7px; min-height: 58px; resize: vertical; line-height: 1.45; }
table.template { border: 1px solid var(--gray-300); font-size: 12px; }
table.template th, table.template td { border: 1px solid var(--gray-300); padding: 7px 8px; vertical-align: top; text-align: left; }
table.template th { background: var(--gray-50); font-size: 11px; color: var(--gray-700); text-transform: none; letter-spacing: 0; white-space: normal; }
table.template .gline { margin-bottom: 3px; }
table.template .yr { color: var(--gray-400); font-size: 10.5px; }

/* ─── Modal ────────────────────────────────────────────────────── */
.lcap-modal-overlay { position: fixed; inset: 0; background: rgba(13,27,42,.45); display: flex; align-items: center; justify-content: center; z-index: 20000; padding: 24px 16px; overflow-y: auto; }
.lcap-modal-overlay[hidden] { display: none; }
.lcap-modal { background: #fff; border-radius: 16px; width: 100%; max-width: 640px; padding: 24px; max-height: calc(100vh - 48px); overflow-y: auto; box-shadow: var(--shadow-lg); margin: auto; }
.lcap-modal.wide { max-width: 860px; }
.lcap-modal h3 { font-size: 18px; color: var(--brand-navy); margin: 0 0 14px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.check-grid label { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; font-weight: 500; color: var(--gray-700); border: 1px solid var(--gray-200); border-radius: 9px; padding: 8px 10px; cursor: pointer; margin: 0; }
.check-grid input { margin-top: 2px; }

/* ─── Eddie coach (docked) ─────────────────────────────────────── */
.coach { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: start; background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 14px 16px 12px; }
.coach.side { position: sticky; top: 84px; }
.coach-avatar { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; filter: drop-shadow(0 4px 8px rgba(2,26,48,.18)); animation: coach-float 4.5s ease-in-out infinite; }
@keyframes coach-float { 0%,100% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(-10deg); } }
.coach-bubble { position: relative; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 14px 14px 14px 4px; padding: 12px 14px; font-size: 13.5px; line-height: 1.55; color: var(--gray-700); min-height: 52px; transition: opacity .22s ease, transform .22s ease; }
.coach-bubble.swap { opacity: 0; transform: translateY(6px) scale(.98); }
.coach-bubble b { color: var(--brand-navy); }
.coach-foot { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.coach-dots { display: flex; gap: 4px; }
.coach-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--gray-200); display: block; }
.coach-dots i.on { background: var(--brand-teal); }
.coach-name { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-400); }
.with-coach { display: grid; grid-template-columns: minmax(0,1fr) 272px; gap: 18px; align-items: start; }

/* ─── Dashboard (Hypergrowth layout, Sightline skin) ──────────── */
.nudge { display: flex; align-items: center; gap: 10px; flex: none; max-width: 420px; }
.nudge .n-bubble { position: relative; background: var(--brand-navy); color: #fff; border-radius: 12px; padding: 10px 14px; font-size: 13px; line-height: 1.45; }
.nudge .n-bubble::after { content: ''; position: absolute; right: -8px; top: 50%; margin-top: -8px; border: 8px solid transparent; border-right: 0; border-left-color: var(--brand-navy); }
.nudge .n-bubble b { color: #fff; }
.nudge .n-bubble button.link { color: #7EE0F1; font-weight: 700; font-size: 13px; }
.nudge .n-star { flex: none; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: var(--brand-teal-soft); border-radius: 14px; filter: drop-shadow(0 3px 6px rgba(2,26,48,.12)); animation: coach-float 4.5s ease-in-out infinite; }
.stat-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.25fr); gap: 14px; margin-bottom: 20px; }
.stat-tiles.five { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.15fr); gap: 12px; }
.stat-tiles.five .stat-tile { padding: 14px 14px; gap: 12px; }
.stat-tiles.five .stat-tile .st-icon { width: 44px; height: 44px; border-radius: 12px; }
.stat-tiles.five .stat-tile .st-icon svg { width: 22px; height: 22px; }
.stat-tiles.five .stat-tile .st-num { font-size: 26px; }
.stat-tiles.five .stat-tile.tutorial .st-cta { display: none; }
.stat-tile { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 16px 18px; min-width: 0; text-align: left; font-family: inherit; }
.stat-tile .st-body { min-width: 0; display: flex; flex-direction: column; justify-content: center; min-height: 58px; }
.stat-tile .st-icon { width: 52px; height: 52px; border-radius: 14px; background: var(--brand-teal-soft); display: flex; align-items: center; justify-content: center; flex: none; color: var(--brand-teal); }
.stat-tile .st-icon svg { width: 26px; height: 26px; }
.stat-tile .st-num { font-family: var(--font-display); font-size: 30px; color: var(--brand-teal); line-height: 1.05; font-variant-numeric: tabular-nums; white-space: nowrap; }
.stat-tile .st-label { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); margin-top: 4px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.stat-tile .st-sub { font-size: 11.5px; color: var(--gray-400); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 15px; }
.stat-tile .st-num .hub-check { display: inline-block; vertical-align: middle; margin: 4px 0; }
.stat-tile .st-num .st-done { font-size: 15px; font-weight: 700; color: var(--success); margin-left: 8px; vertical-align: middle; font-family: var(--font-sans); }
.stat-tile.go { cursor: pointer; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.stat-tile.go:hover { border-color: var(--brand-teal); box-shadow: var(--shadow-md); }
.nr-ctx-stack { display: flex; flex-direction: column; gap: 12px; }
.nr-ctx-stack table.tbl td.mname { min-width: 220px; }
.stat-tile.tutorial { cursor: pointer; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.stat-tile.tutorial:hover { border-color: var(--brand-teal); box-shadow: var(--shadow-md); }
.stat-tile.tutorial .st-icon { background: var(--brand-navy); color: #fff; }
.stat-tile .st-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-teal); }
.stat-tile .st-title { font-size: 13.5px; font-weight: 600; color: var(--gray-800); line-height: 1.3; margin-top: 2px; }
.stat-tile .st-cta { margin-left: auto; flex: none; }
.setup-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 2px 0 10px; }
.setup-head h3 { font-size: 16px; font-weight: 700; color: var(--brand-navy); margin: 0; }
.setup-remaining { font-size: 15px; font-weight: 700; color: var(--brand-teal); }
.setup-remaining.done { color: var(--success); }
.setup-panel { display: grid; grid-template-columns: 132px 250px minmax(0, 1fr); gap: 22px; align-items: center; background: var(--brand-teal-soft); border-radius: 16px; padding: 24px 28px; margin-bottom: 22px; }
.setup-art { width: 132px; height: 132px; display: flex; align-items: center; justify-content: center; position: relative; }
.setup-art .ring { position: absolute; inset: 0; border-radius: 50%; border: 6px solid rgba(255,255,255,.7); }
.setup-art .ring.r2 { inset: 16px; border-width: 4px; border-color: rgba(0,180,216,.25); }
.setup-lead { font-size: 18px; font-weight: 700; color: var(--brand-navy); line-height: 1.35; }
.setup-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.setup-step .ss-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-400); }
.setup-step.current .ss-label { color: var(--brand-teal); }
.setup-step .ss-row { display: flex; gap: 10px; align-items: flex-start; margin-top: 6px; }
.setup-step .ss-title { font-size: 14px; font-weight: 600; color: var(--gray-800); line-height: 1.4; }
.setup-step.done .ss-title { text-decoration: line-through; color: var(--gray-500); }
.setup-step .ss-sub { font-size: 12px; color: var(--gray-500); margin-top: 6px; line-height: 1.45; padding-left: 32px; overflow-wrap: anywhere; }
.setup-step .ss-sub b { color: var(--gray-700); font-weight: 600; }
.setup-step .ss-sub button.link { font-size: 12px; }
.setup-cta { grid-column: 3; display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; align-items: center; }
.setup-cta .btn.main { min-width: 320px; justify-content: center; font-size: 14px; padding: 12px 20px; border-radius: 10px; }
.setup-done { grid-column: 3; text-align: center; font-size: 17px; font-weight: 700; color: var(--brand-navy); margin-top: 14px; }
.hub-check { width: 22px; height: 22px; border-radius: 6px; border: 2px solid var(--gray-300); background: #fff; position: relative; flex: none; margin-top: 0; }
.hub-check.progress { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.18); }
.hub-check.done { background: var(--brand-teal); border-color: var(--brand-teal); }
.hub-check.done::after { content: ''; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
/* Dashboard · the one thing to do next */
.next-strip { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 16px; align-items: center; background: var(--brand-teal-soft); border-radius: 16px; padding: 16px 20px; margin-bottom: 18px; }
.next-strip .ns-art { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; }
.next-strip .ns-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand-teal); }
.next-strip .ns-title { font-size: 17px; font-weight: 700; color: var(--brand-navy); line-height: 1.3; margin-top: 2px; }
.next-strip .ns-sub { font-size: 12.5px; color: var(--gray-600); margin-top: 3px; line-height: 1.45; }
.next-strip .ns-sub b { color: var(--gray-800); font-weight: 600; }
.next-strip .ns-cta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.next-strip .ns-cta .btn.main { font-size: 14px; padding: 12px 20px; border-radius: 10px; }
/* Inside a station · the part heading and the bar that moves you on */
.part-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin: 2px 0 14px; flex-wrap: wrap; }
.part-head .part-text { min-width: 0; }
.part-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand-teal); }
.part-title { font-size: 18px; font-weight: 700; color: var(--brand-navy); margin: 3px 0 0; line-height: 1.25; }
.seg button .seg-check { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--success); position: relative; margin-right: 6px; vertical-align: -1px; }
.seg button .seg-check::after { content: ''; position: absolute; left: 4px; top: 1.5px; width: 3px; height: 6px; border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.part-tools { justify-content: flex-end; }
/* The Continue bar is pinned to the bottom of the window so the next step is never below the fold */
.continue-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 28px; background: rgba(255,255,255,.96); backdrop-filter: blur(6px); border-top: 1px solid var(--gray-200); box-shadow: 0 -8px 24px rgba(16,32,56,.06); }
.continue-bar .cb-mid { font-size: 13px; color: var(--gray-500); display: inline-flex; align-items: center; gap: 12px; }
.continue-bar .cb-mid b { color: var(--brand-navy); }
.continue-bar .cb-bar { display: inline-block; width: 160px; height: 6px; border-radius: 6px; background: var(--gray-100); overflow: hidden; }
.continue-bar .cb-bar i { display: block; height: 100%; background: var(--success); border-radius: 6px; }
.continue-bar .btn.main { font-size: 14px; padding: 11px 18px; border-radius: 10px; }
.continue-bar .btn.ghost { color: var(--gray-500); }
.lcap-main .continue-bar { margin: 0; }
/* "Reviewed" pill on a goal (Step 2): the person read it and said so */
.rv-pill { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: var(--gray-500); border: 1px solid var(--gray-300); border-radius: 99px; padding: 4px 12px 4px 6px; background: #fff; cursor: pointer; font-family: inherit; white-space: nowrap; flex: none; transition: border-color var(--transition-fast), background var(--transition-fast); }
.rv-pill i { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--gray-300); display: inline-block; position: relative; background: #fff; }
.rv-pill:hover { border-color: var(--brand-teal); color: var(--brand-navy); }
.rv-pill.on { color: var(--success); border-color: #BBF7D0; background: #F0FDF4; }
.rv-pill.on i { background: var(--success); border-color: var(--success); }
.rv-pill.on i::after { content: ''; position: absolute; left: 4.5px; top: 1.5px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rv-pill:disabled { cursor: default; opacity: .7; }
.flag-pill { cursor: help; }
/* Rows you can open: the whole row is the click target; the pencil is the visible, accessible control */
table.confirm tr.rowlink { cursor: pointer; }
table.confirm tr.rowlink:hover td { background: #F2FAFD; }
table.confirm td.pen { width: 52px; text-align: right; }
.pencil { display: inline-flex; width: 30px; height: 30px; border-radius: 9px; border: 1px solid var(--gray-200); color: var(--gray-400); align-items: center; justify-content: center; background: #fff; cursor: pointer; font-family: inherit; padding: 0; }
.pencil svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
tr.rowlink:hover .pencil, .pencil:hover { border-color: var(--brand-teal); color: var(--brand-teal-ink, #036E86); }
table.confirm th.pen { width: 52px; }
table.confirm tr.goalrow td { background: #F6FBFD; border-top: 1px solid var(--gray-200); padding: 9px 12px; }
table.confirm tr.goalrow .grl { display: flex; gap: 10px; align-items: center; min-width: 0; }
table.confirm tr.goalrow .grl b { font-size: 11px; letter-spacing: .12em; color: var(--brand-teal-ink, #036E86); text-transform: uppercase; flex: none; }
table.confirm tr.goalrow .grl span.gt { font-weight: 700; color: var(--brand-navy); font-size: 13.5px; min-width: 0; }
table.confirm tr.goalrow .grl small { margin-left: auto; color: var(--gray-400); font-size: 12px; white-space: nowrap; flex: none; }
table.confirm td .desc.two { -webkit-line-clamp: 2; }
table.confirm td .gline { font-size: 12.5px; line-height: 1.45; white-space: normal; }
table.confirm td .gline b { color: var(--gray-700); font-weight: 600; }
table.confirm td .gline .yr { color: var(--gray-400); font-size: 11.5px; }
table.confirm td .from { display: block; font-size: 11px; color: var(--gray-400); margin-top: 2px; }
.carried { font-size: 11px; color: var(--gray-400); font-weight: 500; margin-left: 6px; white-space: nowrap; }
/* ── Three kinds of controls, three looks ──
   1. Process (where am I, what's next): the step strip, the rail, the continue bar. Navy and green, numbered.
   2. View options and filters (how am I looking at it): labeled dropdowns in a light options bar. Gray, quiet.
   3. Actions (do something): teal buttons at the right end of the options bar. */
.step-strip { display: flex; align-items: stretch; gap: 0; margin: -4px 0 16px; border-bottom: 1px solid var(--gray-200); overflow-x: auto; }
.step-strip .ss-part { display: inline-flex; align-items: center; gap: 9px; background: transparent; border: none; border-bottom: 3px solid transparent; margin-bottom: -1px; padding: 8px 18px 12px 6px; font-family: inherit; font-size: 13.5px; font-weight: 600; color: var(--gray-500); cursor: pointer; white-space: nowrap; transition: color var(--transition-fast), border-color var(--transition-fast); }
.step-strip .ss-part:hover { color: var(--brand-navy); }
.step-strip .ss-part .ss-num { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--gray-300); color: var(--gray-500); font-size: 12px; font-weight: 700; flex: none; font-variant-numeric: tabular-nums; }
.step-strip .ss-part.current { color: var(--brand-navy); border-bottom-color: var(--brand-navy); }
.step-strip .ss-part.current .ss-num { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
.step-strip .ss-part.done .ss-num { background: var(--success); border-color: var(--success); color: #fff; position: relative; }
.step-strip .ss-part.done:not(.current) .ss-num::after { content: ''; position: absolute; left: 8px; top: 4.5px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.step-strip .ss-part.done.current .ss-num { background: var(--brand-navy); border-color: var(--brand-navy); }
.step-strip .ss-part.result { margin-left: auto; padding-right: 6px; }
.step-strip .ss-part.result .ss-num { border-style: dashed; }
.step-strip .ss-part.result.current .ss-num { border-style: solid; }
.options-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 18px; flex-wrap: wrap; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 12px; padding: 10px 14px; margin-bottom: 16px; }
.options-bar .ob-fields { display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; min-width: 0; }
.options-bar .ob-field { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.options-bar .ob-label, .gate-fields .ob-label { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); white-space: nowrap; }
.options-bar .ob-select, .gate-fields .ob-select { font-family: inherit; font-size: 13px; font-weight: 600; color: var(--brand-navy); background: #fff; border: 1.5px solid var(--gray-300); border-radius: 8px; padding: 6px 30px 6px 10px; cursor: pointer; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%231E4163' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.options-bar .ob-select:hover, .gate-fields .ob-select:hover { border-color: var(--brand-teal); }
.options-bar .ob-select:focus, .gate-fields .ob-select:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
.options-bar .ob-check { font-size: 13px; font-weight: 600; color: var(--brand-navy); cursor: pointer; }
.options-bar .ob-check input { width: 15px; height: 15px; accent-color: var(--brand-teal); margin: 0; }
.options-bar .ob-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; justify-content: flex-end; }
.options-bar .ob-actions .btn { padding: 8px 14px; font-size: 13px; }
.options-bar .ob-note { font-size: 12.5px; color: var(--gray-500); margin-right: 6px; white-space: nowrap; }
.options-bar .ob-note b { color: var(--brand-navy); font-weight: 700; }
.gate { max-width: 760px; margin: 0 auto; padding: 26px 28px 24px; }
.gate-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.gate-chip { background: var(--brand-teal-soft); border-radius: 12px; padding: 12px 16px; display: flex; align-items: baseline; gap: 8px; }
.gate-chip b { font-family: var(--font-display); font-size: 26px; color: var(--brand-teal); line-height: 1; font-variant-numeric: tabular-nums; }
.gate-chip span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.gate-fields { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: flex-start; margin: 20px 0 6px; padding-top: 18px; border-top: 1px solid var(--gray-100); }
.gate-fields .ob-field { display: flex; flex-direction: column; gap: 6px; }
.gate-target { display: flex; flex-direction: column; gap: 6px; }
.gate-target .radio { margin: 0; font-size: 13.5px; }
.gate-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.empty-step { text-align: center; padding: 40px 20px 36px; }
.empty-step .es-art { width: 56px; margin: 0 auto 12px; opacity: .4; color: var(--brand-teal); }
.empty-step .es-art svg { width: 56px; height: 56px; }
.empty-step h3 { font-size: 17px; font-weight: 700; color: var(--brand-navy); margin: 0 0 6px; }
.empty-step p { font-size: 13.5px; color: var(--gray-500); max-width: 460px; margin: 0 auto 18px; line-height: 1.5; }
/* The five-step journey tracker ("Complete your LCAP") */
.journey-panel { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 28px; align-items: start; background: var(--brand-teal-soft); border-radius: 16px; padding: 24px 28px; margin-bottom: 22px; }
.journey-side { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.journey-side .setup-art { width: 112px; height: 112px; }
.journey-side .setup-lead { font-size: 17px; }
.journey-years { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; }
.journey-steps { display: flex; flex-direction: column; min-width: 0; }
.jstep { display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 12px; padding: 13px 0 14px; border-top: 1px solid rgba(30,65,99,.10); }
.jstep:first-child { border-top: none; padding-top: 2px; }
.jstep .js-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-400); padding-top: 4px; }
.jstep.current .js-label { color: var(--brand-teal); }
.jstep .js-main { min-width: 0; }
.jstep .js-row { display: flex; gap: 10px; align-items: flex-start; }
.jstep .js-title { border: none; background: none; padding: 0; text-align: left; font-size: 14.5px; font-weight: 600; color: var(--gray-800); line-height: 1.4; cursor: pointer; font-family: inherit; }
.jstep .js-title:hover { color: var(--brand-navy); text-decoration: underline; }
.jstep.done .js-title { text-decoration: line-through; color: var(--gray-500); }
.jstep.current .js-title { color: var(--brand-navy); }
.jstep .js-count { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--gray-400); white-space: nowrap; padding-top: 3px; }
.jstep .js-sub { font-size: 12px; color: var(--gray-500); margin-top: 6px; line-height: 1.5; padding-left: 32px; overflow-wrap: anywhere; }
.jstep .js-sub b { color: var(--gray-700); font-weight: 600; }
.jstep .js-sub button.link { font-size: 12px; }
.jstep .js-items { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 8px; padding-left: 32px; }
.js-item { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid rgba(30,65,99,.12); border-radius: 99px; padding: 5px 12px 5px 7px; font-size: 12.5px; font-weight: 600; color: var(--gray-700); cursor: pointer; font-family: inherit; text-align: left; max-width: 100%; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.js-item:hover { border-color: var(--brand-teal); box-shadow: var(--shadow-md); }
.js-item.done { color: var(--gray-500); font-weight: 500; }
.js-item.next { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.16); color: var(--brand-navy); }
.js-item .ji-title { min-width: 0; }
.js-item .ji-hint { font-size: 11px; font-weight: 500; color: var(--gray-400); white-space: nowrap; }
.js-item .ji-hint::before { content: '·'; margin-right: 6px; }
.mini-check { width: 16px; height: 16px; border-radius: 5px; border: 2px solid var(--gray-300); background: #fff; position: relative; flex: none; }
.mini-check.done { background: var(--brand-teal); border-color: var(--brand-teal); }
.mini-check.done::after { content: ''; position: absolute; left: 4px; top: 1px; width: 4px; height: 7px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.journey-steps .setup-cta { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(30,65,99,.10); }
.journey-steps .setup-done { margin-top: 16px; }
.hub-doclist { margin-top: 6px; }
.hub-doc { padding: 10px 0; border-top: 1px solid var(--gray-100); }
.hub-doc .hd-name { font-size: 13.5px; font-weight: 600; color: var(--gray-800); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 12px 0; border-top: 1px solid var(--gray-100); }
.doc-row .dr-title { font-size: 14px; font-weight: 600; color: var(--gray-800); }
.doc-row .dr-sub { font-size: 12.5px; color: var(--gray-500); margin-top: 3px; line-height: 1.45; }
.doc-row .dr-file { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--gray-600); margin-top: 6px; flex-wrap: wrap; }
.doc-row .dr-file b { font-weight: 600; color: var(--gray-700); }
.doc-row .dr-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.lcap-modal label.radio { display: flex; gap: 8px; align-items: center; font-size: 13px; font-weight: 500; color: var(--gray-700); margin: 6px 0 0; cursor: pointer; }
.lcap-modal .m-close { position: absolute; right: 18px; top: 16px; border: none; background: none; font-size: 26px; line-height: 1; color: var(--gray-700); cursor: pointer; padding: 2px 6px; }
.lcap-modal { position: relative; }
.lcap-modal h3.caps { font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
.upload-modal { text-align: center; padding: 8px 6px 2px; }
.upload-modal .um-title { font-size: 17px; font-weight: 700; color: var(--brand-navy); line-height: 1.35; margin: 4px 30px 18px; }
.upload-modal .dropzone { padding: 26px 18px 22px; }
.upload-modal .dz-ico { color: var(--gray-500); margin-bottom: 8px; }
.upload-modal .dz-types { font-size: 13px; color: var(--gray-600); margin: 0 0 14px; }
.upload-modal .um-submit { margin: 16px auto 0; min-width: 280px; justify-content: center; font-size: 14px; padding: 12px 20px; border-radius: 10px; }
.upload-modal .um-alt { font-size: 15px; font-weight: 700; color: var(--brand-navy); margin: 18px 0 10px; }
.modal-stage { text-align: center; padding: 18px 10px 10px; }
.modal-stage .ps-bubble { display: inline-block; background: var(--brand-navy); color: #fff; border-radius: 12px 12px 12px 4px; padding: 10px 16px; font-size: 14px; font-weight: 600; margin-bottom: 14px; min-width: 200px; transition: opacity .2s; }
.modal-stage .ps-sub { font-size: 12.5px; color: var(--gray-400); margin-top: 10px; min-height: 18px; }
table.tables-review tr.off td { opacity: .45; }
table.tables-review td { font-size: 13px; }

/* ─── Goals board: goal cards with action cards (Hypergrowth) ──── */
.board-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.board-toolbar .seg button { white-space: nowrap; }
.seg.lg button { font-size: 13.5px; padding: 8px 18px; }
.gb-goal { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 18px 20px; margin-bottom: 14px; }
.gb-head { display: flex; align-items: flex-start; gap: 14px; }
.gb-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand-teal); }
.gb-title { font-size: 15px; font-weight: 600; color: var(--gray-800); line-height: 1.4; margin-top: 3px; }
.gb-tools { display: flex; gap: 8px; align-items: center; flex: none; margin-left: auto; }
.link-muted { border: none; background: none; color: var(--gray-400); font-size: 13px; cursor: pointer; padding: 6px 8px; font-weight: 500; }
.link-muted:hover { color: var(--brand-navy); }
.gb-chips { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.gb-chip { display: inline-flex; align-items: center; gap: 12px; background: var(--brand-teal-soft); border-radius: 10px; padding: 9px 14px; }
.gb-chip b { font-size: 17px; color: var(--brand-navy); font-variant-numeric: tabular-nums; }
.gb-chip .c-label { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.gb-actions { display: grid; grid-template-columns: repeat(auto-fill, minmax(218px, 1fr)); gap: 12px; margin-top: 16px; }
.gb-empty { font-size: 13px; color: var(--gray-500); margin-top: 14px; }
/* Actions station (step 2c) · reading layout: the wording of each action, in full */
.ar-list { margin-top: 14px; border-top: 1px solid var(--gray-100); }
.ar-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--gray-100); align-items: start; }
.ar-row .ar-num { font-size: 15px; font-weight: 700; color: var(--brand-navy); padding-top: 1px; font-variant-numeric: tabular-nums; }
.ar-row .ar-title { font-size: 15px; font-weight: 700; color: var(--gray-800); line-height: 1.35; }
.ar-row .ar-title .pill { margin-left: 8px; vertical-align: middle; }
.ar-row .ar-desc { font-size: 14px; line-height: 1.6; color: var(--gray-700); margin-top: 6px; white-space: pre-line; max-width: 78ch; }
.ar-row .ar-desc.missing { color: var(--warning); font-style: italic; }
.ar-row .ar-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.ar-row .ar-tools { flex: none; }
@media (max-width: 720px) { .ar-row { grid-template-columns: 48px minmax(0, 1fr); } .ar-row .ar-tools { grid-column: 2; } }
.ac-card { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 12px; padding: 14px; display: flex; flex-direction: column; min-height: 210px; cursor: pointer; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.ac-card:hover { border-color: var(--brand-teal); box-shadow: var(--shadow-md); }
.ac-card .ac-num { font-size: 12px; font-weight: 700; color: var(--brand-navy); }
.ac-card .ac-title { font-size: 13.5px; font-weight: 600; color: var(--gray-800); line-height: 1.35; margin-top: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ac-money { background: #fff; border: 1px solid var(--gray-200); border-radius: 8px; margin-top: 12px; }
.ac-money .row2 { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 8px 10px; border-top: 1px solid var(--gray-100); }
.ac-money .row2:first-child { border-top: none; }
.ac-money .k { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.ac-money .v { font-size: 14px; font-weight: 700; color: var(--brand-navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-money .v.teal { color: var(--brand-teal); }
.ac-money .v.muted { color: var(--gray-400); font-weight: 600; }
.ac-exps { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.ac-exp { background: #fff; border: 1px solid var(--gray-200); border-radius: 8px; padding: 8px 10px; }
.ac-exp .e-row { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; font-weight: 600; color: var(--gray-700); line-height: 1.35; }
.ac-exp .e-row .amt { color: var(--brand-teal); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-exp .e-tags { margin-top: 6px; display: flex; gap: 5px; flex-wrap: wrap; }
.tag { display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 99px; background: var(--brand-teal); color: #fff; white-space: nowrap; }
.tag.cat { background: var(--brand-navy); }
.tag.cat.non { background: #4F6B84; }
.tag.pct { background: var(--brand-navy); }
.ac-foot { margin-top: auto; padding-top: 12px; display: flex; gap: 8px; align-items: center; }
.ac-foot .status { flex: 1; text-align: center; font-size: 12.5px; font-weight: 700; padding: 8px 6px; border-radius: 9px; background: #fff; border: 1px solid var(--gray-200); color: var(--brand-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-foot .status.good { color: var(--success); }
.ac-foot .status.warn { color: var(--warning); }
.ac-foot .status.bad { color: var(--danger); background: var(--danger-soft); border-color: #FECACA; }
.ac-foot .status.muted { color: var(--gray-500); font-weight: 600; }
.ac-foot .btn { flex: 1; justify-content: center; padding-left: 8px; padding-right: 8px; }
.ex-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 12px; }
.ex-card .ex-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ex-card .ex-title { font-size: 14px; font-weight: 700; color: var(--gray-800); line-height: 1.35; }
.ex-card .ex-edit { border: 1px solid var(--gray-200); background: #fff; border-radius: 8px; width: 32px; height: 32px; cursor: pointer; color: var(--gray-500); flex: none; font-size: 14px; }
.ex-card .ex-edit:hover { color: var(--brand-navy); border-color: var(--gray-300); }
.ex-card .ex-tags { margin-top: 10px; display: flex; gap: 5px; flex-wrap: wrap; }
.ex-card .ex-acts-label { font-size: 12px; font-weight: 700; color: var(--gray-700); margin-top: 12px; }
.ex-act { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--gray-200); border-radius: 8px; padding: 7px 10px; font-size: 12px; margin-top: 6px; }
.ex-act .n { font-weight: 700; color: var(--brand-navy); white-space: nowrap; }
.ex-act .t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--gray-700); }
.ex-act .amt { color: var(--brand-teal); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ex-act .x { border: none; background: none; color: var(--gray-300); cursor: pointer; font-size: 14px; padding: 0 2px; }
.ex-act .x:hover { color: var(--danger); }
.matrix-wrap { overflow: auto; border: 1px solid var(--gray-200); border-radius: 12px; background: #fff; }
table.matrix { border-collapse: separate; border-spacing: 0; font-size: 12.5px; min-width: 100%; }
table.matrix th { background: var(--brand-teal-soft); color: var(--brand-navy); font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 9px 10px; text-align: center; border-bottom: 1px solid var(--gray-200); white-space: nowrap; vertical-align: bottom; }
table.matrix th.corner { text-align: right; text-transform: none; letter-spacing: 0; font-size: 12px; color: var(--gray-500); vertical-align: bottom; }
table.matrix th.corner span { display: block; margin-top: 6px; }
table.matrix th.corner .tot { font-weight: 700; color: var(--brand-navy); }
table.matrix th.exp { text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 600; min-width: 160px; vertical-align: top; white-space: normal; }
table.matrix th.exp .sub { display: block; font-size: 11.5px; font-weight: 500; color: var(--gray-500); margin-top: 5px; text-transform: none; letter-spacing: 0; }
table.matrix th.exp .tags { display: flex; gap: 4px; justify-content: center; margin-top: 6px; flex-wrap: wrap; }
table.matrix th.exp .tot { display: block; font-size: 13px; font-weight: 700; color: var(--brand-navy); margin-top: 6px; font-variant-numeric: tabular-nums; }
table.matrix td { padding: 8px 10px; border-bottom: 1px solid var(--gray-100); border-right: 1px solid var(--gray-100); text-align: center; font-variant-numeric: tabular-nums; color: var(--gray-700); white-space: nowrap; }
table.matrix td.title { text-align: left; white-space: normal; min-width: 180px; font-weight: 600; color: var(--gray-800); }
table.matrix td.left { text-align: left; }
table.matrix td input.cell { width: 88px; text-align: center; font-size: 12.5px; padding: 5px 6px; border: 1px solid var(--gray-200); border-radius: 6px; background: #fff; color: var(--gray-800); }
table.matrix td input.cell:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
table.matrix td input.cell.has { border-color: #B9E9F2; background: var(--brand-teal-soft); font-weight: 600; color: var(--brand-navy); }
table.matrix tfoot td { font-weight: 700; color: var(--brand-navy); background: var(--gray-50); }
table.matrix td.num, table.matrix th.num { text-align: right; }

/* ─── Confirm screens (Hypergrowth) ────────────────────────────── */
.confirm-top { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-bottom: 20px; }
.confirm-top > :last-child { justify-self: end; }
.segbar { display: flex; gap: 8px; justify-content: center; }
.segbar i { width: 96px; height: 6px; border-radius: 99px; background: var(--gray-200); display: block; }
.segbar i.on { background: var(--brand-teal); }
.confirm-title { font-size: 22px; font-weight: 700; color: var(--brand-navy); letter-spacing: -.02em; margin: 0; line-height: 1.2; }
.confirm-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.form-2col { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 10px 24px; align-items: start; margin-bottom: 8px; }
.form-2col .f-section { font-size: 16px; font-weight: 700; color: var(--brand-navy); padding-top: 26px; }
.form-2col .f-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.form-2col .f-fields .span2 { grid-column: 1 / -1; }
table.confirm { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13.5px; background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; overflow: hidden; }
table.confirm th { background: var(--brand-teal-soft); color: var(--brand-navy); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 11px 12px; text-align: left; white-space: nowrap; }
table.confirm td { padding: 12px; border-top: 1px solid var(--gray-100); border-right: 1px solid var(--gray-100); vertical-align: middle; color: var(--gray-700); line-height: 1.5; }
table.confirm td:last-child { border-right: none; }
table.confirm td.c { text-align: center; }
table.confirm td.b { font-weight: 600; color: var(--gray-800); }
table.confirm td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.confirm tr.off td { opacity: .45; text-decoration: line-through; }
table.confirm td.metric { min-width: 220px; }
table.confirm td .desc { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; white-space: pre-line; }
.confirm-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; align-items: center; padding-right: 96px; }
.confirm-foot .found-line { margin-right: auto; }
.btn.lg { font-size: 14px; padding: 11px 20px; border-radius: 10px; }
.btn.secondary.lg { border-color: var(--gray-300); }
.cells-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.cells-grid label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-400); margin-bottom: 4px; }
.cells-grid textarea { width: 100%; min-height: 80px; font-size: 12.5px; padding: 7px 8px; border: 1px solid var(--gray-300); border-radius: 8px; resize: vertical; line-height: 1.4; }
.choice { border: 1.5px solid var(--gray-200); border-radius: 14px; padding: 20px; background: #fff; text-align: left; cursor: pointer; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); display: flex; flex-direction: column; gap: 6px; }
.choice:hover { border-color: var(--brand-teal); box-shadow: var(--shadow-md); }
.choice .c-title { font-size: 16px; font-weight: 700; color: var(--brand-navy); }
.choice .c-sub { font-size: 13px; color: var(--gray-500); line-height: 1.5; }
.choice .c-cta { margin-top: auto; padding-top: 10px; font-size: 13px; font-weight: 600; color: var(--brand-teal); }
.dropzone { display: block; border: 1.5px dashed var(--gray-300); border-radius: 14px; padding: 26px 18px; text-align: center; background: #fff; transition: border-color var(--transition-fast), background var(--transition-fast); cursor: pointer; }
.dropzone:hover, .dropzone.over { border-color: var(--brand-teal); background: var(--brand-teal-soft); }
.dropzone .dz-title { font-size: 14.5px; font-weight: 600; color: var(--brand-navy); }
.dropzone .dz-sub { font-size: 12.5px; color: var(--gray-500); margin-top: 4px; }
.dropzone .dz-types { font-size: 11.5px; color: var(--gray-400); margin-top: 8px; }
.dropzone input[type=file] { display: none; }
.dropzone.has-file { border-style: solid; border-color: var(--success); background: #F4FCF8; }
.file-chip { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--gray-200); border-radius: 99px; padding: 5px 6px 5px 12px; font-size: 12.5px; color: var(--gray-700); max-width: 100%; }
.file-chip .fc-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; color: var(--gray-800); }
.file-chip .hint { white-space: nowrap; flex: none; }
.file-chip .x { border: none; background: var(--gray-100); color: var(--gray-500); border-radius: 50%; width: 20px; height: 20px; cursor: pointer; font-size: 13px; line-height: 1; }
.file-chip .x:hover { background: var(--danger-soft); color: var(--danger); }
.progress-bar { height: 6px; background: var(--gray-100); border-radius: 99px; overflow: hidden; max-width: 320px; margin: 16px auto 0; }
.progress-bar i { display: block; height: 100%; background: var(--brand-teal); border-radius: 99px; transition: width .4s ease; }

/* Confirm steps */
.steps { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.step { font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: 99px; border: 1px solid var(--gray-200); background: #fff; color: var(--gray-500); }
.step.active { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
.step.done { color: var(--success); border-color: #A7F3D0; background: var(--success-soft); }
.review-item { border: 1px solid var(--gray-200); border-radius: 12px; padding: 14px 16px; margin-bottom: 10px; background: #fff; }
.review-item .ri-head { display: flex; align-items: center; gap: 10px; }
.review-item .ri-num { width: 30px; height: 30px; border-radius: 50%; background: var(--brand-navy); color: #fff; font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; flex: none; }
.review-item .ri-title { font-size: 14.5px; font-weight: 600; color: var(--gray-800); line-height: 1.35; flex: 1; }
.review-item textarea.ri-edit { width: 100%; font-size: 14px; padding: 8px 10px; border: 1px solid var(--brand-teal); border-radius: 9px; min-height: 64px; line-height: 1.45; }
.review-item .ri-cell { min-width: 118px; font-size: 12px; }
.review-item .ri-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; align-items: center; }
.review-item .ri-meta select { font-size: 12px; padding: 4px 8px; border: 1px solid var(--gray-200); border-radius: 7px; background: #fff; color: var(--gray-700); }
.confirm-bar { position: sticky; bottom: 0; background: rgba(248,250,252,.92); backdrop-filter: blur(8px); padding: 12px 120px 8px 0; display: flex; gap: 10px; align-items: center; margin-top: 8px; border-top: 1px solid var(--gray-200); }
.found-line { font-size: 12.5px; color: var(--gray-500); }
.found-line b { color: var(--brand-navy); }

/* ─── Goals ────────────────────────────────────────────────────── */
.goal-card { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 16px 18px; margin-bottom: 10px; display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: start; }
.goal-num { width: 34px; height: 34px; border-radius: 50%; background: var(--brand-navy); color: #fff; font-weight: 700; font-size: 15px; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.goal-title { font-size: 15px; font-weight: 600; color: var(--gray-800); line-height: 1.4; }
.goal-desc { font-size: 13px; color: var(--gray-500); margin-top: 4px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.goal-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; align-items: center; }
.goal-actions { display: flex; flex-direction: column; gap: 2px; align-items: flex-end; }
.goal-actions .row { display: flex; gap: 2px; }
.goal-stats { display: flex; gap: 14px; margin-top: 10px; font-size: 12px; color: var(--gray-500); }
.goal-stats b { color: var(--brand-navy); font-weight: 600; }

/* ─── Metrics ──────────────────────────────────────────────────── */
.mx-meter { display: flex; gap: 28px; align-items: flex-start; flex-wrap: wrap; }
.mx-meter .num { font-family: var(--font-display); font-size: 34px; line-height: 1; color: var(--brand-navy); }
.mx-meter .cap { font-size: 12px; color: var(--gray-500); margin-top: 4px; max-width: 180px; line-height: 1.4; }
.mx-missing { flex: 1; min-width: 240px; }
.mx-missing .mm-label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-400); margin-bottom: 7px; }
.mm-chip { display: inline-block; font-size: 11.5px; font-weight: 600; color: var(--warning); background: var(--warning-soft); border: none; border-radius: 99px; padding: 4px 10px; margin: 0 5px 5px 0; cursor: pointer; }
.mm-done { font-size: 12.5px; color: var(--success); font-weight: 600; }
.mx-wrap { display: grid; grid-template-columns: 330px 1fr; gap: 14px; align-items: start; }
.mx-goals { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 110px); overflow-y: auto; }
.mx-goal { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 12px 14px; }
.mx-goal.over { border-color: var(--brand-teal); background: var(--brand-teal-soft); }
.mx-goal .g-head { display: flex; gap: 9px; align-items: center; margin-bottom: 8px; }
.mx-goal .g-num { width: 24px; height: 24px; border-radius: 50%; background: var(--brand-navy); color: #fff; font-weight: 700; font-size: 12px; display: flex; align-items: center; justify-content: center; flex: none; }
.mx-goal .g-title { font-size: 13px; font-weight: 700; color: var(--gray-800); line-height: 1.3; }
.mx-drop { border: 1.5px dashed var(--gray-200); border-radius: 9px; padding: 8px; min-height: 40px; font-size: 12px; color: var(--gray-400); }
.mx-chip { display: flex; align-items: center; gap: 7px; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 8px; padding: 6px 9px; margin-bottom: 6px; font-size: 12px; color: var(--gray-700); }
.mx-chip b { color: var(--brand-navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mx-chip .x { margin-left: auto; border: none; background: none; color: var(--gray-400); cursor: pointer; font-size: 14px; line-height: 1; padding: 2px 4px; }
.mx-chip .x:hover { color: var(--danger); }
.mx-chip.custom b { color: #6D28D9; }
.mx-addcustom { border: none; background: none; color: var(--brand-teal); font-size: 12px; font-weight: 600; cursor: pointer; padding: 4px 0 0; }
.mx-lib .pri-head { font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--gray-400); margin: 18px 0 8px; }
.mx-lib .pri-head:first-child { margin-top: 0; }
.mx-row { background: #fff; border: 1px solid var(--gray-200); border-radius: 10px; padding: 11px 13px; margin-bottom: 7px; display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; }
.mx-row.assigned { background: var(--gray-50); }
.mx-row.dragging { opacity: .45; }
.mx-row.flash { border-color: var(--warning); box-shadow: 0 0 0 3px var(--warning-soft); }
.mx-row[draggable=true] { cursor: grab; }
.mx-name { font-size: 13.5px; font-weight: 600; color: var(--gray-800); }
.mx-name .sp { color: var(--brand-navy); font-variant-numeric: tabular-nums; }
.mx-sub { grid-column: 1 / -1; font-size: 12px; color: var(--gray-500); line-height: 1.4; }
.mx-badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.mxb { font-size: 10px; font-weight: 700; letter-spacing: .04em; padding: 2.5px 8px; border-radius: 99px; text-transform: uppercase; white-space: nowrap; }
.b-req { background: var(--brand-navy); color: #fff; }
.b-lea { background: var(--gray-100); color: var(--gray-600); }
.b-data { background: var(--success-soft); color: var(--success); }
.b-local { background: #fff; color: var(--gray-500); border: 1px solid var(--gray-300); }
.mx-assign { font-size: 12px; padding: 5px 7px; border: 1px solid var(--gray-300); border-radius: 7px; background: #fff; color: var(--gray-700); max-width: 150px; }
.mx-inGoal { font-size: 11.5px; font-weight: 700; color: var(--success); white-space: nowrap; }

/* Targets / outcomes */
.tg-topbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.seg { display: inline-flex; background: var(--gray-100); border-radius: 99px; padding: 3px; gap: 2px; }
.seg button { font-size: 12px; font-weight: 600; border: none; background: transparent; color: var(--gray-500); padding: 6px 14px; border-radius: 99px; cursor: pointer; }
.seg button.active { background: #fff; color: var(--brand-navy); box-shadow: 0 1px 3px rgba(13,27,42,.12); }
.goalnav { display: flex; gap: 8px; flex-wrap: wrap; }
.goalnav button { font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: 99px; border: 1px solid var(--gray-200); background: #fff; color: var(--gray-600); cursor: pointer; }
.goalnav button.active { background: var(--brand-navy); border-color: var(--brand-navy); color: #fff; }
.tg-card { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.tg-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.tg-title { font-size: 14.5px; font-weight: 700; color: var(--gray-800); }
.tg-title .sp { color: var(--brand-navy); }
.tg-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 8px 0 4px; font-size: 12px; color: var(--gray-500); }
.tg-meta select { font-size: 12px; padding: 4px 7px; border: 1px solid var(--gray-300); border-radius: 6px; background: #fff; color: var(--gray-700); }
.tg-meta button.link, button.link { border: none; background: none; color: var(--brand-teal); font-weight: 600; cursor: pointer; font-size: 12px; padding: 0; }
.tg-context { font-size: 11.5px; color: var(--gray-400); margin-top: 4px; line-height: 1.5; }
.tg-context b { color: var(--gray-600); font-weight: 600; }
.tg-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.tg-table th { font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-400); text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--gray-200); min-width: 92px; }
.tg-table th:first-child { min-width: 116px; }
.tg-table th .yr { display: block; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gray-300); font-size: 10px; }
.tg-table td { padding: 6px 8px 8px; border-bottom: 1px solid var(--gray-100); vertical-align: top; }
.tg-table td.grp { font-size: 12.5px; font-weight: 600; color: var(--gray-700); white-space: nowrap; padding-top: 12px; }
.tg-cell input.v { width: 100%; font-size: 13px; padding: 6px 8px; border: 1px solid var(--gray-300); border-radius: 7px; color: var(--gray-800); }
.tg-cell input.y { width: 100%; font-size: 10.5px; padding: 3px 8px; border: 1px solid var(--gray-100); border-radius: 6px; color: var(--gray-400); margin-top: 3px; }
.tg-cell input:disabled { background: var(--gray-50); color: var(--gray-400); cursor: not-allowed; }
.tg-cell.src-auto input.v { border-color: var(--success); background: #F4FCF8; }
.tg-cell.src-override input.v { border-color: var(--warning); }
.tg-cell.src-imported input.v { border-color: #C4B5FD; background: #FAF5FF; }
.tg-ref { font-size: 10.5px; color: var(--gray-400); margin-top: 3px; }
.tg-ref b { color: var(--gray-600); font-weight: 600; }
.tg-locknote { font-size: 11px; color: var(--gray-400); margin-top: 8px; }
.tg-langinput { width: 100%; font-size: 13.5px; padding: 7px 9px; border: 1px solid var(--brand-teal); border-radius: 7px; color: var(--gray-800); }
.grp-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); margin-left: auto; flex: none; }
.grp-dot.none { background: var(--gray-200); }
.grp-n { font-size: 10.5px; color: var(--gray-400); margin-left: 4px; font-weight: 500; }

/* ─── Money ────────────────────────────────────────────────────── */
.money-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }
.money-tile { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 14px 16px; }
.money-tile .mt-label { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-400); }
.money-tile .mt-num { font-family: var(--font-display); font-size: 28px; color: var(--brand-navy); line-height: 1.1; margin-top: 6px; font-variant-numeric: tabular-nums; }
.money-tile .mt-sub { font-size: 12px; color: var(--gray-500); margin-top: 3px; }
.action-card { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 14px 16px; margin-bottom: 8px; }
.action-card .ac-head { display: flex; align-items: flex-start; gap: 12px; }
.action-card .ac-num { font-size: 11px; font-weight: 700; color: var(--brand-navy); background: var(--brand-teal-soft); border-radius: 6px; padding: 3px 7px; white-space: nowrap; margin-top: 1px; }
.action-card .ac-title { font-size: 14px; font-weight: 600; color: var(--gray-800); flex: 1; line-height: 1.35; }
.action-card .ac-desc { font-size: 12.5px; color: var(--gray-500); margin-top: 6px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.action-card .ac-desc.open { display: block; -webkit-line-clamp: unset; }
.action-card .ac-money { display: flex; gap: 18px; margin-top: 10px; flex-wrap: wrap; align-items: flex-end; }
.action-card .ac-money .m { font-size: 11px; color: var(--gray-400); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.action-card .ac-money .v { font-size: 15px; color: var(--brand-navy); font-weight: 600; font-variant-numeric: tabular-nums; }
.bar { height: 6px; background: var(--gray-100); border-radius: 99px; overflow: hidden; margin-top: 8px; }
.bar i { display: block; height: 100%; background: var(--brand-teal); border-radius: 99px; }
.bar i.over { background: var(--danger); }
.bar i.done { background: var(--success); }
.goal-group { margin-bottom: 18px; }
.goal-group .gg-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.goal-group .gg-head .g-num { width: 26px; height: 26px; border-radius: 50%; background: var(--brand-navy); color: #fff; font-weight: 700; font-size: 12.5px; display: flex; align-items: center; justify-content: center; flex: none; }
.goal-group .gg-head .g-title { font-size: 14px; font-weight: 700; color: var(--brand-navy); flex: 1; line-height: 1.3; }
.goal-group .gg-head .g-total { font-size: 12.5px; color: var(--gray-500); white-space: nowrap; }
.goal-group .gg-head .g-total b { color: var(--brand-navy); font-variant-numeric: tabular-nums; }
.exp-row { display: grid; grid-template-columns: 1fr 120px 120px 150px 36px; gap: 10px; align-items: center; padding: 9px 12px; border-bottom: 1px solid var(--gray-100); font-size: 13px; }
.exp-row.head { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-400); border-bottom: 1px solid var(--gray-200); }
.exp-row .e-name { font-weight: 600; color: var(--gray-800); }
.exp-row .e-sub { font-size: 11.5px; color: var(--gray-400); margin-top: 2px; }
.exp-row .num { text-align: right; font-variant-numeric: tabular-nums; }
.alloc-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 8px; padding: 4px 8px; font-size: 12px; margin: 0 4px 4px 0; }
.alloc-chip b { color: var(--brand-navy); font-variant-numeric: tabular-nums; }
.alloc-chip .x { border: none; background: none; color: var(--gray-400); cursor: pointer; font-size: 13px; padding: 0 2px; }
.alloc-chip .x:hover { color: var(--danger); }
.issue { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-bottom: 1px solid var(--gray-100); font-size: 13px; color: var(--gray-700); }
.issue:last-child { border-bottom: none; }
.issue .i-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--warning); margin-top: 6px; flex: none; }
.issue .i-dot.red { background: var(--danger); }
.issue .i-dot.gray { background: var(--gray-300); }
.drawer-overlay { position: fixed; inset: 0; background: rgba(13,27,42,.35); z-index: 19000; display: flex; justify-content: flex-end; }
.drawer-overlay[hidden] { display: none; }
.drawer { width: min(560px, 100%); height: 100%; background: #fff; box-shadow: var(--shadow-lg); padding: 22px 24px; overflow-y: auto; animation: drawer-in .22s ease; }
@keyframes drawer-in { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.drawer h3 { font-size: 17px; color: var(--brand-navy); margin: 0 0 4px; }
.drawer .d-close { float: right; border: none; background: var(--gray-100); width: 30px; height: 30px; border-radius: 50%; cursor: pointer; font-size: 18px; color: var(--gray-500); }
.fund-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.status-seg { display: inline-flex; gap: 4px; }
.status-seg button { font-size: 11.5px; font-weight: 600; padding: 5px 9px; border-radius: 99px; border: 1px solid var(--gray-200); background: #fff; color: var(--gray-500); cursor: pointer; }
.status-seg button.on_track.active { background: var(--success-soft); border-color: #A7F3D0; color: var(--success); }
.status-seg button.partial.active { background: var(--warning-soft); border-color: #FDE68A; color: var(--warning); }
.status-seg button.not_started.active { background: var(--danger-soft); border-color: #FECACA; color: var(--danger); }
.status-seg button.discontinued.active { background: var(--gray-100); border-color: var(--gray-300); color: var(--gray-600); }

/* ─── Mid-year ─────────────────────────────────────────────────── */
.ready-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ready { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 12px 14px; }
.ready .r-dot { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--gray-300); flex: none; position: relative; margin-top: 1px; }
.ready .r-dot.done { border-color: var(--success); background: var(--success); }
.ready .r-dot.done::after { content: ''; position: absolute; left: 7px; top: 3px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ready .r-dot.progress { border-color: var(--brand-teal); }
.ready .r-title { font-size: 13.5px; font-weight: 600; color: var(--gray-800); }
.ready .r-sub { font-size: 12px; color: var(--gray-500); margin-top: 2px; line-height: 1.45; }
.ready .r-sub a, .ready .r-sub button.link { font-size: 12px; }
.my-metric { display: grid; grid-template-columns: 1fr 150px 130px 130px; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--gray-100); font-size: 13px; }
.my-metric.head { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-400); }
.my-metric .m-name { font-weight: 600; color: var(--gray-800); line-height: 1.35; }
.my-metric .m-sub { font-size: 11.5px; color: var(--gray-400); font-weight: 500; }
.my-metric input { font-size: 13px; padding: 6px 8px; border: 1px solid var(--gray-300); border-radius: 7px; width: 100%; }
.my-metric input.na { background: var(--gray-50); color: var(--gray-400); }
.my-metric .m-base { font-size: 12.5px; color: var(--gray-500); font-variant-numeric: tabular-nums; }
.my-metric .m-base b { color: var(--brand-navy); }

/* ─── Narrative editor (Annual Update, Action Tables narratives) ─ */
.nr-list { display: flex; flex-direction: column; gap: 8px; }
.nr-item { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; }
.nr-head { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px 14px; cursor: pointer; border-radius: 12px; }
.nr-head:hover { background: var(--gray-50); }
.nr-headtext { min-width: 0; }
.nr-title { font-size: 14px; font-weight: 600; color: var(--gray-800); line-height: 1.35; }
.nr-sub { font-size: 12px; color: var(--gray-500); margin-top: 2px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nr-status { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.nr-body { padding: 4px 14px 16px; border-top: 1px solid var(--gray-100); }
.nr-body[hidden] { display: none; }
.nr-prompt { font-size: 13.5px; color: var(--brand-navy); font-weight: 600; line-height: 1.5; margin: 12px 0 10px; }
.nr-prompt .hint { font-weight: 400; }
.nr-context { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; font-size: 12.5px; overflow-x: auto; }
.nr-context table.tbl td, .nr-context table.tbl th { padding: 5px 8px; }
.nr-ctx-title { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-400); margin-bottom: 6px; }
.nr-ctx-row { font-size: 12.5px; color: var(--gray-700); padding: 5px 0; border-top: 1px solid var(--gray-100); line-height: 1.45; }
.nr-ctx-row:first-of-type { border-top: none; }
.nr-ctx-row b { color: var(--brand-navy); }
.nr-prior { border: 1px solid var(--gray-200); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; font-size: 12.5px; }
.nr-prior summary { cursor: pointer; font-weight: 600; color: var(--gray-600); }
.nr-priortext { margin: 8px 0; color: var(--gray-600); line-height: 1.55; max-height: 240px; overflow: auto; }
.nr-text { width: 100%; min-height: 180px; font-size: 14px; line-height: 1.6; padding: 12px 14px; border: 1px solid var(--gray-300); border-radius: 10px; resize: vertical; color: var(--gray-800); }
.nr-text:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
.nr-text:disabled { background: var(--gray-50); }
.nr-foot { display: flex; align-items: center; gap: 10px; margin-top: 8px; flex-wrap: wrap; }
.nr-checkbox { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 10px; padding: 10px 12px; margin-top: 8px; font-size: 12.5px; line-height: 1.5; }
.nr-notes { margin-top: 14px; border-top: 1px dashed var(--gray-200); padding-top: 12px; }
.nr-notes-in { width: 100%; min-height: 84px; font-size: 13px; line-height: 1.5; padding: 9px 11px; border: 1px solid var(--gray-300); border-radius: 9px; resize: vertical; color: var(--gray-800); }
.nr-notes-in:focus { outline: none; border-color: var(--brand-teal); box-shadow: var(--shadow-focus); }
.nr-coach .coach.side { top: 84px; }
.my-metric.head { background: var(--brand-teal-soft); color: var(--brand-navy); border-radius: 8px; padding: 9px 10px; border-bottom: none; }
.my-metric { padding: 9px 10px; }

/* ─── Print ────────────────────────────────────────────────────── */
@media print {
  .edm-nav, .lcap-rail, .st-actions, .coach, .sl-eddie, .sl-eddie-panel-wrap, .confirm-bar, .continue-bar, .no-print { display: none !important; }
  .lcap-shell { display: block; padding: 0; max-width: none; }
  body { background: #fff; }
  .card { border: none; padding: 0 0 16px; page-break-inside: avoid; }
}

/* ─── Responsive ───────────────────────────────────────────────── */
@media (max-width: 1000px) {
  .lcap-shell { grid-template-columns: 1fr; gap: 16px; padding: 16px 14px 120px; }
  .stat-tiles.five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .continue-bar { padding: 10px 14px; gap: 10px; }
  .continue-bar .cb-bar { display: none; }
  .lcap-rail { position: static; }
  .rail-list { display: flex; overflow-x: auto; gap: 4px; padding: 6px; }
  .rail-item { grid-template-columns: 14px auto; white-space: nowrap; padding: 8px 10px; }
  .rail-status { display: none; }
  .rail-due { display: none; }
  .rail-progress { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px 14px; align-items: center; }
  .rail-progress .rp-bar { margin-top: 0; }
  .rail-progress .rp-sub { grid-column: 1 / 3; margin-top: 0; }
  .rail-progress .rp-next { width: auto; margin-top: 0; grid-column: 3; grid-row: 1 / 3; }
  .next-strip { grid-template-columns: 1fr; }
  .next-strip .ns-art { display: none; }
  .next-strip .ns-cta { justify-content: flex-start; }
  .with-coach { grid-template-columns: 1fr; }
  .coach.side { position: static; }
  .grid-2, .grid-3, .ready-list, .mx-wrap { grid-template-columns: 1fr; }
  .stat-tiles { grid-template-columns: 1fr 1fr; }
  .st-head { flex-wrap: wrap; }
  .nudge { max-width: 100%; }
  .confirm-foot { padding-right: 0; }
  .setup-panel { grid-template-columns: 1fr; }
  .setup-art { display: none; }
  .setup-steps { grid-template-columns: 1fr; }
  .setup-cta, .setup-done { grid-column: 1; }
  .setup-cta .btn.main { min-width: 0; width: 100%; }
  .journey-panel { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .journey-side .setup-art { display: none; }
  .jstep { grid-template-columns: 1fr; gap: 4px; }
  .jstep .js-items, .jstep .js-sub { padding-left: 0; }
  .js-item .ji-hint { display: none; }
  .rail-group { display: none; }
  .nr-head { grid-template-columns: 22px minmax(0, 1fr) auto; }
  .nr-head .nr-status { display: none; }
  .gb-actions, .ex-grid { grid-template-columns: 1fr 1fr; }
  .board-toolbar { grid-template-columns: 1fr; }
  .board-toolbar > :last-child { justify-self: start; }
  .confirm-top { grid-template-columns: 1fr; }
  .form-2col { grid-template-columns: 1fr; }
  .form-2col .f-section { padding-top: 6px; }
  .form-2col .f-fields { grid-template-columns: 1fr; }
  .cells-grid { grid-template-columns: 1fr 1fr; }
  .doc-row { grid-template-columns: 24px minmax(0, 1fr); }
  .doc-row .dr-actions { grid-column: 2; justify-content: flex-start; }
  .mx-goals { position: static; max-height: none; }
  .money-strip { grid-template-columns: 1fr 1fr; }
  .exp-row { grid-template-columns: 1fr 90px 90px; }
  .exp-row > :nth-child(4), .exp-row > :nth-child(5) { display: none; }
  .my-metric { grid-template-columns: 1fr 110px 110px; }
  .my-metric > :nth-child(4) { display: none; }
  .goal-card { grid-template-columns: 34px 1fr; }
  .goal-actions { grid-column: 1 / -1; flex-direction: row; justify-content: flex-end; }
  .check-grid { grid-template-columns: 1fr; }
}

/* build 75 · clickable goal cards, the metric editor in a modal, table header year sublabels */
.gb-goal.rowlink { cursor: pointer; transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.gb-goal.rowlink:hover { border-color: var(--brand-teal); box-shadow: 0 2px 10px rgba(0,180,216,.12); }
.gb-goal.rowlink:hover .pencil { border-color: var(--brand-teal); color: var(--brand-teal-ink, #036E86); }
.gb-tools .rv-pill { margin-right: 4px; }
table.confirm th .yr { display: block; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gray-400); font-size: 10.5px; margin-top: 2px; }
table.confirm td .yr { color: var(--gray-400); font-size: 11px; }
table.confirm td a { color: var(--brand-teal-ink, #036E86); font-weight: 600; }
.mm-card { margin-top: 10px; }
.mm-card .tg-card { border: none; padding: 0; margin: 0; box-shadow: none; }
.mm-card .tg-head { padding-right: 28px; }
table.confirm td.b { font-weight: 700; color: var(--gray-900, #1E293B); }
/* Site Eddie sits above the sticky Continue bar inside the LCAP workspace */
body.lcap-page .sl-eddie { bottom: 88px !important; }
body.lcap-page .sl-eddie-panel-wrap { bottom: 88px !important; }
body.lcap-page .sl-eddie-cta-overlay { bottom: 154px !important; }
/* The Results table carries up to nine columns; keep it inside the card */
table.confirm.template { font-size: 12.5px; }
table.confirm.template th { padding: 9px 9px; white-space: normal; font-size: 10.5px; letter-spacing: .04em; line-height: 1.3; vertical-align: top; }
table.confirm.template td { padding: 8px 7px; vertical-align: top; line-height: 1.45; }
table.confirm.template td .gline { font-size: 11.5px; }
table.confirm.template td.pen { width: 44px; }
table.confirm.template .pencil { width: 28px; height: 28px; }
table.confirm.template { table-layout: fixed; }
table.confirm.template td { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
.stat-tiles.five .stat-tile .st-sub { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.35; }
.stat-tiles.five .stat-tile .st-label { -webkit-line-clamp: 3; }

/* ── Build 78 ─────────────────────────────────────────────────────────────── */
/* Frozen table headers: the header row stays under the global bar while the page scrolls.
   Table wrappers no longer scroll sideways on desktop (a scrolling wrapper would hold the header inside it). */
@media (min-width: 900px) {
  .lcap-main .tbl-wrap { overflow: visible; }
  .lcap-main table.confirm { overflow: visible; }
  .lcap-main table.confirm thead th { position: sticky; top: var(--lcap-stick, 64px); z-index: 5; box-shadow: inset 0 -1px 0 var(--gray-200); }
  .lcap-main table.confirm thead th:first-child { border-top-left-radius: 12px; }
  .lcap-main table.confirm thead th:last-child { border-top-right-radius: 12px; }
  .lcap-main table.tg-table thead th { position: sticky; top: var(--lcap-stick, 64px); z-index: 5; }
}
@media print { .lcap-main table.confirm thead th, .lcap-main table.tg-table thead th { position: static; } }

/* Goal rows fold away once reviewed; the caret opens them again */
.gr-caret { flex: none; width: 24px; height: 24px; border-radius: 6px; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--gray-500); padding: 0; margin: -2px 0 -2px -4px; }
.gr-caret:hover { background: rgba(3,110,134,.08); color: var(--brand-navy); }
.gr-caret svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--transition-fast, .15s); }
.gr-caret.open svg { transform: rotate(90deg); }
table.confirm tr.goalrow.foldable { cursor: pointer; }
table.confirm tr.goalrow.folded td { background: #FAFCFD; }
table.confirm tr.goalrow.folded .gt { color: var(--gray-600); }

/* Checks: LCAP vs published data */
.pill.chk-pill { margin-left: 8px; vertical-align: 1px; cursor: help; }
table.confirm td.chk { box-shadow: inset 3px 0 0 var(--warning); background: #FFFBEB; }
table.confirm tr.rowlink:hover td.chk { background: #FEF3C7; }
.tg-cell.chk input.v { border-color: var(--warning); background: #FFFBEB; }
.ck-box { border: 1px solid #FDE68A; background: #FFFBEB; border-radius: 10px; padding: 10px 12px; margin: 10px 0 12px; display: flex; flex-direction: column; gap: 8px; }
.ck-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ck-row .ck-text { flex: 1; min-width: 220px; font-size: 13px; color: var(--gray-800); line-height: 1.45; }
.ck-row .ck-btns { display: flex; gap: 6px; flex: none; }
.ck-hist { font-size: 12px; color: var(--gray-500); }
.stat-tile .st-sub.warn { color: var(--warning); font-weight: 600; }
.tg-meta select.tg-slot { max-width: 340px; }
.tg-table td.tg-diff { vertical-align: top; padding-top: 14px; font-size: 13px; color: var(--gray-600); white-space: nowrap; }
/* Goals station: reviewed goals fold (build 79) */
.gb-goal.folded { padding-top: 12px; padding-bottom: 12px; }
.gb-goal.folded .gb-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; color: var(--gray-600); }
.gb-eyebrow .gr-caret { margin: -3px 4px -3px -6px; vertical-align: middle; }
table.confirm tr.goal-folded td { background: #FAFCFD; padding-top: 9px; padding-bottom: 9px; }
table.confirm tr.goal-folded .one-line { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 640px; color: var(--gray-600); font-weight: 600; }
table.confirm td .gr-caret { margin: -3px 2px -3px 0; vertical-align: middle; }

/* ── Build 81 · Metrics & Targets: compact tiles, buttons on the step row, hover labels ── */
.stat-tiles.compact { gap: 10px; margin-bottom: 14px; }
.stat-tiles.compact .stat-tile { padding: 9px 14px; gap: 12px; border-radius: 12px; }
.stat-tiles.compact .stat-tile .st-body { min-height: 0; }
.stat-tiles.compact .stat-tile .st-num { font-size: 26px; }
.stat-tiles.compact .stat-tile .st-label { margin-top: 2px; }
.mx-steprow { display: flex; align-items: flex-end; gap: 12px; border-bottom: 1px solid var(--gray-200); margin: -4px 0 16px; }
.mx-steprow .step-strip { border-bottom: none; margin: 0; flex: 1; min-width: 0; }
.mx-acts { display: flex; gap: 8px; align-items: center; padding-bottom: 8px; flex: none; }
.mx-acts:empty { display: none; }
.lcap-tip { position: fixed; z-index: 30000; max-width: 340px; background: #1E293B; color: #fff; font-size: 12px; font-weight: 500; line-height: 1.35; padding: 6px 9px; border-radius: 7px; pointer-events: none; box-shadow: 0 4px 12px rgba(15,23,42,.18); }
.lcap-tip[hidden] { display: none; }
table.confirm.template td .gline[data-tip] { border-radius: 4px; }
table.confirm.template td .gline[data-tip]:hover { background: #EAF7FB; }
table.confirm td .gline.chk { background: #FFFBEB; box-shadow: inset 3px 0 0 #D97706; padding-left: 5px; }
table.confirm td .gline.small { color: var(--gray-500); }

/* Import targets */
.im-list { display: flex; flex-direction: column; gap: 10px; }
.im-opt { display: flex; align-items: center; gap: 12px; border: 1px solid var(--gray-200); border-radius: 12px; padding: 12px 14px; cursor: pointer; }
.im-opt.on { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.18); }
.im-opt input { width: 18px; height: 18px; accent-color: var(--brand-teal); margin: 0; }
.im-opt b { display: block; font-size: 14.5px; color: var(--gray-800); }
.im-opt small { display: block; font-size: 12.5px; color: var(--gray-500); margin-top: 2px; }

/* Metric editor */
.lcap-modal.xwide { max-width: 1060px; }
.me-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .1em; color: #036E86; text-transform: uppercase; margin: 0 40px 10px 0; }
.me-lbl { display: block; font-size: 12px; font-weight: 600; color: var(--gray-500); margin-bottom: 5px; }
.me-words { width: 100%; box-sizing: border-box; font-size: 14px; line-height: 1.5; resize: vertical; min-height: 54px; }
.me-measures { font-size: 13px; color: var(--gray-500); margin: 8px 0 14px; }
.me-measures b { color: var(--gray-800); font-weight: 600; }
.me-measures .link { font-size: 13px; margin-left: 6px; }
.me-change { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; margin: 10px 0 14px; }
.me-change label span { display: block; font-size: 12px; font-weight: 600; color: var(--gray-500); margin-bottom: 5px; }
.me-change select { width: 100%; }
.me-note { font-size: 13px; color: var(--success); margin: -4px 0 10px; }
.me-tablewrap { overflow-x: auto; }
.me-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.me-table th { font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--brand-navy); background: #E0F7FA; text-align: left; padding: 8px; vertical-align: bottom; line-height: 1.3; }
.me-table th:first-child { border-top-left-radius: 10px; }
.me-table th:last-child { border-top-right-radius: 10px; }
.me-table th .yr { display: block; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--gray-500); font-size: 11px; margin-top: 2px; }
.me-table th.me-grp, .me-table td.me-grp { width: 150px; }
.me-table th.me-tgt { width: 22%; }
.me-table th.me-diff { width: 92px; }
.me-table th.me-x { width: 30px; }
.me-table td { padding: 6px 8px; border-bottom: 1px solid var(--gray-100); vertical-align: top; font-size: 13px; }
.me-table td.me-grp { font-weight: 600; color: var(--gray-800); padding-top: 12px; line-height: 1.3; }
.me-table td.me-diff { padding-top: 12px; color: var(--brand-navy); }
.me-cell input.v, .me-cell textarea.v { width: 100%; box-sizing: border-box; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--gray-800); border: 1px solid var(--gray-200); border-radius: 8px; padding: 6px 8px; background: #fff; outline: 0; }
.me-cell textarea.v { font-weight: 500; font-size: 12.5px; line-height: 1.4; resize: vertical; }
.me-cell input.y { width: 100%; box-sizing: border-box; font: inherit; font-size: 11px; color: var(--gray-400); border: 1px solid transparent; border-radius: 6px; padding: 2px 8px; margin-top: 2px; background: transparent; outline: 0; }
.me-cell input.y:hover, .me-cell input.y:focus { border-color: var(--gray-200); }
.me-cell .v:hover { border-color: var(--gray-300); }
.me-cell .v:focus { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.18); }
.me-cell .v::placeholder { color: var(--gray-300); font-weight: 500; }
.me-cell .v:disabled { background: var(--gray-50); color: var(--gray-400); }
.me-cell.chk .v { background: #FFFBEB; border-color: #FCD34D; }
.me-cell .me-shownum { display: block; font-size: 11.5px; margin-top: 2px; }
.me-rmbtn { width: 26px; height: 26px; border-radius: 7px; border: 0; background: transparent; color: var(--gray-400); font-size: 17px; cursor: pointer; margin-top: 4px; }
.me-rmbtn:hover { background: var(--gray-100); color: var(--gray-800); }
.me-rm td { background: #FFF7ED; font-size: 13px; padding: 10px; }
.me-addlink { margin-top: 10px; font-size: 13px !important; }
.me-add { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.me-add select { width: auto; }
.me-foot { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--gray-100); margin-top: 18px; padding-top: 14px; }
.me-foot .spacer, .en-foot .spacer { flex: 1; }
.btn[disabled] { opacity: .45; cursor: default; }

/* Enter results */
.en-lede { margin: 0 0 14px; font-size: 14px; line-height: 1.5; }
.en-ctrl { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.en-seg { display: inline-flex; background: var(--gray-100); border-radius: 10px; padding: 3px; gap: 2px; }
.en-seg button { border: 0; background: transparent; font: inherit; font-size: 13px; font-weight: 600; color: var(--gray-600); padding: 6px 12px; border-radius: 8px; cursor: pointer; text-align: center; line-height: 1.2; }
.en-seg button small { display: block; font-size: 11px; font-weight: 500; color: var(--gray-400); }
.en-seg button.on { background: #fff; color: var(--brand-navy); box-shadow: 0 1px 3px rgba(15,23,42,.12); }
.en-only { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--gray-700); margin-left: auto; cursor: pointer; }
.en-only input { width: 17px; height: 17px; accent-color: var(--brand-teal); margin: 0; }
.en-head, .en-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) 120px 140px 92px; gap: 10px; align-items: center; }
.en-head { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-400); padding: 6px 0; border-bottom: 1px solid var(--gray-200); }
.en-list { max-height: calc(100vh - 360px); min-height: 120px; overflow-y: auto; }
.en-goal { font-size: 11px; font-weight: 700; letter-spacing: .12em; color: #036E86; text-transform: uppercase; padding: 14px 0 4px; }
.en-row { padding: 6px 0; border-top: 1px solid var(--gray-100); }
.en-no { font-size: 13px; color: var(--brand-navy); }
.en-m { font-size: 13.5px; font-weight: 600; color: var(--gray-800); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.en-g { font-size: 12px; color: var(--gray-500); }
.en-prior { font-size: 12px; color: var(--gray-400); text-align: right; }
.en-box { display: block; }
.en-v { width: 100%; box-sizing: border-box; font: inherit; font-size: 14px; font-weight: 600; color: var(--gray-800); border: 1px solid var(--gray-200); border-radius: 8px; padding: 7px 9px; outline: 0; }
.en-v:focus { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.18); }
.en-v::placeholder { color: var(--gray-300); font-weight: 500; }
.en-y { width: 100%; box-sizing: border-box; font: inherit; font-size: 12px; color: var(--gray-500); border: 1px solid transparent; border-radius: 6px; padding: 6px; background: transparent; outline: 0; }
.en-y:hover, .en-y:focus { border-color: var(--gray-200); background: #fff; }
.en-none { padding: 36px 0; text-align: center; font-size: 14px; color: var(--gray-500); }
.en-foot { display: flex; align-items: center; gap: 12px; border-top: 1px solid var(--gray-100); margin-top: 12px; padding-top: 14px; }
.en-foot .link { font-size: 13px; }

/* ── Build 81 · Met / Not yet / Not met ── */
.met { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 99px; white-space: nowrap; }
.met-yes { background: #DCFCE7; color: #166534; }
.met-no { background: #FEE2E2; color: #9F1239; }
.met-yet { background: var(--gray-100); color: var(--gray-600); }
.met.picked { cursor: pointer; box-shadow: inset 0 0 0 1px rgba(15,23,42,.08); }
.met-none { color: var(--gray-300); font-size: 12.5px; }
.met-choose { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.met-choose button { font: inherit; font-size: 11.5px; font-weight: 700; border-radius: 99px; padding: 3px 9px; cursor: pointer; border: 1px dashed var(--gray-300); background: #fff; color: var(--gray-600); white-space: nowrap; }
.met-choose button[data-met="met"]:hover { border: 1px solid #86EFAC; background: #F0FDF4; color: #166534; }
.met-choose button[data-met="no"]:hover { border: 1px solid #FDA4AF; background: #FFF1F2; color: #9F1239; }

/* ── Build 81 · Data Outcomes review ── */
.oc-sum { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px 16px; margin-bottom: 14px; flex-wrap: wrap; }
.oc-num { font-family: var(--font-display); font-size: 32px; line-height: 1; color: var(--brand-teal); white-space: nowrap; }
.oc-txt { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.oc-txt b { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.oc-txt span { font-size: 13.5px; color: var(--gray-600); margin-top: 2px; }
.oc-goal .gb-head { align-items: center; }
table.oc-table { font-size: 12.5px; table-layout: fixed; }
table.oc-table td { vertical-align: top; }
table.oc-table td.oc-tgt .gline { color: var(--gray-600); }
.oc-mno { font-weight: 700; color: var(--brand-navy); margin-right: 6px; }
.oc-miss { color: #B45309; font-weight: 600; }
table.confirm td .gline.miss b { color: var(--gray-500); }

/* ── Build 81 · Writing areas: pinned prompt, full-width context, notes above the box ── */
.nr-prompt.nr-stick { position: sticky; top: var(--lcap-stick, 0px); z-index: 6; background: #fff; margin: 0 -14px 6px; padding: 12px 14px 10px; border-bottom: 1px solid var(--gray-100); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nr-instr { margin: 0 0 10px; line-height: 1.5; }
.nr-context { margin-bottom: 14px; }
.nr-notes { margin: 0 0 12px; border-top: none; padding-top: 0; }
.nr-prior { margin-bottom: 12px; }
.nr-coach .coach.side { top: calc(var(--lcap-stick, 0px) + 74px); }
.nr-results { width: 100%; font-size: 12.5px; }
.nr-results td.tgt { color: var(--gray-500); max-width: 260px; }
.nr-pats { background: #fff; border: 1px solid var(--gray-200); border-radius: 10px; padding: 10px 12px; }
.nr-pat { font-size: 12.5px; color: var(--gray-700); padding: 3px 0 3px 12px; position: relative; line-height: 1.45; }
.nr-pat::before { content: ''; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: var(--gray-300); }
.nr-pat.below::before { background: #FDA4AF; }
.nr-pat.met::before { background: #86EFAC; }
.nr-addnotes { margin-top: 6px; font-size: 12.5px !important; }
.nr-acts summary { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); cursor: pointer; padding: 4px 0; list-style: none; }
.nr-acts summary::-webkit-details-marker { display: none; }
.nr-acts summary::before { content: '›'; display: inline-block; width: 14px; font-size: 14px; transition: transform .15s; }
.nr-acts[open] summary::before { transform: rotate(90deg); }
.nr-results td.mname { min-width: 220px; }

/* ── Build 81 · Step 4 tables fit the screen ── */
.options-bar .ob-note.warn { color: #B45309; font-weight: 600; }
table.confirm.wb-table { font-size: 12px; table-layout: fixed; width: 100%; }
table.confirm.wb-table th { white-space: normal; line-height: 1.3; vertical-align: bottom; }
table.confirm.wb-table td { white-space: normal; overflow-wrap: anywhere; }
table.confirm.wb-table td.num { white-space: nowrap; }
table.confirm.wb-table.det td.num { font-size: 11.5px; }
.wb-act b { color: var(--brand-navy); margin-right: 2px; }
.wb-need { display: inline-block; margin-left: 6px; font-size: 10.5px; font-weight: 700; color: #92400E; background: #FEF3C7; border-radius: 99px; padding: 1px 8px; white-space: nowrap; vertical-align: 1px; }
.wb-add { color: var(--brand-teal-ink, #036E86); font-weight: 600; font-size: 11.5px; }
.mx-pager { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin: 0 0 8px; font-size: 12.5px; color: var(--gray-500); }
.mx-pager span { margin-right: 6px; }
.mx-pager .btn { padding: 4px 11px; font-size: 15px; line-height: 1; }
table.matrix.fit { table-layout: fixed; width: 100%; min-width: 0; }
table.matrix.fit th { white-space: normal; padding: 8px 8px; }
table.matrix.fit th.left, table.matrix.fit td.left { text-align: left; }
table.matrix.fit th.exp { min-width: 0; font-size: 12px; }
table.matrix.fit th.exp .nm { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; }
table.matrix.fit th.exp .an { display: block; font-weight: 700; }
table.matrix.fit th.exp .tot { font-size: 12px; margin-top: 4px; }
table.matrix.fit th.exp .sub { margin-top: 2px; font-size: 11px; }
table.matrix.fit td { padding: 6px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
table.matrix.fit td.title { min-width: 0; white-space: normal; font-size: 12px; line-height: 1.35; }
table.matrix.fit td.title .an { color: var(--brand-navy); margin-right: 5px; }
table.matrix.fit td.title .etags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
table.matrix.fit td input.cell { width: 100%; box-sizing: border-box; max-width: 92px; }
table.matrix.fit .pill { font-size: 10.5px; }
table.confirm.wb-table th { letter-spacing: .03em; hyphens: manual; overflow-wrap: normal; }
.lcap-notices { position: fixed; right: 112px; bottom: 84px; z-index: 19000; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; pointer-events: none; }
.lcap-notice { pointer-events: auto; max-width: 560px; display: flex; align-items: center; gap: 14px; background: #1E293B; color: #fff; font-size: 13.5px; line-height: 1.45; padding: 12px 14px 12px 16px; border-radius: 12px; box-shadow: 0 12px 32px rgba(15,23,42,.22); }
.lcap-notice .ln-act { border: 0; background: transparent; color: #7DD3FC; font: inherit; font-weight: 700; cursor: pointer; padding: 0; white-space: nowrap; }
.lcap-notice .ln-x { border: 0; background: transparent; color: #94A3B8; font-size: 18px; cursor: pointer; padding: 0 2px; }

/* Build 85 · One Eddie: the writing-area guidance is a speech bubble from Eddie at the bottom right
   (no second star). Same place and size as before; the tail points down toward him. */
.coach.speech { display: block; background: #0D1B2A; border: 0; border-radius: 16px 16px 4px 16px; padding: 14px 16px 12px; color: #fff; box-shadow: 0 10px 28px rgba(13,27,42,.18); }
.coach.speech::after { content: ''; position: absolute; right: 18px; bottom: -7px; width: 14px; height: 14px; background: #0D1B2A; transform: rotate(45deg); border-radius: 0 0 3px 0; }
.coach.speech .coach-name { color: #7DD3FC; display: flex; align-items: center; gap: 6px; }
.coach.speech .coach-name::after { content: '↘'; font-size: 12px; letter-spacing: 0; color: rgba(255,255,255,.45); }
.coach.speech .coach-bubble { background: transparent; border: 0; padding: 6px 0 0; color: rgba(255,255,255,.92); min-height: 0; }
.coach.speech .coach-bubble b { color: #fff; }
.coach.speech .coach-dots i { background: rgba(255,255,255,.22); }
.coach.speech .coach-dots i.on { background: #7DD3FC; }
.coach.speech .coach-back { color: rgba(255,255,255,.75); }
.coach.speech .coach-back:hover { color: #fff; background: rgba(255,255,255,.08); }
.coach.speech .coach-next { background: #00B4D8; color: #fff; }
.coach.speech .btn.secondary { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.25); }

/* Build 85 · Rail fits a 13-inch screen. Compact head with one menu, progress in one row, tighter rows;
   the dates moved to the Dashboard. The rail scrolls on its own only when the window is shorter. */
.lcap-rail { gap: 10px; max-height: calc(100vh - 84px - 84px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--gray-200) transparent; padding-right: 2px; }
.lcap-rail::-webkit-scrollbar { width: 6px; }
.lcap-rail::-webkit-scrollbar-thumb { background: var(--gray-200); border-radius: 99px; }
.lcap-rail::-webkit-scrollbar-track { background: transparent; }
.rail-head { position: relative; padding: 2px 2px 0; }
.rail-head .rail-school { font-size: 13.5px; font-weight: 700; color: var(--brand-navy); margin: 0; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rail-yearbtn { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; margin-top: 6px; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--brand-navy); border: 1px solid var(--gray-200); background: #fff; border-radius: 8px; padding: 6px 6px 6px 10px; cursor: pointer; text-align: left; }
.rail-yearbtn:hover { border-color: var(--gray-300); }
.rail-yearbtn[aria-expanded="true"] { border-color: var(--brand-teal); box-shadow: 0 0 0 3px var(--brand-teal-soft); }
.rail-yearbtn svg { color: var(--gray-500); flex: none; }
.rail-menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; box-shadow: 0 14px 34px rgba(15,23,42,.14); padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.rail-menu[hidden] { display: none; }
.rm-school { font-size: 13px; font-weight: 700; color: var(--brand-navy); line-height: 1.35; margin-bottom: 6px; }
.rm-school span { display: block; font-size: 11.5px; font-weight: 500; color: var(--gray-400); }
.rm-label { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-400); margin-top: 6px; }
.rm-val { font-size: 13px; font-weight: 600; color: var(--gray-700); }
.rm-sel { font: inherit; font-size: 12.5px; font-weight: 600; color: var(--brand-navy); border: 1px solid var(--gray-200); border-radius: 8px; padding: 6px 8px; background: #fff; width: 100%; }
.rm-status { margin-top: 8px; }
.rail-progress { padding: 10px 10px 10px 12px; border-radius: 12px; }
.rail-progress .rp-line { display: flex; align-items: center; gap: 8px; }
.rail-progress .rp-pct { font-size: 18px; flex: none; }
.rail-progress .rp-pct span { font-size: 11.5px; margin-left: 4px; }
.rail-progress .rp-next { flex: 1; min-width: 0; width: auto; margin: 0; padding: 7px 10px; border-radius: 9px; }
.rail-progress .rp-next .rp-k { font-size: 9.5px; margin-right: 6px; }
.rail-progress .rp-next .rp-v { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.rail-progress .rp-bar { height: 4px; margin-top: 8px; }
.rail-list { padding: 4px; }
.rail-item { padding: 6px 10px; gap: 8px; }
.rail-group { padding: 8px 10px 2px; }
.rail-group:first-child { padding-top: 4px; }
.rail-name { font-size: 13px; }
.rail-status { display: block; font-size: 11px; margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rail-item > span:last-child { min-width: 0; }
@media (max-width: 1000px) {
  .lcap-rail { max-height: none; overflow: visible; }
  .rail-progress { display: block; }
  .rail-status { display: none; }
  .rail-item > span:last-child { min-width: auto; }
  .rail-list { flex-wrap: nowrap; }
}

/* Build 85 · Calmer page tops (option A): title, one sentence, one primary button, ⋯ for the rest,
   the step's parts as a small segmented control. */
.pt { margin-bottom: 16px; }
.pt-row { display: flex; align-items: flex-end; gap: 16px; }
.pt-text { flex: 1; min-width: 0; }
.pt-title { margin: 0; font-size: 26px; font-weight: 700; color: var(--brand-navy); letter-spacing: -.02em; line-height: 1.15; }
.pt-sentence { margin-top: 6px; font-size: 14.5px; color: var(--gray-600); line-height: 1.5; }
.pt-sentence:empty { display: none; }
.pt-sentence b { color: var(--brand-navy); font-weight: 700; }
.pt-sentence .warn { color: #B45309; font-weight: 700; }
.pt-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.pt-primary { font-size: 14px; padding: 10px 18px; }
.pt-more-wrap { position: relative; }
.pt-more-wrap[hidden] { display: none; }
.pt-more-btn { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--gray-300); background: #fff; color: var(--brand-navy); font-size: 20px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.pt-more-btn:hover, .pt-more-btn[aria-expanded="true"] { border-color: var(--brand-teal); }
.pt-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 240px; max-width: 340px; background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; box-shadow: 0 14px 34px rgba(15,23,42,.14); padding: 6px; }
.pt-menu[hidden] { display: none; }
.pt-menu > div:empty { display: none; }
.pt-menu > div + div:not(:empty) { border-top: 1px solid var(--gray-100); margin-top: 4px; padding-top: 4px; }
.pt-menu .btn, .pt-menu button, .pt-menu a, .pt-menu label.btn { display: flex !important; width: 100%; justify-content: flex-start; text-align: left; background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--brand-navy) !important; font-size: 13.5px; font-weight: 600; padding: 9px 12px !important; border-radius: 8px; white-space: normal; text-decoration: none; cursor: pointer; }
.pt-menu .btn:hover, .pt-menu button:hover, .pt-menu a:hover { background: var(--gray-50) !important; }
.pt-menu .btn[disabled], .pt-menu button[disabled] { color: var(--gray-400) !important; cursor: default; }
.pt-menu .pt-dup { display: none !important; }
.pt-menu .ob-note, .pt-menu span:not([class]) { display: block; font-size: 12px; color: var(--gray-500); padding: 6px 12px; }
.pt-parts { margin-top: 14px; }
.pt-parts:empty { display: none; }
.pt-parts .step-strip { display: inline-flex; gap: 2px; margin: 0; border: 0; background: var(--gray-100); border-radius: 10px; padding: 3px; max-width: 100%; overflow-x: auto; }
.pt-parts .step-strip .ss-part { border: 0; margin: 0; padding: 6px 14px; border-radius: 8px; font-size: 13px; gap: 7px; color: var(--gray-600); }
.pt-parts .step-strip .ss-part:hover { color: var(--brand-navy); background: rgba(255,255,255,.6); }
.pt-parts .step-strip .ss-part.current { background: #fff; color: var(--brand-navy); box-shadow: 0 1px 3px rgba(13,27,42,.12); }
.pt-parts .step-strip .ss-part .ss-num { width: 18px; height: 18px; font-size: 10.5px; border-width: 1.5px; }
.pt-parts .step-strip .ss-part.done:not(.current) .ss-num::after { left: 5.5px; top: 2.5px; width: 4px; height: 7px; }
.pt-parts .step-strip .ss-part.result { margin-left: 0; }
@media (max-width: 720px) { .pt-row { flex-wrap: wrap; align-items: flex-start; } .pt-text { flex: 1 1 100%; } .pt-title { font-size: 22px; } }
.rv-pill.flash { animation: rv-flash 1.6s ease; }
@keyframes rv-flash { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,180,216,0); } 30% { box-shadow: 0 0 0 6px rgba(0,180,216,.35); } }
/* Dashboard · This plan in numbers (the station counts, in the same tile look) */
.hub-numbers { margin-top: 4px; }
.hn-label { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); margin: 0 0 8px 2px; }
.hn-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; margin-top: 12px; }
.hn-dates { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px 16px; display: grid; grid-template-columns: auto 1fr 1fr; gap: 4px 22px; align-items: baseline; }
.hn-dates .d-label { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-400); }
.hn-dates .d-row { font-size: 12.5px; color: var(--gray-600); line-height: 1.35; }
.hn-dates .d-row b { display: block; color: var(--brand-navy); font-weight: 600; }
.hn-dates .d-when { font-size: 11.5px; color: var(--gray-400); }
.hn-dates .d-when.soon { color: var(--warning); font-weight: 600; }
.hub-numbers .stat-tiles { margin-bottom: 0; }
@media (max-width: 900px) { .hn-row { grid-template-columns: 1fr; } .hn-dates { grid-template-columns: 1fr; } }
/* Build 85 · The job of the year: read-only and locked bars under the page top */
.yr-bars { display: flex; flex-direction: column; gap: 8px; margin: -4px 0 14px; }
.yr-bar { display: flex; align-items: center; gap: 10px; background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 12px; padding: 9px 12px 9px 14px; font-size: 13px; color: var(--gray-700); line-height: 1.45; }
.yr-bar .yr-ic { color: #B45309; display: inline-flex; flex: none; }
.yr-bar .yr-t { flex: 1; min-width: 0; }
.yr-bar .yr-t b { color: var(--brand-navy); }
.yr-bar .btn { flex: none; }
.yr-bar.open { background: #FEF2F2; border-color: #FECACA; }
.yr-bar.open .yr-ic { color: #B91C1C; }
.yr-bar.ro { background: var(--gray-50); border-color: var(--gray-200); }
.yr-bar.ro .yr-ic { color: var(--gray-500); }
.yr-bar.ro.on { background: var(--brand-teal-soft); border-color: #A5E8F3; }
.yr-bar.ro.on .yr-ic { color: #036E86; }
.rail-pill.lock { background: #FEF3C7; color: #92400E; }
.rail-lk { display: inline-block; width: 11px; height: 11px; margin-right: 6px; vertical-align: -1px; background: no-repeat center/11px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B45309' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E"); }
@media (max-width: 720px) { .yr-bar { flex-wrap: wrap; } }
/* Build 85 · Effectiveness: actions worth a look, beside the Goal Analysis */
.nr-eff { display: flex; flex-direction: column; gap: 8px; }
.nr-eff-row { border-left: 3px solid #F59E0B; background: #FFFBEB; border-radius: 0 10px 10px 0; padding: 8px 12px; font-size: 13px; color: var(--gray-700); line-height: 1.5; }
.nr-eff-row.yet { border-left-color: var(--gray-300); background: var(--gray-50); }
.nr-eff-why { font-size: 12px; color: var(--gray-500); margin-top: 3px; }
.nr-eff-ins { font-size: 12px; color: #036E86; margin-top: 3px; }
.nr-eff-ins::before { content: '↳ '; color: var(--gray-400); }
.nr-eff-note { font-size: 12.5px; color: var(--gray-600); line-height: 1.5; }
.nr-eff-row b { color: var(--brand-navy); font-weight: 600; }
.nr-eff-more summary { cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--brand-teal); padding: 2px 0; }
.nr-eff-more[open] summary { margin-bottom: 8px; }
.nr-eff-more .nr-eff-row + .nr-eff-row { margin-top: 8px; }

.pt-menu [hidden], .pt-menu .btn[hidden], .pt-menu button[style*="display: none"], .pt-menu button[style*="display:none"] { display: none !important; }

/* Build 86 · Step 2 updates: how each action went */
.st-list { display: flex; flex-direction: column; margin-top: 10px; border-top: 1px solid var(--gray-100); }
.st-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 14px; padding: 12px 4px; border-bottom: 1px solid var(--gray-100); align-items: start; }
.st-row.flash { animation: rv-flash 1.6s ease; border-radius: 10px; }
.st-no { font-weight: 700; color: var(--brand-navy); font-size: 13.5px; padding-top: 1px; }
.st-title { border: 0; background: none; padding: 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--brand-navy); cursor: pointer; text-align: left; }
.st-title:hover { color: var(--brand-teal); }
.st-desc { font-size: 12.5px; color: var(--gray-500); line-height: 1.45; margin-top: 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.st-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.st-amt { font-size: 12px; color: var(--gray-400); }
.status-seg button.discontinued.active { background: var(--gray-100); border-color: var(--gray-300); color: var(--gray-700); }
.gb-goal.folded .gb-head { margin-bottom: 0; }
@media (max-width: 1100px) { .st-row { grid-template-columns: 44px minmax(0, 1fr); } .st-right { grid-column: 2; align-items: flex-start; } .status-seg { flex-wrap: wrap; } }

/* Build 86 · Changes for next year */
.ch-wrap { display: flex; flex-direction: column; gap: 14px; }
.ch-goal { padding: 0; overflow: hidden; margin: 0; }
.ch-head { display: flex; align-items: baseline; gap: 10px; padding: 12px 16px; background: #F6FBFD; border-bottom: 1px solid var(--gray-200); }
.ch-eyebrow { font-size: 11px; letter-spacing: .12em; color: #036E86; white-space: nowrap; }
.ch-title { font-size: 14px; font-weight: 700; color: var(--brand-navy); }
.ch-quote { font-size: 12.5px; color: var(--gray-500); padding: 10px 16px 4px; line-height: 1.5; }
.ch-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 11px 16px; border-top: 1px solid var(--gray-100); }
.ch-ck { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--gray-300); background: #fff; margin-top: 2px; cursor: pointer; padding: 0; position: relative; }
.ch-ck:hover { border-color: var(--success); }
.ch-item.done .ch-ck { background: var(--success); border-color: var(--success); }
.ch-item.done .ch-ck::after { content: ''; position: absolute; left: 4.5px; top: 1.5px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ch-t { font-size: 14px; font-weight: 600; color: var(--brand-navy); line-height: 1.4; }
.ch-item.done .ch-t { color: var(--gray-400); text-decoration: line-through; font-weight: 500; }
.ch-sub { font-size: 11.5px; color: var(--gray-400); margin-top: 2px; }
.ch-btns { display: flex; align-items: center; gap: 6px; }
.ch-x { border: 0; background: none; color: var(--gray-300); font-size: 17px; cursor: pointer; padding: 0 4px; }
.ch-x:hover { color: var(--danger); }
.ch-none { font-size: 13px; color: var(--gray-500); padding: 10px 16px; border-top: 1px solid var(--gray-100); }
.ch-sugg { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-top: 1px solid var(--gray-100); font-size: 12.5px; color: var(--gray-600); flex-wrap: wrap; }
.ch-sugg-t { flex: 1; min-width: 220px; }
.ch-add { display: flex; gap: 8px; align-items: center; padding: 10px 16px; border-top: 1px solid var(--gray-100); }
.ch-add .ch-in { flex: 1; }
.nr-made { display: flex; flex-direction: column; gap: 4px; }
/* Build 86 · Dashboard numbers as a quiet list, in the rail's order */
.hn-list { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; overflow: hidden; }
.hn-row2 { display: grid; grid-template-columns: 200px minmax(0, 1fr) 16px; gap: 14px; align-items: center; width: 100%; text-align: left; background: none; border: 0; border-top: 1px solid var(--gray-100); padding: 11px 16px; font: inherit; cursor: pointer; }
.hn-row2:first-child { border-top: 0; }
.hn-row2:hover { background: var(--gray-50); }
.hn-name { font-size: 13.5px; font-weight: 700; color: var(--brand-navy); }
.hn-nums { font-size: 13px; color: var(--gray-600); line-height: 1.45; }
.hn-nums b { color: var(--brand-navy); font-weight: 700; }
.hn-nums .warn { color: #B45309; font-weight: 600; }
.hn-go { color: var(--gray-300); font-size: 18px; }
@media (max-width: 720px) { .hn-row2 { grid-template-columns: minmax(0, 1fr) 16px; } .hn-nums { grid-column: 1; } }
.ch-item.flash { animation: rv-flash 1.6s ease; }
.rm-copy { display: block; font-size: 12.5px; color: var(--brand-navy); text-decoration: none; padding: 5px 6px; border-radius: 7px; }
.rm-copy:hover { background: var(--gray-50); }
.rm-copy span { display: block; font-size: 11px; color: var(--gray-400); }
/* Build 86 · A saved copy */
.cp-bar { display: flex; align-items: center; gap: 12px; margin: -4px 0 12px; }
.cp-tog { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--brand-navy); cursor: pointer; }
.cp-tog input { position: absolute; opacity: 0; pointer-events: none; }
.cp-tog i { width: 34px; height: 20px; border-radius: 99px; background: var(--gray-300); position: relative; display: inline-block; transition: background .15s; }
.cp-tog i::after { content: ''; position: absolute; left: 2px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left .15s; }
.cp-tog input:checked + i { background: var(--brand-teal); }
.cp-tog input:checked + i::after { left: 16px; }
.cp-wrap { display: flex; flex-direction: column; gap: 14px; }
.cp-goal { margin: 0; padding: 18px 22px; display: flex; flex-direction: column; gap: 10px; }
.cp-h { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #036E86; margin-top: 4px; }
.cp-goal-t { font-size: 15px; font-weight: 700; color: var(--brand-navy); line-height: 1.4; }
.cp-table td { font-size: 12.5px; vertical-align: top; }
.cp-no { font-weight: 700; color: var(--brand-navy); }
.cp-act { display: grid; grid-template-columns: 52px minmax(0, 1fr) 140px; gap: 14px; font-size: 13px; color: var(--gray-700); line-height: 1.5; }
.cp-act > b { color: var(--brand-navy); }
.cp-amt { text-align: right; white-space: nowrap; }
.cp-text { font-size: 13px; color: var(--gray-700); line-height: 1.6; }
.cp-wrap del, .cp-goal del { background: #FEE2E2; color: #991B1B; border-radius: 3px; padding: 0 2px; }
.cp-wrap ins, .cp-goal ins { background: #DCFCE7; color: #166534; text-decoration: none; border-radius: 3px; padding: 0 2px; }
/* Build 86 · Start from your earlier plan */
.cf-card { padding: 18px 22px; display: flex; flex-direction: column; gap: 12px; }
.cf-head { display: flex; gap: 16px; align-items: flex-start; }
.cf-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #036E86; }
.cf-title { font-size: 15px; font-weight: 700; color: var(--brand-navy); margin-top: 3px; line-height: 1.4; }
.cf-title.out { color: var(--gray-400); text-decoration: line-through; }
.cf-title-in { width: 100%; margin-top: 4px; font-size: 14px; }
.seg2 { display: inline-flex; border: 1px solid var(--gray-300); border-radius: 9px; overflow: hidden; flex: none; }
.seg2 button { font: inherit; font-size: 12.5px; font-weight: 600; color: var(--gray-600); padding: 6px 14px; border: 0; border-left: 1px solid var(--gray-300); background: #fff; cursor: pointer; }
.seg2 button:first-child { border-left: 0; }
.seg2 button.on { background: var(--brand-navy); color: #fff; }
.cf-retired { font-size: 13px; color: var(--gray-500); background: var(--gray-50); border-radius: 10px; padding: 12px 14px; }
.cf-h { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #036E86; margin-top: 4px; }
.cf-table td { vertical-align: top; font-size: 12.5px; }
.cf-base { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.cf-grp { font-size: 11.5px; color: var(--gray-500); min-width: 90px; }
.cf-in { padding: 5px 8px; font-size: 13px; width: 110px; }
.cf-tin { width: 100%; }
.cf-acts { display: flex; flex-direction: column; }
.cf-act { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 0; border-top: 1px solid var(--gray-100); font-size: 13px; color: var(--gray-700); }
.cf-act > b { color: var(--brand-navy); }
.cf-act.out .cf-at { color: var(--gray-400); text-decoration: line-through; }
.cf-money { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.cf-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 14px; }
.ref { font-size: 11.5px; color: var(--gray-500); }
.prev-no { font-size: 12px; color: var(--gray-500); margin-top: 3px; font-style: italic; }

/* ─── Build 89 · The Dashboard: status in one place, one way back in ─────────────────────────────
   The rail is hidden here (the path below is the rail, enlarged) and slides in once a step opens.
   Color only means status: green done, teal current, amber needs attention. */
.lcap-shell.is-hub { grid-template-columns: minmax(0, 1fr); max-width: 1000px; }
.lcap-shell.is-hub .lcap-rail { display: none; }
.lcap-shell.rail-in .lcap-rail { animation: railIn .34s cubic-bezier(.2,.7,.2,1); }
@keyframes railIn { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lcap-shell.rail-in .lcap-rail { animation: none; } }

.lcap-main > .hub { display: flex; flex-direction: column; gap: 28px; padding: 8px 0 40px; }
.hub-head { display: flex; flex-direction: column; gap: 16px; }
.hub-row { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.hub-titles { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.hub-school { font-size: 15px; font-weight: 500; color: var(--gray-600); }
.hub-title { margin: 0; font-size: 36px; line-height: 1.1; font-weight: 700; letter-spacing: -.6px; color: var(--brand-navy); }
.hub-actions { display: flex; align-items: center; gap: 10px; }
.ym-wrap { position: relative; }
.hub-ym .rail-yearbtn { width: auto; margin: 0; height: 40px; padding: 0 12px 0 14px; font-size: 14px; font-weight: 500; color: var(--gray-800); border-color: var(--gray-300); border-radius: 10px; gap: 8px; }
.hub-ym .rail-menu { left: auto; right: 0; width: 300px; }
.hub-actions .pt-more-btn { height: 40px; width: 40px; }
.hub-prog { display: flex; align-items: center; gap: 14px; }
.hub-bar { flex: 1; height: 8px; border-radius: 999px; background: var(--gray-200); overflow: hidden; }
.hub-bar i { display: block; height: 100%; background: var(--brand-teal); border-radius: 999px; }
.hub-prog span { font-size: 14px; color: var(--gray-600); white-space: nowrap; }
.hub-prog b { color: var(--gray-800); }
.hub-note { margin: 0; font-size: 14px; color: var(--gray-500); }
.hub-bars:empty { display: none; }
.hub-bars .yr-bar { margin: 0; }
.hub-label { margin: 0 0 0 4px; font-size: 15px; font-weight: 600; color: var(--gray-600); }

.hub-resume { background: #fff; border-radius: 20px; padding: 28px 32px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; box-shadow: 0 1px 2px rgba(15,23,42,.06), 0 8px 24px rgba(15,23,42,.06); }
.hr-text { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.hr-eyebrow { font-size: 14px; font-weight: 600; color: #00728C; }
.hr-title { margin: 0; font-size: 28px; line-height: 1.15; font-weight: 700; letter-spacing: -.4px; color: var(--brand-navy); }
.hr-sub { font-size: 16px; color: var(--gray-600); }
.hr-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.btn.hr-go { height: 52px; padding: 0 26px; border-radius: 14px; font-size: 17px; font-weight: 600; gap: 8px; background: #00809E; display: inline-flex; align-items: center; }
.btn.hr-go:hover { background: #006E89; }
.btn.hr-alt { height: 52px; padding: 0 20px; border-radius: 14px; font-size: 16px; }

.hp-card { background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 1px 2px rgba(15,23,42,.06); margin-top: 12px; }
.hp-step { display: flex; align-items: center; gap: 18px; width: 100%; padding: 20px 28px; border: 0; border-bottom: 1px solid #EEF2F6; background: none; text-align: left; font: inherit; cursor: pointer; color: inherit; }
.hp-card > :last-child { border-bottom: 0; }
.hp-step:hover { background: var(--gray-50); }
.hp-mark { width: 36px; height: 36px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; box-sizing: border-box; }
.hp-mark.num { border: 2px solid var(--gray-300); color: var(--gray-500); }
.hp-mark.ok { background: var(--success); color: #fff; }
.hp-name { flex: 1; min-width: 0; font-size: 19px; font-weight: 600; color: var(--gray-700); }
.hp-step.done .hp-name { color: var(--gray-800); }
.hp-right { font-size: 15px; color: var(--gray-500); text-align: right; }
.hp-step.done .hp-right { color: var(--gray-600); }
.hp-step.open { display: flex; flex-direction: column; align-items: stretch; gap: 18px; padding: 24px 28px 26px; background: #F2FBFD; cursor: default; }
.hp-step.open:hover { background: #F2FBFD; }
.hp-head { display: flex; align-items: center; gap: 18px; }
.hp-step.open .hp-mark.num { border: 0; background: #00809E; color: #fff; font-weight: 700; }
.hp-step.open .hp-name { font-size: 22px; font-weight: 700; color: var(--brand-navy); }
.hp-here { font-size: 14px; font-weight: 600; color: #00728C; }
.hp-items { margin-left: 54px; background: #fff; border: 1px solid #D5EEF4; border-radius: 14px; overflow: hidden; }
.hp-item { display: flex; align-items: center; gap: 14px; width: 100%; padding: 16px 20px; border: 0; border-bottom: 1px solid #EEF2F6; background: none; text-align: left; font: inherit; cursor: pointer; color: inherit; }
.hp-item:last-child { border-bottom: 0; }
.hp-item:hover { background: var(--gray-50); }
.hp-imark { width: 22px; height: 22px; flex: none; border-radius: 50%; border: 2px solid var(--gray-400); box-sizing: border-box; display: flex; align-items: center; justify-content: center; color: var(--success); }
.hp-item.done .hp-imark { border: 0; }
.hp-item.done .hp-imark svg { width: 22px; height: 22px; }
.hp-item.cur .hp-imark { border-color: #00809E; background: radial-gradient(circle, #00809E 0 4px, transparent 4.5px); }
.hp-iname { flex: 1; min-width: 0; font-size: 17px; font-weight: 500; color: var(--gray-800); }
.hp-item.cur .hp-iname { font-weight: 600; color: var(--brand-navy); }
.hp-iright { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--gray-600); text-align: right; }
.hp-iright .warn { color: #B45309; font-weight: 600; }
.hp-ibar { width: 120px; height: 6px; border-radius: 999px; background: var(--gray-200); overflow: hidden; flex: none; }
.hp-ibar i { display: block; height: 100%; background: var(--brand-teal); }

.hub-dates { margin: -8px 0 0 4px; font-size: 14px; color: var(--gray-500); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hub-dates b { color: var(--gray-700); font-weight: 600; }

.hub-details { background: #fff; border-radius: 20px; padding: 24px 32px; display: flex; flex-direction: column; gap: 16px; border: 1px solid #F5D9A8; }
.hd-top { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.hd-top > div { flex: 1; min-width: 0; }
.hd-title { margin: 0; font-size: 20px; font-weight: 700; color: var(--brand-navy); }
.hd-sub { margin: 4px 0 0; font-size: 15px; color: var(--gray-600); }
.hd-btn { height: 40px; border-radius: 12px; }
.hd-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 32px; }
.hd-item { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--gray-800); }
.hd-item.miss { color: #92400E; }
.hd-mark { width: 20px; height: 20px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--success); box-sizing: border-box; }
.hd-item.miss .hd-mark { border: 2px solid #B45309; }
.hub-cards { display: flex; flex-direction: column; gap: 12px; }
.hub-cards.inner { margin-top: 4px; }
.hc-top { display: flex; align-items: center; justify-content: space-between; }

.hub-foot { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.hub-tile { display: flex; align-items: center; gap: 14px; width: 100%; background: #fff; border: 1px solid var(--gray-200); border-radius: 16px; padding: 18px 22px; font: inherit; text-align: left; cursor: pointer; color: inherit; }
.hub-tile:hover { border-color: var(--gray-300); }
.ht-ico { width: 36px; height: 36px; flex: none; border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.ht-ico.ok { color: var(--success); background: var(--success-soft); }
.ht-ico.navy { background: var(--brand-navy); color: #fff; }
.ht-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ht-text b { font-size: 16px; font-weight: 600; color: var(--gray-800); }
.ht-text span { font-size: 14px; color: var(--gray-500); }
.ht-go { font-size: 14px; font-weight: 600; color: #00728C; }

@media (max-width: 720px) {
  .hub-title { font-size: 28px; }
  .hub-resume { padding: 22px 20px; }
  .hr-title { font-size: 23px; }
  .hp-step { padding: 16px 18px; gap: 14px; flex-wrap: wrap; }
  .hp-right { flex: 1 1 100%; text-align: left; margin-left: 50px; }
  .hp-step.open { padding: 18px; }
  .hp-items { margin-left: 0; }
  .hp-item { flex-wrap: wrap; }
  .hp-iright { flex: 1 1 100%; justify-content: flex-start; margin-left: 36px; text-align: left; }
  .hub-details { padding: 20px; }
  .hd-list, .hub-foot { grid-template-columns: 1fr; }
}

/* Build 89 · Columns whose year hasn't come; Clear a column */
table.confirm th.later { color: var(--gray-500); }
table.confirm th.later .yr { color: var(--gray-500); font-weight: 500; text-transform: none; letter-spacing: 0; }
.me-later input.v { background: var(--gray-50); color: var(--gray-400); }
.cl-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 14px; }
.cl-fields .field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--gray-600); }
.cl-what { margin: 0 0 8px; font-size: 15px; color: var(--gray-800); line-height: 1.45; }
.btn.cl-go { background: var(--danger); color: #fff; }
.btn.cl-go:hover { background: #B91C1C; }
.btn.cl-go:disabled { background: var(--gray-200); color: var(--gray-500); cursor: default; }
.pt-menu .mx-clearbtn { color: var(--danger); }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ── Build 94 (edMAJIC, 2026-10-26) · Pages cleanup ── */
/* Rows open their item: no pencil column; the name is the button; a quiet › on hover */
table.rows-open tr.rowlink td:last-child { position: relative; padding-right: 30px; }
table.rows-open tr.rowlink td:last-child::after { content: ''; position: absolute; right: 10px; top: 50%; width: 7px; height: 7px; border-right: 2px solid var(--gray-400); border-top: 2px solid var(--gray-400); transform: translateY(-50%) rotate(45deg); opacity: 0; transition: opacity var(--transition-fast, .15s); }
table.rows-open tr.rowlink:hover td:last-child::after, table.rows-open tr.rowlink:focus-within td:last-child::after { opacity: 1; }
.row-name { border: 0; background: none; padding: 0; margin: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; line-height: inherit; }
.row-name:hover { color: var(--brand-navy); }
.row-name:focus-visible { outline: 2px solid var(--brand-teal); outline-offset: 2px; border-radius: 4px; }
.row-ok { display: inline-flex; color: var(--success); margin-left: 6px; vertical-align: -3px; }
.oc-dash { color: var(--gray-300); font-weight: 400; }
table.confirm td .gline.miss b { color: var(--gray-400); }

/* Quiet goal counts, and the finished goal's green check */
.gb-count { flex: none; font-size: 12.5px; color: var(--gray-500); white-space: nowrap; padding-top: 2px; }
.gb-done { flex: none; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--success); white-space: nowrap; padding-top: 2px; }
.gb-done svg { width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: var(--success); color: #fff; box-sizing: border-box; }
.gb-goal.finished { background: #FBFEFC; }
.gb-goal.finished.folded { padding-top: 14px; padding-bottom: 14px; }
.gb-head.foldable { cursor: pointer; }

/* Actions › Enter updates: one compact control per action */
.st-row { grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; padding: 10px 4px; }
.st-desc1 { font-size: 12.5px; color: var(--gray-500); line-height: 1.4; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st-main { min-width: 0; }
.st-seg { display: inline-flex; background: var(--gray-100); border-radius: 10px; padding: 3px; gap: 2px; }
.st-seg button { border: 0; background: transparent; font: inherit; font-size: 12.5px; font-weight: 500; color: var(--gray-600); padding: 6px 11px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.st-seg button:hover:not(:disabled):not(.on) { background: #fff; color: var(--gray-800); }
.st-seg button.on { background: var(--brand-navy); color: #fff; font-weight: 600; box-shadow: 0 1px 2px rgba(15,23,42,.15); }
.st-seg button:disabled { cursor: default; }
.st-seg button:focus-visible { outline: 2px solid var(--brand-teal); outline-offset: 1px; }
@media (max-width: 1100px) { .st-row { grid-template-columns: 40px minmax(0, 1fr); } .st-right { grid-column: 2; } .st-seg { flex-wrap: wrap; } }

/* Writing boxes: mark · name · state · › */
.nr-head { grid-template-columns: 22px minmax(0, 1fr) auto 16px; padding: 13px 14px; }
.nr-head:focus-visible { outline: 2px solid var(--brand-teal); outline-offset: -2px; }
.nr-mark { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; border: 2px solid var(--gray-300); color: #fff; }
.nr-mark.draft { border-color: var(--brand-teal); }
.nr-mark.done, .nr-mark.imported { background: var(--success); border-color: var(--success); }
.nr-markwrap { display: inline-flex; }
.nr-state { font-size: 13px; color: var(--gray-500); }
.nr-state.draft { color: #00728C; font-weight: 600; }
.nr-state.done, .nr-state.imported { color: var(--gray-600); }
.nr-chev { color: var(--gray-400); transition: transform var(--transition-fast, .15s); }
.nr-item.open .nr-chev { transform: rotate(90deg); }
.nr-donebox { display: inline-flex; align-items: center; gap: 10px; }
.nr-isdone { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--success); }
.nr-isdone svg { width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: var(--success); color: #fff; box-sizing: border-box; }
.nr-undo { font-size: 13px; }
@media (max-width: 720px) { .nr-head { grid-template-columns: 22px minmax(0, 1fr) 16px; } }

/* Slim "Editing is on" bar */
.yr-bar.slim { padding: 6px 8px 6px 12px; font-size: 12.5px; }

/* Metric editor */
.me-lock { font-size: 13px; color: var(--gray-500); margin: 6px 0 12px; }
.me-lock .link { font-size: 13px; }
.me-ckline { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #92400E; margin: 4px 0 12px; }
.me-ckline .link { font-size: 13px; }
.me-ckdot { width: 8px; height: 8px; border-radius: 50%; background: #F59E0B; }
.me-details { margin-top: 12px; font-size: 13px; color: var(--gray-500); }
.me-details summary { cursor: pointer; font-weight: 600; color: var(--gray-600); width: max-content; }
.me-details .me-measures, .me-details .me-change { margin: 8px 0 4px; }
.me-cell .me-shownum { opacity: 0; transition: opacity var(--transition-fast, .15s); }
.me-table tr:hover .me-shownum, .me-cell:focus-within .me-shownum, .me-shownum:focus { opacity: 1; }
.me-rmbtn { opacity: 0; transition: opacity var(--transition-fast, .15s); }
.me-table tr:hover .me-rmbtn, .me-rmbtn:focus { opacity: 1; }
@media (hover: none) { .me-cell .me-shownum, .me-rmbtn { opacity: 1; } }

/* Checks, one at a time */
.ckm { display: flex; flex-direction: column; gap: 16px; }
.ckm-top { display: flex; align-items: flex-start; gap: 12px; }
.ckm-top .m-close { position: static; flex: none; }
.ckm-eyebrow { display: block; font-size: 11px; font-weight: 700; letter-spacing: .12em; color: #B45309; margin-bottom: 6px; }
.ckm-eyebrow.ok { color: var(--success); }
.ckm-title { margin: 0; font-size: 21px; line-height: 1.25; font-weight: 700; color: var(--brand-navy); }
.ckm-metric { margin: 6px 0 0; font-size: 13.5px; color: var(--gray-500); line-height: 1.45; }
.ckm-p { margin: 0; font-size: 14px; color: var(--gray-600); }
.ckm-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ckm-side { background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ckm-sl { font-size: 12px; font-weight: 600; color: var(--gray-500); }
.ckm-sb { font-size: 18px; font-weight: 600; color: var(--gray-800); line-height: 1.3; overflow-wrap: anywhere; }
.ckm-ss { font-size: 13px; color: var(--gray-600); }
.ckm-note { margin: -4px 0 0; font-size: 13px; color: var(--gray-600); line-height: 1.5; }
.ckm-q { display: flex; flex-direction: column; gap: 10px; }
.ckm-ql { font-size: 15px; font-weight: 600; color: var(--gray-800); }
.ckm-a { display: flex; align-items: center; gap: 16px; width: 100%; text-align: left; border: 1px solid var(--gray-300); background: #fff; border-radius: 14px; padding: 13px 18px; font: inherit; color: inherit; cursor: pointer; transition: border-color var(--transition-fast, .15s), background var(--transition-fast, .15s); }
.ckm-a:hover:not(:disabled) { border-color: var(--brand-teal); }
.ckm-a.sug { border: 2px solid var(--brand-teal); background: #F2FBFD; padding: 12px 17px; }
.ckm-a:disabled { cursor: default; opacity: .6; }
.ckm-a.busy { opacity: 1; }
.ckm-a:focus-visible { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.ckm-at { flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ckm-at b { font-size: 15.5px; font-weight: 600; color: var(--brand-navy); }
.ckm-at span { font-size: 13.5px; color: var(--gray-600); }
.ckm-sug { font-size: 13px; font-weight: 600; color: #00728C; white-space: nowrap; }
.ckm-foot { display: flex; align-items: center; gap: 14px; padding-top: 12px; border-top: 1px solid var(--gray-100); }
.ckm-foot .link { font-size: 14px; }
.ckm-foot .link.ckm-skip { color: var(--gray-600); }
@media (max-width: 640px) { .ckm-sides { grid-template-columns: 1fr; } }
.pt-sentence .link.pt-checks { color: #B45309; font-weight: 600; font-size: inherit; padding: 0; text-decoration: underline; text-decoration-color: rgba(180,83,9,.35); text-underline-offset: 3px; }
.pt-sentence .link.pt-checks:hover { color: #92400E; }

/* Budget Overview: drop zone, figures only on request */
.bop-drop { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; border: 2px dashed var(--gray-300); border-radius: 16px; padding: 30px 20px; cursor: pointer; background: #fff; transition: border-color var(--transition-fast, .15s), background var(--transition-fast, .15s); }
.bop-drop:hover, .bop-drop.over { border-color: var(--brand-teal); background: #F2FBFD; }
.bop-drop b { font-size: 15px; color: var(--gray-800); }
.bd-ico { color: var(--brand-teal); display: inline-flex; margin-bottom: 4px; }
.bd-sub { font-size: 13px; color: var(--gray-500); }
.bd-btn { margin-top: 8px; }
.bop-file { display: flex; align-items: center; gap: 12px; border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px 14px; background: #fff; }
.bop-file .bf-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bop-file .bf-text b { color: var(--gray-800); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bop-file .bf-text span { font-size: 12.5px; color: var(--gray-500); }
.bop-formrow { margin: 12px 0 0; text-align: center; }
.bop-formlink { font-size: 13.5px; }
.bop-form { margin-top: 16px; border-top: 1px solid var(--gray-100); padding-top: 14px; }
.bop-resp { margin-top: 22px; }

/* Changes for next year: one line when nothing is written yet */
.ch-empty { font-size: 14px; color: var(--gray-600); padding: 18px 4px; line-height: 1.5; }
.ch-empty b { color: var(--gray-800); }
.gb-count .link.gb-chk { font-size: 12.5px; color: #B45309; font-weight: 600; padding: 0; }
.bop-drop:focus-within { border-color: var(--brand-teal); }

/* ── Build 95 (edMAJIC, 2026-10-27) ── */
/* Goal Analysis question 1: how the actions went */
.ga-actline { font-size: 15px; font-weight: 600; color: var(--gray-800); }
.ga-actline .link { font-size: 13px; font-weight: 500; margin-left: 6px; }
.ga-off { margin-top: 4px; }
.ga-off .pill { margin-left: 4px; }

/* Plan Summary: CDE's CSI / ATSI list */
.pub-line { font-size: 13.5px; color: var(--gray-700); line-height: 1.5; }
.pub-line b { color: var(--brand-navy); }
.pub-atsi .nr-ctx-row b { margin-right: 6px; }
.pub-why { margin-top: 6px; }

/* Writing rows: why a response is required */
.nr-why { font-size: 12.5px; color: var(--gray-500); margin-top: 2px; line-height: 1.4; }

/* Budget Overview */
.bop-file svg { color: #00728C; flex: none; }
.bop-file .link { font-size: 13.5px; font-weight: 500; flex: none; }
.bop-drop.slim { flex-direction: row; text-align: left; gap: 14px; padding: 14px 18px; border-width: 1.5px; }
.bop-drop.slim .bd-ico { margin: 0; }
.bop-drop.slim .bd-copy { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bop-drop.slim .bd-btn { margin: 0; flex: none; }
.bop-figs { margin-top: 16px; background: #fff; border: 1px solid var(--gray-200); border-radius: 16px; padding: 14px 20px 6px; }
.bop-group { padding-bottom: 10px; }
.bop-gh { display: flex; align-items: baseline; gap: 10px; padding: 8px 0 6px; }
.bop-gh .nr-ctx-title { margin: 0; color: #00728C; }
.bop-row { display: flex; align-items: center; gap: 16px; padding: 10px 0; border-top: 1px solid var(--gray-100); }
.bop-row .br-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bop-row label { font-size: 14.5px; font-weight: 500; color: var(--gray-800); }
.br-sub { font-size: 12.5px; color: var(--gray-500); line-height: 1.4; }
.br-warn { font-size: 12.5px; color: #B45309; font-weight: 500; line-height: 1.4; }
.br-warn .link { font-size: 12.5px; }
.bop-row.chk { background: #FFFBEB; margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: 10px; }
.br-in { flex: none; width: 176px; height: 40px; display: flex; align-items: center; gap: 4px; border: 1px solid var(--gray-300); border-radius: 10px; padding: 0 12px; background: #fff; box-sizing: border-box; color: var(--gray-400); }
.br-in:focus-within { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(0,180,216,.15); }
.br-in.auto { background: var(--gray-50); border-color: var(--gray-200); }
.br-in input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 15px; font-weight: 600; color: var(--gray-800); text-align: right; font-variant-numeric: tabular-nums; outline: none; }
.br-in input:disabled { color: var(--gray-600); }
.bop-row.calc .br-calc { font-size: 14px; color: var(--gray-500); font-weight: 500; }
.br-out { flex: none; width: 176px; text-align: right; padding-right: 13px; box-sizing: border-box; font-size: 14px; color: var(--gray-500); font-variant-numeric: tabular-nums; }
.bop-resp { margin-top: 18px; }
.bop-eddie { display: flex; flex-direction: column; gap: 10px; background: #0F2A44; color: #E2E8F0; border-radius: 14px; padding: 14px 16px; margin: 4px 0 8px; font-size: 14px; line-height: 1.5; }
.bop-eddie .be-name { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #7DD3FC; }
.bop-eddie b { color: #fff; }
.bop-eddie .be-acts { display: flex; align-items: center; gap: 12px; }
.bop-eddie .be-acts a { color: #7DD3FC; font-weight: 600; text-decoration: none; flex: 1; }
.bop-eddie .be-acts a:hover { text-decoration: underline; }
@media (max-width: 720px) { .bop-row { flex-wrap: wrap; } .br-in, .br-out { width: 100%; } .bop-drop.slim { flex-wrap: wrap; } }
.up-warn { text-align: left; margin: 12px 0 0; font-size: 13.5px; line-height: 1.5; }
.up-warn-acts { margin-top: 10px; }
