/* Paper, pencil and a little colour; shared by adviser and client goal workspaces. */
.adviser-scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.adviser-scope-card { min-width:0; border:1px solid #ccd9ce; border-radius:14px; padding:18px; background:#eef4ed; color:#243d53; }
.adviser-scope-client { background:#fdf6e8; border-color:#e4d5b9; }
.adviser-scope-card > strong { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.adviser-scope-card p { font-size:.85rem; margin:10px 0; overflow-wrap:anywhere; }
.adviser-scope-card .goal-toolbar { margin:0; gap:8px 16px; }
.adviser-scope-card nav a { padding:6px 0; overflow-wrap:anywhere; }
.adviser-scope-card nav a.active { font-weight:700; text-decoration-thickness:2px; }
.adviser-fit-flow { padding-left:22px; }.adviser-fit-flow li { padding:12px 0; }
@media(max-width:800px) { .adviser-scope-grid { grid-template-columns:minmax(0,1fr); } }
.goal-health-card { margin-bottom: 24px; }
.goal-health-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 16px 0; border-block: 1px dashed #cad6c1; }
.goal-health-facts span { min-width: 0; display: flex; flex-direction: column; gap: 5px; overflow-wrap: anywhere; }
.goal-health-finding, .goal-health-action { padding: 20px 0; border-bottom: 1px solid #dce2d5; }
.goal-health-next { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; background: #f2f6ed; padding: 14px; border-radius: 12px; }
.goal-health-next > div { min-width: 0; }
.goal-health-next p { font-size: .88rem; margin: 6px 0 0; }
.goal-health-mix { display: flex; flex-wrap: wrap; gap: 12px; }
.goal-health-mix span { padding: 8px 12px; background: #eef2fa; border-radius: 8px; }
.goal-health-review { padding: 16px; background: #f1f5ef; border-left: 4px solid #66875a; margin-top: 20px; border-radius: 0 12px 12px 0; }
@media(max-width:600px) { .goal-health-facts { grid-template-columns: 1fr; gap: 12px; }.goal-health-next { grid-template-columns: 1fr; } }
.goal-paper { --goal-ink: #243d53; min-width: 0; background: linear-gradient(155deg, #fffef9, #ffffff 65%); border: 1px solid #d8dfd1; border-radius: 18px 14px 20px 15px; padding: clamp(18px, 2.2vw, 30px); color: var(--goal-ink); box-shadow: 0 3px 0 #edf0e6; }
.goal-paper h2 { font-size: clamp(1.2rem, 1.8vw, 1.6rem); margin: 0 0 12px; font-weight: 700; }
.goal-paper h3, .goal-product-card h3 { font-size: 1.05rem; line-height: 1.4; font-weight: 600; margin: 8px 0; }
.goal-paper p { line-height: 1.6; overflow-wrap: anywhere; }
.goal-paper a, .goal-toolbar > a:not(.btn) { color: #21458c; text-underline-offset: 3px; }
.goal-muted, .goal-paper small { color: #506172; }
.goal-eyebrow { display: block; color: #566b4b; font-size: .72rem; font-weight: 700; letter-spacing: .12em; margin-bottom: 8px; }
.goal-toolbar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 16px 0 24px; }
.goal-toolbar .btn, .goal-paper .btn { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; }
.goal-section-top { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.goal-pill { display: inline-block; border: 1px solid #d4decb; border-radius: 20px; padding: 5px 10px; color: #334b2f; background: #edf3e8; font-size: .72rem; font-weight: 700; letter-spacing: .02em; }
.goal-pill.essential { color: #75421b; background: #fcf0d8; border-color: #e5c78d; }
.goal-pill.sample { color: #73400b; background: #fff0ca; border-color: #e5be65; }
.goal-workspace { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 24px; align-items: start; }
.goal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.goal-form-grid > *, .goal-weight-grid > * { min-width: 0; }
.goal-form-grid label, .goal-weight-grid label { display: block; margin-bottom: 6px; font-weight: 500; font-size: .88rem; }
.goal-span { grid-column: 1 / -1; }
.goal-paper input:not([type=checkbox]):not([type=range]), .goal-paper select, .goal-paper textarea { max-width: 100%; min-width: 0; }
.goal-paper input[type=checkbox] { width: 18px; height: 18px; margin-right: 8px; accent-color: #315c53; vertical-align: middle; }
.goal-stage-editor { margin: 24px 0; padding: 20px 0 0; border-top: 2px dashed #c7d2bc; }
.goal-rates-table { min-width: 450px; }
.goal-rates-table .form-control { min-width: 85px; }
.goal-rates-table th { color: #243d53; font-size: .85rem; }
.goal-rates-table caption { color: #506172; }
.goal-history { position: sticky; top: 20px; }
.goal-small-art { width: 80px; height: 80px; object-fit: contain; float: right; margin: 0 0 10px 10px; }
.goal-history-item { border-top: 1px solid #dce2d5; padding: 18px 0; }
.goal-history-item p { margin-bottom: 6px; font-size: .85rem; }
.goal-callout { border-left: 4px solid #ba8733; background: #fcf4e4; padding: 14px 16px; border-radius: 0 10px 10px 0; margin: 18px 0; color: #5a451e; font-size: .9rem; }
.goal-disclaimer { font-size: .8rem; color: #52616d; margin: 20px 0 0; }
.goal-details { margin: 22px 0; border-top: 1px solid #dce2d5; padding-top: 16px; }
.goal-details > summary { color: #244d56; font-weight: 600; cursor: pointer; padding: 7px 0; }
.goal-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.goal-product-card { min-width: 0; border: 1px solid #d9e1d2; border-radius: 12px; padding: 18px; background: #f7faf3; display: flex; flex-direction: column; align-items: flex-start; }
.goal-product-card h3, .goal-product-card p { overflow-wrap: anywhere; }
.goal-product-card p { font-size: .85rem; }
.goal-product-card .btn { margin-top: auto !important; }
.goal-weight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.goal-tracked-editor { padding: 16px 0; border-bottom: 1px solid #e1e5db; }
.goal-tracked-editor label { display: block; margin-bottom: 8px; }
.goal-tracked-editor small { display: block; margin-left: 28px; }
.goal-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 24px; }
.goal-overview > div { background: #eef3e9; border-radius: 12px; border-bottom: 3px solid #c3d1b3; padding: 16px 20px; display: flex; flex-direction: column; gap: 8px; }
.goal-overview span { font-size: .85rem; color: #435b46; }
.goal-overview strong { font-size: 1.9rem; color: #273f43; line-height: 1.2; }
.goal-journey-layout { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 24px; align-items: start; }
.goal-choice-list { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.goal-choice { font: inherit; text-align: left; border: 1px solid #d4dccb; background: #fffef8; border-radius: 15px 12px 18px 12px; color: #2a4155; padding: 20px; display: flex; flex-direction: column; align-items: flex-start; gap: 7px; width: 100%; transition: border-color .2s, background .2s; }
.goal-choice > strong { font-size: 1.1rem; overflow-wrap: anywhere; }
.goal-choice > span:not(.goal-pill) { font-size: .85rem; }
.goal-choice > small { color: #506172; }
.goal-choice.is-current { border: 2px solid #3b6b60; background: #edf4ed; box-shadow: 4px 4px 0 #dae4cc; }
.goal-choice-funding { margin-top: 6px; padding-top: 10px; border-top: 1px dashed #b9c9ac; width: 100%; }
.goal-detail-column { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.goal-timeline { list-style: none; margin: 28px 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.goal-timeline li { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 28px 14px 0 0; min-width: 0; border-top: 3px solid #d1b15e; }
.goal-timeline li:last-child { border-color: transparent; }
.goal-timeline-dot { width: 15px; height: 15px; border: 3px solid #4e7661; background: #fffdf5; border-radius: 50%; position: absolute; top: -9px; left: 0; }
.goal-timeline small { font-size: .64rem; letter-spacing: .08em; color: #58664e; }
.goal-timeline strong { font-size: 1rem; overflow-wrap: anywhere; }
.goal-timeline li > span:last-child { font-size: .8rem; color: #506172; }
.goal-priority-select { max-width: 360px; }
.goal-adviser-note { background: #edf4ec; border: 1px dashed #b9cdb0; border-radius: 10px; padding: 16px; }
.goal-adviser-note p { margin: 6px 0 0; white-space: pre-wrap; }
.goal-simulator-controls { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 24px; padding: 20px; background: #f1f5ee; border-radius: 12px; margin: 22px 0; }
.goal-simulator-controls > div { display: flex; flex-direction: column; gap: 10px; }
.goal-simulator-controls label { font-size: .85rem; }
.goal-simulator-controls input[type=range] { width: 100%; accent-color: #315c53; min-height: 28px; }
.goal-simulator-controls strong { font-size: 1.1rem; }
.goal-simulator-controls span { font-size: .8rem; color: #506172; }
.goal-chart { display: grid; grid-template-columns: 68px minmax(0, 1fr); grid-template-rows: auto 24px; margin-top: 30px; }
.goal-chart-scale { display: flex; flex-direction: column; justify-content: space-between; font-size: .7rem; padding: 3px 8px 10px 0; }
.goal-chart-svg { width: 100%; min-width: 0; overflow: visible; aspect-ratio: 640 / 240; }
.goal-chart-svg polyline { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.goal-chart-grid { stroke: #dce2d7; stroke-width: 1; }
.goal-chart-target { stroke: #675c45; stroke-dasharray: 7 5; }
.goal-chart-favourable { stroke: #32776a; }
.goal-chart-central { stroke: #254d92; }
.goal-chart-cautious { stroke: #ac542e; stroke-dasharray: 3 4; }
.goal-chart-dates { grid-column: 2; display: flex; justify-content: space-between; color: #52616d; font-size: .72rem; margin-top: 8px; }
.goal-chart-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 20px 0; font-size: .75rem; }
.goal-chart-legend span:before { content: ''; display: inline-block; width: 20px; height: 3px; background: #254d92; margin: 0 6px 3px 0; }
.goal-chart-legend .cautious:before { background: #ac542e; }
.goal-chart-legend .favourable:before { background: #32776a; }
.goal-chart-legend .target:before { background: #675c45; }
.goal-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.goal-outcomes > div { min-width: 0; border: 1px solid #dce2d6; border-radius: 10px; padding: 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.goal-outcomes .central { background: #eef3fb; border-color: #bacce6; }
.goal-outcomes strong { font-size: clamp(.95rem, 1.25vw, 1.3rem); overflow-wrap: anywhere; }
.goal-outcomes span { font-size: .75rem; color: #506172; }
.goal-funding-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid #e0e6d8; font-size: .88rem; }
.goal-scheme-card { border: 1px solid #dce3d4; border-radius: 12px; padding: 20px; margin-top: 18px; background: #fafcf7; }
.goal-scheme-card .goal-details { margin-bottom: 0; }
.goal-performance { display: flex; flex-wrap: wrap; gap: 20px; margin: 12px 0; }
.goal-performance strong { display: block; }
.goal-stage-summary { border-left: 3px solid #cbb466; padding-left: 16px; margin-top: 20px; }
.goal-empty { display: flex; align-items: center; gap: 30px; padding: 38px; }
.goal-empty img { width: 130px; height: 130px; object-fit: contain; }
.goal-choice:focus-visible, .goal-paper :is(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid #254d92; outline-offset: 3px; }
@media (max-width: 1199px) {
    .goal-journey-layout { grid-template-columns: minmax(180px, 220px) minmax(0, 1fr); gap: 18px; }
    .goal-workspace { grid-template-columns: minmax(0, 1fr); }
    .goal-history { position: static; }
    .goal-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .goal-outcomes { grid-template-columns: minmax(0, 1fr); }
    .goal-outcomes > div { display: grid; grid-template-columns: 1fr 1fr; }
    .goal-outcomes span { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .goal-journey-layout { grid-template-columns: minmax(0, 1fr); }
    .goal-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .goal-choice { padding: 14px; }
    .goal-choice > strong { font-size: 1rem; }
    .goal-overview { gap: 8px; }
    .goal-overview > div { padding: 12px; }
    .goal-overview span { font-size: .72rem; }
    .goal-overview strong { font-size: 1.5rem; }
    .goal-simulator-controls { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 20px; }
    .goal-timeline strong { font-size: .82rem; }
    .goal-timeline li > span:last-child { font-size: .74rem; }
    .goal-form-grid { grid-template-columns: minmax(0, 1fr); }
    .goal-weight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .goal-product-grid { grid-template-columns: minmax(0, 1fr); }
    .goal-empty { flex-direction: column; align-items: flex-start; padding: 24px; gap: 18px; }
    .goal-empty img { width: 90px; height: 90px; }
    .goal-scheme-card { padding: 16px; }
    .goal-chart { grid-template-columns: 55px minmax(0, 1fr); }
    .goal-chart-scale { font-size: .65rem; }
}
@media (prefers-reduced-motion: reduce) { .goal-choice { transition: none; } }
