.visit-page { padding-top: var(--space-5); padding-bottom: var(--space-9); }
.visit-page > nav[aria-label="Breadcrumb"] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; color: var(--color-text-secondary); font-size: 13px; }
.visit-hero { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, .7fr); gap: var(--space-7); align-items: end; padding: var(--space-8) 0 var(--space-7); }
.visit-hero .lead { max-width: 760px; margin-bottom: 0; }
.pdf-download { margin-top: var(--space-5); color: var(--color-primary-pressed); border-color: rgba(22,125,127,.35); background: var(--color-primary-soft); }
.pdf-download:hover { color: #fff; border-color: var(--color-primary); background: var(--color-primary); }
.privacy-note { padding: var(--space-5); border: 1px solid rgba(22,125,127,.2); border-radius: var(--radius-card); background: var(--color-primary-soft); }
.privacy-note p { margin: var(--space-2) 0 0; color: var(--color-text-secondary); font-size: 14px; }

.phase-nav { position: sticky; z-index: 20; top: 8px; display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; max-width: 680px; margin: 0 auto var(--space-5); padding: 5px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: rgba(255,255,255,.94); box-shadow: var(--shadow-card); backdrop-filter: blur(10px); }
.phase-nav button { min-height: 44px; padding: 8px 12px; border: 0; border-radius: var(--radius-pill); background: transparent; }
.phase-nav button span { display: inline-grid; width: 24px; height: 24px; margin-right: 6px; place-items: center; border-radius: 50%; color: var(--color-text-secondary); background: var(--color-border); font-size: 12px; }
.phase-nav button[aria-current="step"] { color: var(--color-primary-pressed); background: var(--color-primary-soft); }
.phase-nav button[aria-current="step"] span { color: #fff; background: var(--color-primary); }

.phase-panel { max-width: 880px; margin: 0 auto; padding: clamp(28px,5vw,56px); border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); box-shadow: var(--shadow-card); }
.phase-panel > p { color: var(--color-text-secondary); }
.step-label { margin: 0 0 var(--space-2) !important; color: var(--color-primary) !important; font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.phase-panel > label { margin-top: var(--space-5); }
.optional { color: var(--color-text-secondary); font-size: 12px; font-weight: 400; }
.priority-picker { margin: var(--space-6) 0 0; padding: 0; border: 0; }
.priority-picker legend { font-weight: 700; }
.priority-picker legend span { color: var(--color-text-secondary); font-size: 13px; font-weight: 400; }
.priority-options { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.priority-option { position: relative; }
.priority-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.priority-option label { display: block; padding: 9px 13px; border: 1px solid var(--color-input-border); border-radius: var(--radius-pill); color: var(--color-text-secondary); background: var(--color-surface); cursor: pointer; font-size: 14px; font-weight: 600; }
.priority-option input:checked + label { color: var(--color-primary-pressed); border-color: var(--color-primary); background: var(--color-primary-soft); }
.priority-option input:focus-visible + label { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.priority-option input:disabled + label { opacity: .45; cursor: not-allowed; }
.field-note,.form-error { min-height: 20px; margin: var(--space-2) 0 0; color: var(--color-text-secondary); font-size: 13px; }
.form-error { color: var(--color-error); }
.phase-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-top: var(--space-6); }
.phase-actions .primary { margin: 0; }

.visit-focus { display: grid; grid-template-columns: 1fr auto; gap: var(--space-3); }
.visit-focus h2 { margin-bottom: var(--space-2); }
.visit-focus > p { grid-column: 1/-1; margin: 0; padding: var(--space-4); border-radius: var(--radius-input); color: var(--color-primary-pressed); background: var(--color-primary-soft); }
.text-button { min-height: 36px; padding: 6px 10px; border-color: transparent; color: var(--color-primary); background: transparent; }
.visit-progress { margin: var(--space-5) 0; color: var(--color-text-secondary); font-size: 13px; }
.visit-progress > div { height: 5px; margin-top: var(--space-2); overflow: hidden; border-radius: var(--radius-pill); background: var(--color-border); }
.visit-progress > div span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--color-primary); transition: width var(--motion-card); }
.observation-sections { display: grid; gap: var(--space-3); }
.observation-card { border: 1px solid var(--color-border); border-radius: var(--radius-input); overflow: hidden; }
.observation-card summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-3); align-items: center; min-height: 76px; padding: var(--space-4) var(--space-5); cursor: pointer; list-style: none; }
.observation-card summary::-webkit-details-marker { display: none; }
.observation-card summary::after { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: var(--color-primary); background: var(--color-primary-soft); content: "+"; font-weight: 700; }
.observation-card[open] summary::after { content: "−"; }
.observation-card h3 { margin: 0 0 3px; }
.observation-card summary p { margin: 0; color: var(--color-text-secondary); font-size: 13px; }
.priority-badge { display: inline-block; margin-left: 6px; padding: 3px 7px; border-radius: var(--radius-pill); color: var(--color-primary-pressed); background: var(--color-primary-soft); font-size: 10px; font-weight: 700; vertical-align: middle; }
.observation-body { padding: 0 var(--space-5) var(--space-5); border-top: 1px solid var(--color-border); }
.prompt-list { margin: var(--space-4) 0; padding-left: 20px; color: var(--color-text-secondary); font-size: 14px; }
.observation-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.observation-fields .wide { grid-column: 1/-1; }
.observation-fields textarea { min-height: 105px; }
.bottom-actions { justify-content: flex-end; }

.reflection-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); margin-top: var(--space-5); }
.reflection-grid textarea { min-height: 125px; }
.reflection-grid label:first-child,.reflection-grid label:last-child { grid-column: 1/-1; }
.completion-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-6); align-items: center; margin-top: var(--space-7); padding: var(--space-6); border: 1px solid rgba(22,125,127,.28); border-radius: var(--radius-card); background: linear-gradient(135deg,var(--color-primary-soft),var(--color-surface)); }
.completion-card h3 { margin-bottom: var(--space-2); }
.completion-card p { margin: 0; color: var(--color-text-secondary); }
.completion-actions { display: grid; min-width: 230px; gap: var(--space-3); }
.completion-actions .primary { margin: 0; }
.save-status { max-width: 880px; min-height: 20px; margin: var(--space-3) auto 0; color: var(--color-text-secondary); font-size: 12px; text-align: right; }

@media(max-width:820px){.visit-hero,.completion-card{grid-template-columns:1fr}.completion-actions{min-width:0}.reflection-grid{grid-template-columns:1fr}.reflection-grid label:first-child,.reflection-grid label:last-child{grid-column:auto}}
@media(max-width:620px){.visit-page{width:min(100% - 24px,1100px)}.visit-hero{gap:var(--space-5);padding:var(--space-7) 0 var(--space-5)}.phase-nav{top:4px}.phase-nav button{font-size:13px}.phase-panel{padding:var(--space-5)}.visit-focus{grid-template-columns:1fr}.visit-focus .text-button{justify-self:start}.observation-fields{grid-template-columns:1fr}.observation-fields .wide{grid-column:auto}.completion-card{padding:var(--space-5)}}
@media print{body::before,body::after,.site-header,.site-footer,.visit-page>nav,.privacy-note,.phase-nav,.pdf-download,.text-button,.phase-actions,.save-status{display:none!important}.visit-page{width:100%;padding:0}.visit-hero{display:block;padding:0 0 18px}.phase-panel{max-width:none;padding:20px;border:0;box-shadow:none}.phase-panel[hidden]{display:block}.observation-card{break-inside:avoid}.observation-card:not([open]) .observation-body{display:block}.completion-card{box-shadow:none}}
