.journey-section { margin: 1.5rem 0; }
.journey-section h2, .journey-section h3 { margin: 0 0 .75rem; font-family: var(--serif, Georgia, serif); }
.journey-section p, .journey-section li, .journey-help, .journey-storage { font-size: 1rem; line-height: 1.65; }
.journey-purpose { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin: 1.25rem 0; padding: 1rem; border: 1px solid var(--border, #d5d5d5); border-radius: 10px; }
.journey-purpose legend { font-weight: 600; padding: 0 .4rem; }
.journey-purpose label { display: flex; align-items: center; gap: .5rem; min-height: 44px; font-size: 1rem; }
.journey-steps { display: flex; flex-wrap: wrap; gap: 1rem 2rem; padding: 0; list-style: none; font-size: .95rem; }
.journey-summary, .journey-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1.25rem; }
.journey-summary { margin: 1.5rem 0; }
.journey-fields label, .journey-select { display: flex; flex-direction: column; gap: .5rem; font-size: .9rem; }
.journey-fields input, .journey-select select { box-sizing: border-box; width: 100%; min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--border, #bbb); border-radius: 6px; background: var(--surface, white); color: var(--ink, #171717); font: inherit; }
.journey-help, .journey-section details { margin: 1rem 0; border-top: 1px solid var(--border, #ddd); padding-top: .8rem; }
.journey-help summary, .journey-section summary { cursor: pointer; padding: .5rem 0; font-weight: 600; }
.journey-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; }
.journey-actions button[aria-pressed="true"] { background: var(--accent-50, #e9f0f5); border-color: var(--accent, #286598); }
.journey-table { width: 100%; overflow-x: auto; margin: 1.25rem 0; }
.journey-table table { width: 100%; border-collapse: collapse; text-align: left; font-size: .95rem; }
.journey-table th, .journey-table td { padding: .85rem; vertical-align: top; border-bottom: 1px solid var(--border, #ddd); min-width: 140px; }
.journey-table small { display: block; font-size: .85rem; line-height: 1.5; margin-top: .5rem; }
.journey-note { border-left: 3px solid var(--accent, #286598); padding: .8rem 1rem; background: var(--accent-50, #eef4f8); }
.journey-storage { color: var(--ink-2, #444); }
.journey-storage button { border: none; background: transparent; text-decoration: underline; cursor: pointer; color: inherit; font: inherit; min-height: 44px; }
.journey-form small { font-size: .85rem; line-height: 1.5; }
.journey-section button, .journey-section a { overflow-wrap: anywhere; }
.journey-section input:focus-visible, .journey-section select:focus-visible, .journey-purpose input:focus-visible { outline: 3px solid var(--accent, #286598); outline-offset: 2px; }
@media (max-width: 640px) { .journey-summary, .journey-fields { grid-template-columns: 1fr; } .journey-purpose { flex-direction: column; } .journey-steps { gap: .5rem; justify-content: space-between; font-size: .8rem; } }

.journey-run { grid-column: 1 / -1; }

#acquisition-metrics label { display:inline-flex; flex-direction:column; margin:8px; max-width:220px; }
#acquisition-metrics input { min-height:44px; width:100%; }
#acquisition-metrics { overflow:auto; }
#acquisition-metrics td, #acquisition-metrics th { padding:8px; text-align:left; }
/* Bjarmi: the existing cream, blue and editorial type, with a calmer workspace. */
.property-workspace { margin: 28px 0 48px; color:var(--ink); }
.portfolio-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:26px; }
.portfolio-heading h1 { font:500 36px/1.15 var(--serif); margin:10px 0; letter-spacing:-.6px; }
.portfolio-heading p,.portfolio-next p { color:var(--ink-2); margin:8px 0 0; line-height:1.6; }
.portfolio-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; }
.portfolio-stats>div { display:flex; flex-direction:column; gap:10px; padding:22px; background:var(--surface); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-card); }
.portfolio-stats span { font-size:13px; color:var(--ink-2); }
.portfolio-stats strong { font:500 30px var(--mono); }
.portfolio-stats small,.portfolio-count { font-size:12px; color:var(--ink-3); }
.portfolio-toolbar { display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; align-items:center; margin:30px 0 14px; }
.portfolio-search { flex:1; max-width:360px; min-width:200px; }
.portfolio-search input,.portfolio-field input,.market-postcode select { width:100%; min-height:44px; padding:12px 14px; font:inherit; background:var(--surface); color:var(--ink); border:1px solid var(--border); border-radius:6px; box-sizing:border-box; }
.portfolio-filters { display:flex; flex-wrap:wrap; gap:5px; }
.portfolio-filters button { min-height:44px; padding:10px 13px; border-radius:6px; font:500 13px var(--sans); color:var(--ink-2); border:1px solid transparent; background:transparent; cursor:pointer; }
.portfolio-filters button[aria-pressed=true] { background:var(--accent-50); color:var(--accent); border-color:var(--accent-100); }
.portfolio-count { margin-bottom:16px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.portfolio-card { min-width:0; overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow-card); transition:box-shadow .2s; }
.portfolio-card:hover { box-shadow:0 4px 16px #14161a0d; }
.portfolio-cover { position:relative; height:150px; display:grid; place-items:center; background:linear-gradient(135deg,#ece4d0,#f1ecdf 55%,#e4ebef); border-bottom:1px solid var(--border); }
.portfolio-monogram { font:500 78px var(--serif); color:#9a927c; opacity:.5; }
.portfolio-badge { position:absolute; top:16px; left:16px; padding:6px 9px; border-radius:5px; background:var(--surface); color:var(--pos); font-size:11px; }
.portfolio-badge.attention { color:var(--warn); }
.portfolio-favourite { position:absolute; right:12px; top:10px; width:44px; height:44px; border:1px solid var(--border); background:var(--surface); border-radius:6px; font-size:25px; color:var(--ink-2); cursor:pointer; }
.portfolio-favourite[aria-pressed=true] { color:var(--accent); background:var(--accent-50); }
.portfolio-card-body { padding:22px; }
.portfolio-card h3 { font:600 18px var(--sans); margin:0 0 9px; overflow-wrap:anywhere; }
.portfolio-card p { color:var(--ink-3); font-size:12px; line-height:1.6; min-height:20px; margin:0 0 28px; }
.portfolio-caption { display:block; font-size:12px; color:var(--ink-3); margin-bottom:9px; }
.portfolio-price { display:block; font:500 clamp(18px,2vw,24px) var(--mono); letter-spacing:-.6px; }
.portfolio-card footer { margin-top:24px; padding-top:18px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.portfolio-card footer small { color:var(--ink-3); font-size:11px; }
.property-workspace .btn-primary,.property-workspace .btn-secondary,.portfolio-dialog .btn-primary,.portfolio-dialog .btn-secondary { min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:10px 16px; border-radius:6px; font:500 13px var(--sans); cursor:pointer; }
.portfolio-next { margin-top:28px; padding:24px; display:flex; justify-content:space-between; align-items:center; gap:24px; border:1px solid var(--accent-100); border-radius:10px; background:var(--accent-50); font-size:14px; }
.portfolio-next a { color:var(--accent); white-space:nowrap; padding:12px 0; }
.portfolio-empty { padding:48px 24px; text-align:center; background:var(--surface); border:1px dashed var(--border); border-radius:10px; }
.portfolio-empty h3 { font:500 27px var(--serif); margin:0 0 14px; }
.portfolio-empty p { color:var(--ink-2); line-height:1.7; margin:12px auto 24px; max-width:480px; }
.portfolio-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:min(620px,100vw); max-width:100vw; height:100dvh; max-height:100dvh; padding:0; border:0; border-left:1px solid var(--border); background:var(--bg); color:var(--ink); box-sizing:border-box; }
.portfolio-dialog::backdrop { background:#14161a66; }
.portfolio-dialog-inner { padding:30px; }
.portfolio-dialog header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:28px; }
.portfolio-dialog h2 { font:500 30px/1.2 var(--serif); margin:0; overflow-wrap:anywhere; }
.portfolio-close { flex-shrink:0; width:44px; height:44px; border:1px solid var(--border); border-radius:6px; background:var(--surface); font:26px var(--sans); cursor:pointer; }
.portfolio-detail { margin-top:28px; line-height:1.7; }
.portfolio-detail p { color:var(--ink-2); margin:18px 0; }
.portfolio-detail dl { margin:28px 0; border-block:1px solid var(--border); padding:16px 0; }
.portfolio-detail dl>div { display:flex; justify-content:space-between; gap:20px; padding:9px 0; }
.portfolio-detail dt { color:var(--ink-3); }.portfolio-detail dd { margin:0; }
.portfolio-history { padding:0; list-style:none; }.portfolio-history li { padding:20px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--border); }.portfolio-history small { display:block; color:var(--ink-3); margin-top:6px; }
.portfolio-wizard-steps { display:flex; gap:12px; padding:0; list-style:none; color:var(--ink-3); font-size:13px; }.portfolio-wizard-steps li { flex:1; padding:14px 0; border-bottom:2px solid var(--border); }.portfolio-wizard-steps [aria-current] { color:var(--accent); border-color:var(--accent); }
.portfolio-field { display:grid; gap:12px; }.portfolio-field small { color:var(--ink-3); }.portfolio-goals { padding:0; border:0; }.portfolio-goals legend { margin-bottom:20px; }.portfolio-goals label { display:flex; gap:12px; align-items:center; padding:18px; margin:12px 0; border:1px solid var(--border); border-radius:8px; background:var(--surface); cursor:pointer; }.portfolio-goals label:has(:checked) { border-color:var(--accent); background:var(--accent-50); }.portfolio-goals input { accent-color:var(--accent); }.portfolio-wizard-actions { display:flex; justify-content:space-between; gap:12px; margin-top:36px; }
.property-workspace :focus-visible,.portfolio-dialog :focus-visible,.market-workspace :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.property-workspace .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.market-workspace .hero-band { border-radius:10px; overflow:hidden; box-shadow:var(--shadow-card); }.market-workspace .map-card { border-radius:10px; overflow:hidden; box-shadow:var(--shadow-card); }.market-workspace .topbar { flex-wrap:wrap; gap:16px; }.market-postcode { display:flex; align-items:center; gap:12px; font-size:12px; color:var(--ink-2); }.market-postcode select { width:auto; max-width:220px; }.market-workspace .seg-tabs { padding:4px; background:var(--surface-2); border:1px solid var(--border); border-radius:7px; }.market-workspace .seg-tab { min-height:40px; border-radius:5px; }
@media(max-width:1000px) { .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .portfolio-heading { align-items:flex-start; flex-direction:column; }.portfolio-heading h1 { font-size:32px; }.portfolio-stats { gap:8px; }.portfolio-stats>div { padding:14px 10px; }.portfolio-stats span { font-size:11px; }.portfolio-stats small { font-size:10px; }.portfolio-grid { grid-template-columns:1fr; }.portfolio-search { max-width:none; width:100%; }.portfolio-toolbar { gap:14px; }.portfolio-filters { width:100%; }.portfolio-filters button { padding:10px; font-size:12px; }.portfolio-next { align-items:flex-start; flex-direction:column; gap:8px; }.portfolio-dialog-inner { padding:24px 20px; }.portfolio-dialog input,.market-postcode select { font-size:16px; }.portfolio-price { font-size:24px; }.portfolio-history li { flex-direction:column; gap:8px; } }
@media(prefers-reduced-motion:reduce) { .portfolio-card { transition:none; } }
.market-workspace .geo-grid { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
.market-workspace .geo-grid>* { min-width:0; }
@media(max-width:1100px) { .market-workspace .geo-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:640px) { .market-workspace .map-card .topbar { padding:14px; }.market-workspace .seg-tabs { max-width:100%; flex-wrap:wrap; }.market-workspace .geo-rail .panel { overflow-x:auto; } }

.portfolio-context { display:none; }
