/* Owner workspace. Uses the shared GatherHelm theme tokens. */
.bo-body { min-height: 100vh; }
.bo-topbar { min-height: 84px; padding: 18px 34px; border-bottom: 1px solid var(--line); display: flex; gap: 24px; align-items: center; background: var(--surface); }
.bo-owner-label, .bo-eyebrow { color: var(--accent-text); font-size: 10px; font-weight: 700; letter-spacing: 1.8px; }
.bo-owner-label { border-left: 1px solid var(--line); padding-left: 24px; }
.bo-topbar-actions { margin-left: auto; display: flex; gap: 24px; align-items: center; font-size: 13px; color: var(--muted); }
.bo-account-compact { display: none; }
.bo-topbar-actions a:hover, .bo-return:hover { color: var(--accent-text); }
.bo-layout { display: grid; grid-template-columns: 242px minmax(0, 1fr); max-width: 1680px; margin: auto; }
.bo-sidebar { padding: 36px 20px 24px; min-height: calc(100vh - 84px); background: var(--sidebar); border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.bo-sidebar-intro { padding: 0 16px; }
.bo-sidebar h1 { font-size: 30px; font-weight: 550; letter-spacing: -1px; margin: 12px 0 14px; }
.bo-sidebar p { font-size: 12px; }
.bo-navigation { display: grid; gap: 8px; margin-top: 38px; }
.bo-nav { display: flex; gap: 12px; align-items: center; background: transparent; color: var(--muted); padding: 13px 16px; border-radius: 9px; text-align: left; font-size: 13px; font-weight: 600; }
.bo-nav:hover { background: var(--surface-2); color: var(--ink); }
.bo-nav.active { background: var(--accent-soft); color: var(--accent-text); box-shadow: inset 3px 0 var(--accent); }
.bo-nav svg { width: 18px; height: 18px; }
.bo-sidebar-footer { margin-top: auto; padding: 42px 12px 0; display: flex; gap: 10px; align-items: center; min-width: 0; }
.bo-sidebar-footer strong { display: block; font-size: 12px; overflow-wrap: anywhere; }
.bo-sidebar-footer small { display: block; font-size: 11px; color: var(--muted); }
.bo-avatar { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; border-radius: 50%; color: var(--accent-text); background: var(--accent-soft); font-weight: 600; }
.bo-main { padding: 38px clamp(20px, 3.1vw, 48px); min-width: 0; }
.bo-page-heading { display: flex; gap: 20px; justify-content: space-between; align-items: center; margin-bottom: 25px; }
.bo-page-heading h2 { font-size: 34px; letter-spacing: -1px; margin: 8px 0 10px; }
.bo-page-heading p { font-size: 14px; }
.bo-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.bo-stat { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 18px 22px; }
.bo-stat span { display: block; color: var(--muted); font-size: 11px; }
.bo-stat strong { display: block; margin-top: 6px; font-size: 28px; font-weight: 550; line-height: 1.2; }
.bo-runtime-note { display: flex; gap: 10px; align-items: flex-start; background: var(--accent-soft); border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; margin-bottom: 24px; }
.bo-runtime-note svg { color: var(--accent-text); width: 17px; height: 17px; margin-top: 2px; }
.bo-runtime-note p { font-size: 12px; color: var(--accent-text); }
.bo-section { display: grid; gap: 22px; }
.bo-card-list { display: grid; gap: 14px; }
.bo-panel, .bo-customer, .bo-server { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; min-width: 0; }
.bo-panel-heading { display: flex; gap: 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 23px; }
.bo-panel-heading h3 { margin: 5px 0 8px; font-size: 20px; }
.bo-panel-heading p { font-size: 13px; max-width: 650px; }
.bo-card-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; margin-bottom: 18px; }
.bo-card-heading .bo-card-title { flex: 1; min-width: 0; }
.bo-card-heading h3 { font-size: 18px; overflow-wrap: anywhere; margin-bottom: 4px; }
.bo-card-heading p { font-size: 12px; }
.bo-card-icon { background: var(--surface-2); color: var(--accent-text); border-radius: 10px; display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; }
.bo-badge { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--line); border-radius: 30px; background: var(--surface-2); color: var(--muted); padding: 4px 10px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.bo-badge.success { color: var(--success); background: var(--success-soft); }
.bo-badge.warning { color: var(--warning); background: var(--warning-bg); }
.bo-badge.accent { color: var(--accent-text); background: var(--accent-soft); }
.bo-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; }
.bo-detail-grid dt { color: var(--muted); font-size: 11px; margin-bottom: 3px; }
.bo-detail-grid dd { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.bo-detail-grid .bo-badge, .bo-pills .bo-badge { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.bo-access-details { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.bo-access-details summary { font-size: 12px; color: var(--accent-text); cursor: pointer; }
.bo-access-module { margin-top: 18px; }
.bo-access-module h4 { font-size: 13px; margin-bottom: 8px; }
.bo-access-module .bo-feature-row { padding-block: 9px; }
.bo-access-module .bo-feature-row strong, .bo-feature-row label { overflow-wrap: anywhere; }
.bo-id { font-family: ui-monospace, Consolas, monospace; font-size: 11px; color: var(--muted); overflow-wrap: anywhere; }
.bo-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.bo-module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.bo-module { padding: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); min-width: 0; }
.bo-module .bo-card-title { min-width: 100px; }
.bo-module ul { padding-left: 17px; margin: 14px 0 0; color: var(--muted); font-size: 12px; }
.bo-module li + li { margin-top: 5px; }
.bo-editor { border-top: 2px solid var(--accent); }
.bo-editor form { display: grid; gap: 18px; }
form.bo-editor { display:grid; gap:18px; padding-top:18px; }
.bo-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.bo-editor label, .bo-revoke label { display: grid; gap: 7px; font-size: 12px; font-weight: 600; min-width: 0; }
.bo-field-note { font-size: 10px; font-weight: 400; color: var(--muted); }
.bo-editor input, .bo-editor select, .bo-editor textarea, .bo-revoke input { width: 100%; min-width: 0; border: 1px solid var(--line); background: var(--bg); color: var(--ink); border-radius: 8px; min-height: 44px; padding: 9px 12px; font-size: 13px; }
.bo-editor textarea { resize: vertical; }
.bo-feature-fieldset { padding: 15px; margin: 0; border: 1px solid var(--line); border-radius: 9px; min-width: 0; }
.bo-feature-fieldset legend { padding: 0 7px; font-size: 12px; color: var(--muted); }
.bo-feature-row { display: grid; grid-template-columns: minmax(0, 1fr) 155px; gap: 16px; align-items: center; padding: 8px 0; }
.bo-feature-row > div { min-width: 0; overflow-wrap: anywhere; }
.bo-feature-row + .bo-feature-row { border-top: 1px solid var(--line); }
.bo-feature-row strong { font-size: 12px; font-weight: 500; }
.bo-feature-row small { display: block; color: var(--muted); font-size: 11px; }
.bo-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bo-editor .bo-checkbox { display: flex; align-items: flex-start; gap: 9px; font-weight: 400; }
.bo-editor .bo-checkbox input { width: 17px; height: 17px; min-height: auto; margin: 2px 0 0; padding: 0; flex: 0 0 auto; accent-color: var(--accent); }
.bo-form-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding-top: 4px; }
.bo-form-actions > span { flex: 1; min-width: 120px; font-size: 12px; color: var(--muted); }
.bo-help { font-size: 12px; }
.bo-preview { margin-top: 22px; padding: 20px; border: 1px solid var(--accent); border-radius: 10px; background: var(--accent-soft); overflow-wrap: anywhere; }
.bo-preview h4 { font-size: 15px; margin-bottom: 10px; }
.bo-preview p, .bo-preview li { font-size: 12px; }
.bo-preview ul { padding-left: 18px; margin-bottom: 0; }
.bo-empty { padding: 35px 20px; border: 1px dashed var(--line); border-radius: 10px; text-align: center; }
.bo-empty strong { display: block; font-size: 15px; margin-bottom: 7px; }
.bo-empty p { font-size: 12px; max-width: 500px; margin: auto; }
.bo-loading { padding: 30px; }
.bo-record { display: grid; gap: 12px; padding: 18px 0; border-top: 1px solid var(--line); }
.bo-record:first-child { padding-top: 0; border-top: 0; }
.bo-record:last-child { padding-bottom: 0; }
.bo-record-head { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; }
.bo-record h4 { font-size: 14px; overflow-wrap: anywhere; }
.bo-record p { font-size: 12px; overflow-wrap: anywhere; }
.bo-record-meta { display: flex; gap: 8px 22px; flex-wrap: wrap; font-size: 11px; color: var(--muted); }
.bo-revoke summary { cursor: pointer; font-size: 12px; color: var(--danger); }
.bo-revoke form { display: flex; align-items: flex-end; gap: 10px; margin-top: 12px; }
.bo-revoke label { flex: 1; }
.bo-feedback { padding: 13px 17px; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 9px; color: var(--success); background: var(--success-soft); font-size: 13px; }
.bo-feedback.error { color: var(--danger); background: var(--surface); border-color: var(--danger); }
.bo-scope-note { padding: 26px 0 0; margin-top: 20px; border-top: 1px solid var(--line); color: var(--faint); font-size: 11px; }
.bo-locked { max-width: 630px; margin: 80px auto; padding: 0 24px; }
.bo-locked .bo-panel { padding: 38px; display: grid; justify-items: start; gap: 20px; }
.bo-locked h1 { font-size: 32px; letter-spacing: -1px; }
.bo-locked p { font-size: 14px; }
.bo-lock-icon { background: var(--accent-soft); color: var(--accent-text); padding: 12px; border-radius: 12px; }
.bo-return { font-size: 13px; margin-top: 10px; display: flex; gap: 10px; align-items: center; }
@media (min-width: 1600px) { .bo-layout { border-inline: 1px solid var(--line); } }
@media (max-width: 1100px) { .bo-layout { grid-template-columns: 205px minmax(0, 1fr); } .bo-main { padding: 30px 22px; } .bo-sidebar { padding-inline: 12px; } .bo-stat { padding: 15px; } }
@media (max-width: 800px) {
  .bo-topbar { padding: 16px 22px; gap: 15px; } .bo-topbar .brand { font-size: 21px; } .bo-owner-label { display: none; } .bo-topbar-actions { gap: 14px; } .bo-topbar-actions a { font-size: 11px; }
  .bo-layout { display: block; } .bo-sidebar { min-height: auto; padding: 14px 22px; border-right: 0; border-bottom: 1px solid var(--line); } .bo-sidebar-intro, .bo-sidebar-footer { display: none; }
  .bo-navigation { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; } .bo-nav { padding: 10px 12px; font-size: 11px; gap: 7px; } .bo-nav.active { box-shadow: none; }
  .bo-stats { gap: 10px; } .bo-stat { padding: 14px; } .bo-stat span { font-size: 10px; } .bo-stat strong { font-size: 24px; }
}
@media (max-width: 540px) {
  .bo-topbar { padding: 14px 16px; flex-wrap: wrap; } .bo-topbar-actions { gap: 12px; } .bo-account-full { display: none; } .bo-account-compact { display: inline; }
  .bo-sidebar { padding: 12px 14px; } .bo-navigation { gap: 5px; } .bo-nav { padding: 8px 9px; } .bo-nav svg { width: 15px; height: 15px; }
  .bo-main { padding: 26px 16px; } .bo-page-heading { align-items: flex-start; gap: 12px; } .bo-page-heading h2 { font-size: 28px; } .bo-page-heading p { font-size: 12px; }
  .bo-page-heading .button { min-height: 36px; padding: 7px 10px; font-size: 11px; } .bo-page-heading .button svg { display: none; }
  .bo-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bo-stat { padding: 14px 17px; }
  .bo-panel, .bo-customer, .bo-server, .bo-module { padding: 18px; } .bo-module-grid, .bo-form-grid, .bo-check-grid { grid-template-columns: 1fr; }
  .bo-panel-heading { gap: 12px; flex-wrap: wrap; } .bo-panel-heading h3 { font-size: 18px; } .bo-panel-heading p { font-size: 12px; }
  .bo-detail-grid { gap: 14px; } .bo-feature-row { grid-template-columns: minmax(0, 1fr) 118px; gap: 10px; } .bo-feature-row select { font-size: 11px; padding-inline: 7px; }
  .bo-card-heading { flex-wrap: wrap; } .bo-card-title { min-width: 140px !important; } .bo-form-actions { align-items: stretch; } .bo-form-actions > span { flex-basis: 100%; }
  .bo-form-actions .button { flex: 1; white-space: normal; } .bo-record-head { flex-wrap: wrap; } .bo-revoke form { align-items: stretch; flex-direction: column; }
  .bo-locked { margin-top: 38px; padding: 0 16px; } .bo-locked .bo-panel { padding: 26px; } .bo-locked h1 { font-size: 28px; }
}
