:root {
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  color-scheme:light;
  --bg:#f3f6fa;
  --surface:#fff;
  --soft:#f7f9fc;
  --text:#1c304b;
  --muted:#596b82;
  --line:#dce4ee;
  --blue:#205bc5;
  --active:#e8f0ff;
  --amber:#85591b;
  --amber-bg:#fff4e2;
  --green:#14696b;
  --pad:20px;
  --row:10px;
  color:var(--text);
  background:var(--bg)
}
:root[data-theme=dark] {
  color-scheme:dark;
  --bg:#101925;
  --surface:#182434;
  --soft:#1c2b3d;
  --text:#e7eef8;
  --muted:#a8b8ce;
  --line:#304259;
  --blue:#92bbff;
  --active:#263f61;
  --amber:#f1cb8c;
  --amber-bg:#443524;
  --green:#8ad9d8
}
@media(prefers-color-scheme:dark) {
  :root[data-theme=system] {
    color-scheme:dark;
    --bg:#101925;
    --surface:#182434;
    --soft:#1c2b3d;
    --text:#e7eef8;
    --muted:#a8b8ce;
    --line:#304259;
    --blue:#92bbff;
    --active:#263f61;
    --amber:#f1cb8c;
    --amber-bg:#443524;
    --green:#8ad9d8
  }
}
:root[data-density=comfortable] {
  --pad:26px;
  --row:14px
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer;
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--line);
  border-radius:5px;
  padding:8px 12px;
  font-size:12px
}
button:hover,a.button:hover {
  background:var(--active)
}
button:disabled {
  opacity:.6;
  cursor:default
}
a {
  color:var(--blue)
}
:where(button,a,input,select):focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px
}
:where([hidden]) {
  display:none!important
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  z-index:100;
  left:12px;
  top:8px;
  padding:10px;
  background:var(--surface);
  transform:translateY(-150%)
}
.skip-link:focus {
  transform:none
}
.top-banner {
  display:grid;
  grid-template-columns:180px minmax(180px,1fr) 240px minmax(210px,270px) 38px;
  align-items:center;
  gap:18px;
  padding:13px 22px;
  min-height:74px;
  background:#132b46;
  color:#e9f2ff;
  position:relative;
  z-index:10
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#f7fbff;
  min-width:0
}
.brand-mark {
  display:block;
  width:34px;
  height:34px;
  flex-shrink:0
}
.brand-text {
  min-width:0;
  flex:1
}
.brand-wordmark {
  display:block;
  width:100%;
  max-width:132px;
  height:auto
}
.brand small {
  display:block;
  color:#bccfe5;
  font-size:10px;
  font-weight:500;
  letter-spacing:1.2px;
  margin-top:0
}
.search-field,.code-box {
  display:flex;
  align-items:center;
  gap:8px;
  background:#253e5a;
  border:1px solid #506c89;
  border-radius:5px;
  min-width:0;
  padding:5px 9px
}
.search-field input,.code-box input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:#f0f6ff;
  padding:4px 0;
  font-size:12px
}
.search-field input::placeholder,.code-box input::placeholder {
  color:#cedded
}
.top-banner button {
  background:transparent;
  border:0;
  color:#dce9f9;
  padding:3px 5px
}
.search-field kbd {
  white-space:nowrap;
  font:10px ui-monospace,monospace;
  color:#d4e3f4;
  border:1px solid #57718c;
  border-radius:3px;
  padding:2px 4px
}
.code-field {
  display:flex;
  align-items:center;
  gap:8px;
  position:relative;
  min-width:0
}
.code-field label {
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:10px;
  color:#b8cce2
}
.code-box {
  background:#0d2036;
  flex:1
}
.code-box input {
  font:12px ui-monospace,SFMono-Regular,monospace;
  text-transform:uppercase
}
.code-box input[aria-invalid=true] {
  outline:2px solid #efb76b
}
#code-error {
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:20;
  margin:8px 0 0;
  padding:10px;
  border:1px solid var(--amber);
  border-radius:5px;
  background:var(--amber-bg);
  color:var(--amber);
  font-size:12px
}
.access-context {
  min-width:0;
  border-left:1px solid #49617a;
  padding-left:14px;
  display:grid;
  gap:4px
}
.access-context select {
  width:100%;
  min-width:0;
  background:#132b46;
  color:#e9f2ff;
  border:1px solid #506c89;
  border-radius:4px;
  font-size:12px;
  padding:4px;
  text-overflow:ellipsis
}
.access-context span {
  color:#b8cce2;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.avatar-box {
  position:relative;
  justify-self:end
}
.top-banner .avatar {
  border:1px solid #9cc4f3;
  background:#3a608c;
  border-radius:50%;
  height:36px;
  width:36px;
  padding:0;
  color:#fff;
  font-size:12px;
  font-weight:650
}
.avatar[aria-expanded=true] {
  box-shadow:0 0 0 3px #5c8ac055
}
.account-panel {
  position:absolute;
  top:calc(100% + 17px);
  right:0;
  width:290px;
  max-width:calc(100vw - 28px);
  padding:6px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 12px 36px #07142836;
  color:var(--text)
}
.profile {
  padding:12px;
  border-bottom:1px solid var(--line);
  overflow-wrap:anywhere
}
.profile strong {
  font-size:14px
}
.profile small,.account-link small {
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-top:4px
}
.account-link,.top-banner .account-link {
  display:block;
  width:100%;
  text-align:left;
  text-decoration:none;
  color:var(--text);
  font-size:12px;
  padding:12px;
  border:0;
  border-radius:4px;
  background:transparent
}
.account-link:hover {
  background:var(--soft)
}
.appearance {
  padding:12px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:11px;
  color:var(--muted)
}
.segments {
  display:flex;
  gap:5px;
  margin-top:8px
}
.segments button,.top-banner .segments button {
  flex:1;
  background:var(--soft);
  border:1px solid var(--line);
  padding:7px;
  color:var(--text);
  font-size:11px
}
.segments button[aria-pressed=true] {
  background:var(--active);
  color:var(--blue);
  border-color:var(--blue)
}
.shell-layout {
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  flex:1;
  min-width:0
}
.sidebar {
  padding:15px 12px;
  border-right:1px solid var(--line);
  background:var(--surface);
  display:flex;
  flex-direction:column;
  min-width:0
}
.sidebar-heading {
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 10px 12px;
  font-size:10px;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:650;
  letter-spacing:1px
}
.sidebar-heading button {
  margin-left:auto;
  border:0;
  padding:5px;
  background:transparent
}
.sidebar nav {
  display:flex;
  flex-direction:column;
  flex:1;
  gap:3px
}
.sidebar a {
  display:flex;
  align-items:center;
  gap:9px;
  padding:var(--row) 10px;
  text-decoration:none;
  color:var(--muted);
  font-size:12px;
  border-radius:5px;
  min-height:36px
}
.sidebar a:hover {
  background:var(--soft)
}
.sidebar a[aria-current=page] {
  background:var(--active);
  color:var(--blue);
  font-weight:650
}
.nav-icon {
  width:18px;
  flex-shrink:0;
  text-align:center;
  font-size:17px
}
.sidebar .subnav {
  padding-left:28px;
  font-size:11px;
  min-height:29px;
  padding-top:6px;
  padding-bottom:6px
}
.sidebar-bottom {
  margin-top:auto;
  padding-top:22px
}
.navigation-group { margin:3px 0; }
.navigation-group summary { display:flex; align-items:center; gap:9px; min-height:34px; padding:6px 10px; cursor:pointer; font-size:12px; color:var(--muted); border-radius:5px; }
.navigation-group summary:hover { background:var(--soft); }
.navigation-group summary::after { content:'▸'; margin-left:auto; }
.navigation-group[open] summary::after { content:'▾'; }
.navigation-group a { padding-left:28px; }
:root[data-density=comfortable] .navigation-group summary { min-height:38px; }
body.nav-collapsed .navigation-group summary { justify-content:center; padding-inline:4px; }
#administration-panel > button { margin:0 8px 12px 0; }
#administration-panel > .result-list { margin-top:8px; }
.sidebar-bottom p {
  margin:15px 10px 0;
  padding-top:15px;
  border-top:1px solid var(--line);
  font-size:10px;
  color:var(--muted)
}
body.nav-collapsed .shell-layout {
  grid-template-columns:64px minmax(0,1fr)
}
body.nav-collapsed .sidebar-heading span,body.nav-collapsed .nav-label {
  display:none
}
body.nav-collapsed .sidebar a,body.nav-collapsed .sidebar .subnav {
  padding:9px;
  justify-content:center
}
body.nav-collapsed .sidebar-heading {
  padding:0 0 12px
}
body.nav-collapsed .sidebar-heading button {
  margin:auto
}
main {
  min-width:0;
  width:100%;
  padding:30px 34px 24px;
  outline:none
}
.eyebrow {
  font-size:11px;
  color:var(--muted);
  margin:0 0 9px
}
h1 {
  font-size:26px;
  font-weight:650;
  letter-spacing:-.6px;
  line-height:1.25;
  margin:0
}
p {
  line-height:1.6;
  color:var(--muted);
  font-size:13px;
  overflow-wrap:anywhere
}
#page-description {
  margin:8px 0 0
}
h2 {
  font-size:15px;
  font-weight:650;
  margin:0 0 12px
}
h3 {
  font-size:15px;
  margin:0 0 8px;
  overflow-wrap:anywhere
}
.identity-strip {
  display:flex;
  align-items:center;
  gap:15px;
  margin:22px 0;
  border-bottom:1px solid var(--line);
  padding-bottom:12px;
  min-width:0
}
.identity-strip p {
  margin:0;
  font-size:12px
}
.button {
  display:inline-block;
  border:1px solid var(--line);
  border-radius:5px;
  padding:8px 12px;
  font-size:12px;
  text-decoration:none;
  white-space:nowrap
}
.primary {
  background:#225eca;
  color:#fff;
  border-color:#225eca
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:14px
}
.section-heading h2 {
  margin:0
}
.muted {
  font-size:11px;
  color:var(--muted)
}
.organization-list {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,285px),1fr));
  gap:14px
}
.organization-list article {
  border:1px solid var(--line);
  border-left:3px solid var(--blue);
  background:var(--surface);
  border-radius:6px;
  padding:var(--pad)
}
.organization-list article[data-kind=school] {
  border-left-color:var(--green)
}
.organization-list article[data-kind=ministry] {
  border-left-color:var(--amber)
}
.organization-list p {
  font-size:12px
}
.organization-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px
}
.notice {
  padding:18px;
  background:var(--amber-bg);
  color:var(--amber);
  border:1px solid var(--line);
  border-left:3px solid var(--amber);
  border-radius:5px;
  max-width:850px
}
.notice p {
  color:inherit
}
.notice h2 {
  margin-bottom:8px
}
#members-panel {
  border:1px solid var(--line);
  border-radius:6px;
  padding:var(--pad);
  background:var(--surface)
}
#members-list {
  font-size:13px;
  line-height:2;
  padding-left:20px;
  overflow-wrap:anywhere
}
.result-list {
  display:grid;
  gap:8px;
  max-width:850px
}
.result-list a,.result-list button {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  text-align:left;
  padding:12px 15px;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--surface);
  text-decoration:none;
  color:var(--text);
  font-size:13px;
  min-width:0;
  overflow-wrap:anywhere
}
.result-list small {
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-top:4px
}
.result-list code {
  font-size:11px;
  color:var(--muted);
  white-space:nowrap
}
.result-list a:hover,.result-list button:hover {
  background:var(--soft)
}
.preference-field {
  max-width:330px;
  font-size:12px;
  margin:25px 0
}
.services {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:20px 0
}
.services article {
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--surface);
  padding:var(--pad)
}
.services p {
  font-size:12px
}
.state {
  font-size:22px!important;
  font-weight:650
}
.state[data-ready=true] {
  color:var(--green)
}
.state[data-ready=false] {
  color:var(--amber)
}
.refresh {
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:26px
}
.refresh p {
  font-size:11px;
  margin:0
}
footer {
  display:flex;
  justify-content:space-between;
  gap:15px;
  flex-wrap:wrap;
  padding:10px 22px;
  border-top:1px solid var(--line);
  background:var(--surface);
  font-size:10px;
  color:var(--muted)
}
@media(min-width:1700px) {
  .top-banner {
    grid-template-columns:220px minmax(200px,1fr) 280px 320px 38px;
    gap:24px
  }
  .shell-layout {
    grid-template-columns:242px minmax(0,1fr)
  }
  main {
    padding:36px 42px
  }
}
@media(max-width:1100px) {
  .top-banner {
    grid-template-columns:155px minmax(150px,1fr) 205px minmax(150px,200px) 38px;
    gap:10px;
    padding:12px
  }
  .search-field kbd {
    display:none
  }
  .brand-wordmark {
    max-width:111px
  }
  .shell-layout {
    grid-template-columns:195px minmax(0,1fr)
  }
  main {
    padding:24px
  }
}
@media(max-width:850px) {
  .top-banner {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;
    gap:10px
  }
  .brand {
    grid-column:1;
    grid-row:1
  }
  .access-context {
    grid-column:2;
    grid-row:1;
    border:0;
    padding:0
  }
  .avatar-box {
    grid-column:3;
    grid-row:1
  }
  .search-field {
    grid-column:1;
    grid-row:2
  }
  .code-field {
    grid-column:2/4;
    grid-row:2
  }
  .shell-layout {
    grid-template-columns:176px minmax(0,1fr)
  }
  main {
    padding:20px
  }
  .services {
    grid-template-columns:1fr
  }
}
@media(max-width:520px) {
  .brand {
    gap:7px
  }
  .brand-mark {
    width:27px;
    height:27px
  }
  .top-banner {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;
    padding:10px;
    gap:8px
  }
  .access-context select {
    font-size:11px
  }
  .access-context span {
    font-size:9px
  }
  .code-field label {
    font-size:9px
  }
  .search-field {
    padding:5px
  }
  .search-field>span {
    display:none
  }
  .search-field input {
    font-size:11px
  }
  .code-box {
    padding:5px
  }
  .code-box input {
    font-size:11px
  }
  .shell-layout,body.nav-collapsed .shell-layout {
    display:block
  }
  .sidebar {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:8px
  }
  .sidebar-heading {
    padding:0 7px 7px
  }
  .sidebar nav {
    flex-direction:row;
    flex-wrap:wrap;
    gap:2px
  }
  .sidebar a,.sidebar .subnav {
    padding:6px 7px;
    min-height:32px;
    font-size:11px
  }
  .sidebar .nav-icon {
    display:none
  }
  .sidebar-bottom {
    display:flex;
    flex-wrap:wrap;
    padding:0;
    margin:0
  }
  .sidebar-bottom p {
    display:none
  }
  body.nav-collapsed .sidebar nav {
    display:none
  }
  main {
    padding:18px 14px;
    min-height:300px
  }
  h1 {
    font-size:23px
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column
  }
  .identity-strip {
    align-items:flex-start
  }
  .result-list a,.result-list button {
    flex-wrap:wrap
  }
  .refresh {
    flex-wrap:wrap
  }
  footer {
    padding:10px 14px
  }
}

/* Stakeholder accents accompany the actual kind/role text; they do not grant access. */
.access-context[data-kind=school] { border-left-color: #8ad9d8; }
.access-context[data-kind=ministry] { border-left-color: #f1cb8c; }
.access-context[data-kind=telco] { border-left-color: #77b8ff; }
.access-context[data-kind=research] { border-left-color: #c5b9ed; }
.access-context[data-kind=platform] { border-left-color: #b4c8de; }
.access-context[data-kind=school] #access-label { color: #8ad9d8; }
.access-context[data-kind=ministry] #access-label { color: #f1cb8c; }
.access-context[data-kind=telco] #access-label { color: #99c6ff; }
.access-context[data-kind=research] #access-label { color: #c5b9ed; }

/* Native master/detail business workspace; the inspector shares the page. */
.business-toolbar,.business-tabs,.business-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:10px 0; }
.business-toolbar input { flex:1; min-width:120px; }
.business-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,38%); gap:16px; align-items:start; }
.backup-snapshots { overflow-wrap:anywhere; font-size:12px; padding-left:20px; }
.business-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:6px; background:var(--surface); }
.business-table { width:100%; border-collapse:collapse; text-align:left; font-size:12px; }
.business-table th { padding:10px; color:var(--muted); background:var(--soft); font-weight:600; white-space:nowrap; }
.business-table td { padding:var(--row) 10px; border-top:1px solid var(--line); max-width:250px; overflow-wrap:anywhere; }
.business-table td button { text-align:left; color:var(--blue); }
.business-detail { padding:16px; border:1px solid var(--line); border-radius:6px; background:var(--surface); min-width:0; }
.business-detail h3 { font-size:14px; }
.business-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.business-form label { display:flex; flex-direction:column; gap:6px; font-size:12px; min-width:0; }
.business-form input,.business-form select,.business-toolbar input { background:var(--surface); color:var(--text); border:1px solid var(--line); border-radius:4px; padding:8px; width:100%; min-width:0; }
.business-form .business-actions,.business-form .form-message { grid-column:1/-1; }
.business-form .field-label { display:flex; align-items:center; justify-content:space-between; gap:5px; }
.field-info { padding:2px 6px; min-width:24px; min-height:24px; color:var(--blue); }
.field-inspector { margin-top:16px; padding:12px; border-top:2px solid var(--blue); background:var(--soft); overflow-wrap:anywhere; }
.field-inspector dl,.business-summary { display:grid; grid-template-columns:minmax(90px,1fr) minmax(0,2fr); gap:8px; font-size:12px; }
.field-inspector dt,.business-summary dt { color:var(--muted); }
.field-inspector dd,.business-summary dd { margin:0; overflow-wrap:anywhere; }
.business-status { display:inline-block; border:1px solid var(--line); border-radius:4px; padding:3px 6px; font-size:11px; background:var(--soft); }
.business-state { min-height:20px; }
.business-tabs button[aria-pressed=true] { background:var(--active); border-color:var(--blue); color:var(--blue); }
.business-warning { border-left:3px solid var(--amber); padding:8px 12px; background:var(--amber-bg); color:var(--amber); font-size:12px; }
.business-history { padding-left:20px; font-size:12px; line-height:1.8; }
@media(max-width:1100px) { .business-layout { grid-template-columns:minmax(0,1fr); } }
@media(max-width:520px) { .business-form { grid-template-columns:minmax(0,1fr); } }
.business-reference-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px; }
.business-reference-search small { grid-column:1/-1; color:var(--muted); }
.record-metadata { margin:12px 0; border-top:1px solid var(--line); padding-top:10px; }
.record-metadata summary { cursor:pointer; font-size:12px; color:var(--muted); }
.record-metadata summary:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }

.elevation-banner{padding:.65rem 1.2rem;border-bottom:2px solid var(--accent,#bd7b24);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--surface);color:var(--text)}
.elevation-banner[hidden]{display:none}.elevation-banner p{margin:0;flex:1 1 28rem}.elevation-banner div{display:flex;gap:.5rem;flex-wrap:wrap}.elevation-banner button{white-space:normal}.administration-profile{border:1px solid var(--line);padding:1rem;margin-bottom:1rem;border-radius:.6rem}.administration-profile a{display:block;padding:.5rem}.administration-profile small{display:block}

/* Native bounded analysis panel. Keep wide results inside their own scroller. */
.analysis-query { display:flex; gap:.65rem; align-items:flex-end; flex-wrap:wrap; }
.analysis-query label { flex:1 1 30rem; min-width:0; display:grid; gap:.35rem; font-weight:600; }
.analysis-query textarea { width:100%; min-width:0; box-sizing:border-box; resize:vertical; font: .875rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace; padding:.65rem; border:1px solid var(--line); border-radius:.3rem; background:var(--surface); color:var(--text); }
.analysis-controls { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin:.85rem 0; }
.analysis-controls label { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.analysis-controls select { max-width:100%; }
.analysis-inventory-filters label { flex:1 1 210px; min-width:0; }
.analysis-controls label { min-width:0; }
.analysis-controls input,.analysis-controls select { min-width:0; max-width:100%; }
.analysis-inventory-status { font-size:.85rem; color:var(--muted); }
.analysis-inventory { max-height:20rem; }
.analysis-inventory ul { min-width:520px; padding:0; margin:0; list-style:none; }
.analysis-inventory li { display:grid; grid-template-columns:minmax(140px,2fr) 2fr 1fr 70px 130px; align-items:center; gap:8px; padding:8px; border-bottom:1px solid var(--line); font-size:12px; }
.analysis-inventory span { overflow-wrap:anywhere; }
.analysis-inventory button { white-space:normal; text-align:left; }
.analysis-catalog > label { display:grid; gap:.35rem; max-width:28rem; }
.analysis-catalog input { width:100%; min-width:0; box-sizing:border-box; }
.analysis-catalog { margin:.85rem 0; }
.analysis-catalog summary { cursor:pointer; font-weight:600; }
.analysis-catalog pre { overflow:auto; max-width:100%; padding:.6rem; font-size:.8rem; }
.analysis-fields { display:grid; grid-template-columns:minmax(9rem,1fr) minmax(0,3fr); gap:.35rem .8rem; font-size:.85rem; }
.analysis-fields dt { font-family:ui-monospace,monospace; overflow-wrap:anywhere; }
.analysis-fields dd { margin:0; overflow-wrap:anywhere; }
.analysis-limits { font-size:.85rem; color:var(--muted); }
.analysis-results { min-width:0; }
.analysis-results > h2 { font-size:14px; margin:14px 0 8px; }
.analysis-empty-state { padding:14px; margin:0; border:1px solid var(--line); border-top:0; color:var(--muted); background:var(--soft); }
.analysis-empty-table { min-width:100%; width:max-content; }
.analysis-empty-table th { min-width:132px; }
.analysis-empty-table th small { display:block; font-weight:400; color:var(--muted); }
.analysis-empty-table .analysis-column-title > span { flex:1; }
.system-admin-banner { background:var(--active); border-bottom-color:var(--blue); }
.analysis-results table caption { text-align:left; padding:.5rem 0; }
.analysis-results th button { font:inherit; padding:.25rem; }
@media(max-width:600px) { .analysis-fields { grid-template-columns:minmax(0,1fr); } .analysis-query button { width:100%; } }

/* Keep access state directly adjacent to the persistent shell at every reflow. */
.persistent-shell { position:sticky; top:0; z-index:30; flex:none; }
.persistent-shell .top-banner { position:relative; }
.account-panel { max-height:calc(100dvh - var(--shell-height, 150px) - 24px); overflow:auto; }
:where(textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
.fullscreen-state { margin:4px 12px; font-size:11px; }
.screen-directory { table-layout:auto; }
#screen-directory { display:block; overflow:auto; max-width:100%; }
.screen-directory td { white-space:nowrap; }
.screen-directory td:last-child { white-space:nowrap; }
footer { position:sticky; bottom:0; z-index:20; align-items:center; }
#service-summary { font-weight:600; text-decoration:none; padding:3px 0; }
#service-summary[data-state=healthy] { color:var(--green); }
#service-summary:is([data-state=degraded],[data-state=offline],[data-state=stale]) { color:var(--amber); }
.business-table-wrap { max-height:65vh; overscroll-behavior:contain; }
.business-table th { position:sticky; top:0; z-index:2; }
.business-table tbody tr:nth-child(even) { background:var(--soft); }
.business-table tbody tr:focus-within { background:var(--active); }
.analysis-table-wrap { max-height:55vh; scroll-padding-top:90px; }
.analysis-table { table-layout:fixed; }
.analysis-table caption { background:var(--surface); padding:6px 10px!important; }
.analysis-table th { padding:5px 8px; vertical-align:top; }
.analysis-table td { padding:5px 10px; height:30px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:none; cursor:pointer; }
.analysis-table td:focus-visible { outline-offset:-3px; }
.analysis-column-title { display:flex; align-items:center; gap:3px; min-width:0; }
.analysis-column-title > button:first-child { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; }
.analysis-column-layout { font-weight:400; font-size:10px; }
.analysis-column-layout summary { overflow:hidden; text-overflow:ellipsis; cursor:pointer; white-space:nowrap; padding:3px; }
.column-controls { display:grid; gap:4px; padding:4px 0; }
.column-controls button { font-size:10px; padding:4px; }
.column-controls label { display:grid; white-space:normal; gap:3px; }
.column-controls input { width:100%; min-width:0; }
.analysis-fields dt button { margin-left:6px; padding:2px 6px; }
.analysis-inspector dd { white-space:pre-wrap; user-select:text; }
.analysis-controls > span { font-size:11px; color:var(--muted); flex:1 1 240px; }
@media(max-width:520px) { footer { position:static; } .elevation-banner { padding:8px 12px; gap:5px; } .elevation-banner p { font-size:11px; } }

html { scroll-padding-top:calc(var(--shell-height, 150px) + 12px); }
.field-inspector { scroll-margin-top:calc(var(--shell-height, 150px) + 12px); }

#fullscreen-exit { position:fixed; bottom:12px; right:12px; z-index:45; box-shadow:0 2px 12px #07142836; }

.analysis-table td.analysis-selected { background:var(--active); box-shadow:inset 0 0 0 2px var(--blue); }
.analysis-table tr:has(.analysis-selected) { background:var(--active); }

/* The initial HTML gate also works before modules load or with scripting disabled. */
.login-experience { min-height:100dvh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,340px); padding:26px; background:var(--surface); border:1px solid var(--line); border-radius:8px; box-shadow:0 12px 35px #16365412; }
.login-card h1 { font-size:23px; margin:20px 0 12px; }
.login-card p { line-height:1.6; color:var(--muted); }
.login-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.code-box { position:relative; }
.screen-suggestions { position:absolute; top:calc(100% + 5px); left:0; right:0; max-height:min(320px,50dvh); overflow:auto; border:1px solid var(--line); border-radius:5px; background:var(--surface); box-shadow:0 8px 24px #16365420; z-index:40; }
.screen-suggestions [role=option] { padding:9px 10px; cursor:pointer; font-size:12px; }
.screen-suggestions [role=option]:hover,.screen-suggestions [aria-selected=true] { background:var(--active); color:var(--blue); }
/* Directory rows are a compact list; business-result link rules do not apply. */
.screen-directory { border-collapse:separate; border-spacing:0; width:auto; min-width:min(100%,620px); text-align:left; }
.screen-directory th,.screen-directory td { padding:6px 14px; height:32px; max-width:none; text-align:left; font-size:12px; line-height:18px; }
.screen-directory th { background:var(--surface); }
#screen-directory .screen-directory a { display:inline; padding:0; border:0; border-radius:0; background:none; color:var(--blue); text-decoration:underline; text-underline-offset:2px; font:inherit; font-weight:650; }
.screen-directory td:first-child { width:100px; }
.screen-directory td:nth-child(2) { width:230px; font-family:ui-monospace,monospace; font-size:11px; }
@media(min-width:521px) {
  body { height:100dvh; overflow:hidden; }
  .shell-layout { min-height:0; overflow:hidden; }
  .sidebar { min-height:0; overflow:auto; overscroll-behavior:contain; }
  .sidebar nav { flex:1 0 auto; }
  .sidebar a { padding-top:8px; padding-bottom:8px; min-height:34px; }
  :root[data-density=comfortable] .sidebar a { padding-top:10px; padding-bottom:10px; min-height:38px; }
  .sidebar .subnav { padding-top:6px; padding-bottom:6px; min-height:29px; }
  .sidebar-bottom { padding-top:12px; }
  #main-content { min-height:0; overflow:auto; overscroll-behavior:contain; scroll-padding:16px; }
  footer { flex:none; }
  .login-experience { overflow:auto; }
}
/* Preserve full navigation rows on shorter desktops as the suite grows. */
@media(min-width:521px) and (max-height:900px) {
  .sidebar { padding-block:8px; }
  .sidebar-heading { padding-bottom:6px; }
  .sidebar nav { gap:1px; }
  .navigation-group { margin-block:0; }
  .sidebar-bottom { padding-top:6px; }
}

.access-context[data-kind=academic] { border-left-color: #8ad9d8; }
.access-context[data-kind=institutional] { border-left-color: #f1cb8c; }
.access-context[data-kind=digital-wellness] { border-left-color: #90c7a8; }
.access-context[data-kind=system-admin] { border-left-color: #b4c8de; }
.login-experience[data-state=checking] .login-card { background: transparent; border-color: transparent; box-shadow: none; }
.login-experience[data-state=checking] .login-card > .brand-mark { display: none; }
.login-experience[data-state=checking] .login-card h1 { font-size: 1.15rem; }

.report-counts,.report-attention {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--space-3,1rem);margin-block:1rem;}
.report-count {border:1px solid var(--line);border-radius:8px;padding:1rem;min-width:0;}
.report-count h3 {margin-top:0;text-transform:capitalize;}
.report-count button {white-space:normal;text-align:left;max-width:100%;}
.report-attention .report-count {display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;}
.report-as-of {overflow-wrap:anywhere;}
/* Local access and policy workflows use the existing shell density and themes. */
#local-administration-panel form, #domain-panel form { display:flex; flex-wrap:wrap; gap:.75rem; align-items:end; margin-block:.75rem; }
#local-administration-panel label, #domain-panel label { display:flex; flex-direction:column; gap:.35rem; min-width:0; }
#local-administration-panel input[type=checkbox], #domain-panel input[type=checkbox] { align-self:start; }
#local-administration-panel input, #local-administration-panel select, #domain-panel input, #domain-panel select { max-width:100%; min-width:0; padding:.5rem; }
dialog { color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:.75rem; max-width:min(36rem, calc(100vw - 2rem)); padding:1.5rem; }
dialog::backdrop { background:rgb(0 0 0 / .45); }
dialog button { margin:.4rem .4rem 0 0; }
#account-mode { display:block; font-weight:600; }
#local-administration-panel code { display:block; overflow-wrap:anywhere; padding:.4rem; }
#domain-panel article { border:1px solid var(--line); border-radius:.5rem; padding:1rem; margin-block:1rem; overflow-wrap:anywhere; }
/* Keep app custody and request stages distinct within the native attached form. */
#domain-panel .family-app-filters { display:flex; flex-wrap:wrap; gap:1rem; margin-block:1rem; }
#domain-panel .family-app-filters label { flex:1 1 14rem; }
#domain-panel .family-app-step { border-top:1px solid var(--line); padding-block:.8rem; min-width:0; }
#domain-panel .family-app-step h3 { margin:.2rem 0 .6rem; font-size:1rem; }
#domain-panel .family-app-state { font-weight:650; }
#domain-panel form .notice { flex-basis:100%; }
#domain-panel .family-app-card form label { flex:1 1 15rem; }
#domain-panel .family-app-card button { max-width:100%; white-space:normal; text-align:left; }
#domain-panel [aria-label="Institution departure scope"] { padding:.75rem; background:var(--soft); border-radius:.4rem; }

/* Academic onboarding uses attached forms and bounded local table scrolling. */
.academia-notice { padding: .8rem 1rem; border-left: 3px solid var(--accent, #428a92); background: var(--soft); line-height: 1.55; }
.academia-overview { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 1rem; margin: 1.25rem 0; }
.academia-card { border: 1px solid var(--line); border-radius: .6rem; padding: 1rem; }
.academia-card h3 { font-size: .95rem; margin: 0; }
.academia-count { font-size: 2rem; font-weight: 650; margin: .65rem 0; }
.academia-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.academia-table-wrap { max-width: 100%; overflow-x: auto; }
.academia-table-wrap td button { margin: .2rem; }
.academia-editor { padding: 1rem; margin: 1rem 0; border: 1px solid var(--line); border-radius: .5rem; }
.academia-editor form { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(220px,100%),1fr)); gap: 1rem; margin-top: 1rem; }
.academia-editor label { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.academia-editor input,.academia-editor select { box-sizing: border-box; width: 100%; min-width: 0; }
.academia-editor button { align-self: end; }
.academia-editor [role=status] { grid-column: 1 / -1; overflow-wrap: anywhere; }

/* Education drafts and holder-only history reflow inside the native page. */
#education-panel { min-width: 0; overflow-wrap: anywhere; }
#education-panel .education-choices,#education-panel .education-limits { min-width: 0; margin: 0; padding: .75rem; border: 1px solid var(--line); }
#education-panel .education-choices { display: flex; flex-wrap: wrap; gap: .6rem 1rem; grid-column: 1 / -1; }
#education-panel .education-choices label { flex-direction: row; align-items: baseline; }
#education-panel input[type=checkbox] { width: auto; flex: 0 0 auto; }
#education-panel .education-limits { grid-column: 1 / -1; }
#education-panel .education-limit { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(180px,100%),1fr)); gap: .75rem; margin-bottom: 1rem; }
#education-panel textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 6rem; resize: vertical; }
#education-panel .education-history article { border-top: 1px solid var(--line); padding-top: .75rem; margin-top: .75rem; }

/* Catalogue comparisons may scroll inside their table; the page itself reflows. */
.catalogue-notice{padding:.8rem 1rem;border-left:4px solid var(--blue);background:var(--surface);font-weight:600}
.catalogue-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin-block:1rem;align-items:end}
.catalogue-filters label{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.catalogue-filters input:not([type=checkbox]),.catalogue-filters select{width:100%;min-width:0;box-sizing:border-box}
.catalogue-filter-help{grid-column:1/-1}
.catalogue-toolbar{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-block:1rem}
.catalogue-table-wrap{width:100%;max-width:100%;overflow:auto;overscroll-behavior-inline:contain}
.catalogue-table{min-width:1500px}.catalogue-table th,.catalogue-table td{vertical-align:top}.catalogue-table th[scope=row]{min-width:190px;font-weight:400}
.catalogue-table th[scope=row] p{margin-block:.4rem;font-size:.9rem}.catalogue-table button{white-space:normal}
.catalogue-comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}
.catalogue-comparison-grid article{padding:1rem;border:1px solid var(--line);border-radius:.5rem;min-width:0;overflow-wrap:anywhere}
.catalogue-provenance{overflow-wrap:anywhere}.catalogue-provenance:empty,.catalogue-comparison:empty{display:none}
:where(.research-form,.research-action){display:grid;gap:1rem;max-width:74rem;margin-block:1rem;padding:1rem;border:1px solid var(--line);border-radius:.6rem;}
.research-form fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;min-width:0;border:1px solid var(--line);padding:1rem;}
:where(.research-form,.research-action) label{display:grid;gap:.35rem;min-width:0;}
:where(.research-form,.research-action) :is(input,select,textarea){max-width:100%;min-width:0;width:100%;box-sizing:border-box;}
:where(.research-form,.research-action) .research-check{display:flex;align-items:flex-start;gap:.6rem;}
.research-check input{width:auto;flex:none;}
.research-toolbar{display:flex;gap:.65rem;flex-wrap:wrap;margin-block:1rem;}
.research-notice{padding:.8rem;border:1px solid var(--line);border-radius:.4rem;}
.research-evidence p,.research-history p{white-space:pre-wrap;overflow-wrap:anywhere;}
.research-table-wrap{overflow-x:auto;max-width:100%;}
.research-editor{margin-block:1rem;padding:.8rem;border:1px solid var(--line);}
.research-history details{padding:.6rem;margin-block:.5rem;border:1px solid var(--line);}

#assessments-panel{min-width:0;overflow-wrap:anywhere}

/* Learning practice wraps within the ordinary workspace at narrow widths. */
.learning-module-list,.learning-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.learning-module-list button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.learning-activity { max-width:56rem; min-width:0; overflow-wrap:anywhere; }
.learning-field { display:block; margin:1rem 0; }
.learning-field textarea { display:block; box-sizing:border-box; width:100%; max-width:100%; resize:vertical; font:inherit; }
.learning-activity details { margin-top:1.2rem; }
.learning-notice { padding:.8rem; border-left:3px solid var(--accent); }

.integration-cases { display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.integration-cases button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.integration-detail { max-width:56rem; min-width:0; overflow-wrap:anywhere; }
.integration-detail dl { display:grid; grid-template-columns:minmax(0,12rem) minmax(0,1fr); gap:.4rem 1rem; }
.integration-detail dt { font-weight:600; }
.integration-detail dd { margin:0; }
.integration-notice { padding:.8rem; border-left:3px solid var(--accent); font-weight:600; }
@media(max-width:480px) { .integration-detail dl { grid-template-columns:minmax(0,1fr); } }

#connectivity-panel { min-width:0; }
#connectivity-panel dl { display:grid; grid-template-columns:minmax(140px,1fr) minmax(0,2fr); gap:9px 16px; padding:16px; background:var(--soft); border:1px solid var(--line); border-radius:6px; }
#connectivity-panel dt { color:var(--muted); }
#connectivity-panel dd { margin:0; overflow-wrap:anywhere; }
@media(max-width:520px) { #connectivity-panel dl { grid-template-columns:minmax(0,1fr); } #connectivity-panel dt { font-weight:600; } #connectivity-panel dd { margin-bottom:8px; } }

.scoped-report-section{margin-block:1.5rem;min-width:0;overflow-wrap:anywhere}
.scoped-report-section table{width:100%;table-layout:fixed}
.scoped-report-section caption{text-align:left;font-weight:600;padding-block:.5rem}
.scoped-report-section th,.scoped-report-section td{overflow-wrap:anywhere}
