.organisation-management { max-width: 1180px; }
.organisation-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.organisation-heading h2, .organisation-heading h3 { margin:0; }
.organisation-heading p { margin:7px 0 0; max-width:72ch; }
.organisation-heading > button { flex-shrink:0; }
.organisation-summary { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; border:1px solid var(--border); border-radius:5px; padding:18px; margin-top:20px; background:var(--card); }
.organisation-summary h3 { margin:5px 0 6px; font-size:20px; overflow-wrap:anywhere; }
.organisation-summary p { margin:0; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.organisation-summary small { color:var(--muted); font-size:12px; }
.organisation-badge { border:1px solid var(--border); padding:4px 8px; font-size:12px; white-space:nowrap; border-radius:4px; color:var(--muted); }
.organisation-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--border); }
.organisation-section h3 { font-size:16px; margin:0 0 10px; }
.organisation-section h4 { font-size:14px; margin:0; }
.organisation-section > summary, .password-reset-request > summary { cursor:pointer; font-weight:600; min-height:44px; display:list-item; padding:8px 0; }
.organisation-venue-list, .organisation-invitation-list { list-style:none; margin:0; padding:0; }
.organisation-venue-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; }
.organisation-venue-list li { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); overflow-wrap:anywhere; }
.organisation-venue-list small { color:var(--muted); }
.organisation-members { border-top:1px solid var(--border); }
.organisation-member { display:grid; grid-template-columns:minmax(220px,1fr) minmax(145px,190px) 110px minmax(110px,160px); align-items:center; gap:16px; padding:16px 0; border-bottom:1px solid var(--border); }
.organisation-member:hover, .organisation-invitation-list li:hover { background:color-mix(in srgb,var(--muted) 5%,transparent); }
.organisation-member-identity { display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; }
.organisation-member-identity strong { font-size:14px; }
.organisation-member-identity span, .organisation-member-identity small { font-size:12px; color:var(--muted); }
.organisation-row-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.organisation-invitation-list li { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--border); padding:14px 0; }
.organisation-invitation-list li > div { display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; }
.organisation-invitation-list li strong { font-size:14px; }
.organisation-invitation-list li span, .organisation-invitation-list li small { font-size:12px; color:var(--muted); }
.organisation-invitation-list li button { flex-shrink:0; }
.organisation-form { display:flex; flex-direction:column; align-items:flex-start; gap:14px; max-width:680px; margin-top:16px; }
.organisation-two-fields { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.organisation-field { display:flex; flex-direction:column; gap:7px; min-width:0; width:100%; font-size:13px; }
.organisation-field > span { font-weight:550; }
.organisation-field input, .organisation-field select { width:100%; min-height:44px; padding:9px 11px; background:var(--card); color:var(--foreground); border:1px solid var(--border); border-radius:4px; font:inherit; }
.organisation-field input:disabled, .organisation-field select:disabled { opacity:.58; cursor:not-allowed; }
.organisation-check { display:flex; align-items:center; gap:9px; min-height:44px; font-size:13px; cursor:pointer; overflow-wrap:anywhere; }
.organisation-check input { accent-color:var(--primary); width:17px; height:17px; flex-shrink:0; }
.organisation-venue-grants { border:1px solid var(--border); border-radius:4px; width:100%; padding:10px 14px; margin:0; }
.organisation-venue-grants legend { padding:0 6px; font-size:13px; font-weight:550; }
.organisation-grant { display:grid; grid-template-columns:minmax(0,1fr) minmax(130px,190px); gap:14px; align-items:center; padding:4px 0; }
.organisation-empty { color:var(--muted); line-height:1.6; font-size:13px; padding:14px 0; margin:0; }
.organisation-error, .organisation-recovery { padding:14px 16px; border:1px solid var(--border); border-left:3px solid var(--primary); border-radius:4px; margin:16px 0; font-size:13px; }
.organisation-error strong, .organisation-recovery strong { display:block; }
.organisation-error p, .organisation-recovery p { margin:7px 0 12px; line-height:1.6; overflow-wrap:anywhere; }
.organisation-notice, .organisation-readonly { border-left:3px solid var(--primary); padding:10px 14px; background:var(--card); font-size:13px; line-height:1.6; }
.organisation-loading { min-height:160px; padding:26px 0; color:var(--muted); }
.organisation-field-error { font-size:13px; color:var(--foreground); line-height:1.6; border-left:3px solid var(--primary); padding-left:10px; margin:0; }
.organisation-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
.organisation-management :is(button,a,input,select,summary):focus-visible, .account-link-main :is(button,a,input,summary):focus-visible, .password-reset-request :is(button,a,input,summary):focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.organisation-management button:disabled, .account-link-main button:disabled, .password-reset-request button:disabled { cursor:not-allowed; opacity:.55; }
.account-link-main { min-height:100vh; display:flex; justify-content:center; align-items:flex-start; background:var(--background); padding:48px 20px; color:var(--foreground); }
.account-link-panel { width:100%; max-width:520px; border:1px solid var(--border); border-radius:6px; background:var(--card); padding:28px; }
.account-link-panel h1 { font-size:24px; margin:8px 0 18px; }
.account-link-panel h2 { font-size:18px; margin:0 0 10px; }
.account-link-panel .organisation-form { max-width:none; }
.account-result p { line-height:1.6; font-size:14px; }
.account-private-note { margin-top:22px; font-size:12px; }
.account-link-panel .organisation-error > a { margin:6px 8px 0 0; }
.password-reset-request { margin-top:18px; padding-top:12px; border-top:1px solid var(--border); }
.password-reset-request > a { display:inline-block; margin-top:16px; font-size:13px; }
@media (min-width:640px) and (max-width:1024px) {
  .organisation-member { grid-template-columns:minmax(180px,1fr) 160px 95px; gap:12px; }
  .organisation-row-actions { grid-column:2 / 4; }
}
@media (max-width:639px) {
  .organisation-heading { align-items:stretch; gap:12px; }
  .organisation-heading > button { width:100%; }
  .organisation-summary { padding:14px; gap:10px; }
  .organisation-summary h3 { font-size:18px; }
  .organisation-venue-list, .organisation-two-fields { grid-template-columns:minmax(0,1fr); }
  .organisation-venue-list li { align-items:flex-start; flex-direction:column; gap:5px; }
  .organisation-member { grid-template-columns:minmax(0,1fr); gap:10px; padding:16px 0; }
  .organisation-row-actions { justify-content:flex-start; }
  .organisation-row-actions > button { flex:1; min-height:44px; }
  .organisation-invitation-list li { align-items:flex-start; flex-direction:column; gap:10px; }
  .organisation-invitation-list li button { width:100%; }
  .organisation-grant { grid-template-columns:minmax(0,1fr); gap:4px; padding:10px 0; border-bottom:1px solid var(--border); }
  .organisation-grant:last-of-type { border-bottom:0; }
  .organisation-form > button { width:100%; }
  .organisation-actions { width:100%; }
  .organisation-actions > * { flex:1; }
  .account-link-main { padding:20px 12px; }
  .account-link-panel { padding:20px; }
}

.organisation-guard { border:0; padding:0; margin:0; min-width:0; }
.organisation-empty-workspace { width:min(100%,960px); margin:0 auto; padding:24px; }
@media (max-width:639px) { .organisation-empty-workspace { padding:16px; } }
