/* Shared finishing rules. Keep the incumbent JD palette, typefaces and layout. */
:root{--focus-ring:#32624e;--control-line:#899c90}
::selection{background:#cfe0d2;color:#173f35}
.skip-link:not(:focus){clip-path:inset(50%);width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap}
input,textarea{caret-color:var(--green)}
:is(.form-input,.form-select)::placeholder{color:var(--muted);opacity:1}
#app :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible,
#modal-root :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible,
.auth-callback a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
#app .sidebar :is(button,a):focus-visible{outline-color:var(--gold)}
.form-input,.form-select{border-color:var(--control-line)}
.form-input:focus,.form-select:focus{border-color:var(--green)}
.page-heading p,.card-description,.customer-stage-heading>p{line-height:1.85}
.venue-banner .card-description{color:#526658}
.page-heading h1,.customer-wizard-intro h1,.customer-history-heading h1{letter-spacing:0;text-wrap:balance}
.page-eyebrow,.customer-eyebrow{display:none}
.page-heading{align-items:flex-start}
.page-heading h1{margin-bottom:8px}
.cell-sub,.form-help,.field small,.detail-label,.resource-config-summary{line-height:1.8}
.card,.card-body,.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}
.sidebar-close{display:none}
.table-wrap[data-scrollable=false]::before{display:none}
[data-scrollable=true]{scroll-padding-inline:16px;overscroll-behavior-x:contain}
.chart-svg text{fill:#556f60;font-size:12px}
.chart-data{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;font-size:13px}
.chart-data summary{color:var(--green);cursor:pointer;padding-block:8px}
.chart-data dl{margin:8px 0 0;display:grid;gap:0}
.chart-data dl>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.chart-data dt{color:var(--muted)}.chart-data dd{margin:0;font-variant-numeric:tabular-nums}
.toast{pointer-events:none}
body:has(.modal) .toast{bottom:max(96px,calc(env(safe-area-inset-bottom) + 96px))}
.customer-mock-card{background:linear-gradient(125deg,#345d49,#486f53);color:#fff}
.customer-mock-card span{opacity:1}.customer-mock-card small{color:#fff}
.customer-line-button{background:#07843b;border-color:#07843b}
.customer-line-button:hover{background:#066d32}
.customer-line-logo{color:#07843b}
.customer-line-binding-logo{background:#07843b}
@media(pointer:coarse){#app button,#modal-root button,#app summary,#modal-root summary{min-height:44px;touch-action:manipulation}#app .icon-btn,#modal-root .icon-btn{min-width:44px;min-height:44px}#app label:has(>input:is([type=checkbox],[type=radio])),#modal-root label:has(>input:is([type=checkbox],[type=radio])){display:flex;align-items:center;min-height:44px;min-width:44px;cursor:pointer}}
@media(max-width:1024px){.page-heading,.page-toolbar{flex-wrap:wrap}.heading-actions{max-width:100%}.toolbar-left,.toolbar-right{min-width:0;flex-wrap:wrap}}
@media(max-width:760px){
  .sidebar{width:min(300px,calc(100vw - 44px));padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .sidebar .brand{padding-right:48px}
  .sidebar-close{display:inline-flex;position:absolute;right:12px;top:max(16px,env(safe-area-inset-top));color:#e6eee8}
  .sidebar .nav-item{font-size:14px;min-height:48px}
  .role-switch-bar{gap:12px}.role-context{line-height:1.7}.role-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.role-controls>.customer-entry-btn{grid-column:1/-1}.role-controls .form-select{min-width:0;width:100%;max-width:none;padding-right:30px}.role-controls label:has([data-coach-switch]){grid-column:1/-1}
  #app :is(.btn,.customer-button),#modal-root .btn{font-size:14px}
  #app :is(.form-select,.form-input),#modal-root :is(.form-select,.form-input){font-size:16px}
  .page-heading h1{font-size:25px}.page-heading p,.customer-stage-heading>p{font-size:14px}.card-title{font-size:16px}.card-description{font-size:13px}
  .heading-actions{width:100%;flex-wrap:wrap}.heading-actions>.date-switch{flex:1}.date-switch input{flex:1;min-width:0}.page-toolbar .toolbar-right{width:100%;justify-content:flex-start}
  .customer-stage{padding:24px 18px}.customer-stage-heading h2{font-size:23px}.customer-progress{padding:16px 12px;gap:6px}.customer-progress button{flex-direction:column;justify-content:flex-start;text-align:center;gap:8px;min-width:0}.customer-progress button strong{font-size:12px;line-height:1.55}.customer-progress button:not(:last-child)::after{display:none}
  .customer-progress button>strong{max-width:100%;white-space:normal;text-wrap:balance}
  .customer-date-chips{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.customer-date-chip{min-height:82px}.customer-date-chip>span,.customer-date-chip>small{font-size:12px}
  .customer-text-button{font-size:13px}.customer-stage-help,.customer-help,.customer-stage-footer p{font-size:13px;line-height:1.8}.customer-stage-footer{align-items:center}.customer-stage-footer>.customer-button{min-width:140px}
  .customer-course-info p,.customer-booking-info>p,.customer-booking-price>span,.customer-booking-note{font-size:13px;line-height:1.8}.customer-account button{font-size:13px}.customer-header{padding-inline:20px}.customer-nav button{font-size:14px}.customer-login-note,.customer-login-card>p{font-size:13px}
  .customer-time-chip{min-height:72px}.customer-time-chip>span{font-size:12px}.customer-confirmation-card>small,.customer-request-history article p{font-size:13px}
  .modal{max-height:calc(100dvh - 16px)}.modal-header h2{font-size:20px;line-height:1.5}.modal-body{padding:20px 18px}.modal-body p,.modal-body .form-help,.modal-body .field-label{font-size:14px}.modal-footer{padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .step-course-tabs [role=tab]{font-size:14px;min-height:48px;padding-inline:12px}.step-date-row{gap:12px}.step-module-checks label,.step-terms label{min-height:44px;align-items:center}.step-lesson-list li{font-size:13px}
  .toast{font-size:13px;line-height:1.7;bottom:max(16px,env(safe-area-inset-bottom))}
  .board-footer{gap:12px;line-height:1.8}.customer-footer{font-size:12px}
}
@media(max-width:420px){.page-heading{gap:18px}.customer-stage-footer>.customer-button{width:100%;margin-left:0}.customer-progress button strong{font-size:12px}.account-card-top>div:nth-child(2){min-width:0}.account-card-top>.badge{margin-left:0}.step-card-heading{overflow-wrap:anywhere}}
@media(max-width:360px){.customer-date-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-progress{padding-inline:8px;gap:2px}}
@media(prefers-reduced-motion:reduce){.sidebar,.nav-item,.btn,.customer-button,.step-type-card{transition:none;scroll-behavior:auto}}
