:root{
  /* THIRD independent token set found in this file alone (after the --cp-canvas/--cp-ink pair
     already aliased at CP-39) — same defect, same fix: alias to the real semantic tokens rather
     than rewrite the ~26 call sites across this file that already reference --suite-*. Every panel,
     card and form using these has been silently static-hex and dark-theme-blind until now.
     --suite-violet is the one exception with no --cp equivalent — kept as a literal, it is a
     decorative icon accent (Home's "Role reviews" stat), not a semantic role. */
  --suite-bg:var(--cp-surface-page);
  --suite-panel:var(--cp-surface-raised);
  --suite-ink:var(--cp-text-primary);
  --suite-muted:var(--cp-text-secondary);
  --suite-line:var(--cp-border-subtle);
  --suite-blue:var(--cp-accent);
  --suite-blue-soft:var(--cp-accent-soft);
  --suite-mint:var(--cp-success);
  --suite-mint-soft:var(--cp-success-soft);
  --suite-amber:var(--cp-warning);
  --suite-amber-soft:var(--cp-warning-soft);
  --suite-red:var(--cp-danger);
  --suite-red-soft:var(--cp-danger-soft);
  --suite-violet:#6f52c7;
  --suite-shadow:var(--cp-shadow-md)
}
body{
  background:var(--suite-bg)
}
.cp-account-frame{
  min-height:100vh;
  /* Flat page ground, not the soft dual radial-gradient wash a premium/spacious direction would
     use — the card's own border + shadow (crisp, --cp-shadow-md) carries the depth instead. */
  background:var(--cp-surface-page)
}
.cp-account-header{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px
}
.cp-account-header .cp-brand{
  color:var(--suite-ink);
  text-decoration:none
}
.cp-account-workspace{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:calc(100vh - 96px);
  padding:10px 24px 48px
}
/* The single-card auth pages (login, forgot/reset password) centre in the viewport; the wider
   multi-card Manage page keeps its own max-width and top-aligns. Both share this workspace now
   that the account surface runs on _ControlPlaneLayout instead of the LeptonX shell. */
.cp-account-workspace>.cp-login-card{
  /* No width cap was set here at all — the card grew to whatever the flex column allowed (667px
     on a 1440px viewport, confirmed by measuring the rendered page), which is why it read as too
     wide. 400px matches how a dense admin login is usually sized (comparable to GitHub/Linear); the
     inner org-field/eyebrow/heading were designed around a narrower measure, not a two-column-wide
     one. width:100% keeps it correct below 400px rather than overflowing on small viewports. */
  width:100%;
  max-width:400px;
  margin-block:auto;
  padding:clamp(24px,4vw,32px);
  border:1px solid var(--cp-border-subtle);
  border-radius:var(--cp-radius-md);
  background:var(--cp-surface-raised);
  box-shadow:var(--cp-shadow-md);
  color:var(--cp-text-primary)
}
/* Manage is the wider multi-card page sharing this workspace; without width:100% it would size to
   its own shrink-to-fit content as a flex item and never reach its 1040px max-width, so its own
   margin:0 auto (control-plane-layout.css) would have nothing to centre within. */
.cp-account-workspace>.cp-account-page{
  width:100%
}
.cp-login-mark{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border-radius:var(--cp-radius-sm);
  background:var(--cp-accent-soft);
  color:var(--cp-accent);
  font-size:1rem
}
.cp-login-eyebrow{
  margin:18px 0 4px;
  color:var(--cp-text-muted);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.1em
}
.cp-login-card h1{
  margin:0;
  font-size:1.5rem;
  font-weight:750;
  letter-spacing:-.02em;
  color:var(--cp-text-primary)
}
.cp-login-intro{
  margin:7px 0 22px;
  color:var(--cp-text-secondary);
  font-size:.8rem;
  line-height:1.5
}
.cp-login-form{
  display:grid;
  gap:6px
}
.cp-login-form>label{
  margin-top:6px;
  color:var(--cp-text-secondary);
  font-size:.72rem;
  font-weight:700
}
/* Field colour/border/radius come from form-controls.css, applied everywhere identically — not
   restated here. Only the password-field affordances that form-controls.css cannot know about
   stay local: room for the toggle button, and the button itself. */
.cp-password-field{
  position:relative
}
.cp-password-field input{
  padding-right:38px!important
}
.cp-password-field button{
  position:absolute;
  right:3px;
  top:3px;
  bottom:3px;
  width:30px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:calc(var(--cp-radius-sm) - 2px);
  background:transparent;
  color:var(--cp-text-muted);
  cursor:pointer;
  transition:background var(--cp-transition-fast),color var(--cp-transition-fast)
}
.cp-password-field button:hover{
  background:var(--cp-surface-hover);
  color:var(--cp-text-primary)
}
.cp-password-field button:focus-visible{
  outline:0;
  box-shadow:var(--cp-focus-ring)
}
.cp-login-form span{
  min-height:0;
  color:var(--cp-danger);
  font-size:.68rem
}
.cp-login-options{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:4px 0 8px
}
.cp-login-options a{
  color:var(--cp-accent);
  font-size:.72rem;
  font-weight:700;
  text-decoration:none
}
.cp-login-options a:hover{
  text-decoration:underline
}
.cp-remember{
  display:flex!important;
  align-items:center;
  gap:6px;
  color:var(--cp-text-secondary)!important;
  font-size:.72rem!important;
  font-weight:600!important
}
.cp-remember input[type=checkbox]{
  appearance:auto!important;
  width:14px!important;
  height:14px!important;
  margin:0!important;
  min-width:14px!important;
  accent-color:var(--cp-accent)
}
.cp-login-submit,.cp-login-cancel{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:36px;
  border-radius:var(--cp-radius-sm);
  padding:9px 14px;
  font:inherit;
  font-size:.78rem;
  font-weight:700;
  /* Also applied to an <a> on PasswordResetLinkSent/ResetPasswordConfirmation ("back to login" as
     a button-styled link) — a real <button> needs no underline reset, but a link does. */
  text-decoration:none;
  transition:background var(--cp-transition-fast),border-color var(--cp-transition-fast)
}
.cp-login-submit{
  border:1px solid var(--cp-accent);
  background:var(--cp-accent);
  color:var(--cp-accent-contrast)
}
.cp-login-submit:hover{
  border-color:var(--cp-accent-hover);
  background:var(--cp-accent-hover)
}
.cp-login-cancel{
  margin-top:6px;
  border:1px solid var(--cp-border-strong);
  background:var(--cp-surface-raised);
  color:var(--cp-text-secondary)
}
.cp-login-cancel:hover{
  background:var(--cp-surface-hover);
  color:var(--cp-text-primary)
}
.cp-external-logins{
  display:grid;
  gap:9px;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--cp-border-subtle);
  text-align:center
}
.cp-external-logins>span{
  color:var(--cp-text-muted);
  font-size:.7rem
}
.cp-external-logins form{
  display:flex;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap
}
.cp-external-logins button{
  border:1px solid var(--cp-border-strong);
  border-radius:var(--cp-radius-sm);
  padding:7px 11px;
  background:var(--cp-surface-raised);
  color:var(--cp-text-secondary);
  font:inherit;
  font-size:.7rem;
  font-weight:700;
  cursor:pointer;
  transition:background var(--cp-transition-fast),border-color var(--cp-transition-fast)
}
.cp-external-logins button:hover{
  background:var(--cp-surface-hover);
  border-color:var(--cp-border-strong);
  color:var(--cp-text-primary)
}
.cp-login-alert{
  margin-bottom:14px;
  border:1px solid var(--cp-danger-border);
  border-radius:var(--cp-radius-sm);
  padding:9px 11px;
  background:var(--cp-danger-soft);
  color:var(--cp-danger)
}

@media(max-width:520px){
  .abp-account-layout .lpx-content{
    padding:14px
  }
  .cp-login-card{
    padding:27px 22px
  }
  .cp-login-options{
    align-items:flex-start;
    flex-direction:column
  }
}
.workspace-actions{
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap
}
.provision-tenant{
  position:relative
}
.provision-tenant summary{
  cursor:pointer;
  list-style:none;
  border:1px solid var(--suite-blue);
  border-radius:8px;
  padding:9px 11px;
  background:var(--suite-blue);
  color:var(--cp-text-inverse);
  font-size:.7rem;
  font-weight:740
}
.provision-tenant summary::-webkit-details-marker{
  display:none
}
.provision-tenant form{
  position:absolute;
  z-index:4;
  right:0;
  top:calc(100% + 8px);
  display:grid;
  gap:10px;
  width:290px;
  padding:14px;
  border:1px solid var(--suite-line);
  border-radius:10px;
  background:var(--cp-surface-raised);
  box-shadow:var(--suite-shadow)
}
.provision-tenant label{
  display:grid;
  gap:6px;
  color:var(--cp-text-muted);
  font-size:.68rem
}
.provision-tenant input[type=text]{
  padding:9px 10px;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  background:var(--cp-surface-raised);
  color:var(--suite-ink);
  font:inherit;
  font-size:.74rem
}
.product-checks{
  display:flex;
  gap:11px;
  flex-wrap:wrap
}
.product-checks label{
  display:flex;
  align-items:center;
  gap:5px
}
.access-context{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:17px;
  padding:17px 19px;
  border:1px solid var(--suite-line);
  border-radius:14px;
  background:var(--cp-surface-raised);
  box-shadow:var(--suite-shadow)
}
.access-context>div{
  display:flex;
  align-items:center;
  gap:12px
}
.access-context h2{
  margin:2px 0;
  color:var(--suite-ink);
  font-size:1rem
}
.access-context span:not(.access-context-icon){
  color:var(--suite-muted);
  font-size:.68rem
}
.access-context-icon{
  display:grid;
  width:39px;
  height:39px;
  place-items:center;
  border-radius:10px;
  background:var(--suite-blue-soft);
  color:var(--suite-blue)
}
.access-context>a{
  color:var(--suite-blue);
  font-size:.72rem;
  font-weight:700;
  text-decoration:none
}
.access-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
  gap:17px
}
.access-panel{
  padding:20px;
  border:1px solid var(--suite-line);
  border-radius:14px;
  background:var(--cp-surface-raised);
  box-shadow:var(--suite-shadow)
}
.role-catalogue{
  display:grid;
  gap:10px
}
.role-group{
  padding:13px;
  border:1px solid var(--cp-border-subtle);
  border-radius:10px;
  background:var(--cp-surface-page)
}
.role-group>div:first-child{
  display:flex;
  justify-content:space-between;
  gap:10px
}
.role-group b{
  color:var(--cp-text-secondary);
  font-size:.72rem;
  letter-spacing:.08em
}
.role-group>div:first-child span,.role-group>small{
  color:var(--suite-muted);
  font-size:.67rem
}
.role-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px
}
.role-chips span{
  padding:5px 7px;
  border-radius:6px;
  background:var(--suite-blue-soft);
  color:var(--cp-text-accent);
  font-size:.66rem;
  font-weight:700
}
.role-chips span.unavailable{
  background:var(--cp-surface-sunken);
  color:var(--cp-nav-text-muted);
  text-decoration:line-through
}
.role-create{
  margin-top:10px
}
.role-create summary{
  cursor:pointer;
  color:var(--suite-blue);
  font-size:.68rem;
  font-weight:700
}
.role-create form{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  align-items:end;
  gap:7px;
  margin-top:9px
}
.role-create label,.assignment-form label{
  display:grid;
  gap:5px;
  color:var(--cp-text-muted);
  font-size:.65rem
}
.role-create input,.assignment-form select{
  min-width:0;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  padding:8px 9px;
  background:var(--cp-surface-raised);
  color:var(--suite-ink);
  font:inherit;
  font-size:.72rem
}
.assignment-form{
  display:grid;
  grid-template-columns:1.1fr .65fr 1fr auto;
  align-items:end;
  gap:8px
}
.access-empty{
  display:grid;
  justify-items:center;
  gap:6px;
  padding:28px 12px;
  color:var(--suite-muted);
  text-align:center
}
.access-empty i{
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border-radius:50%;
  background:var(--suite-blue-soft);
  color:var(--suite-blue)
}
.access-empty b{
  color:var(--suite-ink);
  font-size:.78rem
}
.access-empty span{
  font-size:.69rem;
  line-height:1.45
}
.user-access-section{
  margin-top:17px
}
.access-user-list{
  display:grid;
  gap:8px
}
.access-user-list>article{
  display:grid;
  grid-template-columns:36px minmax(180px,.7fr) minmax(0,1.7fr);
  align-items:center;
  gap:12px;
  padding:12px;
  border:1px solid var(--cp-border-subtle);
  border-radius:10px;
  background:var(--cp-surface-raised)
}
.user-avatar{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border-radius:9px;
  background:var(--cp-surface-sunken);
  color:var(--cp-text-accent);
  font-size:.72rem;
  font-weight:800
}
.user-copy{
  display:grid;
  gap:2px;
  min-width:0
}
.user-copy b{
  overflow:hidden;
  font-size:.76rem;
  text-overflow:ellipsis;
  white-space:nowrap
}
.user-copy span,.user-copy small{
  overflow:hidden;
  color:var(--suite-muted);
  font-size:.66rem;
  text-overflow:ellipsis;
  white-space:nowrap
}
.user-copy small{
  color:var(--cp-success)
}
.user-role-list{
  display:flex;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap
}
.user-role-list form{
  margin:0
}
.user-role-list button,.no-role{
  border:1px solid var(--cp-border-subtle);
  border-radius:6px;
  padding:5px 7px;
  background:var(--cp-surface-hover);
  color:var(--cp-text-accent);
  font:inherit;
  font-size:.64rem;
  font-weight:700
}
.user-role-list button{
  cursor:pointer
}
.no-role{
  border-color:var(--cp-border-subtle);
  background:var(--cp-surface-page);
  color:var(--cp-nav-text-muted);
  font-weight:600
}
@media(max-width:1050px){
  .access-grid{
    grid-template-columns:1fr
  }
  .assignment-form{
    grid-template-columns:1fr 1fr
  }
  .assignment-form button{
    width:max-content
  }
}
@media(max-width:720px){
  .access-context{
    align-items:flex-start;
    flex-direction:column
  }
  .role-create form,.assignment-form{
    grid-template-columns:1fr
  }
  .access-user-list>article{
    grid-template-columns:36px minmax(0,1fr)
  }
  .user-role-list{
    grid-column:1/-1;
    justify-content:flex-start
  }
}
.organisation-picker{
  position:relative
}
.organisation-picker summary{
  cursor:pointer;
  list-style:none;
  color:var(--cp-text-accent);
  font-size:.72rem;
  font-weight:700
}
.organisation-picker summary::-webkit-details-marker{
  display:none
}
.organisation-picker-panel{
  position:absolute;
  z-index:10;
  top:calc(100% + 9px);
  right:0;
  width:min(390px,80vw);
  padding:13px;
  border:1px solid var(--cp-border-subtle);
  border-radius:11px;
  background:var(--cp-surface-raised);
  box-shadow:0 18px 42px rgba(23,54,74,.16)
}
.organisation-picker-panel form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px
}
.organisation-picker-panel label{
  display:grid;
  gap:5px;
  color:var(--cp-text-muted);
  font-size:.64rem;
  font-weight:700
}
.organisation-picker-panel input{
  min-width:0;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  padding:9px 10px;
  color:var(--cp-text-secondary);
  font:inherit;
  font-size:.74rem
}
.organisation-results{
  display:grid;
  max-height:280px;
  margin-top:10px;
  overflow:auto;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px
}
.organisation-results a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border-bottom:1px solid var(--cp-border-subtle);
  color:var(--cp-text-secondary);
  font-size:.73rem;
  font-weight:650;
  text-decoration:none
}
.organisation-results a:last-child{
  border-bottom:0
}
.organisation-results a:hover{
  background:var(--cp-surface-page)
}
.organisation-results a.selected{
  background:var(--cp-success-soft);
  color:var(--cp-success)
}
.organisation-results a i{
  color:var(--cp-success)
}
.organisation-empty{
  padding:14px;
  color:var(--cp-nav-text-muted);
  font-size:.72rem;
  text-align:center
}
.organisation-picker-panel>small{
  display:block;
  margin-top:8px;
  color:var(--cp-nav-text-muted);
  font-size:.62rem;
  line-height:1.4
}
.role-source{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px
}
.role-source a{
  color:var(--cp-success);
  font-size:.66rem;
  font-weight:700;
  text-decoration:none
}
.role-source a i{
  margin-left:3px;
  font-size:.58rem
}
.role-permission-edits{
  display:grid;
  gap:6px;
  margin-top:10px
}
.role-permission-edit{
  border-top:1px solid var(--cp-border-subtle);
  padding-top:8px
}
.role-permission-edit summary{
  cursor:pointer;
  color:var(--cp-text-secondary);
  font-size:.67rem;
  font-weight:700
}
.role-permission-edit summary small{
  margin-left:6px;
  color:var(--cp-nav-text-muted);
  font-size:.61rem;
  font-weight:600
}
.role-permission-edit form{
  display:grid;
  gap:9px;
  margin-top:8px
}
.permission-checklist{
  display:flex;
  flex-wrap:wrap;
  gap:6px
}
.permission-checklist label,.role-create fieldset label{
  display:flex;
  align-items:center;
  gap:5px;
  border:1px solid var(--cp-border-subtle);
  border-radius:7px;
  padding:6px 7px;
  background:var(--cp-surface-raised);
  color:var(--cp-text-secondary);
  font-size:.63rem;
  font-weight:600
}
.permission-checklist input,.role-create fieldset input{
  width:13px;
  height:13px;
  accent-color:var(--cp-success)
}
.role-create fieldset{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  border:0;
  padding:0;
  margin:0
}
.role-create legend{
  margin-bottom:5px;
  color:var(--cp-nav-text-muted);
  font-size:.62rem;
  font-weight:700
}
.role-permission-open{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  padding:8px 9px;
  background:var(--cp-surface-raised);
  color:var(--cp-text-secondary);
  font:700 .66rem Inter,"Segoe UI",sans-serif;
  cursor:pointer;
  text-align:left
}
.role-permission-open:hover{
  border-color:var(--cp-border-subtle);
  background:var(--cp-surface-page)
}
.role-permission-open small{
  margin-left:auto;
  color:var(--cp-nav-text-muted);
  font-size:.6rem;
  font-weight:600
}
.permission-modal{
  width:min(760px,calc(100vw - 30px));
  max-height:min(760px,calc(100vh - 30px));
  border:0;
  border-radius:15px;
  padding:0;
  box-shadow:0 28px 80px rgba(5,28,43,.28)
}
.permission-modal::backdrop{
  background:rgba(5,23,37,.48)
}
.permission-modal-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:21px 23px;
  border-bottom:1px solid var(--cp-border-subtle)
}
.permission-modal-head h2{
  margin:3px 0;
  color:var(--cp-text-primary);
  font-size:1.2rem
}
.permission-modal-head span{
  color:var(--cp-nav-text-muted);
  font-size:.7rem
}
.permission-modal-close{
  display:grid;
  width:31px;
  height:31px;
  place-items:center;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  background:var(--cp-surface-raised);
  color:var(--cp-text-muted);
  cursor:pointer
}
.permission-modal form{
  display:grid;
  gap:16px;
  padding:20px 23px
}
.permission-tree{
  display:grid;
  gap:10px;
  max-height:480px;
  overflow:auto
}
.permission-tree section{
  border:1px solid var(--cp-border-subtle);
  border-radius:10px;
  overflow:hidden
}
.permission-parent{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  background:var(--cp-surface-page);
  color:var(--cp-text-secondary);
  font-size:.74rem;
  font-weight:750
}
.permission-parent input{
  width:15px;
  height:15px;
  accent-color:var(--cp-success)
}
.permission-parent i{
  margin-right:5px;
  color:var(--cp-success)
}
.permission-children{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--cp-border-subtle)
}
.permission-children label{
  display:grid;
  grid-template-columns:16px 1fr;
  gap:5px;
  align-items:center;
  padding:9px 11px;
  border-right:1px solid var(--cp-border-subtle);
  border-bottom:1px solid var(--cp-border-subtle);
  color:var(--cp-text-secondary);
  font-size:.68rem;
  font-weight:650
}
.permission-children label:nth-child(2n){
  border-right:0
}
.permission-children label:last-child{
  border-bottom:0
}
.permission-children input{
  grid-row:span 2;
  width:14px;
  height:14px;
  accent-color:var(--cp-success)
}
.permission-children small{
  color:var(--cp-nav-text-muted);
  font-size:.57rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.permission-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:4px;
  border-top:1px solid var(--cp-border-subtle)
}
@media(max-width:620px){
  .permission-children{
    grid-template-columns:1fr
  }
  .permission-children label{
    border-right:0
  }
  .permission-modal-head,.permission-modal form{
    padding-inline:16px
  }
}
.directory-search{
  display:flex;
  gap:8px;
  margin:0 0 13px
}
.directory-search input{
  min-width:0;
  width:min(380px,100%);
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  padding:9px 10px;
  color:var(--cp-text-secondary);
  font:inherit;
  font-size:.75rem
}
.directory-table-wrap{
  overflow:auto;
  border:1px solid var(--cp-border-subtle);
  border-radius:11px
}
.directory-table{
  width:100%;
  border-collapse:collapse;
  background:var(--cp-surface-raised)
}
.directory-table th,.directory-table td{
  padding:12px 13px;
  border-bottom:1px solid var(--cp-border-subtle);
  text-align:left;
  white-space:nowrap
}
.directory-table th{
  background:var(--cp-surface-page);
  color:var(--cp-nav-text-muted);
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase
}
.directory-table td{
  color:var(--cp-text-muted);
  font-size:.72rem
}
.directory-table tr:last-child td{
  border-bottom:0
}
.directory-table tr.selected{
  background:var(--cp-surface-hover)
}
.directory-table td:first-child{
  min-width:230px
}
.directory-table b,.directory-table small{
  display:block
}
.directory-table b{
  color:var(--cp-text-secondary);
  font-size:.76rem
}
.directory-table small{
  max-width:230px;
  overflow:hidden;
  margin-top:3px;
  color:var(--cp-nav-text-muted);
  font-size:.61rem;
  text-overflow:ellipsis
}
.directory-table a{
  color:var(--cp-success);
  font-size:.7rem;
  font-weight:700;
  text-decoration:none
}
.directory-pager{
  display:flex;
  justify-content:flex-end;
  gap:14px;
  margin-top:11px;
  color:var(--cp-nav-text-muted);
  font-size:.68rem
}
.directory-pager span{
  margin-right:auto
}
.directory-pager a{
  color:var(--cp-success);
  font-weight:700;
  text-decoration:none
}
/* Shared application shell: deliberately independent of the stock ABP visual language. */
body:not(.abp-account-layout){
  background:#f4f7fb!important;
  color:var(--suite-ink)
}
body:not(.abp-account-layout) .lpx-sidebar{
  background:linear-gradient(180deg,#081f34 0%,#061522 100%)!important;
  border:0!important;
  box-shadow:10px 0 30px rgba(5,20,35,.11)
}
body:not(.abp-account-layout) .lpx-sidebar-container{
  padding:16px 12px 22px!important;
  background:transparent!important
}
body:not(.abp-account-layout) .lpx-logo-container{
  height:58px!important;
  margin:0 7px 17px!important;
  border-bottom:1px solid rgba(212,228,246,.12)!important;
  background:transparent!important
}
body:not(.abp-account-layout) .lpx-brand-logo{
  filter:brightness(0) invert(1)!important;
  opacity:.96
}
body:not(.abp-account-layout) .lpx-brand-name{
  left:51px!important;
  right:4px!important;
  overflow:hidden;
  color:#f7fbff!important;
  font-size:.82rem!important;
  font-weight:760!important;
  letter-spacing:-.01em!important;
  text-overflow:ellipsis;
  white-space:nowrap
}
body:not(.abp-account-layout) .lpx-nav{
  padding:0!important
}
body:not(.abp-account-layout) .lpx-nav-menu{
  gap:4px!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-item{
  margin:0!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-link{
  min-height:43px!important;
  margin:0!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  color:#aebfd0!important;
  font-size:.79rem!important;
  font-weight:650!important;
  transition:background .16s ease,color .16s ease,border-color .16s ease!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-link:hover{
  border-color:rgba(158,199,239,.11)!important;
  background:rgba(255,255,255,.075)!important;
  color:#fff!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-link.active,body:not(.abp-account-layout) .lpx-nav-menu .active>.lpx-nav-link,body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-item.active>a{
  border-color:rgba(76,157,255,.22)!important;
  background:linear-gradient(90deg,rgba(39,122,222,.34),rgba(39,122,222,.14))!important;
  color:#fff!important;
  box-shadow:inset 3px 0 #55a3ff
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-link i,body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-link .lpx-icon{
  width:19px!important;
  color:#7fbbf2!important;
  font-size:.9rem!important;
  text-align:center
}
body:not(.abp-account-layout) .lpx-nav-menu .active>.lpx-nav-link i,body:not(.abp-account-layout) .lpx-nav-menu .active>.lpx-nav-link .lpx-icon{
  color:#d7ebff!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-menu-item-group-title{
  margin:17px 9px 7px!important;
  color:#67859f!important;
  font-size:.61rem!important;
  font-weight:800!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important
}
body:not(.abp-account-layout) .lpx-nav-menu .lpx-nav-item .lpx-nav-menu{
  margin:4px 0 7px 15px!important;
  padding-left:9px!important;
  border-left:1px solid rgba(213,233,250,.13)!important
}
body:not(.abp-account-layout) .lpx-sidebar .lpx-account-menu{
  margin:14px 7px 0!important;
  padding:12px 0 0!important;
  border-top:1px solid rgba(212,228,246,.12)!important
}
body:not(.abp-account-layout) .lpx-sidebar .lpx-account-menu,body:not(.abp-account-layout) .lpx-sidebar .lpx-account-menu *{
  color:#b9c9d8!important
}
body:not(.abp-account-layout) .lpx-content-container,body:not(.abp-account-layout) .lpx-content{
  background:#f4f7fb!important
}
body:not(.abp-account-layout) .lpx-topbar-container{
  min-height:68px!important;
  border-bottom:1px solid #e4eaf2!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 2px 15px rgba(22,41,67,.035)!important
}
body:not(.abp-account-layout) .lpx-topbar{
  padding-inline:clamp(18px,3vw,38px)!important
}
body:not(.abp-account-layout) .lpx-topbar .lpx-topbar-title,body:not(.abp-account-layout) .lpx-topbar a{
  color:#35465d!important
}
body:not(.abp-account-layout) .lpx-content{
  min-height:calc(100vh - 68px)!important
}
body:not(.abp-account-layout) .dropdown-menu{
  border:1px solid #e1e8f0!important;
  border-radius:11px!important;
  box-shadow:0 16px 34px rgba(29,49,78,.14)!important
}
body:not(.abp-account-layout) .dropdown-item{
  border-radius:7px!important;
  color:#43536a!important;
  font-size:.8rem!important
}
body:not(.abp-account-layout) .dropdown-item:hover{
  background:#eef5ff!important;
  color:#1768e5!important
}
/* Lepton XLite 5 side-menu markup (the active theme uses this generation of selectors). */
:root{
  --lpx-brand:#1768e5!important;
  --lpx-primary:#1768e5!important
}
#lpx-wrapper{
  background:#f4f7fb!important
}
#lpx-wrapper .lpx-sidebar-container{
  width:268px!important;
  background:linear-gradient(180deg,#081f34 0%,#061522 100%)!important;
  box-shadow:10px 0 30px rgba(5,20,35,.12)!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-sidebar{
  width:268px!important;
  margin-top:72px!important;
  background:transparent!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-logo-container{
  height:72px!important;
  margin:0!important;
  padding:0 20px!important;
  border-bottom:1px solid rgba(212,228,246,.12)!important;
  background:#081f34!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-logo-container .lpx-brand-logo{
  max-width:28px!important;
  filter:brightness(0) invert(1)!important;
  opacity:.95
}
#lpx-wrapper .lpx-sidebar-container .lpx-logo-container .lpx-brand-name{
  left:55px!important;
  top:24px!important;
  color:#f4f9ff!important;
  font-size:.84rem!important;
  font-weight:760!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav{
  padding:16px 12px 24px!important;
  background:transparent!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu{
  margin:0!important;
  padding:0!important;
  background:transparent!important
}
#lpx-wrapper .lpx-nav-menu .menu-item{
  margin:3px 0!important;
  background:transparent!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link{
  display:flex!important;
  align-items:center!important;
  min-height:43px!important;
  padding:0 12px!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  background:transparent!important;
  color:#afc0d1!important;
  font-size:.8rem!important;
  font-weight:650!important;
  transition:background .16s ease,color .16s ease,border-color .16s ease!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link:hover{
  border-color:rgba(158,199,239,.11)!important;
  background:rgba(255,255,255,.075)!important;
  color:#fff!important
}
#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link,#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link.active{
  border-color:rgba(76,157,255,.22)!important;
  background:linear-gradient(90deg,rgba(39,122,222,.36),rgba(39,122,222,.14))!important;
  color:#fff!important;
  box-shadow:inset 3px 0 #55a3ff!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link i,#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link svg,#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link .menu-item-icon{
  width:20px!important;
  margin-right:12px!important;
  color:#81b9ed!important;
  font-size:.95rem!important;
  text-align:center!important
}
#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link i,#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link svg{
  color:#d8ecff!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link .menu-item-text{
  color:inherit!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link .dd-icon{
  margin-left:auto!important;
  margin-right:0!important;
  color:#7892aa!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link+ul{
  margin:4px 0 7px 21px!important;
  padding-left:8px!important;
  border-left:1px solid rgba(213,233,250,.13)!important;
  background:transparent!important
}
#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link+ul .lpx-menu-item-link{
  min-height:37px!important;
  padding-left:10px!important;
  font-size:.75rem!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item .lpx-menu-item-link[href*='/Identity'],#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item .lpx-menu-item-link[href*='/TenantManagement'],#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item .lpx-menu-item-link[href*='/SettingManagement']{
  display:none!important
}
#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item:has(>.lpx-menu-item-link[href*='/Identity']),#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item:has(>.lpx-menu-item-link[href*='/TenantManagement']),#lpx-wrapper .lpx-sidebar-container .lpx-sidebar .lpx-nav .lpx-nav-menu .menu-item:has(>.lpx-menu-item-link[href*='/SettingManagement']){
  display:none!important
}
#lpx-wrapper .lpx-topbar{
  min-height:72px!important;
  border-bottom:1px solid #e3e9f1!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 2px 15px rgba(22,41,67,.035)!important
}
#lpx-wrapper .lpx-topbar-content{
  padding-inline:26px!important
}
#lpx-wrapper .lpx-content-container,#lpx-wrapper .lpx-content{
  background:#f4f7fb!important
}
.cp-login-card.cms-login .cp-login-mark{
  background:var(--cp-surface-sunken);
  color:var(--cp-text-accent)
}
.cp-login-card.cms-login .cp-login-submit{
  border-color:var(--cp-accent);
  background:var(--cp-accent)
}
.cp-login-card.rms-login .cp-login-mark{
  background:var(--cp-surface-sunken);
  color:var(--cp-success)
}
.cp-login-card.rms-login .cp-login-submit{
  border-color:var(--cp-success);
  background:var(--cp-success)
}
.cp-login-card.rms-login .cp-login-form input:focus{
  border-color:var(--cp-success);
  box-shadow:0 0 0 3px rgba(13,155,124,.12)
}
.cp-organisation-field{
  display:grid;
  gap:7px;
  margin:7px 0 4px;
  padding:13px 14px;
  border:1px solid var(--cp-border-subtle);
  border-radius:11px;
  background:var(--cp-surface-page)
}
.cp-organisation-field label{
  margin:0;
  color:var(--cp-text-secondary);
  font-size:.72rem;
  font-weight:750
}
.cp-organisation-field input{
  background:var(--cp-surface-raised)!important
}
.cp-organisation-field small{
  color:var(--cp-nav-text-muted);
  font-size:.66rem;
  line-height:1.45
}
.cp-login-card.rms-login .cp-organisation-field{
  border-color:var(--cp-border-subtle);
  background:var(--cp-surface-page)
}
.product-permission-tree{
  gap:0;
  border:1px solid var(--cp-border-subtle);
  border-radius:10px;
  background:var(--cp-surface-raised)
}
.product-permission-tree .permission-node{
  display:grid;
  grid-template-columns:16px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:9px 11px 9px calc(12px + var(--permission-depth)*22px);
  border-bottom:1px solid var(--cp-border-subtle);
  color:var(--cp-text-secondary);
  font-size:.69rem;
  font-weight:650
}
.product-permission-tree .permission-node:last-child{
  border-bottom:0
}
.product-permission-tree .permission-node input{
  width:14px;
  height:14px;
  margin:0;
  accent-color:var(--cp-success)
}
.product-permission-tree .permission-node i{
  width:15px;
  color:var(--cp-text-accent)
}
.product-permission-tree .permission-node small{
  overflow:hidden;
  color:var(--cp-nav-text-muted);
  font-size:.57rem;
  text-overflow:ellipsis;
  white-space:nowrap
}
.product-permission-tree .permission-folder{
  grid-template-columns:minmax(0,1fr);
  background:var(--cp-surface-page);
  color:var(--cp-text-secondary);
  font-size:.72rem;
  font-weight:760
}
.product-permission-tree .permission-folder i{
  color:var(--cp-success)
}
.role-create .product-permission-tree{
  max-height:270px;
  margin-top:6px;
  overflow:auto
}
.role-create fieldset{
  display:block
}
/* Shared EVOrbit product standard: Control Plane uses the same component language as CMS and RMS. */
:root{
  --suite-bg:#f3f6f8;
  --suite-panel:#fff;
  --suite-ink:#172b3a;
  --suite-muted:#738391;
  --suite-line:#e3eaf0;
  --suite-blue:#17394e;
  --suite-blue-soft:#edf5f6;
  --suite-mint:#19c59a;
  --suite-mint-soft:#e8f9f4;
  --suite-amber:#db9828;
  --suite-amber-soft:#fff3df;
  --suite-red:#e45461;
  --suite-red-soft:#fff0f1;
  --suite-shadow:0 10px 24px rgba(23,54,74,.045)
}
#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link,#lpx-wrapper .lpx-nav-menu .menu-item .lpx-menu-item-link.active{
  border-color:transparent!important;
  background:linear-gradient(90deg,rgba(25,197,154,.18),rgba(25,197,154,.06))!important;
  color:#edfffa!important;
  box-shadow:inset 3px 0 0 #19c59a!important
}
#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link i,#lpx-wrapper .lpx-nav-menu .menu-item.active>.lpx-menu-item-link svg{
  color:#38dfb8!important
}
#lpx-wrapper .lpx-content-container,#lpx-wrapper .lpx-content{
  background:#f3f6f8!important
}
/* The single page shell all three pages share (Home, Suite Administration, Suite Access each carry
   "suite-shell" plus a page-specific modifier). It never had a display/gap of its own, so its
   direct children — the hero header, the metric-grid, the console-layout panels, section-blocks —
   stacked with ZERO space between them: measured 0px header-to-cards and 0px cards-to-panels on
   Home. .admin-shell/.access-shell previously duplicated a gap rule for two of the three pages;
   consolidated here so every page that uses this shell gets the same rhythm automatically. */
.suite-shell{
  display:flex;
  flex-direction:column;
  gap:var(--cp-space-6);
  max-width:1800px!important;
  font-family:var(--cp-font-sans)!important
}
/* Space Grotesk was never loaded either (no @font-face, no remote link) — every heading on these
   three pages has always silently fallen back past it to system-ui, same defect class as DM Sans. */
.console-header h1,.suite-hero h1,.panel-heading h2,.section-heading h2,.review-heading h2{
  font-family:var(--cp-font-sans)!important
}
.primary-button{
  border-color:var(--cp-border-inverse)!important;
  background:var(--cp-surface-inverse)!important
}
.primary-button:hover{
  background:var(--cp-surface-inverse)!important
}
.secondary-button{
  border-color:var(--cp-border-subtle)!important;
  border-radius:9px!important;
  color:var(--cp-text-secondary)!important
}
.link-form input,.tenant-selector select,.role-create input,.role-create select{
  min-height:40px!important;
  border:1px solid var(--cp-border-subtle)!important;
  border-radius:8px!important;
  background:var(--cp-surface-page)!important;
  color:var(--cp-text-secondary)!important
}
.link-form input:focus,.tenant-selector select:focus,.role-create input:focus,.role-create select:focus{
  border-color:var(--cp-success)!important;
  box-shadow:0 0 0 3px rgba(25,197,154,.12)!important;
  outline:0
}
.permission-node i{
  color:var(--cp-success)!important
}
.directory-table-wrap,.review-table-wrap{
  border:1px solid var(--cp-border-subtle)!important;
  border-radius:10px!important;
  background:var(--cp-surface-raised)
}
.directory-table,.review-table{
  width:100%;
  border-collapse:separate!important;
  border-spacing:0!important;
  background:var(--cp-surface-raised);
  color:var(--cp-text-secondary);
  font-family:var(--cp-font-sans);
  padding:11px 13px!important;
  border:0!important;
  border-bottom:1px solid var(--cp-border-subtle)!important;
  background:var(--cp-surface-page)!important;
  color:var(--cp-nav-text-muted)!important;
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.06em;
  text-align:left;
  text-transform:uppercase;
  white-space:nowrap
}
.directory-table td,.review-table td{
  min-height:48px;
  padding:13px!important;
  border:0!important;
  border-bottom:1px solid var(--cp-border-subtle)!important;
  color:var(--cp-text-secondary)!important;
  font-size:.79rem!important;
  vertical-align:middle
}
.directory-table tr:last-child td,.review-table tr:last-child td{
  border-bottom:0!important
}
.directory-table tbody tr:hover td,.review-table tbody tr:hover td{
  background:var(--cp-surface-page)
}
.directory-table small,.review-table small{
  color:var(--cp-nav-text-muted);
  font-size:.7rem
}
.directory-pager{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:12px;
  color:var(--cp-nav-text-muted);
  font-size:.72rem
}
.directory-pager a{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  padding:0 9px;
  border:1px solid var(--cp-border-subtle);
  border-radius:8px;
  background:var(--cp-surface-raised);
  color:var(--cp-text-muted);
  font-size:.72rem;
  font-weight:700;
  text-decoration:none
}
.directory-pager a:hover{
  border-color:var(--cp-border-inverse);
  background:var(--cp-surface-inverse);
  color:var(--cp-text-inverse)
}
.directory-search input,.organisation-picker-panel input,.assignment-form input,.assignment-form select,.provision-tenant input{
  min-height:40px!important;
  border:1px solid var(--cp-border-subtle)!important;
  border-radius:8px!important;
  background:var(--cp-surface-page)!important;
  color:var(--cp-text-secondary)!important;
  font-family:var(--cp-font-sans)!important
}
.directory-search input:focus,.organisation-picker-panel input:focus,.assignment-form input:focus,.assignment-form select:focus,.provision-tenant input:focus{
  border-color:var(--cp-success)!important;
  box-shadow:0 0 0 3px rgba(25,197,154,.12)!important;
  outline:0
}
