/* Observation-first controls and concise strength summaries. */
.optional-detail{border-top:1px solid var(--line,#363126);margin:20px 0;padding:16px 0}
.optional-detail summary{cursor:pointer;color:var(--gold,#d0b478);min-height:36px;line-height:1.5;font-size:14px}
.detail-body{padding-top:18px}.choice-group{margin:18px 0;border:0;padding:0;min-width:0}
.choice-group legend{font-size:13px;color:var(--text,#ede9e0);margin-bottom:10px;line-height:1.5}
.choice-row{display:flex;flex-wrap:wrap;gap:8px}.choice-chip{background:transparent;color:var(--text,#ede9e0);border:1px solid #514937;border-radius:8px;padding:12px 14px;min-height:46px;text-align:left;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.choice-chip[aria-pressed="true"]{background:#30281b;color:#f7e5b7;border-color:#cfb474}
.choice-chip:focus-visible{outline:2px solid #f3d28a;outline-offset:3px}
fieldset:disabled .choice-chip{opacity:.5;cursor:not-allowed}
.strength-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:16px;margin:20px 0}
.strength-result{border:1px solid #554b35;border-radius:10px;padding:20px;break-inside:avoid;overflow-wrap:anywhere}
.strength-result h3{margin:0 0 10px!important}.strength-result p{margin:6px 0!important}
.strength-values{display:flex;flex-direction:column;gap:16px;margin-top:18px}
.strength-values strong{display:block;font-family:Georgia,serif;font-size:30px;line-height:1.3;margin:8px 0}
.strength-values small{display:block;line-height:1.6}.result-kind{font-size:10px;letter-spacing:.1em;font-weight:700}
@media(max-width:600px){.choice-row{display:grid;grid-template-columns:1fr}.choice-chip{width:100%}.save-footer .button-row{width:100%}.save-footer .button{white-space:normal}.strength-result{padding:18px}}
@media print{.strength-result{border-color:#d8d1c3}.strength-cards{grid-template-columns:1fr 1fr}.strength-summary{break-inside:auto}.optional-detail{break-inside:avoid}}

/* Native date inputs and all grid/flex field containers must shrink on Safari. */
:where(.field,.form-grid,.detail-body,.panel,.form-panel,.test-card,.columns>*,.assessment-toolbar>*,.top-actions,.progress-panel,.stat){min-width:0;max-width:100%}
.field label,.field-label,.choice-group legend{overflow-wrap:anywhere;line-height:1.55}
.field>input,.field>select,.field>textarea,input[type="date"],input[type="time"]{display:block;box-sizing:border-box;min-width:0;min-inline-size:0;max-width:100%;width:100%;inline-size:100%}
input[type="date"],input[type="time"]{-webkit-appearance:none;appearance:none;text-align:left;min-height:46px}
input::-webkit-date-and-time-value{text-align:left;min-width:0;min-height:1.4em}
input::-webkit-datetime-edit{padding:0;min-width:0;max-width:100%}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.button,.choice-chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.assessment-toolbar select{min-width:0;width:100%;max-width:100%}
.assessment-toolbar>div:first-child{flex:1 1 220px;max-width:100%}
.button-row{min-width:0;flex-wrap:wrap}
.optional-detail,.optional-detail summary,.save-footer,.report-top>div{min-width:0;overflow-wrap:anywhere}
input,select,textarea{box-sizing:border-box;max-width:100%;min-width:0}
.progress-domains{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 24px}
.progress-domains button{font:inherit;font-size:12px;line-height:1.55;min-height:54px;padding:12px 14px;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);text-align:left;cursor:pointer}
.progress-domains button[aria-pressed="true"]{color:var(--gold-bright);border-color:var(--gold);background:#282217}
.progress-domains button:focus-visible,.progress-chart circle:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.progress-panel{padding:30px}.progress-explanation{font-size:13px;color:var(--muted);max-width:70ch;line-height:1.8}
.progress-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}
.progress-filters .field:last-child:nth-child(3){grid-column:1/-1}
.progress-context{border-block:1px solid var(--line);padding:18px 0;overflow-wrap:anywhere}
.progress-context p{font-size:12px;color:var(--muted);margin:10px 0 0;line-height:1.7}
.progress-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0 6px}
.progress-stats article{min-width:0}.progress-stats span{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.progress-stats strong{display:block;font:36px/1.35 var(--serif);color:var(--gold-bright);margin:8px 0;overflow-wrap:anywhere}
.progress-stats small{font-size:11px;line-height:1.6;color:var(--muted);display:block}
.progress-figure{margin:24px 0;min-width:0}.progress-chart{display:block;width:100%;height:auto;overflow:visible}
.progress-chart text{font:15px var(--sans);fill:var(--muted)}.chart-grid{stroke:var(--line);stroke-width:1}.chart-line{stroke:var(--gold);stroke-width:2.5;fill:none}.chart-dot{fill:var(--gold-bright);stroke:var(--panel);stroke-width:2}
.progress-figure figcaption{font-size:11px;color:var(--muted);line-height:1.7;margin-top:10px}
.progress-history ol,.observation-timeline{list-style:none;padding:0;margin:0}.progress-history li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:18px;padding:19px 0;border-bottom:1px solid var(--line)}
.progress-history li>div{min-width:0}.progress-history strong{font-size:13px;font-weight:500}.progress-history .tiny{display:block;margin-top:6px}.history-result{text-align:right}.history-result>strong{font-size:20px;color:var(--gold-bright)}.history-result p{font-size:11px;line-height:1.7;margin:6px 0 0;color:var(--muted);overflow-wrap:anywhere}
.progress-empty{padding:28px 0}.progress-empty h3{font:25px/1.4 var(--serif)}.progress-empty p{font-size:13px;color:var(--muted);max-width:65ch;line-height:1.8}
.observation-timeline>li{display:grid;grid-template-columns:minmax(100px,.6fr) minmax(0,2fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.observation-date{color:var(--gold-bright);font-size:14px;line-height:1.7}.observation-date span{display:block}.observation-timeline dl{margin:0;display:grid;gap:12px}.observation-timeline dt{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.observation-timeline dd{font-size:13px;line-height:1.7;margin:3px 0 0;overflow-wrap:anywhere}
.progress-footnote{border-top:1px solid var(--line);padding-top:18px;line-height:1.8}.report-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-values>div{border-bottom:1px solid #ccc5b5;padding:10px 0}.report-values dt{font-size:12px}.report-values dd{font-size:18px;margin:6px 0 0}.report-observation{border-bottom:1px solid #ccc5b5;padding:12px 0}
@media(max-width:1100px){.progress-domains{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
 .form-grid{grid-template-columns:minmax(0,1fr)}
 .top-actions select{font-size:16px}.field input,.field select,.field textarea{font-size:16px;min-height:46px}
 .button{min-height:44px}.content{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
 .progress-domains{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.progress-domains button:last-child{grid-column:1/-1}.progress-domains button{font-size:12px;padding:12px}
 .progress-panel{padding:23px 18px}.progress-filters{grid-template-columns:minmax(0,1fr);gap:18px}.progress-filters .field:last-child:nth-child(3){grid-column:auto}
 .progress-stats{gap:18px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.progress-stats article:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px}
 .progress-stats strong{font-size:30px}.progress-chart text{font-size:21px}.progress-figure{margin-left:-9px;margin-right:-4px}.progress-figure figcaption{margin-left:9px}
 .progress-history li{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px}.history-result>strong{font-size:19px}
 .observation-timeline>li{grid-template-columns:minmax(0,1fr);gap:14px}.observation-timeline dl{padding-left:14px;border-left:1px solid var(--line)}
 .report-values{grid-template-columns:minmax(0,1fr)}
}
@media print{.report-additional details>summary{font-size:13px;color:#333}.report-values,.report-observation{break-inside:avoid}}
/* Nested replaced controls and scroll strips must not impose a WebKit min-content width. */
fieldset,.notice>div,.assessment-notes,.table-wrap,.intake-layout,.stack,.tabs,.step-nav,.test-list{min-width:0;min-inline-size:0;max-width:100%;box-sizing:border-box}
.notice>div,.badge{overflow-wrap:anywhere}
.assessment-toolbar{width:100%;min-width:0}
.tabs button{flex:0 0 auto}
input[type="date"]::-webkit-datetime-edit-fields-wrapper,input[type="time"]::-webkit-datetime-edit-fields-wrapper{padding:0;min-width:0;max-width:100%}
@media(max-width:1100px){.columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 .step-nav{display:flex;flex-wrap:nowrap;gap:8px}
 .step-nav button{flex:0 0 154px;min-width:154px;max-width:154px;white-space:normal}
 .step-nav button>span{min-width:0;overflow-wrap:anywhere}
 .step-nav .n,.step-nav .tick{flex-shrink:0}
 .test-list button{flex:0 0 160px;min-width:160px;max-width:160px}
 .assessment-toolbar>div{width:100%}
}
/* Pin visually hidden labels so flex static positioning cannot enlarge the WebKit page. */
.sr-only{top:0;left:0;clip-path:inset(50%)}
@media(max-width:760px){.sidebar{left:0;right:0;width:auto}.nav{width:100%;min-width:0}}
