/* Profile-scoped styles keep the plan reader and account pages independent. */
.profile-page {
  --pf-text:#242a30; --pf-secondary:#5d646b; --pf-subtle:#676b70;
  --pf-border:#d4d6d8; --pf-divider:#e9e8e5; --pf-field-border:#898e92;
  --pf-surface:#fff; --pf-tint:#f7f7f5; --pf-accent:#b34f22;
  --pf-accent-soft:#fff2e9; --pf-green:#276849; --pf-danger:#a3332e;
  color:var(--pf-text); font-size:15px; line-height:1.6;
}
.profile-page [hidden] { display:none!important; }
.profile-page button,.profile-page summary,.profile-page select,.profile-page label:has(input[type=checkbox]),.profile-page label:has(input[type=radio]) { cursor:pointer; }
.profile-page :is(button,input,textarea,select,a,summary):focus-visible { outline:3px solid var(--pf-accent); outline-offset:3px; }
.profile-page :is(input,select,textarea,button,summary,a) { scroll-margin-top:110px; scroll-margin-bottom:140px; }
.profile-page svg { width:18px; height:18px; flex:none; }
.pf-page-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:32px; }
.pf-eyebrow { color:var(--pf-accent); font-size:11px; font-weight:750; letter-spacing:1.8px; }
.pf-page-heading h1 { font-size:34px; line-height:1.25; letter-spacing:-.6px; margin:10px 0; text-wrap:balance; }
.pf-page-heading p { margin:0; color:var(--pf-secondary); font-size:15px; }
.pf-back { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:13px; text-decoration:none; color:var(--pf-secondary); white-space:nowrap; }
.pf-back:hover { color:var(--pf-accent); }
.pf-layout { display:grid; grid-template-columns:216px minmax(0,1fr); gap:36px; align-items:start; }
.pf-aside { align-self:stretch; }
.pf-aside-inner { position:sticky; top:104px; }
.pf-aside-label { display:block; color:var(--pf-secondary); font-size:12px; margin:0 0 14px; }
.pf-section-nav { display:grid; gap:4px; }
.pf-section-nav button { display:flex; align-items:center; gap:12px; text-align:left; border:0; border-radius:10px; padding:12px 10px; min-height:48px; color:var(--pf-secondary); background:transparent; font-size:14px; }
.pf-section-nav button:hover,.pf-section-nav button:focus-visible { background:var(--pf-surface); color:var(--pf-text); }
.pf-nav-number { font-size:12px; color:var(--pf-subtle); font-variant-numeric:tabular-nums; }
.pf-nav-status { margin-left:auto; display:grid; place-items:center; width:17px; height:17px; border:1px solid var(--pf-border); border-radius:50%; }
.pf-nav-status.is-complete { color:var(--pf-green); background:#e9f2ec; border-color:transparent; }
.pf-nav-status svg { width:12px; height:12px; }
.pf-outline { border-top:1px solid var(--pf-border); padding:24px 10px 0; margin-top:24px; }
.pf-outline .pf-aside-label { margin-bottom:8px; }
.pf-outline strong { display:block; font-size:17px; overflow-wrap:anywhere; }
.pf-outline p { font-size:13px; color:var(--pf-secondary); margin:6px 0; }
.pf-outline-rule { width:30px; height:2px; background:var(--pf-accent); margin:22px 0; }
.pf-small { display:flex; align-items:center; gap:7px; color:var(--pf-secondary); font-size:12px; }
.pf-small svg { width:13px; height:13px; }
.pf-form { display:grid; gap:20px; min-width:0; margin:0; padding-bottom:12px; }
.pf-card { border:1px solid #eeece8; border-radius:18px; background:var(--pf-surface); padding:28px 30px; box-shadow:0 4px 20px #343c4405; scroll-margin-top:100px; min-width:0; }
.pf-card:focus { outline:none; }
.pf-card:focus-visible { outline:2px solid var(--pf-accent); outline-offset:3px; }
.pf-card-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:24px; }
.pf-section-number { display:grid; place-items:center; height:32px; width:32px; flex:none; border:1px solid #e9d9ce; border-radius:9px; color:var(--pf-accent); font-size:12px; font-variant-numeric:tabular-nums; background:#fff8f2; }
.pf-card-heading h2 { font-size:18px; letter-spacing:.1px; font-weight:750; line-height:1.5; margin:0; }
.pf-card-heading p { margin:3px 0 0; color:var(--pf-secondary); font-size:13px; }
.pf-section-meta { margin-left:auto; font-size:11px; color:var(--pf-secondary); white-space:nowrap; line-height:32px; }
.pf-grid { display:grid; gap:18px 20px; }
.pf-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pf-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pf-field { min-width:0; display:flex; flex-direction:column; gap:7px; }
.pf-field label,.pf-fieldset legend,.pf-condition legend,.pf-condition-detail label { font-size:14px; font-weight:600; line-height:1.5; }
.pf-optional { margin-left:8px; color:var(--pf-subtle); font-size:12px; font-weight:400; }
.pf-required { color:var(--pf-accent); font-size:12px; margin-left:5px; }
.pf-input-wrap { position:relative; }
.pf-field :is(input,select,textarea),.pf-condition-detail textarea { width:100%; min-width:0; min-height:46px; border:1px solid var(--pf-field-border); border-radius:9px; background:var(--pf-surface); color:var(--pf-text); font-size:15px; padding:10px 12px; transition:border-color .16s,box-shadow .16s; }
.pf-field :is(input,select,textarea):hover,.pf-condition-detail textarea:hover { border-color:var(--pf-secondary); }
.pf-field :is(input,select,textarea):focus,.pf-condition-detail textarea:focus { border-color:var(--pf-accent); box-shadow:0 0 0 3px #b34f2210; }
.pf-field textarea,.pf-condition-detail textarea { min-height:86px; resize:vertical; line-height:1.65; }
.pf-field input::placeholder,.pf-field textarea::placeholder,.pf-condition-detail textarea::placeholder { color:var(--pf-subtle); opacity:1; }
.pf-input-wrap:has(.pf-unit) input { padding-right:48px; }
.pf-unit { position:absolute; right:13px; top:12px; color:var(--pf-secondary); font-size:13px; pointer-events:none; }
.pf-hint { display:block; font-size:12px; color:var(--pf-secondary); margin:0; line-height:1.65; }
.pf-fieldset { padding:0; margin:24px 0 0; border:0; min-width:0; }
.pf-fieldset legend { padding:0; margin-bottom:9px; }
.pf-fieldset > .pf-hint { margin:-2px 0 12px; }
.pf-choices { display:flex; flex-wrap:wrap; gap:8px; }
.pf-choice { position:relative; min-width:0; }
.pf-choice input { position:absolute; width:1px; height:1px; opacity:0; margin:0; }
.pf-choice > span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:9px 15px; border:1px solid var(--pf-field-border); border-radius:9px; font-size:13px; color:var(--pf-secondary); background:var(--pf-surface); transition:background-color .16s,border-color .16s; overflow-wrap:anywhere; }
.pf-choice:hover > span { border-color:var(--pf-accent); }
.pf-choice input:checked + span { color:var(--pf-accent); border-color:var(--pf-accent); background:var(--pf-accent-soft); font-weight:650; }
.pf-choice input:checked + span::before { content:'✓'; font-size:12px; margin-right:6px; }
.pf-choice input:focus-visible + span { outline:3px solid var(--pf-accent); outline-offset:3px; }
.pf-choice input[aria-invalid=true] + span { border-color:var(--pf-danger); }
.pf-schedule { margin-top:18px; border-block:1px solid var(--pf-divider); padding:14px 0; }
.pf-schedule-heading { display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; font-weight:600; }
.pf-schedule-heading .pf-optional { margin-left:auto; }
.pf-week-day input[type=checkbox] { accent-color:var(--pf-accent); width:18px; height:18px; flex:none; }
#profileSchedule > .pf-hint { margin:8px 0 14px; }
.pf-week-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.pf-week-day { border:1px solid var(--pf-border); border-radius:9px; padding:0 4px 7px; background:var(--pf-tint); min-width:0; }
.pf-week-day:has(input:checked) { background:var(--pf-accent-soft); border-color:var(--pf-accent); }
.pf-week-day label { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:3px; min-height:44px; font-size:12px; }
.pf-week-day label input { width:14px; height:14px; margin:0; }
.pf-week-day > div { position:relative; }
.pf-week-day input[type=number] { width:100%; padding:7px 19px 7px 6px; border:1px solid var(--pf-field-border); border-radius:6px; font-size:13px; min-height:44px; color:var(--pf-text); background:var(--pf-surface); appearance:textfield; -moz-appearance:textfield; }
.pf-week-day input::-webkit-inner-spin-button,.pf-input-wrap:has(.pf-unit) input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.pf-week-day > div > span { position:absolute; right:5px; top:11px; color:var(--pf-subtle); font-size:11px; pointer-events:none; }
.profile-page input:disabled,.profile-page select:disabled { color:var(--pf-secondary); background:#efefed; border-color:var(--pf-border); cursor:not-allowed; }
.pf-disclosure { margin-top:16px; border-top:1px solid var(--pf-divider); }
.pf-disclosure > summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:48px; color:var(--pf-secondary); font-size:13px; }
.pf-disclosure > summary::-webkit-details-marker { display:none; }
.pf-disclosure > summary > svg { margin-left:auto; width:16px; height:16px; transition:transform .16s; }
.pf-disclosure-label { color:var(--pf-text); font-size:14px; font-weight:600; }
.pf-disclosure-hint { color:var(--pf-secondary); font-size:13px; }
.pf-disclosure[open] > summary > svg { transform:rotate(180deg); }
.pf-disclosure-body { padding:4px 0 0; }
.pf-conditions { margin-top:22px; }
.pf-condition { border:0; border-top:1px solid var(--pf-divider); padding:15px 0; margin:0; min-width:0; }
.pf-condition legend { float:left; width:100%; padding:0; }
.pf-condition-line { clear:both; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.pf-condition-line > p { margin:0; font-size:12px; line-height:1.7; color:var(--pf-secondary); }
.pf-binary { flex:none; flex-wrap:nowrap; }
.pf-binary .pf-choice span { min-width:64px; min-height:44px; }
.pf-condition-detail { padding-top:12px; display:grid; gap:6px; }
.pf-condition-detail label { font-size:12px; color:var(--pf-secondary); }
.pf-actions { position:sticky; bottom:16px; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; border:1px solid var(--pf-border); border-radius:14px; background:var(--pf-surface); box-shadow:0 6px 30px #242a3015; }
.pf-actions > div { min-width:0; }
.pf-actions #profileSaveStatus { display:block; color:var(--pf-text); font-size:13px; overflow-wrap:anywhere; }
.pf-actions small { display:block; font-size:12px; color:var(--pf-secondary); margin-top:3px; }
.pf-save { display:flex; align-items:center; justify-content:center; gap:18px; border:1px solid var(--pf-accent); border-radius:9px; background:var(--pf-accent); color:#fff; min-height:46px; padding:10px 20px; font-size:14px; font-weight:650; white-space:nowrap; }
.pf-save:hover { background:#913b18; }
.pf-save:disabled { opacity:.7; cursor:wait; }
.pf-error { color:var(--pf-danger); font-size:12px; display:block; margin-top:5px; }
.pf-error-summary { border:1px solid #dca09c; border-radius:12px; background:#fff6f4; padding:16px 20px; color:var(--pf-danger); }
.pf-error-summary ul { margin:8px 0 0; padding-left:18px; }
.pf-error-summary button { padding:5px 0; text-align:left; border:0; font-size:13px; color:inherit; background:transparent; text-decoration:underline; }
.profile-page [aria-invalid=true]:not([type=radio]):not([type=checkbox]) { border-color:var(--pf-danger); }
@media(max-width:1050px) {
  .pf-layout { grid-template-columns:176px minmax(0,1fr); gap:20px; }
  .pf-card { padding:24px; }
  .pf-grid { gap:16px; }
  .pf-week-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:800px) {
  .pf-page-heading { margin-bottom:20px; gap:12px; }
  .pf-page-heading h1 { font-size:29px; }
  .pf-back { font-size:12px; }
  .pf-layout { display:block; }
  .pf-aside-inner { position:static; }
  .pf-aside-label,.pf-outline { display:none; }
  .pf-section-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-bottom:20px; border-bottom:1px solid var(--pf-border); }
  .pf-section-nav button { justify-content:center; padding:10px 3px; gap:5px; font-size:12px; min-width:0; }
  .pf-nav-number { font-size:10px; }
  .pf-nav-status { display:none; }
  .pf-field :is(input,select,textarea),.pf-condition-detail textarea { font-size:16px; }
  .pf-week-day input[type=number] { font-size:16px; }
  .pf-card { scroll-margin-top:84px; }
  .pf-actions { bottom:max(8px,env(safe-area-inset-bottom)); }
}
@media(max-width:480px) {
  .pf-page-heading { align-items:flex-start; }
  .pf-page-heading > div { min-width:0; }
  .pf-page-heading h1 { font-size:27px; }
  .pf-page-heading p { font-size:13px; }
  .pf-eyebrow { font-size:9px; letter-spacing:1px; }
  .pf-back { font-size:11px; gap:4px; }
  .pf-back svg { width:14px; }
  .pf-card { padding:20px 16px; border-radius:14px; }
  .pf-card-heading { gap:10px; margin-bottom:20px; }
  .pf-card-heading h2 { font-size:17px; }
  .pf-card-heading p { font-size:12px; }
  .pf-section-meta { font-size:10px; }
  .pf-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
  .pf-grid-three { gap:10px; }
  .pf-grid-three .pf-field label { font-size:13px; }
  .pf-grid-two .pf-field label { font-size:13px; }
  .pf-grid-three .pf-input-wrap input { padding-left:8px; padding-right:28px; }
  .pf-grid-three .pf-unit { right:8px; font-size:11px; top:13px; }
  .pf-grid-three .pf-optional { display:block; margin:0; }
  .pf-disclosure-body .pf-grid-three { grid-template-columns:1fr; }
  .pf-disclosure-body .pf-optional { display:inline; margin-left:8px; }
  .pf-choice > span { padding:9px 12px; }
  .pf-condition-line { gap:10px; }
  .pf-condition-line > p { max-width:175px; }
  .pf-binary .pf-choice > span { min-width:52px; padding-inline:10px; }
  .pf-actions { padding:12px; gap:10px; }
  .pf-actions #profileSaveStatus { font-size:12px; }
  .pf-actions small { font-size:10px; }
  .pf-save { padding-inline:14px; gap:8px; font-size:13px; }
  body:has(.profile-page) .topbar { gap:10px; padding-inline:12px; }
  body:has(.profile-page) .brand { gap:6px; }
  body:has(.profile-page) #accountChip .btn { padding:10px 8px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .profile-page * { transition:none!important; animation:none!important; scroll-behavior:auto!important; } }
