:root {
  color-scheme: light;
  --auth-bg: #f3f5f8;
  --auth-card: #ffffff;
  --auth-text: #172033;
  --auth-muted: #657087;
  --auth-line: #dfe4ec;
  --auth-blue: #285bd4;
  --auth-blue-dark: #1f49ad;
  --auth-danger: #b42318;
  --auth-ok: #067647;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body.auth-page {
  margin: 0;
  min-height: 100vh;
  background: var(--auth-bg);
  color: var(--auth-text);
}
.auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(320px, 480px) minmax(420px, 1fr);
}
.auth-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px clamp(32px, 6vw, 82px);
  background: var(--auth-card);
  border-right: 1px solid var(--auth-line);
}
.auth-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 56px; }
.auth-mark { width: 25px; height: 25px; border: 6px solid var(--auth-blue); border-radius: 4px; transform: rotate(45deg); }
.auth-brand strong { font-size: 24px; letter-spacing: -1px; }
.auth-brand strong b { color: var(--auth-blue); }
.auth-card { width: 100%; max-width: 420px; }
.auth-card h1 { margin: 0 0 12px; font-size: 31px; line-height: 1.15; letter-spacing: -0.8px; }
.auth-card > p { margin: 0 0 32px; color: var(--auth-muted); line-height: 1.6; }
.auth-form { display: grid; gap: 20px; }
.auth-field { display: grid; gap: 8px; }
.auth-field label { font-size: 13px; font-weight: 700; color: #364055; }
.auth-field input, .auth-field select {
  width: 100%; height: 48px; border: 1px solid #cfd6e2; border-radius: 7px;
  padding: 0 14px; font: inherit; color: var(--auth-text); background: white;
  outline: none; transition: border-color .15s, box-shadow .15s;
}
.auth-field input:focus, .auth-field select:focus { border-color: var(--auth-blue); box-shadow: 0 0 0 3px rgba(40,91,212,.12); }
.auth-button {
  min-height: 48px; border: 0; border-radius: 7px; padding: 0 18px;
  background: var(--auth-blue); color: white; font: inherit; font-weight: 750;
  cursor: pointer; transition: background .15s, transform .05s;
}
.auth-button:hover { background: var(--auth-blue-dark); }
.auth-button:active { transform: translateY(1px); }
.auth-button:disabled { opacity: .6; cursor: wait; }
.auth-error, .auth-success { min-height: 20px; margin: 0; font-size: 13px; line-height: 1.45; }
.auth-error { color: var(--auth-danger); }
.auth-success { color: var(--auth-ok); }
.auth-note { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--auth-line); font-size: 12px; color: var(--auth-muted); line-height: 1.55; }
.auth-visual { position: relative; overflow: hidden; display: flex; align-items: flex-end; padding: 64px; background: #15213a; color: white; }
.auth-visual::before, .auth-visual::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.auth-visual::before { width: 760px; height: 760px; right: -230px; top: -350px; }
.auth-visual::after { width: 520px; height: 520px; right: 70px; top: -240px; }
.auth-visual-copy { position: relative; z-index: 1; max-width: 620px; }
.auth-visual-copy .eyebrow { color: #9eb8ff; font-size: 12px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.auth-visual-copy h2 { margin: 16px 0 18px; font-size: clamp(34px, 4vw, 58px); line-height: 1.05; letter-spacing: -1.8px; }
.auth-visual-copy p { color: #c2cada; font-size: 17px; line-height: 1.7; max-width: 540px; }
.auth-security { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 38px; color: #dce5f8; font-size: 13px; }
.auth-security span::before { content: "✓"; color: #8db0ff; margin-right: 8px; font-weight: 800; }

.auth-admin { max-width: 1160px; margin: 0 auto; padding: 36px 28px 80px; }
.auth-admin-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.auth-admin-head h1 { margin: 0 0 8px; font-size: 30px; }
.auth-admin-head p { margin: 0; color: var(--auth-muted); }
.auth-link { color: var(--auth-blue); text-decoration: none; font-weight: 700; }
.auth-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.auth-table-wrap { background: white; border: 1px solid var(--auth-line); border-radius: 10px; overflow: hidden; }
.auth-table { width: 100%; border-collapse: collapse; }
.auth-table th, .auth-table td { padding: 14px 16px; border-bottom: 1px solid #edf0f4; text-align: left; vertical-align: middle; }
.auth-table th { font-size: 12px; color: var(--auth-muted); text-transform: uppercase; letter-spacing: .5px; background: #fafbfc; }
.auth-table tr:last-child td { border-bottom: 0; }
.auth-role, .auth-state { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .35px; }
.auth-role { background: #eef3ff; color: #2850ad; }
.auth-state.active { background: #ecfdf3; color: #067647; }
.auth-state.inactive { background: #f2f4f7; color: #667085; }
.auth-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.auth-small-btn { border: 1px solid #cfd6e2; background: white; border-radius: 6px; padding: 7px 10px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.auth-small-btn:hover { background: #f7f8fa; }
.auth-small-btn.danger { color: var(--auth-danger); }
.auth-modal[hidden] { display: none; }
.auth-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: rgba(15,23,42,.42); padding: 24px; }
.auth-dialog { width: min(480px, 100%); background: white; border-radius: 10px; padding: 26px; box-shadow: 0 24px 80px rgba(15,23,42,.28); }
.auth-dialog h2 { margin: 0 0 8px; }
.auth-dialog > p { margin: 0 0 22px; color: var(--auth-muted); }
.auth-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.auth-secondary { border: 1px solid #cfd6e2; background: white; color: var(--auth-text); }
.auth-temp { margin-top: 18px; padding: 16px; border: 1px solid #b9caff; background: #f5f7ff; border-radius: 8px; }
.auth-temp code { display: block; margin-top: 8px; padding: 11px; background: white; border: 1px solid #d7def3; border-radius: 6px; font-size: 15px; word-break: break-all; user-select: all; }
@media (max-width: 860px) {
  .auth-shell { grid-template-columns: 1fr; }
  .auth-panel { border-right: 0; min-height: 100vh; }
  .auth-visual { display: none; }
  .auth-table-wrap { overflow-x: auto; }
  .auth-admin-head { flex-direction: column; }
}

/* BEGIN PHASE 17 SECURITY GOVERNANCE */
.security-admin{max-width:1380px}.security-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.security-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.security-summary article,.security-card{background:#fff;border:1px solid var(--auth-line);border-radius:8px}.security-summary article{padding:16px;display:grid;gap:5px}.security-summary span,.security-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--auth-muted);font-weight:800}.security-summary strong{font-size:17px}.security-summary small,.security-card p,.security-row small{color:var(--auth-muted);line-height:1.45}.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.security-card{padding:18px;min-height:240px}.security-card.security-wide{grid-column:1/-1}.security-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.security-card h2{font-size:19px;margin:4px 0 0}.security-list{display:grid;gap:8px;max-height:330px;overflow:auto;margin-top:14px}.security-list.compact{max-height:180px}.security-row{border-top:1px solid #edf0f4;padding:10px 0;display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.security-row>div{display:grid;gap:3px;min-width:0}.security-state{display:inline-flex;padding:4px 7px;border-radius:4px;background:#f2f4f7;color:#475467;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;white-space:nowrap}.security-state.ok{background:#ecfdf3;color:#067647}.security-state.warn{background:#fffaeb;color:#b54708}.security-state.bad{background:#fef3f2;color:#b42318}.security-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.security-health-grid article{border:1px solid #edf0f4;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}.security-dialog{width:min(620px,100%)}.security-dialog .auth-form{max-height:55vh;overflow:auto;padding-right:4px}.auth-sso{display:grid;gap:8px;margin:18px 0}.auth-sso-button{display:flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #cfd6e2;border-radius:7px;text-decoration:none;color:var(--auth-text);font-weight:750;background:#fff}.auth-sso-button:hover{background:#f7f8fa}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--auth-muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin:18px 0}.auth-divider::before,.auth-divider::after{content:"";height:1px;background:var(--auth-line);flex:1}@media(max-width:900px){.security-summary,.security-grid,.security-health-grid{grid-template-columns:1fr}.security-card.security-wide{grid-column:auto}}
/* END PHASE 17 SECURITY GOVERNANCE */

/* BEGIN CLIENT-SCOPED MODULE RBAC */
.rbac-admin{max-width:1420px}.rbac-head{border-bottom:1px solid var(--auth-line);padding-bottom:24px}.rbac-head .security-kicker{margin:18px 0 7px}.rbac-section{margin-top:24px;background:#fff;border:1px solid var(--auth-line)}.rbac-section-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:20px 22px;border-bottom:1px solid var(--auth-line)}.rbac-section-head>div:first-child{max-width:820px}.rbac-section-head span{font-size:11px;text-transform:uppercase;letter-spacing:.65px;font-weight:800;color:var(--auth-muted)}.rbac-section-head h2{margin:5px 0 6px;font-size:20px}.rbac-section-head p{margin:0;color:var(--auth-muted);line-height:1.55}.rbac-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.rbac-module-card{padding:18px;border-right:1px solid var(--auth-line);border-bottom:1px solid var(--auth-line);display:grid;gap:14px}.rbac-module-card:nth-child(3n){border-right:0}.rbac-module-card header,.rbac-user-card header,.rbac-user-card footer,.rbac-module-card footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.rbac-module-card header>div,.rbac-user-card header>div:first-child{display:grid;gap:3px}.rbac-module-card small,.rbac-user-card small,.rbac-access-row small,.rbac-summary-grid small{color:var(--auth-muted);line-height:1.35}.rbac-module-card label{display:grid;gap:6px}.rbac-module-card label>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--auth-muted)}.rbac-module-card select,.rbac-module-card input,.rbac-access-row select{height:38px;border:1px solid #cfd6e2;background:#fff;padding:0 10px;font:inherit;color:var(--auth-text)}.rbac-state{display:inline-flex;padding:4px 7px;border:1px solid #d0d5dd;background:#f8f9fb;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.rbac-state.enabled{border-color:#a6d9c1;background:#f1fbf6;color:#067647}.rbac-state.trial{border-color:#f0cf83;background:#fffaf0;color:#9a6700}.rbac-state.disabled{color:#667085}.rbac-user-list{display:grid}.rbac-user-card{padding:20px 22px;border-bottom:1px solid var(--auth-line)}.rbac-user-card:last-child{border-bottom:0}.rbac-user-card header>div:first-child strong{font-size:16px}.rbac-user-card header>div:first-child span{font-size:13px;color:var(--auth-muted)}.rbac-user-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rbac-admin-toggle{font-size:12px;font-weight:700;color:#364055;display:flex;gap:6px;align-items:center}.rbac-user-facts{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0;color:var(--auth-muted);font-size:12px}.rbac-user-facts b{color:var(--auth-text);font-weight:650}.rbac-access-details{border-top:1px solid #edf0f4;margin-top:12px;padding-top:13px}.rbac-access-details summary{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.45px;cursor:pointer}.rbac-access-grid{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #e4e7ec}.rbac-access-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(170px,1fr);gap:8px 12px;align-items:center;padding:12px 14px;border-bottom:1px solid #edf0f4;border-right:1px solid #edf0f4}.rbac-access-row:nth-child(2n){border-right:0}.rbac-access-row>div{display:grid;gap:2px}.rbac-role-note{grid-column:2;font-size:11px}.rbac-static-role{font-size:12px;font-weight:800}.rbac-user-card footer{justify-content:flex-end;margin-top:14px}.rbac-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.rbac-summary-grid article{padding:20px 22px;border-right:1px solid var(--auth-line);display:grid;gap:6px}.rbac-summary-grid article:last-child{border-right:0}.rbac-summary-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:800;color:var(--auth-muted)}.rbac-summary-grid strong{font-size:25px}.rbac-loading{padding:22px;color:var(--auth-muted)}@media(max-width:1050px){.rbac-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rbac-module-card:nth-child(3n){border-right:1px solid var(--auth-line)}.rbac-module-card:nth-child(2n){border-right:0}.rbac-access-grid{grid-template-columns:1fr}.rbac-access-row{border-right:0}.rbac-summary-grid{grid-template-columns:1fr}.rbac-summary-grid article{border-right:0;border-bottom:1px solid var(--auth-line)}}@media(max-width:700px){.rbac-module-grid{grid-template-columns:1fr}.rbac-module-card{border-right:0!important}.rbac-section-head{flex-direction:column}.rbac-access-row{grid-template-columns:1fr}.rbac-role-note{grid-column:1}.rbac-user-card header{align-items:flex-start;flex-direction:column}}
/* END CLIENT-SCOPED MODULE RBAC */

/* BEGIN AUTOMATION ACCESS REQUEST INBOX */
.access-inbox{max-width:1240px}.access-request-list,.access-grant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.access-request,.access-grant{padding:18px 20px;border-right:1px solid var(--auth-line);border-bottom:1px solid var(--auth-line);display:grid;gap:14px}.access-request:nth-child(2n),.access-grant:nth-child(2n){border-right:0}.access-request header,.access-grant header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.access-request header>div,.access-grant header>div{display:grid;gap:4px}.access-request header span:first-child,.access-grant header span:first-child{text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.5px;color:var(--auth-muted)}.access-request dl,.access-grant dl{display:grid;grid-template-columns:100px 1fr;gap:6px 12px;margin:0;font-size:12px}.access-request dt,.access-grant dt{color:var(--auth-muted);font-weight:700}.access-request dd,.access-grant dd{margin:0;min-width:0;word-break:break-word}.access-decision{display:grid;grid-template-columns:1fr auto auto;gap:8px}.access-decision input{height:34px;border:1px solid #cfd6e2;padding:0 10px;font:inherit}.access-grant>button{justify-self:end}@media(max-width:800px){.access-request-list,.access-grant-list{grid-template-columns:1fr}.access-request,.access-grant{border-right:0}.access-decision{grid-template-columns:1fr}.access-decision .auth-small-btn{justify-self:start}}
/* END AUTOMATION ACCESS REQUEST INBOX */

/* Client-scoped RBAC audit trail. */
.rbac-audit-list{display:grid;gap:8px}
.rbac-audit-row{display:flex;justify-content:space-between;gap:24px;padding:12px 0;border-bottom:1px solid var(--auth-border,#d9dee7)}
.rbac-audit-row:last-child{border-bottom:0}
.rbac-audit-row>div{display:grid;gap:3px}
.rbac-audit-row>div:last-child{text-align:right;justify-items:end}
.rbac-audit-row strong{text-transform:capitalize}
.rbac-audit-row span,.rbac-audit-row small{color:var(--auth-muted,#667085)}
@media(max-width:760px){.rbac-audit-row{display:grid;gap:8px}.rbac-audit-row>div:last-child{text-align:left;justify-items:start}}

/* Corporate identity onboarding */
.onboarding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:0}.onboarding-card{padding:20px 22px;border-right:1px solid var(--auth-line);border-bottom:1px solid var(--auth-line);display:grid;gap:12px;align-content:start}.onboarding-card:nth-child(2n){border-right:0}.onboarding-card.onboarding-wide{grid-column:1/-1;border-right:0}.onboarding-card h3{margin:0;font-size:17px}.onboarding-field{display:grid;gap:6px}.onboarding-field>span,.onboarding-label{font-size:11px;text-transform:uppercase;letter-spacing:.45px;font-weight:800;color:var(--auth-muted)}.onboarding-field input,.onboarding-field select,.onboarding-field textarea,.onboarding-role-grid select{width:100%;border:1px solid #cfd6e2;background:#fff;color:var(--auth-text);font:inherit;padding:9px 10px}.onboarding-field select,.onboarding-role-grid select{height:40px;padding-top:0;padding-bottom:0}.onboarding-field textarea{resize:vertical;min-height:150px}.onboarding-list{display:grid;border:1px solid #e4e7ec}.onboarding-list-row,.onboarding-provider-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 13px;border-bottom:1px solid #edf0f4}.onboarding-list-row:last-child,.onboarding-provider-row:last-child{border-bottom:0}.onboarding-list-row>div:first-child{display:grid;gap:3px;min-width:0}.onboarding-list-row>div:last-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.onboarding-list-row span,.onboarding-list-row small,.onboarding-provider-row small{color:var(--auth-muted);font-size:12px}.onboarding-invite-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,1fr);gap:20px}.onboarding-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px}.onboarding-role-grid label{display:grid;gap:5px}.onboarding-role-grid label>span{font-size:11px;color:var(--auth-muted);font-weight:700}.onboarding-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.onboarding-claim{display:grid;gap:8px;padding:12px;border:1px solid #d0d5dd;background:#f8f9fb}.onboarding-claim code{display:block;overflow-wrap:anywhere;font-size:12px}.auth-link-button{display:flex;text-decoration:none;align-items:center;justify-content:center}.auth-sso-microsoft,.auth-sso-google{position:relative}.auth-sso-microsoft::before,.auth-sso-google::before{content:"";width:9px;height:9px;border:1px solid #98a2b3;margin-right:10px;background:#fff}.auth-sso-google::before{border-radius:50%}@media(max-width:900px){.onboarding-grid{grid-template-columns:1fr}.onboarding-card,.onboarding-card:nth-child(2n){border-right:0}.onboarding-card.onboarding-wide{grid-column:auto}.onboarding-invite-layout,.onboarding-role-grid{grid-template-columns:1fr}}
