/* Owner task layout. Colours inherit the application’s accessible theme tokens. */
.owner-intro { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; }
.owner-intro h2 { margin:0 0 .5rem; }
.owner-intro p { max-width:65ch; line-height:1.6; }
.owner-setup-nav { display:flex; flex-wrap:nowrap; gap:.5rem; margin:1rem 0; overflow-x:auto; overscroll-behavior-inline:contain; padding-bottom:4px; scrollbar-width:thin; }
.owner-setup-nav button { min-height:44px; flex:0 0 auto; }
.owner-setup-nav button[aria-pressed="true"] { text-decoration:underline; text-underline-offset:6px; font-weight:700; }
.setup-task-list { padding:0; list-style:none; margin:1rem 0; }
.setup-task { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1.1rem 0; border-bottom:1px solid var(--border, #485261); }
.setup-task h3 { margin:0 0 .4rem; font-size:1rem; }
.setup-task p { margin:.35rem 0 0; max-width:72ch; line-height:1.55; }
.setup-task .setup-status { display:block; font-size:.9rem; font-weight:600; margin:.3rem 0; }
.owner-inline-status { display:block; min-height:1.5em; margin:.6rem 0; line-height:1.5; }
.owner-note { padding:1rem; border:1px solid var(--border, #485261); border-radius:8px; line-height:1.6; margin:1rem 0; }
.owner-choice { display:flex; align-items:center; gap:.75rem; min-height:44px; padding:.3rem 0; }
.owner-choice input { width:20px; height:20px; }
.owner-form-group { margin:1rem 0; }
.owner-form-group summary { padding:.8rem 0; cursor:pointer; font-size:1rem; font-weight:600; }
.owner-address { display:block; overflow-wrap:anywhere; line-height:1.5; margin:.5rem 0; }
#profileDirtyStatus { font-weight:600; }
.trainee-profile-heading { margin:1rem 0 .75rem; padding-bottom:.55rem; border-bottom:1px solid var(--border, #485261); font-size:1rem; }
#onboardingSection:focus, .owner-form-group:focus { outline:2px solid currentColor; outline-offset:4px; }
@media(max-width:600px) { .setup-task { grid-template-columns:minmax(0,1fr); gap:.6rem; } .setup-task .btn { justify-self:start; } .owner-intro .btn { width:100%; } }

.owner-account-menu { position:relative; }
.owner-account-menu summary { cursor:pointer; }
.owner-menu-content { position:absolute; right:0; z-index:40; display:grid; gap:.75rem; min-width:240px; padding:1rem; border:1px solid var(--control-border,var(--border)); border-radius:10px; background:var(--panel,var(--bg)); color:var(--text); box-shadow:0 12px 24px #0004; }
.owner-menu-content .lang-toggle { display:flex; gap:.5rem; }
#verifyBanner { max-width:1200px; margin:1rem auto; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.owner-setup-nav { max-width:1200px; margin:1rem auto; padding:0 1.5rem; }
@media(max-width:600px) { #verifyBanner { margin:.75rem; } .owner-setup-nav { padding:0 .75rem; } }

/* Keep the account popup above sticky view tabs, including its language controls. */
body.owner-dashboard .topbar:has(#ownerMenu[open]) { z-index:30; }
#verifyBanner > [role="status"] { flex:1 1 12rem; line-height:1.45; }
#verifyBanner > .btn { flex:0 0 auto; }

/* Only profile fields scroll: save, close and save errors remain in view. */
#traineeModal .trainee-modal { display:flex; flex-direction:column; width:100%; max-height:min(760px,calc(100vh - 24px)); max-height:min(760px,calc(100dvh - 24px)); overflow:hidden; }
#traineeModal .modal-header, #traineeModal .modal-footer { flex:none; }
#traineeModal .modal-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:0 4px 4px; }
#traineeModal .modal-body > .owner-note:first-child { margin-top:0; }
#traineeModal .modal-footer { margin-top:12px; padding-top:12px; background:var(--surface); }
#traineeModal #profileDirtyStatus, #traineeModalError { flex-basis:100%; margin:0; }
#traineeModal #profileDirtyStatus:empty, #traineeModalError:empty { display:none; }

@media(max-width:600px) {
  body.owner-dashboard .topbar { padding:10px 12px; min-height:0; gap:8px; }
  body.owner-dashboard .topbar > div:first-child { min-width:0; }
  body.owner-dashboard .topbar .brand-name { font-size:20px; line-height:1.25; }
  body.owner-dashboard .topbar .brand-logo { height:34px !important; }
  body.owner-dashboard .topbar .brand-sub { display:none; }
  body.owner-dashboard .topbar .nav { display:grid; grid-template-columns:1fr 1fr; width:100%; gap:4px; }
  body.owner-dashboard .topbar .nav > .nav-btn, body.owner-dashboard #ownerMenu > summary { padding:8px; font-size:13px; width:100%; }
  #ownerMenu { min-width:0; grid-column:1 / -1; }
  #verifyBanner { margin:8px 12px; padding:8px 10px; gap:8px; font-size:14px; }
  #verifyBanner > [role="status"] { flex-basis:10rem; }
  #verifyBanner > .btn { padding:8px; }
  #traineeModal { padding:12px; }
  #traineeModal .trainee-modal { padding:16px; }
  #traineeModal .modal-header h3 { margin-bottom:12px; }
  #traineeModal .modal-body .owner-note { padding:10px; font-size:14px; }
}

/* A stock count belongs to its equipment item, separately from availability. */
#equipList { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); align-items:stretch; gap:8px; }
#equipList .equip-cat-header { grid-column:1 / -1; }
#equipList .equipment-stock-row { display:grid; grid-template-columns:minmax(0,1fr) 76px; align-items:center; gap:12px; padding:12px; cursor:default; user-select:auto; }
#equipList .equipment-toggle { display:flex; align-items:center; gap:10px; min-height:44px; min-width:0; cursor:pointer; overflow-wrap:anywhere; }
#equipList .equipment-quantity { display:grid; gap:4px; min-width:0; font-size:14px; }
#equipList .equipment-quantity input { width:100%; min-width:0; }

#equipList .equipment-stock-row { background:var(--input-bg); border-color:var(--control-border); }
#equipList .equipment-stock-row:has([data-equipment-enabled]:checked) { background:var(--accent-soft); border-color:var(--accent); }
#equipList .equipment-limit { grid-column:1 / -1; display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; line-height:1.4; cursor:pointer; }

/* Setup remains a short, scannable checklist whether it is opened from onboarding or settings. */
.owner-setup-nav { gap:8px; scroll-padding-inline:12px; }
.owner-setup-nav button { border-color:transparent; color:var(--muted); }
.owner-setup-nav button:hover { background:var(--surface-hover); color:var(--text); }
.owner-setup-nav button[aria-pressed="true"] { border-color:var(--accent); background:var(--accent-soft); color:var(--accent); text-decoration:none; box-shadow:inset 0 -2px 0 var(--accent); }
.setup-task-list { border-top:1px solid var(--border); }
.setup-task { padding:16px 4px; transition:background .14s ease,border-color .14s ease; }
.setup-task:hover, .setup-task:focus-within { margin-inline:-10px; padding-inline:14px; border-radius:10px; background:var(--input-bg); }
.setup-task h3 { font-size:16px; letter-spacing:-.01em; }
.setup-task p { color:var(--muted); font-size:14px; }
.setup-task .setup-status { width:max-content; max-width:100%; padding:4px 8px; border:1px solid var(--border); border-radius:999px; color:var(--muted); font-size:12px; line-height:1.25; }
.setup-task .btn { min-width:96px; }
#onboardingSection[aria-busy="true"] { opacity:.76; }
#onboardingSection[aria-busy="true"] .setup-task-list::before { content:''; display:block; width:16px; height:16px; margin:12px 0; border:2px solid var(--border); border-top-color:var(--accent); border-radius:50%; animation:owner-spin .8s linear infinite; }
#onboardingChoices, #verifyBanner .owner-note { background:var(--input-bg); border-color:var(--control-border); }
#verifyBanner { padding:12px 14px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
#verifyBanner > .btn[aria-busy="true"], #onboardingRefresh[aria-busy="true"] { cursor:wait; }
#verifyBanner > .btn[aria-busy="true"]::before, #onboardingRefresh[aria-busy="true"]::before { content:''; display:inline-block; width:12px; height:12px; margin-right:7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; vertical-align:-1px; animation:owner-spin .8s linear infinite; }
@keyframes owner-spin { to { transform:rotate(360deg); } }
@media(max-width:600px) { .setup-task:hover, .setup-task:focus-within { margin-inline:0; padding-inline:4px; background:transparent; } .owner-setup-nav { padding-bottom:8px; } .owner-setup-nav button { min-width:112px; } .setup-task .btn { width:100%; } }
@media(prefers-reduced-motion:reduce) { .setup-task { transition:none; } #onboardingSection[aria-busy="true"] .setup-task-list::before, #verifyBanner > .btn[aria-busy="true"]::before, #onboardingRefresh[aria-busy="true"]::before { animation:none; } }

.owner-menu-content { width:300px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 150px); overflow-y:auto; overscroll-behavior:contain; }
.owner-menu-content > .nav-link { min-height:44px; display:flex; align-items:center; padding:6px 8px; border-radius:6px; overflow-wrap:anywhere; }
.owner-menu-content > .nav-link:hover { background:var(--accent-soft); }
.owner-menu-content > span { font-size:.8rem; color:var(--muted); padding-top:8px; border-top:1px solid var(--border); }
#accountStatus { margin:0; color:var(--danger); font-size:.875rem; }
.setup-task.is-complete .setup-status { color:var(--success); border-color:color-mix(in srgb,var(--success) 45%,var(--border)); background:color-mix(in srgb,var(--success) 8%,transparent); }
.setup-task.is-complete .setup-status::before { content:'✓ '; }
#onboardingSummary { font-weight:650; }
#onboardingChoices h3 { margin-top:0; }
#traineeModal .modal-header h3 { line-height:1.3; overflow-wrap:anywhere; }
body.owner-dashboard:has(#traineeModal:not([hidden])) { overflow:hidden; }
#traineeModal .trainee-profile-heading + p { margin-top:0; line-height:1.5; }
#traineeModal .modal-body .owner-note { border-left:3px solid var(--accent); }
.owner-dashboard .btn[aria-busy="true"] { cursor:wait; opacity:.65; }
.owner-account-disclosure { margin:14px 0 2px; color:var(--muted); font-size:.8rem; line-height:1.5; }
.owner-account-disclosure a { text-decoration:underline; }
.owner-public-footer { display:grid; justify-items:center; gap:6px; }
.owner-public-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 12px; }
.owner-public-footer a { display:inline-flex; align-items:center; min-height:44px; color:inherit; }
@media(max-width:600px) {
  #traineeModal .modal-footer > .btn { flex:1 1 110px; }
  #onboardingChoices .btn { width:100%; white-space:normal; }
  .owner-setup-nav button { max-width:230px; white-space:normal; }
}

/* Keep task actions together and let identity settings use the available width. */
.owner-intro-actions { display:flex; flex-wrap:wrap; gap:10px; }
#todayIntroSection .stat-row { margin-top:20px; }
.owner-identity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.owner-identity-grid > div { min-width:0; }
.owner-identity-grid h3:first-child { margin-top:0; }
.owner-public-info { grid-column:1/-1; border-top:1px solid var(--border); padding-top:20px; }
.owner-public-info > label { display:flex; align-items:flex-start; gap:10px; margin:14px 0; }
.owner-public-info > label input { flex:0 0 auto; width:auto; margin-top:3px; }
#bookingServiceSettings { margin-bottom:20px; }
#bookingServiceSettings > summary { min-height:44px; padding:10px 0; cursor:pointer; }
@media(max-width:650px) { .owner-identity-grid { grid-template-columns:minmax(0,1fr); } .owner-intro-actions { width:100%; } }

.owner-name-actions { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; }
.owner-name-actions .field-group { flex:1 1 260px; margin-bottom:0; }
.owner-name-actions .btn { margin-bottom:0; }
#dashGrid > .panel { scroll-margin-top:88px; }
/* Module descriptions stay close to the controls without looking like alerts. */
#modulesSection > .owner-note {padding:0;border:0;background:transparent;margin:10px 0 14px;line-height:1.5;color:var(--health-muted,var(--muted));}
