:root {
  --nscc-navy: #15263f;
  --nscc-navy-2: #203b5f;
  --nscc-orange: #f26513;
  --nscc-orange-dark: #c94f08;
  --nscc-orange-soft: #fff0e7;
  --nscc-blue: #178bd2;
  --nscc-blue-dark: #0c6fae;
  --nscc-blue-soft: #eaf6fd;
  --nscc-bg: #f3f6f9;
  --nscc-surface: rgba(255,255,255,.94);
  --nscc-surface-solid: #ffffff;
  --nscc-text: #24364c;
  --nscc-muted: #6b7b8c;
  --nscc-border: rgba(21,38,63,.10);
  --nscc-border-strong: rgba(21,38,63,.16);
  --nscc-success: #18794e;
  --nscc-warning: #d98a00;
  --nscc-danger: #b42318;
  --nscc-radius: 24px;
  --nscc-radius-small: 16px;
  --nscc-shadow: 0 16px 45px rgba(21,38,63,.09), 0 2px 10px rgba(21,38,63,.04);
  --nscc-shadow-soft: 0 8px 26px rgba(21,38,63,.065);
}

html { scroll-behavior: smooth; }
body.nscc-portal-page,
body.nscc-login-page { background: var(--nscc-bg); }
body.nscc-portal-page,
body.nscc-login-page,
.nscc-sidebar,
.nscc-modal { scrollbar-width: thin; scrollbar-color: var(--nscc-orange) #e8edf2; }
body.nscc-portal-page::-webkit-scrollbar,
body.nscc-login-page::-webkit-scrollbar,
.nscc-sidebar::-webkit-scrollbar,
.nscc-modal::-webkit-scrollbar { width: 10px; height: 10px; }
body.nscc-portal-page::-webkit-scrollbar-track,
body.nscc-login-page::-webkit-scrollbar-track,
.nscc-sidebar::-webkit-scrollbar-track,
.nscc-modal::-webkit-scrollbar-track { background: #e8edf2; border-radius: 999px; }
body.nscc-portal-page::-webkit-scrollbar-thumb,
body.nscc-login-page::-webkit-scrollbar-thumb,
.nscc-sidebar::-webkit-scrollbar-thumb,
.nscc-modal::-webkit-scrollbar-thumb { background: var(--nscc-orange); border-radius: 999px; border: 2px solid #e8edf2; }

.nscc-portal-page .site-main,
.nscc-portal-page .entry-content,
.nscc-portal-page .wp-site-blocks,
.nscc-login-page .site-main,
.nscc-login-page .entry-content,
.nscc-login-page .wp-site-blocks { max-width: none !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.nscc-portal-page .entry-title,
.nscc-login-page .entry-title { display: none; }
.nscc-portal-page .entry-content > .alignwide,
.nscc-portal-page .entry-content > .alignfull,
.nscc-login-page .entry-content > .alignwide,
.nscc-login-page .entry-content > .alignfull { max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }

.nscc-app,
.nscc-login-shell {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Arial, Helvetica, sans-serif;
  color: var(--nscc-text);
  line-height: 1.48;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.nscc-app *, .nscc-login-shell * { box-sizing: border-box; }
.nscc-app button, .nscc-app input, .nscc-app select, .nscc-app textarea,
.nscc-login-shell button, .nscc-login-shell input, .nscc-login-shell select, .nscc-login-shell textarea { font: inherit; }
.nscc-app a, .nscc-login-shell a { color: var(--nscc-blue-dark); }
.nscc-app :focus-visible, .nscc-login-shell :focus-visible { outline: 3px solid rgba(23,139,210,.34); outline-offset: 3px; }

.nscc-login-shell {
  min-height: max(680px, 78vh);
  display: grid;
  place-items: center;
  padding: clamp(26px, 5vw, 70px) clamp(18px, 4vw, 58px);
  background:
    radial-gradient(circle at 14% 10%, rgba(242,101,19,.12), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(23,139,210,.13), transparent 29%),
    linear-gradient(145deg, #fbfdff 0%, #f4f7fa 48%, #fff 100%);
}
.nscc-login-shell-ios { position: relative; overflow: hidden; }
.nscc-login-shell-ios::before,
.nscc-login-shell-ios::after { content: ""; position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.nscc-login-shell-ios::before { width: 340px; height: 340px; left: -180px; bottom: -180px; background: rgba(242,101,19,.06); }
.nscc-login-shell-ios::after { width: 300px; height: 300px; right: -150px; top: -150px; background: rgba(23,139,210,.07); }
.nscc-login-card {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  padding: clamp(28px, 5vw, 48px);
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 34px;
  box-shadow: 0 30px 80px rgba(21,38,63,.14), 0 2px 14px rgba(21,38,63,.06);
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(28px) saturate(140%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
}
.nscc-login-card h1 { margin: 10px 0 12px; color: var(--nscc-navy); font-size: clamp(34px, 6vw, 54px); line-height: .98; letter-spacing: -.04em; }
.nscc-login-card p { color: var(--nscc-muted); }
.nscc-eyebrow, .nscc-kicker { color: var(--nscc-orange-dark); font-weight: 850; text-transform: uppercase; letter-spacing: .075em; font-size: 11px; }
.nscc-login-brand { display: flex; align-items: center; gap: 13px; margin-bottom: 34px; }
.nscc-auth-product { color: var(--nscc-navy); font-size: 20px; font-weight: 900; letter-spacing: -.02em; }
.nscc-auth-hero { margin-bottom: 24px; }
.nscc-auth-role { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: var(--nscc-orange-soft); color: var(--nscc-orange-dark); font-size: 12px; font-weight: 850; }
.nscc-auth-form { margin-top: 22px; }
.nscc-auth-links { display: grid; gap: 12px; margin-top: 20px; text-align: center; color: var(--nscc-muted); font-size: 13px; }
.nscc-auth-links span { color: var(--nscc-muted); }
.nscc-auth-remember { font-size: 13px; color: var(--nscc-muted); }
.nscc-button-block { width: 100%; }
.nscc-security-note { display: flex; flex-direction: column; gap: 2px; margin-top: 24px; padding: 14px 16px; border-radius: 18px; background: rgba(21,38,63,.045); color: var(--nscc-muted); font-size: 12px; }
.nscc-security-note strong { color: var(--nscc-navy); }
.nscc-mfa-setup { display: grid; gap: 12px; margin: 24px 0; padding: 18px; border: 1px solid var(--nscc-border); border-radius: 20px; background: #fff; }
.nscc-mfa-setup > div { display: grid; gap: 5px; }
.nscc-mfa-secret { display: block; padding: 13px; border-radius: 12px; background: #f2f5f8; color: var(--nscc-navy); font-size: 15px; font-weight: 800; letter-spacing: .1em; overflow-wrap: anywhere; user-select: all; }
.nscc-mfa-enrol-card { width: min(820px,100%); }
.nscc-mfa-enrol-grid { display:grid; grid-template-columns:minmax(250px,.9fr) minmax(0,1.2fr); gap:18px; margin:24px 0; align-items:start; }
.nscc-mfa-qr-card, .nscc-mfa-manual { padding:18px; border:1px solid var(--nscc-border); border-radius:22px; background:#fff; box-shadow:0 10px 30px rgba(8,43,98,.055); }
.nscc-mfa-qr-card { display:grid; gap:12px; justify-items:center; text-align:center; }
.nscc-mfa-qr-card .nscc-kicker { justify-self:start; }
.nscc-mfa-qr { width:min(260px,100%); aspect-ratio:1; display:grid; place-items:center; padding:12px; overflow:hidden; border:1px solid #e0e8f0; border-radius:18px; background:#fff; color:var(--nscc-muted); font-size:12px; line-height:1.45; }
.nscc-mfa-qr svg { width:100%; height:100%; display:block; }
.nscc-mfa-qr.is-ready { padding:8px; }
.nscc-mfa-qr.is-error { aspect-ratio:auto; min-height:150px; padding:20px; background:#fff8f4; color:var(--nscc-orange-dark); }
.nscc-mfa-qr-card .nscc-help { margin:0; font-size:11px; line-height:1.55; text-align:left; }
.nscc-mfa-manual .nscc-mfa-setup { margin:12px 0 4px; box-shadow:none; }
.nscc-mfa-manual .nscc-auth-details { margin:14px 0 0; }
@media (max-width:720px) { .nscc-mfa-enrol-grid { grid-template-columns:1fr; } .nscc-mfa-qr { width:min(280px,100%); } }
.nscc-code-input { text-align: center; font-size: 25px !important; font-weight: 850; letter-spacing: .22em; }
.nscc-auth-details { margin: 16px 0 24px; }
.nscc-auth-details summary { cursor: pointer; color: var(--nscc-navy); font-weight: 750; }
.nscc-auth-success-mark { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 18px; border-radius: 22px; background: #eaf8f1; color: var(--nscc-success); font-size: 34px; font-weight: 900; }
.nscc-recovery-box { margin: 24px 0; padding: 20px; border: 1px solid var(--nscc-border); border-radius: 22px; background: #fff; }
.nscc-recovery-box h2 { margin: 4px 0 6px; color: var(--nscc-navy); }
.nscc-recovery-codes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 16px 0; }
.nscc-recovery-codes code { display: block; padding: 10px; border-radius: 10px; background: #f2f5f8; text-align: center; font-weight: 800; }

.nscc-gateway { position: relative; z-index: 1; width: min(1280px, 100%); }
.nscc-gateway-hero { max-width: 780px; margin: 0 auto 34px; text-align: center; }
.nscc-gateway-hero h1 { margin: 8px 0 10px; color: var(--nscc-navy); font-size: clamp(44px, 7vw, 76px); line-height: .95; letter-spacing: -.055em; }
.nscc-gateway-hero p { color: var(--nscc-muted); font-size: 18px; }
.nscc-gateway-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.nscc-gateway-card { display: grid; align-content: start; gap: 10px; min-height: 240px; padding: 24px; border: 1px solid rgba(255,255,255,.9); border-radius: 28px; background: rgba(255,255,255,.86); box-shadow: var(--nscc-shadow-soft); text-decoration: none !important; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.nscc-gateway-card:hover { transform: translateY(-4px); border-color: rgba(242,101,19,.22); box-shadow: var(--nscc-shadow); }
.nscc-gateway-card strong { color: var(--nscc-navy); font-size: 20px; }
.nscc-gateway-card > span:not(.nscc-gateway-icon) { color: var(--nscc-muted); font-size: 14px; }
.nscc-gateway-card b { margin-top: auto; color: var(--nscc-orange-dark); }
.nscc-gateway-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 17px; background: var(--nscc-orange-soft); color: var(--nscc-orange-dark); font-weight: 900; }

.nscc-shell { min-height: 86vh; width: 100%; background: var(--nscc-bg); }
.nscc-topbar {
  position: sticky; top: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  min-height: 74px; padding: 12px clamp(18px,2.6vw,44px);
  border-bottom: 1px solid rgba(21,38,63,.08);
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(26px) saturate(145%);
  -webkit-backdrop-filter: blur(26px) saturate(145%);
}
.nscc-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.nscc-brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 15px; background: linear-gradient(145deg, var(--nscc-orange), #ff9454); color: #fff; font-weight: 900; font-size: 16px; box-shadow: 0 9px 22px rgba(242,101,19,.22); }
.nscc-brand-copy { min-width: 0; }
.nscc-brand-name { color: var(--nscc-navy); font-weight: 900; font-size: 18px; line-height: 1.1; letter-spacing: -.02em; }
.nscc-brand-sub { margin-top: 2px; color: var(--nscc-muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nscc-user { display: flex; align-items: center; gap: 10px; }
.nscc-user-name { font-weight: 750; color: var(--nscc-navy); }
.nscc-user-pill { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; background: #f3f6f8; color: var(--nscc-navy); font-size: 12px; font-weight: 750; }
.nscc-user-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--nscc-success); }
.nscc-build-banner { margin: 12px 20px 0; padding: 11px 14px; border: 1px solid rgba(242,101,19,.22); border-radius: 16px; background: rgba(255,247,223,.92); color: #c94f08; box-shadow: 0 8px 24px rgba(15,37,66,.05); font-size: 13px; line-height: 1.45; }
.nscc-build-banner strong { color: var(--nscc-navy); }

.nscc-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); width: 100%; max-width: none; margin: 0; min-height: calc(86vh - 74px); }
.nscc-sidebar { min-height: calc(100vh - 74px); padding: 22px 14px 38px; border-right: 1px solid rgba(21,38,63,.075); background: rgba(255,255,255,.72); overflow-y: auto; }
.nscc-nav { display: grid; gap: 18px; position: sticky; top: 96px; }
.nscc-nav-group { display: grid; gap: 5px; }
.nscc-nav-label { padding: 0 12px 5px; color: #8996a4; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.nscc-nav button { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 45px; padding: 9px 12px; text-align: left; border: 0; border-radius: 14px; background: transparent; color: #425269; font-weight: 720; cursor: pointer; transition: background .14s ease, transform .14s ease, color .14s ease; }
.nscc-nav button:hover { background: rgba(21,38,63,.045); transform: translateX(2px); }
.nscc-nav button[aria-current="page"] { background: var(--nscc-orange-soft); color: var(--nscc-orange-dark); }
.nscc-nav-icon { display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 26px; border-radius: 9px; color: currentColor; }
.nscc-nav-icon svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.nscc-nav button[aria-current="page"] .nscc-nav-icon { background: rgba(242,101,19,.12); }

.nscc-main { min-width: 0; width: 100%; padding: clamp(24px,3vw,44px) clamp(18px,3vw,52px) 84px; background: radial-gradient(circle at 80% 0, rgba(23,139,210,.045), transparent 24%); }
.nscc-page { width: 100%; max-width: none; margin: 0; }
.nscc-page-header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 24px; }
.nscc-page-header h1 { margin: 3px 0 7px; color: var(--nscc-navy); font-size: clamp(31px,3.4vw,48px); line-height: 1.02; letter-spacing: -.04em; }
.nscc-page-header p { margin: 0; color: var(--nscc-muted); max-width: 850px; font-size: 15px; }
.nscc-hero-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 22px; padding: clamp(22px,3vw,34px); border: 1px solid rgba(255,255,255,.82); border-radius: 30px; background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(248,251,254,.88)); box-shadow: var(--nscc-shadow-soft); }
.nscc-hero-panel h1 { margin: 4px 0 8px; color: var(--nscc-navy); font-size: clamp(32px,4vw,50px); letter-spacing: -.045em; }
.nscc-hero-panel p { margin: 0; color: var(--nscc-muted); }

.nscc-grid { display: grid; gap: 16px; }
.nscc-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.nscc-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.nscc-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.nscc-grid-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.nscc-card { border: 1px solid rgba(255,255,255,.9); border-radius: var(--nscc-radius); background: var(--nscc-surface); box-shadow: var(--nscc-shadow-soft); padding: 22px; min-width: 0; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
button.nscc-card { color: inherit; border: 1px solid rgba(255,255,255,.9); }
button.nscc-card:hover { transform: translateY(-2px); box-shadow: var(--nscc-shadow); }
.nscc-card h2, .nscc-card h3 { margin-top: 0; color: var(--nscc-navy); letter-spacing: -.018em; }
.nscc-card h2 { font-size: 22px; }
.nscc-card h3 { font-size: 17px; }
.nscc-metric { min-height: 126px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.nscc-metric::after { content: ""; position: absolute; right: -24px; bottom: -34px; width: 90px; height: 90px; border-radius: 50%; background: rgba(242,101,19,.055); }
.nscc-metric-label { color: var(--nscc-muted); font-weight: 720; font-size: 13px; }
.nscc-metric-value { color: var(--nscc-navy); font-size: 39px; line-height: 1; font-weight: 900; letter-spacing: -.04em; }
.nscc-metric-sub { color: var(--nscc-muted); font-size: 12px; }
.nscc-card-attention { border-left: 5px solid var(--nscc-orange); }
.nscc-empty { padding: 34px; text-align: center; border: 1px dashed rgba(21,38,63,.18); border-radius: var(--nscc-radius); background: rgba(255,255,255,.68); color: var(--nscc-muted); }
.nscc-empty strong { display: block; margin-bottom: 4px; color: var(--nscc-navy); }

.nscc-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.nscc-actions-tight { gap: 6px; justify-content: flex-end; }
.nscc-button:disabled { opacity: .45; cursor: not-allowed; transform: none !important; box-shadow: none !important; }
.nscc-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 18px; border-radius: 999px; border: 1px solid transparent; font-weight: 800; text-decoration: none !important; cursor: pointer; transition: transform .13s ease, box-shadow .13s ease, background .13s ease, border-color .13s ease; }
.nscc-button:hover { transform: translateY(-1px); }
.nscc-button-primary { background: linear-gradient(180deg, #f77829, var(--nscc-orange)); color: #fff !important; box-shadow: 0 9px 20px rgba(242,101,19,.21); }
.nscc-button-primary:hover { background: var(--nscc-orange-dark); }
.nscc-button-secondary { background: linear-gradient(180deg, #2d9ce0, var(--nscc-blue)); color: #fff !important; box-shadow: 0 8px 18px rgba(23,139,210,.16); }
.nscc-button-secondary:hover { background: var(--nscc-blue-dark); }
.nscc-button-quiet { border-color: var(--nscc-border); background: rgba(255,255,255,.8); color: var(--nscc-navy) !important; }
.nscc-button-quiet:hover { border-color: rgba(242,101,19,.26); background: #fff; }
.nscc-button-danger { background: #fff1f0; color: var(--nscc-danger) !important; border-color: #ffd2ce; }
.nscc-button-small { min-height: 36px; padding: 7px 13px; font-size: 12px; }

.nscc-section { margin-top: 26px; }
.nscc-section-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.nscc-section-title h2, .nscc-section-title h3 { margin: 0; color: var(--nscc-navy); }
.nscc-section-title h2 { font-size: 22px; }
.nscc-list { display: grid; gap: 9px; }
.nscc-row { display: grid; grid-template-columns: minmax(0,1.55fr) repeat(3,minmax(100px,.72fr)) auto; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid rgba(21,38,63,.075); border-radius: 17px; background: rgba(255,255,255,.88); box-shadow: 0 2px 9px rgba(21,38,63,.03); }
.nscc-row-main strong { display: block; color: var(--nscc-navy); }
.nscc-row-main span, .nscc-muted { color: var(--nscc-muted); font-size: 13px; }
.nscc-status { display: inline-flex; align-items: center; width: fit-content; gap: 6px; padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 850; background: #eef3f7; color: var(--nscc-navy); text-transform: capitalize; }
.nscc-status-success, .nscc-status-completed, .nscc-status-approved, .nscc-status-active, .nscc-status-compliant, .nscc-status-converted { background: #eaf8f1; color: var(--nscc-success); }
.nscc-status-warning, .nscc-status-draft, .nscc-status-review, .nscc-status-new, .nscc-status-contacted, .nscc-status-intake, .nscc-status-ready { background: #fff7df; color: var(--nscc-warning); }
.nscc-status-danger, .nscc-status-cancelled, .nscc-status-non_compliant, .nscc-status-closed, .nscc-status-suspended { background: #fff1f0; color: var(--nscc-danger); }
.nscc-status-published, .nscc-status-accepted, .nscc-status-in_progress { background: var(--nscc-blue-soft); color: var(--nscc-blue-dark); }

.nscc-form { display: grid; gap: 17px; }
.nscc-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.nscc-field { display: grid; gap: 6px; }
.nscc-field-full { grid-column: 1 / -1; }
.nscc-field label { color: var(--nscc-navy); font-weight: 780; font-size: 13px; }
.nscc-field input, .nscc-field select, .nscc-field textarea { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #cbd6df; border-radius: 14px; background: rgba(255,255,255,.96); color: var(--nscc-text); box-shadow: inset 0 1px 1px rgba(21,38,63,.025); }
.nscc-field textarea { min-height: 112px; resize: vertical; }
.nscc-field input:focus, .nscc-field select:focus, .nscc-field textarea:focus { border-color: var(--nscc-blue); box-shadow: 0 0 0 4px rgba(23,139,210,.11); outline: 0; }
.nscc-checkbox { display: flex; gap: 9px; align-items: flex-start; }
.nscc-checkbox input { margin-top: 4px; accent-color: var(--nscc-orange); }
.nscc-help { font-size: 11px; color: var(--nscc-muted); }
fieldset.nscc-card { border: 1px solid var(--nscc-border); }

.nscc-panel { border: 1px solid rgba(255,255,255,.9); background: rgba(255,255,255,.93); border-radius: 25px; box-shadow: var(--nscc-shadow); overflow: hidden; }
.nscc-panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--nscc-border); background: rgba(249,251,253,.72); }
.nscc-panel-head h2 { margin: 0; color: var(--nscc-navy); }
.nscc-panel-body { padding: 22px; }

.nscc-shift-card { display: grid; gap: 13px; }
.nscc-shift-time { color: var(--nscc-orange-dark); font-weight: 880; font-size: 14px; }
.nscc-shift-title { color: var(--nscc-navy); font-size: 25px; font-weight: 900; line-height: 1.08; letter-spacing: -.03em; }
.nscc-shift-meta { display: grid; gap: 4px; color: var(--nscc-muted); }
.nscc-support-info { padding: 15px 16px; border-radius: 16px; background: #f4f9fc; border-left: 4px solid var(--nscc-blue); }
.nscc-warning { padding: 13px 15px; border-radius: 14px; background: #fff7df; color: #c94f08; }
.nscc-danger { padding: 13px 15px; border-radius: 14px; background: #fff1f0; color: #c62525; }
.nscc-success { padding: 13px 15px; border-radius: 14px; background: #eaf8f1; color: #0f5e3b; }

.nscc-table-wrap { width: 100%; overflow-x: auto; border: 1px solid rgba(21,38,63,.08); border-radius: 20px; background: rgba(255,255,255,.9); box-shadow: var(--nscc-shadow-soft); }
.nscc-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.nscc-table th, .nscc-table td { padding: 13px 15px; text-align: left; border-bottom: 1px solid rgba(21,38,63,.07); vertical-align: top; }
.nscc-table th { color: var(--nscc-navy); background: rgba(247,249,251,.86); font-size: 12px; font-weight: 850; }
.nscc-table tr:last-child td { border-bottom: 0; }

.nscc-modal-backdrop { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 20px; background: rgba(12,24,40,.48); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.nscc-modal { width: min(780px,100%); max-height: 91vh; overflow: auto; background: rgba(255,255,255,.97); border-radius: 28px; box-shadow: 0 34px 90px rgba(10,25,42,.3); }
.nscc-modal-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 18px 22px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--nscc-border); backdrop-filter: blur(18px); }
.nscc-modal-head h2 { margin: 0; color: var(--nscc-navy); letter-spacing: -.02em; }
.nscc-modal-body { padding: 22px; }
.nscc-icon-button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--nscc-border); border-radius: 50%; background: #fff; cursor: pointer; font-size: 20px; }

.nscc-toast-zone { position: fixed; right: 20px; bottom: 20px; z-index: 120; display: grid; gap: 10px; width: min(390px, calc(100vw - 40px)); }
.nscc-toast { padding: 14px 16px; border-radius: 15px; background: rgba(21,38,63,.96); color: #fff; box-shadow: var(--nscc-shadow); backdrop-filter: blur(12px); }
.nscc-toast-error { background: rgba(180,35,24,.97); }
.nscc-loading { min-height: 55vh; display: grid; place-items: center; align-content: center; gap: 12px; color: var(--nscc-muted); }
.nscc-spinner { width: 34px; height: 34px; border-radius: 50%; border: 4px solid #dce6ee; border-top-color: var(--nscc-orange); animation: nscc-spin .8s linear infinite; }
@keyframes nscc-spin { to { transform: rotate(360deg); } }

.nscc-mobile-nav { display: none; }
.nscc-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; }
.nscc-more-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.nscc-password-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.nscc-more-link { display: flex; align-items: center; gap: 12px; min-height: 72px; padding: 15px; border: 1px solid var(--nscc-border); border-radius: 18px; background: #fff; color: var(--nscc-navy); text-align: left; font-weight: 800; cursor: pointer; }
.nscc-more-link .nscc-nav-icon { color: var(--nscc-orange-dark); background: var(--nscc-orange-soft); }

.nscc-security-score { display: flex; align-items: center; gap: 16px; }
.nscc-security-ring { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 50%; background: conic-gradient(var(--nscc-success) var(--nscc-security-angle, 360deg), #e8edf2 0); position: relative; }
.nscc-security-ring::after { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: #fff; }
.nscc-security-ring strong { position: relative; z-index: 1; color: var(--nscc-navy); font-size: 20px; }
.nscc-mini-stat { display: grid; gap: 3px; }
.nscc-mini-stat b { color: var(--nscc-navy); font-size: 22px; }
.nscc-mini-stat span { color: var(--nscc-muted); font-size: 12px; }

.nscc-timeline { position: relative; display: grid; gap: 12px; }
.nscc-timeline-item { display: grid; grid-template-columns: 14px 1fr; gap: 12px; align-items: start; }
.nscc-timeline-dot { width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: var(--nscc-orange); box-shadow: 0 0 0 5px var(--nscc-orange-soft); }
.nscc-timeline-body { padding-bottom: 12px; border-bottom: 1px solid var(--nscc-border); }
.nscc-timeline-body strong { color: var(--nscc-navy); }

.nscc-signature-canvas { width: 100%; max-width: 680px; height: 190px; display: block; background: #fff; border: 2px solid #c7d2e2; border-radius: 16px; touch-action: none; }
.nscc-signature-canvas:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.nscc-signature-ack { padding: 13px 14px; border-radius: 14px; background: #f5f8fa; color: var(--nscc-muted); font-size: 12px; }

@media (max-width: 1180px) {
  .nscc-grid-5 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .nscc-gateway-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 980px) {
  .nscc-layout { grid-template-columns: 1fr; }
  .nscc-sidebar { display: none; }
  .nscc-main { padding-bottom: 112px; }
  .nscc-mobile-nav { position: fixed; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); z-index: 50; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 3px; padding: 7px; border: 1px solid rgba(255,255,255,.8); border-radius: 23px; background: rgba(255,255,255,.90); box-shadow: 0 18px 45px rgba(21,38,63,.18); backdrop-filter: blur(24px) saturate(140%); -webkit-backdrop-filter: blur(24px) saturate(140%); }
  .nscc-mobile-nav button { display: grid; place-items: center; gap: 2px; min-height: 52px; border: 0; border-radius: 16px; background: transparent; color: var(--nscc-muted); font-size: 10px; font-weight: 800; cursor: pointer; }
  .nscc-mobile-nav button .nscc-nav-icon { width: 24px; height: 24px; }
  .nscc-mobile-nav button[aria-current="page"] { background: var(--nscc-orange-soft); color: var(--nscc-orange-dark); }
  .nscc-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nscc-row { grid-template-columns: minmax(0,1fr) auto; }
  .nscc-row > :not(.nscc-row-main):not(.nscc-row-action) { display: none; }
}

@media (max-width: 680px) {
  .nscc-topbar { min-height: 66px; padding: 10px 13px; }
  .nscc-brand-sub, .nscc-user-name, .nscc-user-pill { display: none; }
  .nscc-main { padding: 22px 13px 108px; }
  .nscc-page-header { margin-bottom: 18px; }
  .nscc-grid-2, .nscc-grid-3, .nscc-grid-4, .nscc-grid-5, .nscc-form-grid, .nscc-gateway-grid, .nscc-more-grid, .nscc-password-action-grid { grid-template-columns: 1fr; }
  .nscc-card { padding: 18px; border-radius: 20px; }
  .nscc-metric { min-height: 102px; }
  .nscc-field-full { grid-column: auto; }
  .nscc-modal-backdrop { padding: 0; align-items: end; }
  .nscc-modal { border-radius: 26px 26px 0 0; max-height: 93vh; padding-bottom: env(safe-area-inset-bottom); }
  .nscc-actions .nscc-button { flex: 1 1 auto; }
  .nscc-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .nscc-table, .nscc-table tbody, .nscc-table tr, .nscc-table td { display: block; width: 100%; min-width: 0; }
  .nscc-table thead { display: none; }
  .nscc-table tr { margin-bottom: 10px; padding: 14px; border: 1px solid var(--nscc-border); border-radius: 17px; background: #fff; }
  .nscc-table td { padding: 5px 0; border: 0; }
  .nscc-table td::before { content: attr(data-label); display: block; color: var(--nscc-muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
  .nscc-login-shell { min-height: 74vh; padding: 20px 13px 32px; }
  .nscc-login-card { padding: 26px 20px; border-radius: 27px; }
  .nscc-recovery-codes { grid-template-columns: 1fr; }
  .nscc-gateway-card { min-height: 180px; }
  .nscc-hero-panel { align-items: flex-start; flex-direction: column; border-radius: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* Release 1.1 experience components */
.nscc-portal-page .content-area,
.nscc-portal-page .site-content > .container,
.nscc-portal-page main#primary,
.nscc-login-page .content-area,
.nscc-login-page .site-content > .container,
.nscc-login-page main#primary { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.nscc-portal-page main#primary,
.nscc-login-page main#primary { padding-left: 0 !important; padding-right: 0 !important; }
.nscc-shell { min-height: 100vh; }
.nscc-sidebar { box-shadow: inset -1px 0 0 rgba(255,255,255,.72); }
.nscc-nav-group + .nscc-nav-group { padding-top: 4px; border-top: 1px solid rgba(21,38,63,.055); }
.nscc-nav button span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nscc-card { transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.nscc-card:hover { border-color: rgba(21,38,63,.11); }
.nscc-care-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 16px 0; }
.nscc-care-meta > div { display: grid; gap: 3px; padding: 11px; border-radius: 15px; background: #f6f8fa; }
.nscc-care-meta span { color: var(--nscc-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.nscc-care-meta strong { color: var(--nscc-navy); font-size: 13px; overflow-wrap: anywhere; }
.nscc-more-link span:last-child { display: grid; gap: 2px; min-width: 0; }
.nscc-more-link strong { color: var(--nscc-navy); font-size: 14px; }
.nscc-more-link small { color: var(--nscc-muted); font-size: 11px; font-weight: 600; line-height: 1.35; }
.nscc-more-link:hover { border-color: rgba(242,101,19,.24); box-shadow: var(--nscc-shadow-soft); transform: translateY(-1px); }
.nscc-table strong { color: var(--nscc-navy); }
.nscc-signature-ack { margin-top: 14px; border: 1px solid var(--nscc-border); }
.nscc-signature-ack input { flex: 0 0 auto; }
.nscc-modal fieldset { min-width: 0; }
.nscc-modal legend { padding: 0 6px; color: var(--nscc-navy); }
.nscc-card > .nscc-success,
.nscc-card > .nscc-warning,
.nscc-card > .nscc-danger { margin-top: 12px; }
.nscc-topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(242,101,19,.28), rgba(23,139,210,.18), transparent); pointer-events: none; }

@media (max-width: 680px) {
  .nscc-care-meta { grid-template-columns: 1fr; }
  .nscc-mobile-nav button span:last-child { font-size: 9px; }
}

/* Release 1.1 roster board */
.nscc-roster-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-bottom: 18px; padding: 13px; border: 1px solid rgba(21,38,63,.08); border-radius: 21px; background: rgba(255,255,255,.86); box-shadow: var(--nscc-shadow-soft); backdrop-filter: blur(18px) saturate(130%); -webkit-backdrop-filter: blur(18px) saturate(130%); }
.nscc-segmented { display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(74px,auto); gap: 3px; padding: 4px; border-radius: 14px; background: #edf1f5; }
.nscc-segmented button { min-height: 36px; padding: 7px 13px; border: 0; border-radius: 11px; background: transparent; color: var(--nscc-muted); font: inherit; font-size: 12px; font-weight: 850; cursor: pointer; transition: background .16s ease, color .16s ease, box-shadow .16s ease; }
.nscc-segmented button:hover { color: var(--nscc-navy); }
.nscc-segmented button[aria-current="page"] { background: #fff; color: var(--nscc-orange-dark); box-shadow: 0 2px 9px rgba(21,38,63,.10); }
.nscc-roster-filters { display: flex; flex: 1 1 520px; flex-wrap: wrap; gap: 9px; align-items: end; }
.nscc-roster-filters label { display: grid; flex: 1 1 150px; gap: 5px; min-width: 0; color: var(--nscc-muted); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .055em; }
.nscc-roster-filters input,
.nscc-roster-filters select { width: 100%; min-height: 39px; padding: 7px 10px; border: 1px solid var(--nscc-border); border-radius: 12px; background: #fff; color: var(--nscc-navy); font-size: 13px; font-weight: 700; text-transform: none; letter-spacing: 0; }
.nscc-roster-week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 10px; align-items: start; }
.nscc-roster-day { min-width: 0; padding: 11px; border: 1px solid var(--nscc-border); border-radius: 20px; background: rgba(255,255,255,.92); box-shadow: var(--nscc-shadow-soft); }
.nscc-roster-day > header { display: flex; align-items: center; justify-content: space-between; gap: 7px; min-height: 34px; padding: 0 2px 9px; }
.nscc-roster-day > header strong { color: var(--nscc-navy); font-size: 12px; line-height: 1.25; }
.nscc-roster-day > header span { flex: 0 0 auto; color: var(--nscc-muted); font-size: 10px; font-weight: 750; }
.nscc-roster-stack { display: grid; gap: 8px; }
.nscc-roster-empty { display: grid; place-items: center; min-height: 82px; padding: 12px; border: 1px dashed rgba(21,38,63,.12); border-radius: 14px; color: var(--nscc-muted); font-size: 11px; text-align: center; }
.nscc-roster-card { display: grid; width: 100%; min-width: 0; gap: 2px; padding: 11px; border: 1px solid rgba(21,38,63,.085); border-left: 3px solid var(--nscc-blue); border-radius: 14px; background: linear-gradient(180deg,#fff,#fbfcfd); color: var(--nscc-text); text-align: left; cursor: pointer; box-shadow: 0 2px 8px rgba(21,38,63,.04); transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease; }
.nscc-roster-card:hover { transform: translateY(-1px); border-color: rgba(242,101,19,.25); border-left-color: var(--nscc-orange); box-shadow: 0 8px 18px rgba(21,38,63,.09); }
.nscc-roster-card:focus-visible { outline: 3px solid rgba(23,139,210,.25); outline-offset: 2px; }
.nscc-roster-card strong { min-width: 0; overflow: hidden; color: var(--nscc-navy); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.nscc-roster-card > span:not(.nscc-roster-time),
.nscc-roster-card small { min-width: 0; overflow: hidden; color: var(--nscc-muted); font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.nscc-roster-time { color: var(--nscc-blue-dark); font-size: 10px; font-weight: 900; }
.nscc-roster-card b { justify-self: start; margin-top: 5px; padding: 4px 7px; border-radius: 999px; background: var(--nscc-orange-soft); color: var(--nscc-orange-dark); font-size: 9px; font-weight: 900; }
.nscc-roster-group { margin-bottom: 16px; padding: 16px; border: 1px solid var(--nscc-border); border-radius: 21px; background: rgba(255,255,255,.92); box-shadow: var(--nscc-shadow-soft); }
.nscc-roster-group > h3 { margin: 0 0 11px; color: var(--nscc-navy); font-size: 15px; }
.nscc-roster-group .nscc-roster-stack { grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); }

@media (max-width: 1260px) {
  .nscc-roster-week { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .nscc-roster-week { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nscc-roster-toolbar { align-items: stretch; }
  .nscc-segmented { width: 100%; grid-auto-columns: 1fr; }
  .nscc-roster-toolbar > .nscc-button { width: 100%; }
}
@media (max-width: 560px) {
  .nscc-roster-week { grid-template-columns: 1fr; }
  .nscc-segmented { overflow: hidden; }
  .nscc-segmented button { min-width: 0; padding-left: 7px; padding-right: 7px; font-size: 11px; }
  .nscc-roster-filters { display: grid; grid-template-columns: 1fr; flex-basis: 100%; }
  .nscc-roster-filters label { width: 100%; }
}

/* Ability Hope site-logo reuse when the active theme exposes a custom logo */
.nscc-login-logo,
.nscc-app-logo { display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; background: #fff; border: 1px solid rgba(21,38,63,.08); box-shadow: 0 6px 18px rgba(21,38,63,.07); }
.nscc-login-logo { width: 64px; height: 64px; padding: 8px; border-radius: 20px; }
.nscc-app-logo { width: 48px; height: 48px; padding: 5px; border-radius: 16px; }
.nscc-login-logo img,
.nscc-app-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nscc-brand-mark-large { width: 64px; height: 64px; border-radius: 20px; font-size: 20px; margin-bottom: 16px; }
@media (max-width: 680px) {
  .nscc-app-logo { width: 42px; height: 42px; border-radius: 14px; }
  .nscc-login-logo { width: 58px; height: 58px; border-radius: 18px; }
}

@media (max-width: 720px) { .nscc-build-banner { margin: 8px 10px 0; border-radius: 13px; font-size: 12px; } }


/* Release 1.1.4: accessible semantic colour coding for faster visual processing. */
:root {
  --nscc-green: #18794e;
  --nscc-green-soft: #eaf8f1;
  --nscc-amber: #d98a00;
  --nscc-amber-soft: #fff5d6;
  --nscc-red: #b42318;
  --nscc-red-soft: #fff0ef;
  --nscc-purple: #6d3fc0;
  --nscc-purple-soft: #f3edff;
  --nscc-teal: #0f766e;
  --nscc-teal-soft: #e8f7f5;
  --nscc-indigo: #4852b8;
  --nscc-indigo-soft: #eef0ff;
}

.nscc-tone-orange { --nscc-tone: var(--nscc-orange); --nscc-tone-ink: var(--nscc-orange-dark); --nscc-tone-soft: var(--nscc-orange-soft); --nscc-tone-border: #ffd8c0; }
.nscc-tone-blue { --nscc-tone: var(--nscc-blue); --nscc-tone-ink: var(--nscc-blue-dark); --nscc-tone-soft: var(--nscc-blue-soft); --nscc-tone-border: #cbe8f9; }
.nscc-tone-green { --nscc-tone: var(--nscc-green); --nscc-tone-ink: #12623f; --nscc-tone-soft: var(--nscc-green-soft); --nscc-tone-border: #c8ead8; }
.nscc-tone-amber { --nscc-tone: #e18a00; --nscc-tone-ink: #c94f08; --nscc-tone-soft: var(--nscc-amber-soft); --nscc-tone-border: #ffe0a8; }
.nscc-tone-red { --nscc-tone: #e23c3c; --nscc-tone-ink: #c62525; --nscc-tone-soft: var(--nscc-red-soft); --nscc-tone-border: #f0c7c3; }
.nscc-tone-purple { --nscc-tone: #8253cf; --nscc-tone-ink: var(--nscc-purple); --nscc-tone-soft: var(--nscc-purple-soft); --nscc-tone-border: #ddd0f8; }
.nscc-tone-teal { --nscc-tone: #15958a; --nscc-tone-ink: var(--nscc-teal); --nscc-tone-soft: var(--nscc-teal-soft); --nscc-tone-border: #bfe8e2; }
.nscc-tone-indigo { --nscc-tone: #626bd3; --nscc-tone-ink: var(--nscc-indigo); --nscc-tone-soft: var(--nscc-indigo-soft); --nscc-tone-border: #d6d9fb; }
.nscc-tone-navy { --nscc-tone: var(--nscc-navy-2); --nscc-tone-ink: var(--nscc-navy); --nscc-tone-soft: #edf2f7; --nscc-tone-border: #d9e2ea; }

.nscc-page-header[data-tone] { position: relative; padding-left: 17px; }
.nscc-page-header[data-tone]::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 4px; width: 5px; border-radius: 999px; background: var(--nscc-page-tone, var(--nscc-orange)); }
.nscc-page-header[data-tone="orange"] { --nscc-page-tone: var(--nscc-orange); }
.nscc-page-header[data-tone="blue"] { --nscc-page-tone: var(--nscc-blue); }
.nscc-page-header[data-tone="green"] { --nscc-page-tone: var(--nscc-green); }
.nscc-page-header[data-tone="amber"] { --nscc-page-tone: #e18a00; }
.nscc-page-header[data-tone="red"] { --nscc-page-tone: #e23c3c; }
.nscc-page-header[data-tone="purple"] { --nscc-page-tone: #8253cf; }
.nscc-page-header[data-tone="teal"] { --nscc-page-tone: #15958a; }
.nscc-page-header[data-tone="indigo"] { --nscc-page-tone: #626bd3; }
.nscc-page-header[data-tone="navy"] { --nscc-page-tone: var(--nscc-navy-2); }

.nscc-nav button[data-tone], .nscc-mobile-nav button[data-tone], .nscc-more-link[data-tone] { --nscc-nav-tone: var(--nscc-orange); --nscc-nav-soft: var(--nscc-orange-soft); --nscc-nav-ink: var(--nscc-orange-dark); }
.nscc-nav button[data-tone="blue"], .nscc-mobile-nav button[data-tone="blue"], .nscc-more-link[data-tone="blue"] { --nscc-nav-tone: var(--nscc-blue); --nscc-nav-soft: var(--nscc-blue-soft); --nscc-nav-ink: var(--nscc-blue-dark); }
.nscc-nav button[data-tone="green"], .nscc-mobile-nav button[data-tone="green"], .nscc-more-link[data-tone="green"] { --nscc-nav-tone: var(--nscc-green); --nscc-nav-soft: var(--nscc-green-soft); --nscc-nav-ink: #12623f; }
.nscc-nav button[data-tone="amber"], .nscc-mobile-nav button[data-tone="amber"], .nscc-more-link[data-tone="amber"] { --nscc-nav-tone: #e18a00; --nscc-nav-soft: var(--nscc-amber-soft); --nscc-nav-ink: #c94f08; }
.nscc-nav button[data-tone="red"], .nscc-mobile-nav button[data-tone="red"], .nscc-more-link[data-tone="red"] { --nscc-nav-tone: #e23c3c; --nscc-nav-soft: var(--nscc-red-soft); --nscc-nav-ink: #c62525; }
.nscc-nav button[data-tone="purple"], .nscc-mobile-nav button[data-tone="purple"], .nscc-more-link[data-tone="purple"] { --nscc-nav-tone: #8253cf; --nscc-nav-soft: var(--nscc-purple-soft); --nscc-nav-ink: var(--nscc-purple); }
.nscc-nav button[data-tone="teal"], .nscc-mobile-nav button[data-tone="teal"], .nscc-more-link[data-tone="teal"] { --nscc-nav-tone: #15958a; --nscc-nav-soft: var(--nscc-teal-soft); --nscc-nav-ink: var(--nscc-teal); }
.nscc-nav button[data-tone="indigo"], .nscc-mobile-nav button[data-tone="indigo"], .nscc-more-link[data-tone="indigo"] { --nscc-nav-tone: #626bd3; --nscc-nav-soft: var(--nscc-indigo-soft); --nscc-nav-ink: var(--nscc-indigo); }
.nscc-nav button[data-tone="navy"], .nscc-mobile-nav button[data-tone="navy"], .nscc-more-link[data-tone="navy"] { --nscc-nav-tone: var(--nscc-navy-2); --nscc-nav-soft: #edf2f7; --nscc-nav-ink: var(--nscc-navy); }
.nscc-nav button[data-tone] .nscc-nav-icon, .nscc-more-link[data-tone] .nscc-nav-icon { background: var(--nscc-nav-soft); color: var(--nscc-nav-ink); }
.nscc-nav button[data-tone][aria-current="page"], .nscc-mobile-nav button[data-tone][aria-current="page"] { background: var(--nscc-nav-soft); color: var(--nscc-nav-ink); box-shadow: inset 3px 0 0 var(--nscc-nav-tone); }
.nscc-mobile-nav button[data-tone][aria-current="page"] { box-shadow: inset 0 3px 0 var(--nscc-nav-tone); }
.nscc-more-link[data-tone] { border-left: 4px solid var(--nscc-nav-tone); }
.nscc-more-link[data-tone]:hover { background: var(--nscc-nav-soft); }

.nscc-card.nscc-tone-orange, .nscc-card.nscc-tone-blue, .nscc-card.nscc-tone-green, .nscc-card.nscc-tone-amber, .nscc-card.nscc-tone-red, .nscc-card.nscc-tone-purple, .nscc-card.nscc-tone-teal, .nscc-card.nscc-tone-indigo, .nscc-card.nscc-tone-navy { border-color: var(--nscc-tone-border); background: linear-gradient(145deg, var(--nscc-tone-soft) 0%, rgba(255,255,255,.97) 54%, #fff 100%); }
.nscc-metric[class*="nscc-tone-"]::before { content: ""; position: absolute; z-index: 1; left: 0; top: 0; width: 100%; height: 5px; background: var(--nscc-tone); }
.nscc-metric[class*="nscc-tone-"]::after { background: var(--nscc-tone-soft); opacity: .9; }
.nscc-metric[class*="nscc-tone-"] .nscc-metric-value { color: var(--nscc-tone-ink); }
.nscc-accent-card[class*="nscc-tone-"] { position: relative; overflow: hidden; }
.nscc-accent-card[class*="nscc-tone-"]::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 5px; border-radius: 0 999px 999px 0; background: var(--nscc-tone); }
.nscc-card-attention[class*="nscc-tone-"] { border-left-color: var(--nscc-tone); }

.nscc-colour-key { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; }
.nscc-key { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--nscc-border); border-radius: 999px; background: rgba(255,255,255,.78); color: var(--nscc-muted); font-size: 11px; font-weight: 760; }
.nscc-key b { width: 9px; height: 9px; border-radius: 50%; background: var(--nscc-navy); }
.nscc-key-blue b { background: var(--nscc-blue); }
.nscc-key-green b { background: var(--nscc-green); }
.nscc-key-amber b { background: #e18a00; }
.nscc-key-red b { background: #e23c3c; }

.nscc-status { border: 1px solid transparent; }
.nscc-status-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: currentColor; }
.nscc-status-tone-green { background: var(--nscc-green-soft); color: #12623f; border-color: #c8ead8; }
.nscc-status-tone-amber { background: var(--nscc-amber-soft); color: #c94f08; border-color: #ffe0a8; }
.nscc-status-tone-red { background: var(--nscc-red-soft); color: #c62525; border-color: #f0c7c3; }
.nscc-status-tone-blue { background: var(--nscc-blue-soft); color: var(--nscc-blue-dark); border-color: #cbe8f9; }
.nscc-status-tone-navy { background: #edf2f7; color: var(--nscc-navy); border-color: #d9e2ea; }

.nscc-row[class*="nscc-row-tone-"], .nscc-user-row[class*="nscc-row-tone-"] { border-left: 5px solid var(--nscc-navy-2); }
.nscc-row-tone-blue { border-left-color: var(--nscc-blue) !important; }
.nscc-row-tone-green { border-left-color: var(--nscc-green) !important; }
.nscc-row-tone-amber { border-left-color: #e18a00 !important; }
.nscc-row-tone-red { border-left-color: #e23c3c !important; }
.nscc-row-tone-purple { border-left-color: #8253cf !important; }
.nscc-row-tone-teal { border-left-color: #15958a !important; }
.nscc-row-tone-indigo { border-left-color: #626bd3 !important; }
.nscc-row-tone-navy { border-left-color: var(--nscc-navy-2) !important; }
.nscc-roster-card.nscc-row-tone-red { background: linear-gradient(180deg,#fff,var(--nscc-red-soft)); }

/* Users & Access scales by user type rather than one enormous list. */
.nscc-user-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.nscc-user-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.nscc-user-tabs button { --tab-tone: var(--nscc-navy-2); --tab-soft: #edf2f7; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--nscc-border); border-radius: 999px; background: #fff; color: var(--nscc-muted); font: inherit; font-size: 12px; font-weight: 820; cursor: pointer; }
.nscc-user-tabs button[data-tone="blue"] { --tab-tone: var(--nscc-blue); --tab-soft: var(--nscc-blue-soft); }
.nscc-user-tabs button[data-tone="teal"] { --tab-tone: #15958a; --tab-soft: var(--nscc-teal-soft); }
.nscc-user-tabs button[data-tone="orange"] { --tab-tone: var(--nscc-orange); --tab-soft: var(--nscc-orange-soft); }
.nscc-user-tabs button[data-tone="purple"] { --tab-tone: #8253cf; --tab-soft: var(--nscc-purple-soft); }
.nscc-user-tabs button[data-tone="navy"] { --tab-tone: var(--nscc-navy-2); --tab-soft: #edf2f7; }
.nscc-user-tabs button[aria-selected="true"] { color: var(--nscc-navy); border-color: var(--tab-tone); background: var(--tab-soft); box-shadow: inset 0 -3px 0 var(--tab-tone); }
.nscc-user-tabs b { min-width: 22px; padding: 2px 7px; border-radius: 999px; background: rgba(21,38,63,.07); color: var(--nscc-navy); text-align: center; font-size: 10px; }
.nscc-user-search { width: min(300px,100%); }
.nscc-user-search input { width: 100%; min-height: 42px; padding: 9px 14px; border: 1px solid var(--nscc-border); border-radius: 999px; background: rgba(255,255,255,.92); color: var(--nscc-text); }
.nscc-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.nscc-user-row td:first-child { border-left: 0; }

@media (max-width: 860px) {
  .nscc-user-toolbar { align-items: stretch; flex-direction: column; }
  .nscc-user-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 3px; scrollbar-width: thin; }
  .nscc-user-tabs button { flex: 0 0 auto; }
  .nscc-user-search { width: 100%; }
}
@media (max-width: 760px) {
  .nscc-colour-key { gap: 6px; }
  .nscc-key { padding: 6px 8px; font-size: 10px; }
  .nscc-page-header[data-tone] { padding-left: 14px; }
}

/* Release 1.1.5: direct password administration. */
.nscc-password-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.nscc-password-control .nscc-button{white-space:nowrap}
@media (max-width:640px){.nscc-password-control{grid-template-columns:1fr}.nscc-password-control .nscc-button{width:100%}}

/* Release 1.2.0: premium Ability Hope experience refresh. No schema changes. */
:root {
  --nscc-ink: #0b2b55;
  --nscc-orange: #ff650f;
  --nscc-orange-dark: #e94f00;
  --nscc-orange-soft: #fff2e9;
  --nscc-blue: #0b74e5;
  --nscc-blue-dark: #075bb8;
  --nscc-blue-soft: #edf6ff;
  --nscc-bg: #f6f8fc;
  --nscc-navy: #0b2b55;
  --nscc-navy-2: #123f75;
  --nscc-purple: #7445d8;
  --nscc-purple-soft: #f4efff;
  --nscc-teal: #087f78;
  --nscc-teal-soft: #eaf9f7;
  --nscc-indigo: #4459c7;
  --nscc-indigo-soft: #eef1ff;
  --nscc-green: #16a05d;
  --nscc-green-soft: #ebf9f1;
  --nscc-red: #e23c3c;
  --nscc-red-soft: #fff0f0;
  --nscc-amber: #d98a00;
  --nscc-amber-soft: #fff7e5;
  --nscc-shadow: 0 22px 65px rgba(11,43,85,.12), 0 3px 14px rgba(11,43,85,.05);
  --nscc-shadow-soft: 0 10px 28px rgba(11,43,85,.075), 0 1px 4px rgba(11,43,85,.035);
}

body.nscc-portal-page, body.nscc-login-page { background: var(--nscc-bg) !important; }
.nscc-app { background: var(--nscc-bg); min-height: 100vh; }
.nscc-shell { min-height: 100vh; background: var(--nscc-bg); }
.nscc-layout { display:grid; grid-template-columns: 248px minmax(0,1fr); min-height:100vh; }
.nscc-workspace { min-width:0; min-height:100vh; position:relative; overflow:hidden; }
.nscc-workspace::before { content:"NS"; position:fixed; z-index:0; right:-50px; top:96px; color:rgba(11,116,229,.028); font-size:230px; font-weight:950; letter-spacing:-.19em; transform:skewX(-10deg); pointer-events:none; }
.nscc-sidebar { position:sticky; top:0; z-index:45; height:100vh; min-height:100vh; display:flex; flex-direction:column; gap:12px; padding:20px 13px 18px; border:0; overflow-y:auto; color:#fff; background:linear-gradient(180deg,#ff6b12 0%,#ff5a08 55%,#f04400 100%); box-shadow:18px 0 44px rgba(166,61,0,.14); }
.nscc-sidebar-brand { display:flex; align-items:center; gap:11px; min-height:64px; padding:8px 9px 15px; border-bottom:1px solid rgba(255,255,255,.22); }
.nscc-sidebar-brand strong { display:block; color:#fff; font-size:14px; line-height:1.1; letter-spacing:.12em; }
.nscc-sidebar-brand span:not(.nscc-ns-monogram):not(.nscc-ns-n):not(.nscc-ns-s) { display:block; margin-top:4px; color:rgba(255,255,255,.77); font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.nscc-ns-monogram { position:relative; display:inline-block; width:46px; height:42px; flex:0 0 46px; line-height:42px; font-family:Arial Black,Arial,sans-serif; font-size:31px; font-weight:950; letter-spacing:-.28em; transform:skewX(-7deg); }
.nscc-ns-monogram .nscc-ns-n { position:absolute; left:0; top:0; color:#fff; text-shadow:0 2px 8px rgba(11,43,85,.12); }
.nscc-ns-monogram .nscc-ns-s { position:absolute; left:17px; top:1px; color:#7ec7ff; text-shadow:0 2px 8px rgba(11,43,85,.18); }
.nscc-login-shell .nscc-ns-monogram .nscc-ns-n, .nscc-gateway .nscc-ns-monogram .nscc-ns-n { color:var(--nscc-orange); }
.nscc-login-shell .nscc-ns-monogram .nscc-ns-s, .nscc-gateway .nscc-ns-monogram .nscc-ns-s { color:var(--nscc-blue); }
.nscc-sidebar .nscc-nav { display:grid; gap:7px; }
.nscc-sidebar .nscc-nav-group { display:grid; gap:3px; border:0; padding:0; }
.nscc-sidebar .nscc-nav-label { padding:10px 12px 4px; color:rgba(255,255,255,.58); font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }
.nscc-sidebar .nscc-nav button[data-tone] { min-height:44px; padding:8px 10px; border-radius:13px; color:rgba(255,255,255,.94); box-shadow:none; font-size:12px; font-weight:760; }
.nscc-sidebar .nscc-nav button[data-tone]:hover { background:rgba(255,255,255,.13); color:#fff; transform:translateX(2px); }
.nscc-sidebar .nscc-nav button[data-tone] .nscc-nav-icon { width:27px; height:27px; background:rgba(255,255,255,.12); color:#fff; }
.nscc-sidebar .nscc-nav button[data-tone][aria-current="page"] { background:#fff; color:var(--nscc-navy); box-shadow:0 8px 22px rgba(126,42,0,.18), inset 4px 0 0 var(--nscc-nav-tone); }
.nscc-sidebar .nscc-nav button[data-tone][aria-current="page"] .nscc-nav-icon { background:var(--nscc-nav-soft); color:var(--nscc-nav-ink); }
.nscc-sidebar-promo { margin-top:auto; display:grid; gap:6px; padding:14px; border:1px solid rgba(255,255,255,.18); border-radius:18px; background:rgba(11,43,85,.13); color:#fff; }
.nscc-sidebar-promo-mark .nscc-ns-monogram { transform:scale(.78) skewX(-7deg); transform-origin:left center; height:30px; }
.nscc-sidebar-promo strong { font-size:12px; }
.nscc-sidebar-promo > span { color:rgba(255,255,255,.75); font-size:10px; line-height:1.45; }

.nscc-topbar { position:sticky; top:0; z-index:42; min-height:72px; padding:10px clamp(16px,2.2vw,34px); border-bottom:1px solid rgba(11,43,85,.075); background:rgba(255,255,255,.91); box-shadow:0 5px 22px rgba(11,43,85,.045); }
.nscc-mobile-brand { display:none; align-items:center; gap:9px; }
.nscc-mobile-brand .nscc-ns-monogram { transform:scale(.72) skewX(-7deg); transform-origin:left center; width:36px; }
.nscc-mobile-brand .nscc-ns-n { color:var(--nscc-orange); }
.nscc-mobile-brand .nscc-ns-s { color:var(--nscc-blue); }
.nscc-mobile-brand strong { display:block; color:var(--nscc-navy); font-size:13px; }
.nscc-mobile-brand span { color:var(--nscc-muted); font-size:8px; text-transform:uppercase; font-weight:850; }
.nscc-topbar-context { display:grid; gap:1px; }
.nscc-topbar-context strong { color:var(--nscc-navy); font-size:15px; }
.nscc-topbar-kicker { color:var(--nscc-muted); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.09em; }
.nscc-topbar-actions { display:flex; align-items:center; gap:9px; }
.nscc-security-pill, .nscc-notification-pill { display:inline-flex; align-items:center; gap:5px; min-height:36px; padding:6px 10px; border:1px solid var(--nscc-border); border-radius:999px; background:#fff; color:var(--nscc-muted); font-size:10px; font-weight:800; }
.nscc-security-pill .nscc-nav-icon, .nscc-notification-pill .nscc-nav-icon { width:20px; height:20px; color:currentColor; }
.nscc-security-pill.is-production { background:var(--nscc-green-soft); color:#147347; border-color:#c8ead8; }
.nscc-security-pill.is-build { background:var(--nscc-blue-soft); color:var(--nscc-blue-dark); border-color:#cbe8f9; }
.nscc-notification-pill b { min-width:18px; height:18px; display:grid; place-items:center; border-radius:999px; background:var(--nscc-red); color:#fff; font-size:9px; }
.nscc-topbar-user { display:grid; gap:1px; min-width:0; }
.nscc-topbar-user strong { color:var(--nscc-navy); font-size:11px; }
.nscc-topbar-user small { color:var(--nscc-muted); font-size:9px; }
.nscc-avatar { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border-radius:50%; color:#fff; font-size:13px; font-weight:900; box-shadow:0 7px 18px rgba(11,43,85,.13); }
.nscc-avatar-blue { background:linear-gradient(145deg,#3b9cff,#0b74e5); }
.nscc-avatar-teal { background:linear-gradient(145deg,#33b6ac,#087f78); }
.nscc-avatar-orange { background:linear-gradient(145deg,#ff9b56,#ff650f); }
.nscc-avatar-purple { background:linear-gradient(145deg,#9c73ea,#7445d8); }
.nscc-avatar-green { background:linear-gradient(145deg,#42c984,#16a05d); }
.nscc-build-banner { position:relative; z-index:2; display:flex; align-items:center; gap:10px; margin:10px 18px 0; padding:10px 13px; border:1px solid #cbe8f9; background:#f2f8ff; color:var(--nscc-blue-dark); }
.nscc-build-banner > div { display:grid; flex:1; gap:1px; }
.nscc-build-banner span { font-size:11px; }
.nscc-build-dot { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:var(--nscc-blue); box-shadow:0 0 0 5px rgba(11,116,229,.09); }
.nscc-banner-link { border:0; background:transparent; color:var(--nscc-blue-dark); font:inherit; font-size:11px; font-weight:850; cursor:pointer; }
.nscc-main { position:relative; z-index:1; padding:clamp(20px,2.5vw,36px) clamp(16px,2.5vw,38px) 96px; background:transparent; }
.nscc-page { max-width:1640px; margin:0 auto; }

.nscc-card { border:1px solid rgba(11,43,85,.075); background:rgba(255,255,255,.95); box-shadow:var(--nscc-shadow-soft); }
.nscc-card:hover { border-color:rgba(11,116,229,.16); }
.nscc-page-header { margin-bottom:20px; }
.nscc-page-header h1 { font-size:clamp(29px,3vw,42px); color:var(--nscc-navy); }
.nscc-dashboard-hero, .nscc-worker-hero, .nscc-participant-hero { position:relative; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; padding:8px 2px 4px; }
.nscc-dashboard-hero::after, .nscc-participant-hero::after { content:"NS"; position:absolute; right:10px; top:-35px; z-index:-1; color:rgba(11,116,229,.035); font-size:100px; font-weight:950; letter-spacing:-.18em; transform:skewX(-9deg); }
.nscc-dashboard-welcome h1, .nscc-worker-hero h1, .nscc-participant-hero h1 { margin:4px 0 5px; color:var(--nscc-navy); font-size:clamp(31px,3.5vw,48px); line-height:1.02; letter-spacing:-.045em; }
.nscc-dashboard-welcome p, .nscc-worker-hero p, .nscc-participant-hero p { margin:0; color:var(--nscc-muted); }
.nscc-dashboard-actions { display:flex; flex-wrap:wrap; gap:8px; }
.nscc-metric-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.nscc-metric-strip-compact { margin-bottom:18px; }
.nscc-metric-strip .nscc-metric { min-height:132px; padding:18px; }
.nscc-metric-glyph { position:absolute; right:14px; top:14px; display:grid; place-items:center; width:38px; height:38px; border-radius:13px; background:var(--nscc-tone-soft,#edf6ff); color:var(--nscc-tone-ink,var(--nscc-blue)); }
.nscc-glyph-icon, .nscc-glyph-icon svg { width:21px; height:21px; }
.nscc-dashboard-grid { display:grid; grid-template-columns:1.05fr 1.12fr .95fr; gap:12px; margin-top:14px; }
.nscc-dashboard-overview, .nscc-dashboard-attention, .nscc-dashboard-activity { min-height:310px; }
.nscc-donut-wrap { display:flex; align-items:center; justify-content:center; gap:24px; min-height:220px; }
.nscc-donut { display:grid; place-items:center; width:142px; height:142px; flex:0 0 142px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(11,43,85,.04); }
.nscc-donut > div { display:grid; place-items:center; width:92px; height:92px; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(11,43,85,.08); }
.nscc-donut strong { color:var(--nscc-navy); font-size:28px; line-height:1; }
.nscc-donut span { color:var(--nscc-muted); font-size:10px; }
.nscc-donut-legend { display:grid; gap:10px; }
.nscc-donut-legend span { display:grid; grid-template-columns:10px 28px 1fr; gap:7px; align-items:center; color:var(--nscc-muted); font-size:11px; }
.nscc-donut-legend i { width:9px; height:9px; border-radius:50%; }
.nscc-donut-legend i.is-green { background:var(--nscc-green); } .nscc-donut-legend i.is-blue { background:var(--nscc-blue); } .nscc-donut-legend i.is-navy { background:var(--nscc-navy); } .nscc-donut-legend i.is-red { background:var(--nscc-red); }
.nscc-donut-legend b { color:var(--nscc-navy); }
.nscc-attention-list, .nscc-activity-list { display:grid; gap:8px; }
.nscc-attention-item { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:10px; min-height:60px; padding:9px 10px; border:1px solid var(--nscc-border); border-radius:15px; background:#fff; color:inherit; text-align:left; font:inherit; cursor:default; }
button.nscc-attention-item { cursor:pointer; }
.nscc-attention-item .nscc-nav-icon { width:30px; height:30px; border-radius:10px; background:#f4f7fa; }
.nscc-attention-item span { display:grid; gap:2px; }
.nscc-attention-item strong { color:var(--nscc-navy); font-size:11px; }
.nscc-attention-item small { color:var(--nscc-muted); font-size:9px; }
.nscc-attention-item > b { padding:4px 7px; border-radius:999px; font-size:8px; text-transform:uppercase; }
.nscc-attention-item.is-red > b { background:var(--nscc-red-soft); color:var(--nscc-red); } .nscc-attention-item.is-amber > b { background:var(--nscc-amber-soft); color:#c94f08; } .nscc-attention-item.is-purple > b { background:var(--nscc-purple-soft); color:var(--nscc-purple); } .nscc-attention-item.is-orange > b { background:var(--nscc-orange-soft); color:var(--nscc-orange-dark); } .nscc-attention-item.is-green > b { background:var(--nscc-green-soft); color:#147347; }
.nscc-activity-item { display:grid; grid-template-columns:32px 1fr auto; gap:9px; align-items:start; padding:9px 0; border-bottom:1px solid var(--nscc-border); }
.nscc-activity-item:last-child { border-bottom:0; }
.nscc-activity-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:10px; background:var(--nscc-blue-soft); color:var(--nscc-blue); }
.nscc-activity-icon .nscc-nav-icon { width:20px; height:20px; }
.nscc-activity-item > span:nth-child(2) { display:grid; gap:2px; }
.nscc-activity-item strong { color:var(--nscc-navy); font-size:11px; }
.nscc-activity-item small, .nscc-activity-item time { color:var(--nscc-muted); font-size:9px; line-height:1.35; }
.nscc-quick-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; }
.nscc-quick-action, .nscc-participant-quick button { --qa:#0b74e5; display:flex; align-items:center; gap:9px; min-height:68px; padding:11px; border:1px solid color-mix(in srgb,var(--qa) 18%,#fff); border-radius:17px; background:linear-gradient(145deg,color-mix(in srgb,var(--qa) 8%,#fff),#fff 70%); color:var(--nscc-navy); text-align:left; font:inherit; cursor:pointer; box-shadow:0 5px 14px rgba(11,43,85,.04); }
.nscc-quick-action:hover, .nscc-participant-quick button:hover { transform:translateY(-2px); box-shadow:var(--nscc-shadow-soft); }
.nscc-quick-action .nscc-nav-icon, .nscc-participant-quick .nscc-nav-icon { width:31px; height:31px; border-radius:10px; background:color-mix(in srgb,var(--qa) 12%,#fff); color:var(--qa); }
.nscc-quick-action span, .nscc-participant-quick button span { display:grid; gap:1px; }
.nscc-quick-action strong, .nscc-participant-quick strong { font-size:10px; }
.nscc-quick-action small, .nscc-participant-quick small { color:var(--nscc-muted); font-size:8px; }
.is-red { --qa:var(--nscc-red); } .is-green { --qa:var(--nscc-green); } .is-orange { --qa:var(--nscc-orange); } .is-purple { --qa:var(--nscc-purple); } .is-indigo { --qa:var(--nscc-indigo); } .is-teal { --qa:var(--nscc-teal); } .is-blue { --qa:var(--nscc-blue); } .is-navy { --qa:var(--nscc-navy); }

/* Roster matrix */
.nscc-roster-summary { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.nscc-roster-summary span, .nscc-list-summary span { display:inline-flex; align-items:baseline; gap:5px; padding:7px 10px; border:1px solid var(--nscc-border); border-radius:999px; background:#fff; color:var(--nscc-muted); font-size:9px; font-weight:760; }
.nscc-roster-summary b, .nscc-list-summary b { color:var(--nscc-navy); font-size:15px; }
.nscc-roster-summary .is-green b, .nscc-list-summary .is-green b { color:var(--nscc-green); } .nscc-roster-summary .is-orange b { color:var(--nscc-orange); } .nscc-roster-summary .is-red b { color:var(--nscc-red); } .nscc-list-summary .is-teal b { color:var(--nscc-teal); } .nscc-list-summary .is-blue b { color:var(--nscc-blue); }
.nscc-roster-legend { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 12px; }
.nscc-roster-legend span { padding:5px 8px; border-radius:999px; font-size:8px; font-weight:850; background:#fff; border:1px solid var(--nscc-border); }
.nscc-roster-content { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:10px; align-items:start; }
.nscc-roster-matrix-wrap { width:100%; overflow:auto; border:1px solid var(--nscc-border); border-radius:20px; background:#fff; box-shadow:var(--nscc-shadow-soft); }
.nscc-roster-matrix { min-width:1080px; }
.nscc-roster-matrix-head, .nscc-roster-matrix-row { display:grid; grid-template-columns:190px repeat(7,minmax(125px,1fr)); }
.nscc-roster-matrix-head { position:sticky; top:0; z-index:3; background:#f9fbfd; border-bottom:1px solid var(--nscc-border); }
.nscc-roster-matrix-head > div { display:grid; gap:1px; min-height:58px; padding:10px; align-content:center; border-right:1px solid var(--nscc-border); color:var(--nscc-muted); font-size:9px; text-align:center; }
.nscc-roster-matrix-head > div:first-child { text-align:left; color:var(--nscc-navy); font-weight:850; }
.nscc-roster-matrix-head > div.is-today { background:var(--nscc-blue-soft); color:var(--nscc-blue-dark); }
.nscc-roster-matrix-row { border-bottom:1px solid var(--nscc-border); }
.nscc-roster-matrix-row:last-child { border-bottom:0; }
.nscc-roster-person { position:sticky; left:0; z-index:2; display:flex; align-items:center; gap:8px; min-height:96px; padding:10px; border-right:1px solid var(--nscc-border); background:#fff; }
.nscc-roster-person .nscc-avatar { width:34px; height:34px; flex-basis:34px; font-size:10px; }
.nscc-roster-person > span:last-child { display:grid; gap:1px; min-width:0; }
.nscc-roster-person strong { color:var(--nscc-navy); font-size:10px; }
.nscc-roster-person small { color:var(--nscc-muted); font-size:8px; }
.nscc-roster-cell { min-height:96px; display:grid; align-content:start; gap:5px; padding:6px; border-right:1px solid var(--nscc-border); background:#fff; }
.nscc-roster-cell-empty { place-self:center; color:#b9c4d0; }
.nscc-roster-card { border-left:3px solid var(--nscc-blue); border-radius:10px; padding:7px; min-height:70px; box-shadow:none; }
.nscc-roster-card strong { font-size:9px; } .nscc-roster-card span, .nscc-roster-card small { font-size:8px !important; }
.nscc-roster-card.nscc-service-green { border-left-color:var(--nscc-green); background:#f3fcf7; }
.nscc-roster-card.nscc-service-blue { border-left-color:var(--nscc-blue); background:#f4f9ff; }
.nscc-roster-card.nscc-service-purple { border-left-color:var(--nscc-purple); background:#f8f5ff; }
.nscc-roster-card.nscc-service-navy { border-left-color:var(--nscc-navy); background:#f2f5fa; }
.nscc-roster-card.nscc-service-teal { border-left-color:var(--nscc-teal); background:#f1fbfa; }
.nscc-roster-card.nscc-service-orange { border-left-color:var(--nscc-orange); background:#fff7f1; }
.nscc-roster-card.is-unfilled, .nscc-roster-card.is-conflict { border-color:#ffd0d0; border-left-color:var(--nscc-red); background:var(--nscc-red-soft); }
.nscc-roster-alert { display:inline-block; width:fit-content; margin-top:3px; padding:2px 5px !important; border-radius:999px; background:#fff; color:var(--nscc-red) !important; font-size:7px !important; }
.nscc-roster-unfilled-row .nscc-roster-person { background:#fff9f6; }
.nscc-roster-insights { position:sticky; top:86px; padding:15px; border:1px solid var(--nscc-border); border-radius:20px; background:#fff; box-shadow:var(--nscc-shadow-soft); }
.nscc-insight-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:14px; }
.nscc-insight-metrics > div { display:grid; gap:1px; padding:8px 5px; border-radius:12px; background:#f5f8fb; text-align:center; }
.nscc-insight-metrics strong { font-size:18px; color:var(--nscc-navy); } .nscc-insight-metrics span { color:var(--nscc-muted); font-size:7px; text-transform:uppercase; font-weight:850; }
.nscc-insight-metrics .is-red strong { color:var(--nscc-red); } .nscc-insight-metrics .is-blue strong { color:var(--nscc-blue); } .nscc-insight-metrics .is-green strong { color:var(--nscc-green); }
.nscc-insight-list { display:grid; gap:5px; margin:12px 0; }
.nscc-insight-list > strong { color:var(--nscc-navy); font-size:10px; }
.nscc-insight-list button { display:grid; gap:2px; padding:8px; border:1px solid var(--nscc-border); border-radius:10px; background:#fff; text-align:left; font:inherit; cursor:pointer; }
.nscc-insight-list button span { color:var(--nscc-red); font-size:7px; font-weight:850; } .nscc-insight-list button b { color:var(--nscc-navy); font-size:8px; }

/* People directories */
.nscc-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.nscc-list-summary { display:flex; flex-wrap:wrap; gap:7px; }
.nscc-list-search { width:min(330px,100%); }
.nscc-list-search input { width:100%; min-height:42px; padding:9px 14px; border:1px solid var(--nscc-border); border-radius:999px; background:#fff; color:var(--nscc-navy); }
.nscc-directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nscc-directory-card { display:grid; gap:14px; min-height:190px; }
.nscc-directory-card[hidden] { display:none !important; }
.nscc-directory-head { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:10px; align-items:center; }
.nscc-directory-head h2 { margin:0 0 4px; font-size:16px; }
.nscc-directory-meta { display:grid; gap:7px; }
.nscc-directory-meta span { display:flex; align-items:center; gap:7px; color:var(--nscc-muted); font-size:9px; }
.nscc-directory-meta .nscc-nav-icon { width:20px; height:20px; color:var(--nscc-blue); }
.nscc-directory-foot { display:flex; justify-content:space-between; gap:8px; margin-top:auto; padding-top:10px; border-top:1px solid var(--nscc-border); color:var(--nscc-muted); font-size:8px; }
.nscc-directory-foot strong { color:var(--nscc-blue-dark); }
.nscc-person-title { display:flex; align-items:center; gap:8px; } .nscc-person-title .nscc-avatar { width:34px; height:34px; flex-basis:34px; font-size:10px; } .nscc-person-title h3 { margin:0; }

/* Referral kanban */
.nscc-kanban { display:grid; grid-template-columns:repeat(5,minmax(200px,1fr)); gap:9px; overflow-x:auto; padding-bottom:5px; }
.nscc-kanban-column { min-width:0; padding:9px; border:1px solid var(--nscc-border); border-radius:18px; background:#f9fbfd; }
.nscc-kanban-column > header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:5px 4px 10px; }
.nscc-kanban-column > header > span { display:flex; align-items:center; gap:6px; } .nscc-kanban-column > header i { width:8px; height:8px; border-radius:50%; background:var(--qa); } .nscc-kanban-column > header strong { color:var(--nscc-navy); font-size:10px; } .nscc-kanban-column > header b { min-width:22px; padding:3px 6px; border-radius:999px; background:#fff; color:var(--nscc-muted); text-align:center; font-size:8px; }
.nscc-kanban-column.is-orange { --qa:var(--nscc-orange); } .nscc-kanban-column.is-blue { --qa:var(--nscc-blue); } .nscc-kanban-column.is-green { --qa:var(--nscc-green); } .nscc-kanban-column.is-purple { --qa:var(--nscc-purple); }
.nscc-kanban-stack { display:grid; gap:7px; }
.nscc-referral-card { display:grid; gap:7px; padding:10px; border:1px solid var(--nscc-border); border-top:3px solid var(--qa); border-radius:13px; background:#fff; color:inherit; text-align:left; font:inherit; cursor:pointer; box-shadow:0 3px 10px rgba(11,43,85,.035); }
.nscc-referral-card:hover { transform:translateY(-1px); box-shadow:var(--nscc-shadow-soft); }
.nscc-referral-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:6px; }
.nscc-referral-card-head strong { color:var(--nscc-navy); font-size:10px; } .nscc-referral-card > span, .nscc-referral-card > small { color:var(--nscc-muted); font-size:8px; }
.nscc-referral-owner { display:flex; align-items:center; gap:5px; margin-top:2px; } .nscc-referral-owner .nscc-avatar { width:24px; height:24px; flex-basis:24px; font-size:7px; } .nscc-referral-owner span { color:var(--nscc-navy); font-size:8px; font-weight:750; }
.nscc-kanban-add { width:100%; margin-top:8px; min-height:34px; border:1px dashed color-mix(in srgb,var(--qa) 35%,#dce4ec); border-radius:10px; background:color-mix(in srgb,var(--qa) 5%,#fff); color:var(--qa); font:inherit; font-size:8px; font-weight:850; cursor:pointer; }

/* Wide person profile sheets */
.nscc-modal-wide { width:min(1280px,calc(100vw - 34px)); }
.nscc-modal-wide .nscc-modal-body { padding:0 22px 26px; }
.nscc-profile-shell { display:grid; gap:0; }
.nscc-profile-hero { position:relative; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 -22px; padding:22px 24px; overflow:hidden; border-bottom:1px solid var(--nscc-border); background:linear-gradient(135deg,#fff,#f7fbff); }
.nscc-profile-hero::after { content:"NS"; position:absolute; right:20px; top:-25px; z-index:0; color:rgba(11,116,229,.045); font-size:100px; font-weight:950; letter-spacing:-.18em; transform:skewX(-10deg); }
.nscc-profile-person, .nscc-profile-actions { position:relative; z-index:1; display:flex; align-items:center; gap:12px; }
.nscc-profile-person .nscc-avatar { width:72px; height:72px; flex-basis:72px; font-size:20px; border:4px solid #fff; }
.nscc-profile-person h2 { margin:2px 0 6px; color:var(--nscc-navy); font-size:28px; }
.nscc-profile-status { display:flex; flex-wrap:wrap; align-items:center; gap:7px; color:var(--nscc-muted); font-size:9px; }
.nscc-profile-nav { position:sticky; top:65px; z-index:4; display:flex; gap:4px; overflow-x:auto; margin:0 -22px 18px; padding:8px 22px; border-bottom:1px solid var(--nscc-border); background:rgba(255,255,255,.94); backdrop-filter:blur(18px); }
.nscc-profile-nav a { flex:0 0 auto; padding:7px 10px; border-radius:999px; color:var(--nscc-muted); text-decoration:none; font-size:9px; font-weight:800; }
.nscc-profile-nav a:hover { background:var(--nscc-orange-soft); color:var(--nscc-orange-dark); }
.nscc-profile-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; scroll-margin-top:120px; }
.nscc-profile-grid .nscc-card { min-height:165px; }
.nscc-next-support { display:grid; gap:5px; } .nscc-next-support > span { color:var(--nscc-blue-dark); font-size:10px; font-weight:850; } .nscc-next-support > strong { color:var(--nscc-navy); font-size:19px; } .nscc-next-support small { color:var(--nscc-muted); }
.nscc-profile-stat { display:grid; gap:2px; margin:10px 0; } .nscc-profile-stat strong { color:var(--nscc-navy); font-size:27px; } .nscc-profile-stat span { color:var(--nscc-muted); font-size:9px; }
.nscc-budget-bar { height:8px; overflow:hidden; border-radius:999px; background:#e8eef5; } .nscc-budget-bar span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--nscc-blue),#58aeff); }
.nscc-budget-meta { display:flex; justify-content:space-between; gap:8px; margin-top:7px; color:var(--nscc-muted); font-size:8px; } .nscc-budget-meta b { color:var(--nscc-navy); }
.nscc-chip-cloud { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.nscc-chip { display:inline-flex; padding:5px 8px; border:1px solid var(--nscc-border); border-radius:999px; background:#f5f8fb; color:var(--nscc-navy); font-size:8px; font-weight:800; }
.nscc-chip.is-blue { background:var(--nscc-blue-soft); color:var(--nscc-blue-dark); } .nscc-chip.is-green { background:var(--nscc-green-soft); color:#147347; } .nscc-chip.is-purple { background:var(--nscc-purple-soft); color:var(--nscc-purple); } .nscc-chip.is-teal { background:var(--nscc-teal-soft); color:var(--nscc-teal); } .nscc-chip.is-orange { background:var(--nscc-orange-soft); color:var(--nscc-orange-dark); } .nscc-chip.is-navy { background:#edf2f7; color:var(--nscc-navy); }
.nscc-goal-card { border-left:4px solid var(--nscc-green); }
.nscc-rep-grid { display:grid; gap:7px; } .nscc-rep-grid > div { display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:8px; padding:8px; border:1px solid var(--nscc-border); border-radius:13px; } .nscc-rep-grid .nscc-avatar { width:32px; height:32px; flex-basis:32px; font-size:8px; } .nscc-rep-grid span:nth-child(2) { display:grid; gap:1px; } .nscc-rep-grid strong { color:var(--nscc-navy); font-size:9px; } .nscc-rep-grid small { color:var(--nscc-muted); font-size:8px; }
.nscc-compliance-score { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:8px 0 12px; } .nscc-compliance-score > strong { color:var(--nscc-green); font-size:34px; }
.nscc-credential-grid, .nscc-availability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.nscc-availability-grid .nscc-card { display:grid; gap:5px; min-height:110px; }
.nscc-compact-shifts { display:grid; gap:5px; }
.nscc-compact-shifts button { display:grid; grid-template-columns:78px 1fr auto; align-items:center; gap:7px; width:100%; padding:8px; border:1px solid var(--nscc-border); border-radius:11px; background:#fff; text-align:left; font:inherit; cursor:pointer; }
.nscc-compact-shifts time { color:var(--nscc-blue-dark); font-size:8px; font-weight:850; } .nscc-compact-shifts button > span { display:grid; gap:1px; } .nscc-compact-shifts strong { color:var(--nscc-navy); font-size:9px; } .nscc-compact-shifts small { color:var(--nscc-muted); font-size:8px; }

/* Quality hub */
.nscc-quality-grid { display:grid; grid-template-columns:1.1fr 1.05fr .95fr; gap:11px; margin-top:14px; }
.nscc-quality-list { display:grid; gap:5px; }
.nscc-quality-item { display:grid; grid-template-columns:68px minmax(0,1fr) 60px auto; align-items:center; gap:8px; width:100%; padding:8px 0; border:0; border-bottom:1px solid var(--nscc-border); background:transparent; text-align:left; font:inherit; cursor:pointer; }
.nscc-quality-item:last-child { border-bottom:0; }
.nscc-quality-priority { width:fit-content; padding:3px 6px; border-radius:999px; background:#f2f5f8; color:var(--nscc-muted); font-size:7px; font-weight:900; text-transform:uppercase; }
.nscc-quality-item.is-red .nscc-quality-priority, .nscc-quality-item.is-danger .nscc-quality-priority { background:var(--nscc-red-soft); color:var(--nscc-red); } .nscc-quality-item.is-purple .nscc-quality-priority { background:var(--nscc-purple-soft); color:var(--nscc-purple); } .nscc-quality-item.is-blue .nscc-quality-priority { background:var(--nscc-blue-soft); color:var(--nscc-blue-dark); }
.nscc-quality-item > span:nth-child(2) { display:grid; gap:1px; } .nscc-quality-item strong { color:var(--nscc-navy); font-size:9px; } .nscc-quality-item small, .nscc-quality-item time { color:var(--nscc-muted); font-size:7px; }
.nscc-form-library { display:grid; gap:7px; }
.nscc-form-library-item { display:grid; grid-template-columns:32px minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px; border:1px solid var(--nscc-border); border-radius:12px; }
.nscc-form-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:var(--nscc-blue-soft); color:var(--nscc-blue); } .nscc-form-icon .nscc-nav-icon { width:20px; height:20px; }
.nscc-form-library-item > span:nth-child(2) { display:grid; gap:1px; } .nscc-form-library-item strong { color:var(--nscc-navy); font-size:9px; } .nscc-form-library-item small { color:var(--nscc-muted); font-size:7px; }

/* Worker mobile-first home */
.nscc-worker-summary { display:flex; gap:7px; }
.nscc-worker-summary span { display:grid; min-width:78px; padding:8px 10px; border:1px solid var(--nscc-border); border-radius:14px; background:#fff; color:var(--nscc-muted); font-size:8px; } .nscc-worker-summary b { color:var(--nscc-navy); font-size:17px; }
.nscc-worker-next { display:grid; gap:12px; padding:20px; border-left:5px solid var(--nscc-green); }
.nscc-worker-next-top { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.nscc-worker-next-body { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.nscc-worker-next-body > div:first-child { display:flex; align-items:center; gap:10px; } .nscc-worker-next-body h2 { margin:0; font-size:23px; } .nscc-worker-next-body p { margin:2px 0 0; color:var(--nscc-muted); }
.nscc-worker-next-meta { display:grid; gap:7px; } .nscc-worker-next-meta span { display:flex; align-items:center; gap:6px; color:var(--nscc-muted); font-size:9px; } .nscc-worker-next-meta .nscc-nav-icon { width:22px; height:22px; color:var(--nscc-blue); }
.nscc-worker-timeline { display:grid; gap:7px; }
.nscc-worker-timeline-item { display:grid; grid-template-columns:78px minmax(0,1fr) auto 40px; align-items:center; gap:9px; padding:10px; border:1px solid var(--nscc-border); border-left:4px solid var(--qa,#0b74e5); border-radius:14px; background:#fff; }
.nscc-worker-timeline-item.is-green { --qa:var(--nscc-green); } .nscc-worker-timeline-item.is-blue { --qa:var(--nscc-blue); } .nscc-worker-timeline-item.is-amber { --qa:var(--nscc-amber); } .nscc-worker-timeline-item.is-red { --qa:var(--nscc-red); }
.nscc-worker-timeline-item time { color:var(--nscc-navy); font-size:10px; font-weight:850; } .nscc-worker-timeline-item > span:nth-child(2) { display:grid; gap:2px; } .nscc-worker-timeline-item strong { color:var(--nscc-navy); font-size:10px; } .nscc-worker-timeline-item small { color:var(--nscc-muted); font-size:8px; }
.nscc-worker-timeline-item .nscc-icon-button { width:34px; height:34px; border-radius:11px; color:var(--nscc-blue); }
.nscc-worker-shift-card { border-top:4px solid var(--nscc-blue); }
.nscc-worker-shift-date { display:flex; justify-content:space-between; gap:8px; align-items:center; } .nscc-worker-shift-date > span { color:var(--nscc-blue-dark); font-size:10px; font-weight:850; }

/* Participant / family home */
.nscc-participant-home-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }
.nscc-participant-home-grid .nscc-card { min-height:220px; }
.nscc-participant-hero > .nscc-avatar { width:56px; height:56px; flex-basis:56px; font-size:16px; }
.nscc-participant-next .nscc-next-date { color:var(--nscc-blue-dark); font-size:10px; font-weight:850; } .nscc-participant-next h2 { margin:7px 0 4px; font-size:22px; } .nscc-participant-next p { color:var(--nscc-muted); font-size:10px; }
.nscc-goal-mini-list { display:grid; gap:8px; }
.nscc-goal-mini-list > div { display:grid; grid-template-columns:26px 1fr; gap:7px; align-items:center; } .nscc-goal-check { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; background:#f1f4f7; color:#9aa7b5; font-size:10px; } .nscc-goal-check.is-complete { background:var(--nscc-green-soft); color:var(--nscc-green); } .nscc-goal-mini-list span:last-child { display:grid; gap:1px; } .nscc-goal-mini-list strong { color:var(--nscc-navy); font-size:9px; } .nscc-goal-mini-list small { color:var(--nscc-muted); font-size:7px; }
.nscc-participant-quick { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }

/* Login polish and role identity */
.nscc-login-shell { background:radial-gradient(circle at 15% 12%,rgba(255,101,15,.12),transparent 27%),radial-gradient(circle at 88% 13%,rgba(11,116,229,.12),transparent 28%),linear-gradient(145deg,#fbfdff,#f5f8fc 55%,#fff); }
.nscc-login-shell::before { content:"NS" !important; left:auto !important; right:-50px !important; top:-60px !important; bottom:auto !important; width:auto !important; height:auto !important; border-radius:0 !important; background:transparent !important; color:rgba(11,116,229,.035); font-size:210px; font-weight:950; letter-spacing:-.18em; transform:skewX(-9deg); filter:none !important; }
.nscc-login-card { width:min(540px,100%); border:1px solid rgba(11,43,85,.07); background:rgba(255,255,255,.94); box-shadow:0 34px 90px rgba(11,43,85,.15); }
.nscc-login-brand .nscc-ns-monogram { width:52px; height:48px; flex-basis:52px; font-size:35px; }
.nscc-auth-role { background:var(--nscc-blue-soft); color:var(--nscc-blue-dark); }
.nscc-auth-card.nscc-role-admin { --login-tone:var(--nscc-blue); --login-soft:var(--nscc-blue-soft); }
.nscc-auth-card.nscc-role-worker { --login-tone:var(--nscc-green); --login-soft:var(--nscc-green-soft); }
.nscc-auth-card.nscc-role-participant { --login-tone:var(--nscc-purple); --login-soft:var(--nscc-purple-soft); }
.nscc-auth-card.nscc-role-representative { --login-tone:var(--nscc-orange); --login-soft:var(--nscc-orange-soft); }
.nscc-auth-card[class*="nscc-role-"] { border-top:5px solid var(--login-tone); }
.nscc-auth-card[class*="nscc-role-"] .nscc-auth-role { background:var(--login-soft); color:var(--login-tone); }
.nscc-auth-card[class*="nscc-role-"] .nscc-button-primary { background:linear-gradient(180deg,color-mix(in srgb,var(--login-tone) 84%,#fff),var(--login-tone)); box-shadow:0 10px 24px color-mix(in srgb,var(--login-tone) 24%,transparent); }
.nscc-auth-card[class*="nscc-role-"] .nscc-field input:focus { border-color:var(--login-tone); box-shadow:0 0 0 4px color-mix(in srgb,var(--login-tone) 12%,transparent); }

@media (max-width:1350px) {
  .nscc-metric-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .nscc-dashboard-grid, .nscc-quality-grid { grid-template-columns:1fr 1fr; }
  .nscc-dashboard-activity, .nscc-quality-grid > article:last-child { grid-column:1 / -1; }
  .nscc-directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nscc-quick-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .nscc-profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nscc-participant-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1100px) {
  .nscc-roster-content { grid-template-columns:1fr; }
  .nscc-roster-insights { position:static; }
  .nscc-kanban { grid-template-columns:repeat(5,240px); }
}
@media (max-width:980px) {
  .nscc-layout { grid-template-columns:1fr; }
  .nscc-sidebar { display:none; }
  .nscc-mobile-brand { display:flex; }
  .nscc-topbar-context { display:none; }
  .nscc-main { padding-bottom:112px; }
  .nscc-workspace::before { display:none; }
  .nscc-topbar { min-height:66px; }
  .nscc-security-pill span, .nscc-topbar-user { display:none; }
  .nscc-dashboard-grid, .nscc-quality-grid { grid-template-columns:1fr; }
  .nscc-dashboard-activity, .nscc-quality-grid > article:last-child { grid-column:auto; }
}
@media (max-width:760px) {
  .nscc-topbar-actions > .nscc-button { display:none; }
  .nscc-notification-pill { padding:5px; }
  .nscc-dashboard-hero, .nscc-worker-hero, .nscc-participant-hero { align-items:flex-start; flex-direction:column; }
  .nscc-dashboard-actions { width:100%; } .nscc-dashboard-actions .nscc-button { flex:1; }
  .nscc-metric-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nscc-metric-strip .nscc-metric { min-height:112px; }
  .nscc-donut-wrap { align-items:flex-start; }
  .nscc-donut { width:112px; height:112px; flex-basis:112px; } .nscc-donut > div { width:74px; height:74px; }
  .nscc-quick-grid, .nscc-participant-quick { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nscc-directory-grid { grid-template-columns:1fr; }
  .nscc-list-toolbar { align-items:stretch; flex-direction:column; } .nscc-list-search { width:100%; }
  .nscc-profile-hero { align-items:flex-start; flex-direction:column; } .nscc-profile-actions { width:100%; flex-wrap:wrap; } .nscc-profile-actions .nscc-button { flex:1; }
  .nscc-profile-grid, .nscc-credential-grid, .nscc-availability-grid, .nscc-participant-home-grid { grid-template-columns:1fr; }
  .nscc-profile-nav { top:61px; }
  .nscc-worker-summary { width:100%; overflow-x:auto; }
  .nscc-worker-next-body { align-items:flex-start; flex-direction:column; }
  .nscc-worker-timeline-item { grid-template-columns:62px minmax(0,1fr) 34px; } .nscc-worker-timeline-item > .nscc-status { display:none; }
  .nscc-quality-item { grid-template-columns:58px minmax(0,1fr) auto; } .nscc-quality-item time { display:none; }
  .nscc-compact-shifts button { grid-template-columns:68px 1fr; } .nscc-compact-shifts button > .nscc-status { display:none; }
}
@media (max-width:520px) {
  .nscc-main { padding-left:11px; padding-right:11px; }
  .nscc-metric-strip { grid-template-columns:1fr 1fr; gap:8px; }
  .nscc-metric-strip .nscc-metric { padding:14px; }
  .nscc-metric-value { font-size:31px; }
  .nscc-dashboard-overview, .nscc-dashboard-attention, .nscc-dashboard-activity { min-height:auto; }
  .nscc-donut-wrap { flex-direction:column; align-items:center; }
  .nscc-donut-legend { width:100%; }
  .nscc-quick-grid, .nscc-participant-quick { grid-template-columns:1fr 1fr; }
  .nscc-quick-action, .nscc-participant-quick button { min-height:62px; }
  .nscc-profile-person .nscc-avatar { width:58px; height:58px; flex-basis:58px; }
  .nscc-profile-person h2 { font-size:23px; }
}

/* Release 1.2.0: premium role gateway/login refinements. */
.nscc-login-logo-combined { display:flex; align-items:center; gap:12px; }
.nscc-login-logo-combined img { width:auto; max-width:156px; max-height:48px; object-fit:contain; }
.nscc-login-logo-monogram { display:flex; align-items:center; min-height:48px; }
.nscc-gateway { width:min(1120px,100%); padding:clamp(22px,3vw,38px); border:1px solid rgba(11,43,85,.07); border-radius:30px; background:rgba(255,255,255,.94); box-shadow:0 34px 90px rgba(11,43,85,.14); backdrop-filter:blur(16px); }
.nscc-gateway-hero { display:grid; justify-items:center; text-align:center; gap:7px; margin-bottom:24px; }
.nscc-gateway-hero .nscc-login-logo { justify-content:center; }
.nscc-gateway-hero h1 { margin:0; color:var(--nscc-navy); font-size:clamp(34px,4vw,52px); letter-spacing:-.045em; }
.nscc-gateway-hero p { max-width:690px; margin:0; color:var(--nscc-muted); line-height:1.55; }
.nscc-gateway-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.nscc-gateway-card { --login-tone:var(--nscc-blue); --login-soft:var(--nscc-blue-soft); position:relative; overflow:hidden; display:grid; gap:9px; min-height:210px; padding:20px; border:1px solid color-mix(in srgb,var(--login-tone) 19%,#e4eaf0); border-top:5px solid var(--login-tone); border-radius:22px; background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--login-soft) 55%,#fff)); color:var(--nscc-navy); text-decoration:none; box-shadow:var(--nscc-shadow-soft); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.nscc-gateway-card:hover { transform:translateY(-3px); border-color:color-mix(in srgb,var(--login-tone) 38%,#e4eaf0); box-shadow:0 18px 40px rgba(11,43,85,.12); }
.nscc-gateway-card.nscc-role-admin { --login-tone:var(--nscc-blue); --login-soft:var(--nscc-blue-soft); }
.nscc-gateway-card.nscc-role-worker { --login-tone:var(--nscc-green); --login-soft:var(--nscc-green-soft); }
.nscc-gateway-card.nscc-role-participant { --login-tone:var(--nscc-purple); --login-soft:var(--nscc-purple-soft); }
.nscc-gateway-card.nscc-role-representative { --login-tone:var(--nscc-orange); --login-soft:var(--nscc-orange-soft); }
.nscc-gateway-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:16px; background:var(--login-soft); color:var(--login-tone); font-size:18px; font-weight:950; box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--login-tone) 16%,transparent); }
.nscc-gateway-card strong { font-size:17px; color:var(--nscc-navy); }
.nscc-gateway-card > span:not(.nscc-gateway-icon) { color:var(--nscc-muted); font-size:11px; line-height:1.5; }
.nscc-gateway-card b { align-self:end; color:var(--login-tone); font-size:11px; }
.nscc-auth-card.nscc-role-admin .nscc-security-note { border-left-color:var(--nscc-blue); }
.nscc-auth-card.nscc-role-worker .nscc-security-note { border-left-color:var(--nscc-green); }
.nscc-auth-card.nscc-role-participant .nscc-security-note { border-left-color:var(--nscc-purple); }
.nscc-auth-card.nscc-role-representative .nscc-security-note { border-left-color:var(--nscc-orange); }
.nscc-quick-action.is-static { cursor:default; }
.nscc-quick-action.is-static:hover { transform:none; }

@media (max-width:980px) {
  .nscc-gateway-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:620px) {
  .nscc-gateway { padding:16px; border-radius:22px; }
  .nscc-gateway-grid { grid-template-columns:1fr; }
  .nscc-gateway-card { min-height:150px; }
}

/* Release 1.2.0: worker shift, progress note and check-out experience. */
.nscc-modal.nscc-modal-worker { width:min(820px,calc(100vw - 24px)); max-height:min(92vh,980px); }
.nscc-modal-worker .nscc-modal-body { padding:0; background:#f8fafc; }
.nscc-worker-shift-detail { display:grid; gap:14px; padding:18px; }
.nscc-worker-shift-hero { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px; border-radius:20px; background:linear-gradient(145deg,#fff,var(--nscc-blue-soft)); border:1px solid #dcecfb; }
.nscc-worker-shift-person { display:flex; align-items:center; gap:12px; min-width:0; }
.nscc-worker-shift-person .nscc-avatar { width:58px; height:58px; flex-basis:58px; font-size:16px; }
.nscc-worker-shift-person h2 { margin:2px 0 4px; color:var(--nscc-navy); font-size:25px; letter-spacing:-.03em; }
.nscc-worker-shift-line { display:flex; flex-wrap:wrap; align-items:center; gap:7px; color:var(--nscc-muted); font-size:10px; }
.nscc-worker-shift-line strong { color:var(--nscc-navy); }
.nscc-worker-shift-location { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--nscc-border); border-radius:16px; background:#fff; }
.nscc-worker-shift-location .nscc-nav-icon { width:32px; height:32px; border-radius:10px; background:var(--nscc-blue-soft); color:var(--nscc-blue); }
.nscc-worker-shift-location > span { display:grid; gap:1px; }
.nscc-worker-shift-location small { color:var(--nscc-muted); font-size:8px; text-transform:uppercase; font-weight:850; }
.nscc-worker-shift-location strong { color:var(--nscc-navy); font-size:10px; }
.nscc-worker-shift-columns { display:grid; grid-template-columns:1.08fr .92fr; gap:12px; }
.nscc-worker-shift-columns > section { padding:15px; border:1px solid var(--nscc-border); border-radius:18px; background:#fff; }
.nscc-essential-grid { display:grid; gap:7px; }
.nscc-essential-grid article { display:grid; gap:3px; padding:10px 11px; border-radius:12px; border-left:4px solid var(--qa); background:var(--soft); }
.nscc-essential-grid article.is-blue { --qa:var(--nscc-blue); --soft:var(--nscc-blue-soft); }
.nscc-essential-grid article.is-red { --qa:var(--nscc-red); --soft:var(--nscc-red-soft); }
.nscc-essential-grid article.is-purple { --qa:var(--nscc-purple); --soft:var(--nscc-purple-soft); }
.nscc-essential-grid article span { color:var(--qa); font-size:8px; font-weight:900; text-transform:uppercase; }
.nscc-essential-grid article strong { color:var(--nscc-navy); font-size:9px; line-height:1.45; }
.nscc-shift-goals { display:grid; gap:8px; }
.nscc-shift-goals > div { display:grid; grid-template-columns:27px 1fr; gap:7px; align-items:center; }
.nscc-shift-goals > div > span:last-child { display:grid; gap:1px; }
.nscc-shift-goals strong { color:var(--nscc-navy); font-size:9px; }
.nscc-shift-goals small { color:var(--nscc-muted); font-size:7px; }
.nscc-shift-alert, .nscc-shift-safety-callout { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; border:1px solid #ffd0d0; border-radius:16px; background:var(--nscc-red-soft); color:var(--nscc-navy); }
.nscc-alert-icon { display:grid; place-items:center; width:27px; height:27px; flex:0 0 27px; border-radius:50%; background:var(--nscc-red); color:#fff; font-weight:950; }
.nscc-shift-alert p, .nscc-shift-safety-callout p { margin:3px 0 0; color:var(--nscc-muted); font-size:9px; line-height:1.45; }
.nscc-worker-shift-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:3px; }
.nscc-worker-shift-footer > div { display:flex; gap:8px; }
.nscc-button-large { min-height:46px; padding-inline:19px; }
.nscc-progress-note-form, .nscc-checkout-form { padding:18px; }
.nscc-note-intro, .nscc-checkout-hero { display:flex; align-items:center; gap:12px; margin-bottom:14px; padding:14px; border:1px solid #dcecfb; border-radius:18px; background:linear-gradient(145deg,#fff,var(--nscc-blue-soft)); }
.nscc-note-icon, .nscc-checkout-icon { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:15px; background:#fff; color:var(--nscc-blue); box-shadow:var(--nscc-shadow-soft); font-size:22px; font-weight:950; }
.nscc-note-icon .nscc-nav-icon { width:26px; height:26px; }
.nscc-note-intro h3, .nscc-checkout-hero h3 { margin:2px 0; color:var(--nscc-navy); font-size:20px; }
.nscc-note-intro p, .nscc-checkout-hero p { margin:0; color:var(--nscc-muted); font-size:9px; }
.nscc-engagement-picker { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:0 0 14px; padding:0; border:0; }
.nscc-engagement-picker legend { grid-column:1/-1; margin-bottom:2px; color:var(--nscc-navy); font-size:10px; font-weight:850; }
.nscc-engagement-picker label { position:relative; }
.nscc-engagement-picker input { position:absolute; opacity:0; pointer-events:none; }
.nscc-engagement-picker span { display:grid; place-items:center; min-height:42px; padding:7px; border:1px solid var(--nscc-border); border-radius:12px; background:#fff; color:var(--nscc-muted); font-size:9px; font-weight:850; cursor:pointer; }
.nscc-engagement-picker input:checked + span { border-color:var(--nscc-green); background:var(--nscc-green-soft); color:var(--nscc-green); box-shadow:0 0 0 3px rgba(22,160,93,.08); }
.nscc-note-actions, .nscc-checkout-actions { justify-content:flex-end; }
.nscc-input-with-suffix { display:flex; align-items:center; overflow:hidden; border:1px solid var(--nscc-border); border-radius:12px; background:#fff; }
.nscc-input-with-suffix input { flex:1; border:0 !important; box-shadow:none !important; }
.nscc-input-with-suffix span { padding:0 12px; color:var(--nscc-muted); font-size:10px; font-weight:850; }
.nscc-shift-safety-callout { align-items:center; margin:12px 0; }
.nscc-shift-safety-callout > div { flex:1; }

@media (max-width:680px) {
  .nscc-modal.nscc-modal-worker { width:100vw; max-width:100vw; max-height:100vh; height:100vh; border-radius:0; }
  .nscc-modal-worker .nscc-modal-head { position:sticky; top:0; z-index:3; background:rgba(255,255,255,.96); }
  .nscc-worker-shift-detail, .nscc-progress-note-form, .nscc-checkout-form { padding:12px; }
  .nscc-worker-shift-hero { align-items:flex-start; flex-direction:column; }
  .nscc-worker-shift-actions { width:100%; }
  .nscc-worker-shift-actions .nscc-button { width:100%; }
  .nscc-worker-shift-columns { grid-template-columns:1fr; }
  .nscc-worker-shift-footer { align-items:stretch; flex-direction:column-reverse; }
  .nscc-worker-shift-footer > div, .nscc-worker-shift-footer .nscc-button { width:100%; }
  .nscc-worker-shift-footer > div { display:grid; }
  .nscc-engagement-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nscc-shift-safety-callout { align-items:flex-start; flex-wrap:wrap; }
  .nscc-shift-safety-callout .nscc-button { width:100%; }
}

/* Release 1.3.0: NS Care+ identity, account profile and onboarding polish. */
.nscc-avatar { overflow:hidden; }
.nscc-avatar.has-photo { padding:0; background:#fff; }
.nscc-avatar.has-photo img { width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; }
.nscc-auth-key-mark { background:var(--nscc-blue-soft); color:var(--nscc-blue); }

.nscc-account-wrap { position:relative; }
.nscc-account-trigger { display:flex; align-items:center; gap:10px; min-height:48px; padding:5px 8px 5px 5px; border:1px solid transparent; border-radius:16px; background:transparent; color:var(--nscc-navy); cursor:pointer; transition:.18s ease; }
.nscc-account-trigger:hover, .nscc-account-trigger[aria-expanded="true"] { border-color:var(--nscc-border); background:#fff; box-shadow:var(--nscc-shadow-soft); }
.nscc-account-trigger .nscc-avatar { width:38px; height:38px; flex:0 0 38px; }
.nscc-account-chevron { color:var(--nscc-muted); font-size:18px; line-height:1; }
.nscc-account-menu { position:absolute; right:0; top:calc(100% + 10px); z-index:50; width:min(320px,calc(100vw - 24px)); padding:10px; border:1px solid var(--nscc-border); border-radius:22px; background:rgba(255,255,255,.98); box-shadow:0 24px 60px rgba(21,38,63,.16); backdrop-filter:blur(20px); }
.nscc-account-menu[hidden] { display:none; }
.nscc-account-menu-head { display:flex; align-items:center; gap:10px; padding:8px 9px 13px; border-bottom:1px solid var(--nscc-border); margin-bottom:7px; }
.nscc-account-menu-head .nscc-avatar { width:44px; height:44px; flex:0 0 44px; }
.nscc-account-menu-head span { display:grid; gap:1px; }
.nscc-account-menu-head strong { color:var(--nscc-navy); }
.nscc-account-menu-head small { color:var(--nscc-muted); }
.nscc-account-menu > button, .nscc-account-menu > a { width:100%; display:grid; grid-template-columns:34px 1fr; gap:9px; align-items:center; padding:10px; border:0; border-radius:14px; background:transparent; color:var(--nscc-text); text-align:left; text-decoration:none; cursor:pointer; }
.nscc-account-menu > button:hover, .nscc-account-menu > a:hover { background:var(--nscc-blue-soft); }
.nscc-account-menu .nscc-nav-icon { width:32px; height:32px; border-radius:10px; background:#f2f7fc; color:var(--nscc-blue); }
.nscc-account-menu > button span:last-child, .nscc-account-menu > a span:last-child { display:grid; gap:1px; }
.nscc-account-menu strong { color:var(--nscc-navy); font-size:11px; }
.nscc-account-menu small { color:var(--nscc-muted); font-size:8px; }
.nscc-account-menu .nscc-account-logout .nscc-nav-icon { color:var(--nscc-danger); background:var(--nscc-red-soft); }

.nscc-dashboard-hero::before, .nscc-worker-hero::before, .nscc-participant-hero::before { content:""; position:absolute; right:0; top:-30px; width:min(390px,38vw); aspect-ratio:2/1; background:url('../images/ns-care-plus-graphic.svg') center/contain no-repeat; opacity:.12; pointer-events:none; z-index:-1; }
.nscc-worker-hero::before { opacity:.09; }
.nscc-participant-hero::before { opacity:.08; }

.nscc-profile-page-hero { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:22px; min-height:210px; margin-bottom:18px; padding:28px 30px; border:1px solid rgba(23,139,210,.12); border-radius:30px; background:linear-gradient(125deg,#fff 0%,#f4faff 55%,#fff3ea 100%); box-shadow:var(--nscc-shadow-soft); }
.nscc-profile-page-art { position:absolute; right:110px; top:-24px; width:min(430px,42vw); opacity:.2; z-index:-1; pointer-events:none; }
.nscc-profile-page-art img { width:100%; height:auto; display:block; }
.nscc-profile-page-person { display:flex; align-items:center; gap:18px; min-width:0; }
.nscc-profile-page-person .nscc-avatar { width:92px; height:92px; flex:0 0 92px; border-radius:28px; font-size:24px; border:5px solid rgba(255,255,255,.9); box-shadow:0 14px 32px rgba(21,38,63,.12); }
.nscc-profile-page-person h1 { margin:3px 0 5px; color:var(--nscc-navy); font-size:clamp(32px,4vw,50px); letter-spacing:-.045em; line-height:1; }
.nscc-profile-page-person p { margin:0; max-width:560px; color:var(--nscc-muted); }
.nscc-profile-complete { display:grid; gap:4px; min-width:150px; padding:16px 18px; border:1px solid rgba(23,139,210,.14); border-radius:20px; background:rgba(255,255,255,.82); backdrop-filter:blur(10px); }
.nscc-profile-complete strong { color:var(--nscc-blue); font-size:28px; line-height:1; }
.nscc-profile-complete span { color:var(--nscc-muted); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.nscc-profile-complete > div { height:7px; overflow:hidden; border-radius:999px; background:#e8eef5; }
.nscc-profile-complete i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--nscc-blue),#20b486); }

.nscc-profile-settings-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; align-items:start; }
.nscc-profile-settings-side { display:grid; gap:14px; position:sticky; top:84px; }
.nscc-profile-photo-card { text-align:center; }
.nscc-profile-photo-large { display:flex; justify-content:center; margin-bottom:12px; }
.nscc-profile-photo-large .nscc-avatar { width:132px; height:132px; flex:0 0 132px; border-radius:36px; font-size:30px; box-shadow:0 18px 36px rgba(21,38,63,.12); }
.nscc-avatar-upload { display:grid; gap:8px; justify-items:center; margin-top:15px; }
.nscc-avatar-upload label { cursor:pointer; }
.nscc-profile-security-card { background:linear-gradient(145deg,#fff,var(--nscc-blue-soft)); }
.nscc-profile-settings-main { display:grid; gap:14px; }
.nscc-profile-form-card { padding:20px; }
.nscc-profile-form-card legend { padding:0 8px; color:var(--nscc-navy); font-size:14px; font-weight:900; }
.nscc-field-full { grid-column:1/-1; }
.nscc-profile-savebar { position:sticky; bottom:14px; z-index:15; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 16px; border:1px solid rgba(21,38,63,.09); border-radius:20px; background:rgba(255,255,255,.94); box-shadow:0 18px 48px rgba(21,38,63,.13); backdrop-filter:blur(18px); }
.nscc-profile-savebar > div { display:grid; gap:2px; }
.nscc-profile-savebar strong { color:var(--nscc-navy); }
.nscc-profile-savebar span { color:var(--nscc-muted); font-size:9px; }

.nscc-user-row .nscc-avatar { vertical-align:middle; margin-right:8px; }
.nscc-callout-info { border-left:4px solid var(--nscc-blue); background:var(--nscc-blue-soft); }

@media (max-width:980px) {
  .nscc-topbar-user, .nscc-account-chevron { display:none; }
  .nscc-profile-settings-grid { grid-template-columns:1fr; }
  .nscc-profile-settings-side { position:static; grid-template-columns:1fr 1fr; }
  .nscc-profile-page-art { right:-40px; width:420px; opacity:.12; }
}
@media (max-width:680px) {
  .nscc-security-pill { display:none; }
  .nscc-account-trigger { padding:3px; min-height:42px; }
  .nscc-account-trigger .nscc-avatar { width:38px; height:38px; }
  .nscc-account-menu { position:fixed; left:12px; right:12px; top:auto; bottom:78px; width:auto; }
  .nscc-profile-page-hero { grid-template-columns:1fr; padding:20px; border-radius:22px; }
  .nscc-profile-page-art { right:-120px; top:5px; width:360px; opacity:.08; }
  .nscc-profile-page-person { align-items:flex-start; }
  .nscc-profile-page-person .nscc-avatar { width:72px; height:72px; flex-basis:72px; border-radius:22px; }
  .nscc-profile-page-person h1 { font-size:31px; }
  .nscc-profile-complete { min-width:0; }
  .nscc-profile-settings-side { grid-template-columns:1fr; }
  .nscc-profile-photo-large .nscc-avatar { width:112px; height:112px; flex-basis:112px; }
  .nscc-profile-savebar { align-items:stretch; flex-direction:column; bottom:78px; }
  .nscc-profile-savebar .nscc-button { width:100%; }
}

.nscc-save-state { min-height:22px; margin-top:10px; padding:0 2px; color:var(--nscc-muted); font-size:10px; font-weight:700; }
.nscc-save-state.is-saving { color:var(--nscc-blue); }
.nscc-save-state.is-saved { color:#138a5b; }
.nscc-save-state.is-error { color:var(--nscc-danger); }


/* Release 1.8.2: explicit environment identity + user-managed MFA. */
.nscc-environment-badge,.nscc-gateway-environment{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;padding:9px 12px;border:1px solid;border-radius:12px;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.nscc-environment-badge span,.nscc-gateway-environment span{font-size:8px;font-weight:700;letter-spacing:.03em;text-transform:none;opacity:.78}
.nscc-environment-badge.is-uat,.nscc-gateway-environment.is-uat{background:#eef6ff;border-color:#b9dcff;color:#075bb8}
.nscc-environment-badge.is-production,.nscc-gateway-environment.is-production{background:#ebf9f1;border-color:#bfe7d1;color:#147347}
.nscc-gateway-environment{width:min(520px,100%);margin:0 auto 18px;box-shadow:0 8px 22px rgba(8,43,98,.055)}
.nscc-environment-pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 10px;border:1px solid;border-radius:999px;white-space:nowrap}
.nscc-environment-pill b{font-size:9px;letter-spacing:.08em}.nscc-environment-pill small{font-size:8px;font-weight:750;opacity:.72}
.nscc-environment-pill.is-uat{background:#eef6ff;border-color:#b9dcff;color:#075bb8}.nscc-environment-pill.is-production{background:#ebf9f1;border-color:#bfe7d1;color:#147347}
.nscc-env-uat .nscc-workspace{box-shadow:inset 0 4px 0 #087cf0}.nscc-env-production .nscc-workspace{box-shadow:inset 0 4px 0 #18a565}
.nscc-environment-security-card{border-width:2px!important}.nscc-environment-security-card.is-uat{border-color:#b9dcff!important;background:linear-gradient(135deg,#f6fbff,#fff)!important}.nscc-environment-security-card.is-production{border-color:#bfe7d1!important;background:linear-gradient(135deg,#f4fcf7,#fff)!important}
.nscc-mfa-user-table select{min-width:145px;min-height:38px;padding:7px 9px;border:1px solid var(--nscc-border);border-radius:10px;background:#fff;color:var(--nscc-navy);font:inherit;font-size:10px}
.nscc-row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.nscc-mfa-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.nscc-mfa-disable-form{margin-top:18px;padding:16px;border:1px solid #ffd6d6;border-radius:18px;background:#fff8f8}.nscx-profile-security-actions{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 12px}
@media(max-width:900px){.nscc-environment-pill small{display:none}.nscc-mfa-manage-grid{grid-template-columns:1fr}}@media(max-width:720px){.nscc-environment-pill{min-height:32px;padding:5px 8px}.nscc-environment-pill b{font-size:8px}.nscc-gateway-environment{margin-bottom:12px}.nscc-mfa-user-table select{width:100%}.nscc-row-actions{justify-content:flex-start}}

/* Release 1.8.3: first-class self-service authenticator MFA. */
.nscc-mfa-env-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;padding:10px 12px;border:1px solid var(--nscc-border);border-radius:14px;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.nscc-mfa-env-strip strong{font-size:11px;letter-spacing:.12em}.nscc-mfa-env-strip span{font-weight:700;opacity:.78;text-transform:none;letter-spacing:.02em}
.nscc-mfa-env-strip.is-production{background:#fff2f0;border-color:#ffc8c1;color:#9d2318}.nscc-mfa-env-strip.is-uat{background:#eef7ff;border-color:#bedcff;color:#075da8}
.nscc-mfa-portal-setup{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(280px,1.1fr);gap:18px;align-items:start}
.nscc-mfa-portal-setup>.nscc-mfa-qr,.nscc-mfa-portal-setup .nscc-mfa-qr{margin:14px auto 10px}
.nscc-mfa-self-disable{margin-top:18px;padding:16px;border:1px solid #ffd5d5;border-radius:16px;background:#fff8f8}
.nscc-mfa-focus-row{outline:3px solid rgba(8,124,240,.22);outline-offset:-3px;background:#f4f9ff!important}
@media(max-width:760px){.nscc-mfa-portal-setup{grid-template-columns:1fr}.nscc-mfa-env-strip{align-items:flex-start;flex-direction:column}}

/* NS Care+ 1.12.4 Development environment identity */
.nscc-environment-badge.is-dev,.nscc-gateway-environment.is-dev{background:#f5efff;border-color:#d6c0ff;color:#6831bf}
.nscc-environment-pill.is-dev{background:#f5efff;border-color:#d6c0ff;color:#6831bf}
.nscc-environment-security-card.is-dev{border-color:#d6c0ff!important;background:linear-gradient(135deg,#faf7ff,#fff)!important}
.nscc-mfa-env-strip.is-dev{background:#f7f1ff;border-color:#dcc9ff;color:#6a35bd}
.nscc-build-banner-dev{border-color:#dcc9ff!important;background:#f8f3ff!important;color:#6a35bd!important}
.nscc-build-banner-dev .nscc-build-dot{background:#8244e8!important}
