@import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700);
*, *::before, *::after {
  box-sizing: border-box;
}
html, body {
  width: 100%;
  min-height: 100vh;
  padding: 0;
  margin: 0;
  color: #1B2733;
  font-family: 'Roboto', sans-serif;
  background-color: #F4F5F7;
}
h1 {
  margin: unset;
  font-size: 1.75rem;
  font-weight: 700;
}
h2 {
  margin: unset;
  font-size: 1.25rem;
  font-weight: 700;
}
h3 {
  margin: unset;
  font-size: 1rem;
  font-weight: 700;
}
p {
  margin: 0;
  line-height: 1.5em;
}
ul {
  padding: 0;
  margin: 0;
}
li {
  list-style: none;
}
.auth-loading {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
  color: #5C6B7A;
  background-color: #F4F5F7;
}
.admin-shell {
  display: flex;
  height: 100vh;
  flex-direction: column;
}
.admin-shell .shell-body {
  display: flex;
  overflow: hidden;
  flex-grow: 1;
}
.admin-shell .content {
  overflow-y: auto;
  flex-grow: 1;
  background-color: #F4F5F7;
}
.loading {
  padding: 2rem;
  color: #5C6B7A;
}
.license-banner {
  padding: 0.6rem 1.5rem;
  font-size: 0.9rem;
}
.license-banner .banner-cta {
  font-weight: 700;
  text-decoration: underline;
}
@media (max-width: 900px) aside {
  width: 64px;
}
@media (max-width: 900px) aside .label {
  display: none;
}
@media (max-width: 600px) aside {
  display: none;
}
.unprovisioned-admin {
  display: flex;
  padding: 2rem;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}
.unprovisioned-admin .card {
  max-width: 540px;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0px 2px 8px #0002;
  background-color: #FFFFFF;
}
.unprovisioned-admin h1 {
  margin-top: 0px;
  margin-bottom: 1rem;
  font-size: 1.4rem;
}
.unprovisioned-admin ul {
  padding-left: 1.5rem;
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
}
.unprovisioned-admin button.sign-out {
  padding: 0.5rem 1rem;
  border-radius: 4px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 600;
  background-color: #37474F;
  border: none;
}
article.compliance-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
article.compliance-card h3 {
  margin: 0;
  color: #1B2733;
}
article.compliance-card .subtitle {
  margin: 0;
  color: #5C6B7A;
  font-size: 0.85rem;
}
article.compliance-card .empty {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
article.compliance-card .stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem;
}
article.compliance-card .stat {
  display: flex;
  padding: 0.6rem;
  border-radius: 6px;
  flex-direction: column;
  row-gap: 0.15rem;
  background-color: #F4F6F8;
}
article.compliance-card .stat .label {
  color: #5C6B7A;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
article.compliance-card .stat .value {
  color: #1B2733;
  font-size: 1.4rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
article.compliance-card .stat .value.warn {
  color: #E65100;
}
article.compliance-card .stat .value.danger {
  color: #B71C1C;
}
article.compliance-card .stat .note {
  color: #5C6B7A;
  font-size: 0.75rem;
}
article.compliance-card .signals {
  display: flex;
  flex-direction: column;
  row-gap: 0.4rem;
}
article.compliance-card .signal {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  font-size: 0.85rem;
}
article.compliance-card .signal .bar {
  height: 6px;
  border-radius: 3px;
  flex-grow: 1;
  background-color: #E0E0E0;
  overflow: hidden;
}
article.compliance-card .signal .bar .fill {
  height: 6px;
  background-color: #01589B;
  transition: width 0.3s ease;
}
article.compliance-card .signal .label {
  min-width: 160px;
  color: #1B2733;
}
article.compliance-card .signal .pct {
  min-width: 50px;
  color: #5C6B7A;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
article.compliance-card .signal .count {
  min-width: 80px;
  color: #5C6B7A;
  font-size: 0.75rem;
  text-align: right;
}
article.compliance-card .compliance-note {
  padding: 0.6rem;
  margin: 0;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.8rem;
  background-color: #E3F2FD;
}
header {
  display: flex;
  z-index: 2;
  height: 56px;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  box-shadow: 0px 1px 3px #0003;
  align-items: center;
  column-gap: 0.75rem;
  color: #FFFFFF;
  background-color: #01589B;
}
header .brand {
  display: flex;
  align-items: center;
  column-gap: 0.6rem;
}
header .brand .brand-mark {
  display: flex;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  color: #01589B;
  font-weight: 700;
  background-color: #FFFFFF;
}
header .brand .brand-name {
  font-weight: 700;
}
header .spacer {
  flex-grow: 1;
}
header .tier-badge {
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  color: #FFFFFF;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #FFFFFF22;
}
header .user-email {
  color: #A4B0BD;
  font-size: 0.85rem;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
header .signout-btn {
  padding: 0.3rem 0.75rem;
  border: solid 0px;
  border-radius: 4px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #FFFFFF22;
}
header .signout-btn:hover {
  background-color: #FFFFFF44;
}
article.license-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
article.license-card .card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
article.license-card .card-head .tier-pill {
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  color: #01589B;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #01589B14;
}
article.license-card .status-band {
  display: flex;
  padding: 0.6rem 0.85rem;
  border-radius: 6px;
  align-items: baseline;
  column-gap: 0.6rem;
  font-size: 0.9rem;
}
article.license-card .status-band .status-label {
  font-weight: 700;
}
article.license-card .status-band .status-body {
  opacity: 0.9;
}
article.license-card dl.meta {
  margin: 0;
  font-size: 0.9rem;
  display: grid;
  grid-template-columns: 140px 1fr;
  row-gap: 0.4rem;
  column-gap: 1rem;
}
article.license-card dl.meta dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
article.license-card dl.meta dd {
  margin: 0;
  color: #1B2733;
}
article.license-card .features {
  display: flex;
  flex-direction: column;
  row-gap: 0.4rem;
}
article.license-card .features ul {
  display: flex;
  padding: 0;
  flex-direction: column;
  row-gap: 0.2rem;
}
article.license-card .features li {
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.85rem;
  background-color: #01589B0E;
}
article.license-card .features .muted {
  color: #5C6B7A;
  font-size: 0.85rem;
}
aside {
  display: flex;
  width: 240px;
  padding-top: 1rem;
  padding-bottom: 1rem;
  flex-direction: column;
  flex-shrink: 0;
  color: #FFFFFF;
  background-color: #0E1A2B;
}
aside nav {
  display: flex;
  flex-direction: column;
  row-gap: 2px;
}
aside .nav-link {
  display: flex;
  padding: 0.6rem 1.5rem;
  align-items: center;
  color: #A4B0BD;
  font-size: 0.95rem;
  font-weight: 500;
  text-decoration: none;
}
aside .nav-link:hover {
  color: #FFFFFF;
  background-color: #FFFFFF0E;
}
aside .nav-link.active {
  color: #FFFFFF;
  background-color: #FFFFFF1A;
}
aside .nav-link .icon {
  display: inline-block;
  width: 22px;
  text-align: center;
  font-size: 1.05rem;
}
aside .nav-link .label {
  padding-left: 0.6rem;
}
section.accept-invite {
  display: flex;
  height: 100%;
  padding: 3rem 1.5rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #F4F5F7;
}
section.accept-invite .invite-card {
  display: flex;
  width: 100%;
  max-width: 460px;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0px 2px 8px #0001;
  flex-direction: column;
  row-gap: 1rem;
  background-color: #FFFFFF;
}
section.accept-invite .invite-card h1 {
  color: #01589B;
  font-size: 1.6rem;
}
section.accept-invite .invite-card .lede {
  color: #5C6B7A;
  font-size: 0.95rem;
  line-height: 1.5;
}
section.accept-invite .invite-card .mode-toggle {
  display: flex;
  column-gap: 0.5rem;
  font-size: 0.85rem;
}
section.accept-invite .invite-card .mode-toggle button {
  padding: 0.4rem 0.7rem;
  border: solid #01589B 1px;
  border-radius: 4px;
  cursor: pointer;
  color: #01589B;
  font-weight: 700;
  background-color: #FFFFFF;
}
section.accept-invite .invite-card .mode-toggle button.active {
  color: #FFFFFF;
  background-color: #01589B;
}
section.accept-invite .invite-card label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  font-size: 0.9rem;
  font-weight: 500;
}
section.accept-invite .invite-card input {
  padding: 0.5rem 0.75rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  font-size: 1rem;
}
section.accept-invite .invite-card input:focus {
  border: solid #01589B 1px;
  outline: none;
}
section.accept-invite .invite-card button[type="submit"] {
  padding: 0.85rem 1rem;
  border: solid 0px;
  border-radius: 6px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 1rem;
  font-weight: 700;
  background-color: #01589B;
}
section.accept-invite .invite-card button[type="submit"]:disabled {
  cursor: auto;
  background-color: #9AA5B1;
}
section.accept-invite .invite-card .error {
  padding: 0.75rem;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.85rem;
  background-color: #FFCDD2;
}
section.accept-invite .invite-card .success {
  padding: 0.75rem;
  border-radius: 6px;
  color: #1B5E20;
  font-size: 0.85rem;
  background-color: #E8F5E9;
}
section.accept-invite .invite-card .help {
  color: #5C6B7A;
  font-size: 0.8rem;
  line-height: 1.5;
}
section.activation {
  display: flex;
  padding: 2rem;
  justify-content: center;
}
section.activation .card {
  display: flex;
  width: 100%;
  max-width: 720px;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 1rem;
  background-color: #FFFFFF;
}
section.activation .card .subtitle {
  color: #5C6B7A;
}
section.activation .card .banner {
  padding: 0.6rem 0.85rem;
  border-radius: 6px;
  font-size: 0.9rem;
}
section.activation .card .field-label {
  color: #5C6B7A;
  font-size: 0.85rem;
  font-weight: 500;
}
section.activation .card .jwt-input {
  width: 100%;
  padding: 0.75rem;
  border: solid #D5DAE0 1px;
  border-radius: 6px;
  color: #1B2733;
  font-family: 'Menlo, Monaco, monospace';
  font-size: 0.85rem;
  background-color: #F8F9FA;
  resize: vertical;
}
section.activation .card .actions {
  display: flex;
  justify-content: end;
}
section.activation .card button.primary {
  padding: 0.65rem 1.4rem;
  border: solid 0px;
  border-radius: 6px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.95rem;
  font-weight: 700;
  background-color: #01589B;
}
section.activation .card button.primary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
section.activation .card .hint {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.admin-users {
  display: flex;
  max-width: 1100px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.admin-users .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.admin-users article.section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.admin-users article.section h3 {
  color: #1B2733;
}
section.admin-users article.section .section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.admin-users table.users {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
section.admin-users table.users th {
  padding: 0.5rem 0.75rem;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.admin-users table.users td {
  padding: 0.6rem 0.75rem;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
}
section.admin-users table.users .role-pill {
  padding: 0.1rem 0.5rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #01589B14;
  white-space: nowrap;
}
section.admin-users table.users .role-pill.chief {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.admin-users table.users .role-pill.support {
  color: #E65100;
  background-color: #FFF3E0;
}
section.admin-users table.users .email {
  color: #5C6B7A;
  font-size: 0.8rem;
}
section.admin-users table.users .status-pill {
  padding: 0.1rem 0.5rem;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 700;
}
section.admin-users table.users .status-pill.pending {
  color: #E65100;
  background-color: #FFF3E0;
}
section.admin-users table.users .status-pill.expired {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.admin-users table.users .status-pill.consumed {
  color: #5C6B7A;
  background-color: #ECEFF1;
}
section.admin-users table.users .copy-link {
  padding: 0.2rem 0.5rem;
  border: solid #01589B 1px;
  border-radius: 4px;
  cursor: pointer;
  color: #01589B;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #FFFFFF;
}
section.admin-users form.invite {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.5rem;
}
section.admin-users form.invite label {
  display: flex;
  flex-direction: column;
  row-gap: 0.25rem;
  font-size: 0.85rem;
  font-weight: 500;
}
section.admin-users form.invite input, select {
  padding: 0.4rem 0.6rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  font-size: 0.9rem;
}
section.admin-users form.invite input:focus, select:focus {
  border: solid #01589B 1px;
  outline: none;
}
section.admin-users form.invite button[type="submit"] {
  padding: 0.45rem 0.85rem;
  border: solid 0px;
  border-radius: 4px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  background-color: #01589B;
}
section.admin-users form.invite button[type="submit"]:disabled {
  cursor: auto;
  background-color: #9AA5B1;
}
section.admin-users .invite-result {
  padding: 0.75rem;
  border-radius: 6px;
  color: #01589B;
  font-size: 0.85rem;
  background-color: #01589B0E;
  word-break: break-all;
}
section.admin-users .invite-error {
  padding: 0.75rem;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.85rem;
  background-color: #FFCDD2;
}
section.admin-users .empty-state {
  padding: 1.5rem;
  color: #5C6B7A;
  text-align: center;
}
section.audit-log {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.25rem;
}
section.audit-log .page-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
section.audit-log .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.audit-log .toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.audit-log .toolbar select {
  padding: 0.25rem 0.5rem;
  margin-left: 0.4rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  color: #1B2733;
  font-size: 0.9rem;
  background-color: #FFFFFF;
}
section.audit-log .toolbar input[type="checkbox"] {
  margin-right: 0.4rem;
}
section.audit-log table.audit {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  background-color: #FFFFFF;
  border-collapse: separate;
  border-spacing: 0;
}
section.audit-log table.audit th {
  padding: 0.75rem 1rem;
  border: solid 0px;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  background-color: #FAFBFC;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.audit-log table.audit td {
  padding: 0.7rem 1rem;
  color: #1B2733;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
  vertical-align: top;
}
section.audit-log table.audit tr.failure td {
  background-color: #FFEBEE;
}
section.audit-log table.audit tr.support td {
  background-color: #FFF3E0;
}
section.audit-log table.audit .timestamp {
  color: #5C6B7A;
  font-size: 0.8rem;
  font-family: monospace;
  white-space: nowrap;
}
section.audit-log table.audit .actor {
  display: flex;
  flex-direction: column;
  row-gap: 0.1rem;
}
section.audit-log table.audit .actor .name {
  font-weight: 500;
}
section.audit-log table.audit .actor .role {
  color: #5C6B7A;
  font-size: 0.75rem;
}
section.audit-log table.audit .action-pill {
  padding: 0.1rem 0.5rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #01589B14;
  white-space: nowrap;
}
section.audit-log table.audit .action-pill.failure {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.audit-log table.audit .summary {
  color: #1B2733;
}
section.audit-log table.audit .summary .target {
  display: block;
  color: #5C6B7A;
  font-size: 0.75rem;
  font-family: monospace;
}
section.audit-log table.audit .summary details {
  margin-top: 0.3rem;
}
section.audit-log table.audit .summary details summary {
  cursor: pointer;
  color: #01589B;
  font-size: 0.75rem;
}
section.audit-log table.audit .summary details pre {
  padding: 0.55rem;
  margin-top: 0.3rem;
  border-radius: 4px;
  color: #1B2733;
  font-size: 0.75rem;
  background-color: #F4F5F7;
  white-space: pre-wrap;
  word-break: break-word;
}
section.audit-log .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.audit-log .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.billing {
  display: flex;
  max-width: 960px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.billing .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
  line-height: 1.5;
}
section.billing article.status-card {
  display: flex;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.5rem;
}
section.billing article.status-card .status-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  column-gap: 1rem;
}
section.billing article.status-card .status-label {
  font-size: 0.85rem;
  font-weight: 500;
  opacity: 0.85;
}
section.billing article.status-card .status-value {
  font-size: 1.1rem;
  font-weight: 700;
}
section.billing article.status-card .status-body {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  line-height: 1.5;
}
section.billing article.section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.75rem;
  background-color: #FFFFFF;
}
section.billing article.section h3 {
  color: #01589B;
}
section.billing article.section .section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
  line-height: 1.5;
}
section.billing article.section .section-help a {
  color: #01589B;
  font-weight: 700;
}
section.billing dl.license-grid {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
}
section.billing dl.license-grid dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.billing dl.license-grid dd {
  margin: 0;
  color: #1B2733;
}
section.billing dl.license-grid dd code {
  padding: 0.05rem 0.4rem;
  border-radius: 3px;
  font-size: 0.85rem;
  background-color: #F4F5F7;
  word-break: break-all;
}
section.billing .feature-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
section.billing .feature-pill {
  padding: 0.1rem 0.5rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #01589B14;
}
section.billing .portal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.billing .portal-error {
  padding: 0.75rem;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.85rem;
  background-color: #FFCDD2;
}
section.billing .portal-btn {
  padding: 0.6rem 1rem;
  border: solid 0px;
  border-radius: 6px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  background-color: #01589B;
}
section.billing .portal-btn:disabled {
  cursor: auto;
  background-color: #9AA5B1;
}
section.billing .portal-btn.upgrade {
  background-color: #1B5E20;
}
section.billing .portal-btn.upgrade:disabled {
  background-color: #A5D6A7;
}
section.billing .safety-callout {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
  line-height: 1.6;
}
section.dashboard {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.dashboard .page-head .subtitle {
  max-width: 720px;
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.dashboard .card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 1.25rem;
}
section.dashboard article.placeholder-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.5rem;
  background-color: #FFFFFF;
}
section.dashboard article.placeholder-card h3 {
  color: #1B2733;
}
section.dashboard article.placeholder-card p {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.device-detail {
  display: flex;
  max-width: 960px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.device-detail .breadcrumb {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.device-detail .breadcrumb a {
  color: #01589B;
  text-decoration: none;
}
section.device-detail .breadcrumb a:hover {
  text-decoration: underline;
}
section.device-detail .device-head {
  display: flex;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  align-items: center;
  column-gap: 1.25rem;
  background-color: #FFFFFF;
}
section.device-detail .device-head .kind-badge {
  display: flex;
  width: 64px;
  height: 64px;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 700;
  background-color: #01589B;
}
section.device-detail .device-head .identity {
  display: flex;
  flex-direction: column;
  row-gap: 0.2rem;
}
section.device-detail .device-head .identity .name {
  font-size: 1.4rem;
  font-weight: 700;
}
section.device-detail .device-head .identity .meta {
  color: #5C6B7A;
  font-size: 0.9rem;
  font-family: monospace;
}
section.device-detail .device-head .spacer {
  flex-grow: 1;
}
section.device-detail .device-head .lifecycle-pill {
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
}
section.device-detail .device-head .lifecycle-pill.active {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.device-detail .device-head .lifecycle-pill.idle {
  color: #E65100;
  background-color: #FFF3E0;
}
section.device-detail .device-head .lifecycle-pill.revoked {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.device-detail article.tab-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.device-detail article.tab-card h3 {
  color: #1B2733;
}
section.device-detail article.tab-card .placeholder-note {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.device-detail dl.profile {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
}
section.device-detail dl.profile dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.device-detail dl.profile dd {
  margin: 0;
  color: #1B2733;
}
section.device-detail dl.profile dd code {
  padding: 0.05rem 0.4rem;
  border-radius: 3px;
  font-size: 0.85rem;
  background-color: #F4F5F7;
}
section.device-detail dl.profile dd a {
  color: #01589B;
  text-decoration: none;
}
section.device-detail dl.profile dd a:hover {
  text-decoration: underline;
}
section.device-detail .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.device-detail .admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.device-detail .admin-actions button.admin-btn {
  padding: 0.55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  transition: opacity 0.15s ease;
}
section.device-detail .admin-actions button.admin-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
section.device-detail .admin-actions button.admin-btn.primary {
  color: #FFFFFF;
  background-color: #01589B;
}
section.device-detail .admin-actions button.admin-btn.danger {
  color: #FFFFFF;
  background-color: #C62828;
}
section.device-detail form.edit-form {
  display: flex;
  flex-direction: column;
  row-gap: 0.85rem;
}
section.device-detail form.edit-form label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.device-detail form.edit-form input, select {
  padding: 0.5rem 0.7rem;
  border-radius: 6px;
  color: #1B2733;
  font-size: 0.95rem;
  border: 1px solid #CFD8DC;
  background: #FFFFFF;
}
section.device-detail form.edit-form .form-actions {
  display: flex;
  justify-content: end;
}
section.device-detail .inline-error {
  padding: 0.55rem 0.85rem;
  margin: 0;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.9rem;
  background-color: #FFEBEE;
}
section.device-list {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.25rem;
}
section.device-list .page-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
section.device-list .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.device-list .toolbar {
  display: flex;
  align-items: center;
  column-gap: 1rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.device-list .toolbar input[type="checkbox"] {
  margin-right: 0.4rem;
}
section.device-list table.fleet {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  background-color: #FFFFFF;
  border-collapse: separate;
  border-spacing: 0;
}
section.device-list table.fleet th {
  padding: 0.75rem 1rem;
  border: solid 0px;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  background-color: #FAFBFC;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.device-list table.fleet th.sortable {
  cursor: pointer;
}
section.device-list table.fleet th .sort-arrow {
  margin-left: 0.3rem;
  color: #01589B;
  font-size: 0.7rem;
}
section.device-list table.fleet td {
  padding: 0.7rem 1rem;
  color: #1B2733;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
}
section.device-list table.fleet tr.row-link {
  cursor: pointer;
}
section.device-list table.fleet tr.row-link:hover td {
  background-color: #F4F8FC;
}
section.device-list table.fleet tr.row-link.revoked td {
  color: #5C6B7A;
  text-decoration: line-through;
}
section.device-list table.fleet .device-name {
  color: #1B2733;
  font-weight: 500;
}
section.device-list table.fleet .device-id {
  display: block;
  color: #5C6B7A;
  font-size: 0.75rem;
  font-family: monospace;
}
section.device-list table.fleet .app-version {
  font-variant-numeric: tabular-nums;
}
section.device-list table.fleet .last-seen {
  color: #5C6B7A;
  font-variant-numeric: tabular-nums;
}
section.device-list table.fleet .lifecycle-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}
section.device-list table.fleet .lifecycle-pill.active {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.device-list table.fleet .lifecycle-pill.idle {
  color: #E65100;
  background-color: #FFF3E0;
}
section.device-list table.fleet .lifecycle-pill.revoked {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.device-list table.fleet .on-incident {
  padding: 0.1rem 0.45rem;
  margin-left: 0.4rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #01589B14;
}
section.device-list .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.exposure-detail {
  display: flex;
  max-width: 960px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.exposure-detail .breadcrumb {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.exposure-detail .breadcrumb a {
  color: #01589B;
  text-decoration: none;
}
section.exposure-detail .breadcrumb a:hover {
  text-decoration: underline;
}
section.exposure-detail .profile-head {
  display: flex;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  align-items: center;
  column-gap: 1.25rem;
  background-color: #FFFFFF;
}
section.exposure-detail .profile-head .avatar {
  display: flex;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #E65100;
}
section.exposure-detail .profile-head .identity {
  display: flex;
  flex-direction: column;
  row-gap: 0.2rem;
}
section.exposure-detail .profile-head .identity .name {
  color: #1B2733;
  font-size: 1.4rem;
  font-weight: 700;
}
section.exposure-detail .profile-head .identity .meta {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.exposure-detail .profile-head .spacer {
  flex-grow: 1;
}
section.exposure-detail article.tab-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.exposure-detail article.tab-card h3 {
  margin: 0;
  color: #1B2733;
}
section.exposure-detail article.tab-card .placeholder-note {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.exposure-detail .summary-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.exposure-detail .summary-tile {
  display: flex;
  min-width: 160px;
  padding: 1rem;
  border-radius: 8px;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #FFF8E1;
}
section.exposure-detail .summary-tile .label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.exposure-detail .summary-tile .value {
  color: #E65100;
  font-size: 1.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.exposure-detail .summary-tile .value.danger {
  color: #B71C1C;
}
section.exposure-detail dl.attribute-grid {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
}
section.exposure-detail dl.attribute-grid dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.exposure-detail dl.attribute-grid dd {
  margin: 0;
  color: #1B2733;
}
section.exposure-detail .type-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
section.exposure-detail .type-pill {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  color: #5D4037;
  font-size: 0.85rem;
  font-weight: 600;
  background-color: #FFE0B2;
}
section.exposure-detail .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.exposure-detail .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.exposures {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.exposures .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.exposures .toolbar {
  display: flex;
  align-items: center;
  column-gap: 1rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.exposures .toolbar input[type="checkbox"] {
  margin-right: 0.4rem;
}
section.exposures .summary-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.exposures .summary-tile {
  display: flex;
  min-width: 160px;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #FFFFFF;
}
section.exposures .summary-tile .label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.exposures .summary-tile .value {
  color: #E65100;
  font-size: 1.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.exposures .summary-tile .value.danger {
  color: #B71C1C;
}
section.exposures .summary-tile .value.ok {
  color: #1B5E20;
}
section.exposures article.section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.exposures article.section h3 {
  color: #1B2733;
}
section.exposures article.section .section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.exposures table.summary {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
section.exposures table.summary th {
  padding: 0.5rem 0.75rem;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.exposures table.summary th.numeric {
  text-align: right;
}
section.exposures table.summary td {
  padding: 0.6rem 0.75rem;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
}
section.exposures table.summary td.numeric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
section.exposures table.summary td.numeric.warn {
  color: #BF360C;
}
section.exposures table.summary td.numeric.danger {
  color: #B71C1C;
}
section.exposures table.summary .member-link {
  color: #01589B;
  text-decoration: none;
}
section.exposures table.summary .member-link:hover {
  text-decoration: underline;
}
section.exposures table.summary .member-name {
  font-weight: 500;
}
section.exposures table.summary .member-rank {
  display: block;
  color: #5C6B7A;
  font-size: 0.75rem;
}
section.exposures table.summary .dominant-tag {
  padding: 0.05rem 0.45rem;
  border-radius: 4px;
  color: #BF360C;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #FFF3E0;
}
section.exposures .type-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.exposures .type-pill {
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  color: #BF360C;
  font-size: 0.85rem;
  font-weight: 700;
  background-color: #FFF3E0;
}
section.exposures .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.exposures .empty-state {
  padding: 1.5rem;
  color: #5C6B7A;
  text-align: center;
}
section.incident-detail {
  display: flex;
  max-width: 1100px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.incident-detail .breadcrumb {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.incident-detail .breadcrumb a {
  color: #01589B;
  text-decoration: none;
}
section.incident-detail .breadcrumb a:hover {
  text-decoration: underline;
}
section.incident-detail .incident-head {
  display: flex;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  align-items: center;
  column-gap: 1.25rem;
  background-color: #FFFFFF;
}
section.incident-detail .incident-head .number-badge {
  padding: 0.4rem 0.85rem;
  border-radius: 6px;
  color: #FFFFFF;
  font-size: 1.1rem;
  font-weight: 700;
  background-color: #01589B;
  font-variant-numeric: tabular-nums;
}
section.incident-detail .incident-head .identity {
  display: flex;
  flex-direction: column;
  row-gap: 0.2rem;
}
section.incident-detail .incident-head .identity .type {
  font-size: 1.4rem;
  font-weight: 700;
}
section.incident-detail .incident-head .identity .meta {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.incident-detail .incident-head .spacer {
  flex-grow: 1;
}
section.incident-detail .incident-head .outcome-pill {
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  white-space: nowrap;
}
section.incident-detail .incident-head .outcome-pill.routine {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.incident-detail .incident-head .outcome-pill.mayday {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.incident-detail .incident-head .outcome-pill.evacuation {
  color: #BF360C;
  background-color: #FFE0B2;
}
section.incident-detail .incident-head .outcome-pill.injuryOrLodi {
  color: #E65100;
  background-color: #FFF3E0;
}
section.incident-detail .incident-head .outcome-pill.pendingReview {
  color: #0D47A1;
  background-color: #E3F2FD;
}
section.incident-detail .incident-head .training-banner {
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  color: #BF360C;
  font-size: 0.85rem;
  font-weight: 700;
  background-color: #F4A26133;
}
section.incident-detail article.tab-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.incident-detail article.tab-card h3 {
  color: #1B2733;
}
section.incident-detail article.tab-card .placeholder-note {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.incident-detail article.tab-card ul.event-timeline {
  display: flex;
  padding: 0;
  margin: 0;
  flex-direction: column;
  row-gap: 0.4rem;
  list-style-type: none;
}
section.incident-detail article.tab-card ul.event-timeline li {
  display: flex;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  border-bottom-style: solid;
  border-bottom-color: #E5E7EB;
  border-bottom-width: 1px;
  align-items: center;
  column-gap: 1rem;
}
section.incident-detail article.tab-card ul.event-timeline .event-kind {
  color: #1B2733;
  font-size: 0.9rem;
  font-weight: 600;
  min-width: 180px;
}
section.incident-detail article.tab-card ul.event-timeline .event-meta {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.incident-detail dl.profile {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 200px 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
}
section.incident-detail dl.profile dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.incident-detail dl.profile dd {
  margin: 0;
  color: #1B2733;
}
section.incident-detail dl.profile dd code {
  padding: 0.05rem 0.4rem;
  border-radius: 3px;
  font-size: 0.85rem;
  background-color: #F4F5F7;
}
section.incident-detail .dept-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.4rem;
}
section.incident-detail .dept-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #01589B14;
}
section.incident-detail .dept-pill.guest {
  color: #BF360C;
  background-color: #FBE9E7;
}
section.incident-detail .summary-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.incident-detail .stat-tile {
  display: flex;
  min-width: 130px;
  padding: 1rem;
  border-radius: 6px;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #F4F5F7;
}
section.incident-detail .stat-tile .stat-label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.incident-detail .stat-tile .stat-value {
  color: #1B2733;
  font-size: 1.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.incident-detail .stat-tile .stat-value.warn {
  color: #BF360C;
}
section.incident-detail .stat-tile .stat-value.danger {
  color: #B71C1C;
}
section.incident-detail .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.incident-detail .admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.incident-detail .admin-actions button.admin-btn {
  padding: 0.55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  transition: opacity 0.15s ease;
}
section.incident-detail .admin-actions button.admin-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
section.incident-detail .admin-actions button.admin-btn.primary {
  color: #FFFFFF;
  background-color: #01589B;
}
section.incident-detail .inline-error {
  padding: 0.55rem 0.85rem;
  margin: 0;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.9rem;
  background-color: #FFEBEE;
}
section.incident-list {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.25rem;
}
section.incident-list .page-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
section.incident-list .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.incident-list .toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.incident-list .toolbar select {
  padding: 0.25rem 0.5rem;
  margin-left: 0.4rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  color: #1B2733;
  font-size: 0.9rem;
  background-color: #FFFFFF;
}
section.incident-list table.incidents {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  background-color: #FFFFFF;
  border-collapse: separate;
  border-spacing: 0;
}
section.incident-list table.incidents th {
  padding: 0.75rem 1rem;
  border: solid 0px;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  background-color: #FAFBFC;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.incident-list table.incidents th.sortable {
  cursor: pointer;
}
section.incident-list table.incidents th .sort-arrow {
  margin-left: 0.3rem;
  color: #01589B;
  font-size: 0.7rem;
}
section.incident-list table.incidents td {
  padding: 0.7rem 1rem;
  color: #1B2733;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
  vertical-align: top;
}
section.incident-list table.incidents tr.row-link {
  cursor: pointer;
}
section.incident-list table.incidents tr.row-link:hover td {
  background-color: #F4F8FC;
}
section.incident-list table.incidents tr.row-link.training td {
  background-color: #FFF8E6;
}
section.incident-list table.incidents tr.row-link.training:hover td {
  background-color: #FFEFC4;
}
section.incident-list table.incidents .number {
  color: #01589B;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.incident-list table.incidents .address {
  display: block;
  color: #5C6B7A;
  font-size: 0.8rem;
}
section.incident-list table.incidents .dept-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.3rem;
}
section.incident-list table.incidents .dept-pill {
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #01589B14;
}
section.incident-list table.incidents .dept-pill.guest {
  color: #BF360C;
  background-color: #FBE9E7;
}
section.incident-list table.incidents .outcome-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  white-space: nowrap;
}
section.incident-list table.incidents .outcome-pill.routine {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.incident-list table.incidents .outcome-pill.mayday {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.incident-list table.incidents .outcome-pill.evacuation {
  color: #BF360C;
  background-color: #FFE0B2;
}
section.incident-list table.incidents .outcome-pill.injuryOrLodi {
  color: #E65100;
  background-color: #FFF3E0;
}
section.incident-list table.incidents .outcome-pill.pendingReview {
  color: #0D47A1;
  background-color: #E3F2FD;
}
section.incident-list table.incidents .mode-badge {
  padding: 0.05rem 0.4rem;
  margin-right: 0.3rem;
  border-radius: 3px;
  color: #BF360C;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #F4A26133;
}
section.incident-list table.incidents .counts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.5rem;
  color: #5C6B7A;
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
}
section.incident-list table.incidents .count-mayday {
  color: #B71C1C;
}
section.incident-list table.incidents .count-evac {
  color: #BF360C;
}
section.incident-list table.incidents .count-exposure {
  color: #E65100;
}
section.incident-list table.incidents .count-medical {
  color: #0D47A1;
}
section.incident-list table.incidents .corrections-flag {
  padding: 0.05rem 0.4rem;
  margin-left: 0.3rem;
  border-radius: 3px;
  color: #5C6B7A;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #F4F5F7;
}
section.incident-list .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.mutual-aid {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.mutual-aid .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.mutual-aid .summary-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.mutual-aid .summary-tile {
  display: flex;
  min-width: 160px;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #FFFFFF;
}
section.mutual-aid .summary-tile .label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.mutual-aid .summary-tile .value {
  color: #01589B;
  font-size: 1.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.mutual-aid article.partner-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.75rem;
  background-color: #FFFFFF;
}
section.mutual-aid article.partner-card .card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.6rem;
}
section.mutual-aid article.partner-card .partner-name {
  color: #1B2733;
  font-size: 1.1rem;
  font-weight: 700;
}
section.mutual-aid article.partner-card .partner-id {
  color: #5C6B7A;
  font-size: 0.8rem;
  font-family: monospace;
}
section.mutual-aid article.partner-card .spacer {
  flex-grow: 1;
}
section.mutual-aid article.partner-card .direction-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  color: #1B5E20;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #E8F5E9;
}
section.mutual-aid article.partner-card .direction-pill.outbound {
  color: #E65100;
  background-color: #FFF3E0;
}
section.mutual-aid article.partner-card .direction-pill.inbound {
  color: #0D47A1;
  background-color: #E3F2FD;
}
section.mutual-aid article.partner-card .status-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  background-color: #ECEFF1;
}
section.mutual-aid article.partner-card .status-pill.expiring {
  color: #BF360C;
  background-color: #FFE0B2;
}
section.mutual-aid article.partner-card .status-pill.expired {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.mutual-aid article.partner-card .scope-notes {
  color: #1B2733;
  font-size: 0.95rem;
  line-height: 1.5;
}
section.mutual-aid article.partner-card dl.partner-meta {
  margin: 0;
  font-size: 0.85rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  row-gap: 0.4rem;
  column-gap: 1rem;
}
section.mutual-aid article.partner-card dl.partner-meta dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.mutual-aid article.partner-card dl.partner-meta dd {
  margin: 0;
  color: #1B2733;
}
section.mutual-aid article.partner-card dl.partner-meta dd code {
  padding: 0.05rem 0.4rem;
  border-radius: 3px;
  font-size: 0.8rem;
  background-color: #F4F5F7;
}
section.mutual-aid .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.mutual-aid .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.mutual-aid .page-actions {
  display: flex;
  gap: 0.5rem;
}
section.mutual-aid .admin-actions {
  display: flex;
  margin-top: 0.4rem;
  gap: 0.5rem;
}
section.mutual-aid button.admin-btn {
  padding: 0.55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  transition: opacity 0.15s ease;
}
section.mutual-aid button.admin-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
section.mutual-aid button.admin-btn.primary {
  color: #FFFFFF;
  background-color: #01589B;
}
section.mutual-aid button.admin-btn.ghost {
  color: #1B2733;
  background-color: transparent;
  border: 1px solid #CFD8DC;
}
section.mutual-aid button.admin-btn.danger {
  color: #FFFFFF;
  background-color: #C62828;
}
section.mutual-aid form.register-form {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.mutual-aid form.register-form h3 {
  margin: 0;
  color: #1B2733;
}
section.mutual-aid form.register-form .form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1rem;
}
section.mutual-aid form.register-form .form-row > label {
  flex-grow: 1;
}
section.mutual-aid form.register-form label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.mutual-aid form.register-form input, select, textarea {
  padding: 0.5rem 0.7rem;
  border-radius: 6px;
  color: #1B2733;
  font-size: 0.95rem;
  border: 1px solid #CFD8DC;
  background: #FFFFFF;
}
section.mutual-aid form.register-form textarea {
  min-height: 4rem;
}
section.mutual-aid form.register-form .form-actions {
  display: flex;
  justify-content: end;
  gap: 0.5rem;
}
section.mutual-aid .inline-error {
  padding: 0.55rem 0.85rem;
  margin: 0;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.9rem;
  background-color: #FFEBEE;
}
section.personnel-detail {
  display: flex;
  max-width: 960px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.personnel-detail .breadcrumb {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.personnel-detail .breadcrumb a {
  color: #01589B;
  text-decoration: none;
}
section.personnel-detail .breadcrumb a:hover {
  text-decoration: underline;
}
section.personnel-detail .profile-head {
  display: flex;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  align-items: center;
  column-gap: 1.25rem;
  background-color: #FFFFFF;
}
section.personnel-detail .profile-head .avatar {
  display: flex;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 700;
  background-color: #01589B;
}
section.personnel-detail .profile-head .identity {
  display: flex;
  flex-direction: column;
  row-gap: 0.2rem;
}
section.personnel-detail .profile-head .identity .name {
  font-size: 1.4rem;
  font-weight: 700;
}
section.personnel-detail .profile-head .identity .meta {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.personnel-detail .profile-head .spacer {
  flex-grow: 1;
}
section.personnel-detail .profile-head .status-pill {
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
}
section.personnel-detail .profile-head .status-pill.active {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.personnel-detail .profile-head .status-pill.inactive {
  color: #5C6B7A;
  background-color: #ECEFF1;
}
section.personnel-detail article.tab-card {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.personnel-detail article.tab-card h3 {
  color: #1B2733;
}
section.personnel-detail article.tab-card .placeholder-note {
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.personnel-detail dl.profile {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 180px 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
}
section.personnel-detail dl.profile dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.personnel-detail dl.profile dd {
  margin: 0;
  color: #1B2733;
}
section.personnel-detail .cert-list {
  display: flex;
  padding: 0;
  flex-wrap: wrap;
  gap: 0.4rem;
}
section.personnel-detail .cert-list li {
  padding: 0.25rem 0.65rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.85rem;
  background-color: #01589B0E;
  list-style: none;
}
section.personnel-detail .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.personnel-detail .admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.personnel-detail .admin-actions button.admin-btn {
  padding: 0.55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  transition: opacity 0.15s ease;
}
section.personnel-detail .admin-actions button.admin-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
section.personnel-detail .admin-actions button.admin-btn.primary {
  color: #FFFFFF;
  background-color: #01589B;
}
section.personnel-detail .admin-actions button.admin-btn.ghost {
  color: #1B2733;
  background-color: transparent;
  border: 1px solid #CFD8DC;
}
section.personnel-detail .admin-actions button.admin-btn.danger {
  color: #FFFFFF;
  background-color: #C62828;
}
section.personnel-detail form.edit-form {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.personnel-detail form.edit-form h3 {
  margin: 0;
  color: #1B2733;
}
section.personnel-detail form.edit-form .form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1rem;
}
section.personnel-detail form.edit-form .form-row > label {
  flex-grow: 1;
}
section.personnel-detail form.edit-form label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.personnel-detail form.edit-form input {
  padding: 0.5rem 0.7rem;
  border-radius: 6px;
  color: #1B2733;
  font-size: 0.95rem;
  border: 1px solid #CFD8DC;
  background: #FFFFFF;
}
section.personnel-detail form.edit-form .form-actions {
  display: flex;
  justify-content: end;
}
section.personnel-detail .inline-error {
  padding: 0.55rem 0.85rem;
  margin: 0;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.9rem;
  background-color: #FFEBEE;
}
section.personnel-list {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.25rem;
}
section.personnel-list .page-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
}
section.personnel-list .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.personnel-list .toolbar {
  display: flex;
  align-items: center;
  column-gap: 1rem;
  color: #5C6B7A;
  font-size: 0.9rem;
}
section.personnel-list .toolbar input[type="checkbox"] {
  margin-right: 0.4rem;
}
section.personnel-list .toolbar .add-btn {
  padding: 0.4rem 0.85rem;
  border: solid 0px;
  border-radius: 4px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 700;
  background-color: #01589B;
}
section.personnel-list .toolbar .add-btn:hover {
  background-color: #0E6BB7;
}
section.personnel-list form.add-member-form {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.75rem;
  background-color: #FFFFFF;
}
section.personnel-list form.add-member-form .form-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
}
section.personnel-list form.add-member-form label {
  display: flex;
  flex-direction: column;
  row-gap: 0.25rem;
  flex-grow: 1;
  font-size: 0.85rem;
  font-weight: 500;
  min-width: 180px;
}
section.personnel-list form.add-member-form input {
  padding: 0.4rem 0.6rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  font-size: 0.9rem;
}
section.personnel-list form.add-member-form input:focus {
  border: solid #01589B 1px;
  outline: none;
}
section.personnel-list form.add-member-form button[type="submit"] {
  padding: 0.5rem 1rem;
  border: solid 0px;
  border-radius: 4px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  background-color: #01589B;
  align-self: flex-start;
}
section.personnel-list form.add-member-form button[type="submit"]:disabled {
  cursor: auto;
  background-color: #9AA5B1;
}
section.personnel-list form.add-member-form .add-error {
  padding: 0.5rem;
  border-radius: 4px;
  color: #B71C1C;
  font-size: 0.85rem;
  background-color: #FFCDD2;
}
section.personnel-list table.roster {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  background-color: #FFFFFF;
  border-collapse: separate;
  border-spacing: 0;
}
section.personnel-list table.roster th {
  padding: 0.75rem 1rem;
  border: solid 0px;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  background-color: #FAFBFC;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.personnel-list table.roster th.sortable {
  cursor: pointer;
}
section.personnel-list table.roster th .sort-arrow {
  margin-left: 0.3rem;
  color: #01589B;
  font-size: 0.7rem;
}
section.personnel-list table.roster td {
  padding: 0.7rem 1rem;
  color: #1B2733;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
}
section.personnel-list table.roster tr.row-link {
  cursor: pointer;
}
section.personnel-list table.roster tr.row-link:hover td {
  background-color: #F4F8FC;
}
section.personnel-list table.roster tr.row-link.inactive td {
  color: #5C6B7A;
  font-style: italic;
}
section.personnel-list table.roster .status-pill {
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}
section.personnel-list table.roster .status-pill.active {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.personnel-list table.roster .status-pill.inactive {
  color: #5C6B7A;
  background-color: #ECEFF1;
}
section.personnel-list table.roster .cert-count {
  color: #5C6B7A;
  font-variant-numeric: tabular-nums;
}
section.personnel-list .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.reports {
  display: flex;
  max-width: 1200px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.reports .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
  line-height: 1.5;
}
section.reports article.report-section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.reports article.report-section h3 {
  color: #01589B;
  font-size: 1.1rem;
}
section.reports article.report-section .section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
  line-height: 1.5;
}
section.reports article.report-section .report-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}
section.reports article.report-section .report-card {
  display: flex;
  width: 320px;
  padding: 1rem;
  border-radius: 6px;
  flex-direction: column;
  row-gap: 0.5rem;
  flex-grow: 1;
  background-color: #F4F5F7;
  min-width: 280px;
  max-width: 380px;
}
section.reports article.report-section .report-card .report-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  column-gap: 0.5rem;
}
section.reports article.report-section .report-card .report-title {
  color: #1B2733;
  font-weight: 700;
}
section.reports article.report-section .report-card .phase-badge {
  padding: 0.05rem 0.4rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.7rem;
  font-weight: 700;
  background-color: #01589B14;
  white-space: nowrap;
}
section.reports article.report-section .report-card .report-desc {
  color: #1B2733;
  font-size: 0.85rem;
  line-height: 1.5;
}
section.reports article.report-section .report-card dl.report-meta {
  margin: 0;
  font-size: 0.8rem;
  display: grid;
  grid-template-columns: 90px 1fr;
  row-gap: 0.2rem;
  column-gap: 0.5rem;
}
section.reports article.report-section .report-card dl.report-meta dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.reports article.report-section .report-card dl.report-meta dd {
  margin: 0;
  color: #1B2733;
}
section.reports article.report-section .report-card .generate-btn {
  padding: 0.5rem 0.85rem;
  margin-top: 0.5rem;
  border: solid 0px;
  border-radius: 4px;
  cursor: auto;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 700;
  background-color: #9AA5B1;
}
section.reports article.report-section .report-card .generate-btn--wired {
  cursor: pointer;
  background-color: #01589B;
}
section.reports article.report-section .report-card .generate-btn--wired:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
section.reports article.report-section .report-card .phase-badge--live {
  color: #1B5E20;
  background-color: #E8F5E9;
}
section.reports article.report-section .report-card .inline-error {
  padding: 0.4rem 0.6rem;
  margin-top: 0.4rem;
  border-radius: 4px;
  color: #B71C1C;
  font-size: 0.75rem;
  background-color: #FFEBEE;
}
section.reports .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.safety {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.safety .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.safety .summary-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.safety .summary-tile {
  display: flex;
  min-width: 160px;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #FFFFFF;
}
section.safety .summary-tile .label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.safety .summary-tile .value {
  font-size: 1.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.safety .summary-tile .value.danger {
  color: #B71C1C;
}
section.safety .summary-tile .value.warn {
  color: #BF360C;
}
section.safety .summary-tile .value.ok {
  color: #1B5E20;
}
section.safety article.section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.safety article.section h3 {
  color: #1B2733;
}
section.safety article.section .section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.safety table.events {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
section.safety table.events th {
  padding: 0.5rem 0.75rem;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.safety table.events td {
  padding: 0.6rem 0.75rem;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
  vertical-align: top;
}
section.safety table.events tr.row-link {
  cursor: pointer;
}
section.safety table.events tr.row-link:hover td {
  background-color: #F4F8FC;
}
section.safety table.events .number {
  color: #01589B;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.safety table.events .tag {
  padding: 0.05rem 0.45rem;
  margin-right: 0.3rem;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
}
section.safety table.events .tag.mayday {
  color: #B71C1C;
  background-color: #FFCDD2;
}
section.safety table.events .tag.evac {
  color: #BF360C;
  background-color: #FFE0B2;
}
section.safety table.events .tag.hazard {
  color: #E65100;
  background-color: #FFF3E0;
}
section.safety ul.iso-roster {
  display: flex;
  padding: 0;
  flex-wrap: wrap;
  gap: 0.5rem;
}
section.safety ul.iso-roster li {
  padding: 0.4rem 0.75rem;
  border-radius: 6px;
  color: #01589B;
  font-size: 0.9rem;
  font-weight: 500;
  background-color: #01589B14;
  list-style: none;
}
section.safety ul.iso-roster li.lapsed {
  color: #5C6B7A;
  background-color: #ECEFF1;
  list-style: none;
  font-style: italic;
}
section.safety ul.iso-roster li .rank {
  margin-left: 0.4rem;
  color: #5C6B7A;
  font-size: 0.75rem;
}
section.safety .empty-state {
  padding: 1.5rem;
  color: #5C6B7A;
  text-align: center;
}
section.settings {
  display: flex;
  max-width: 960px;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.5rem;
}
section.settings .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.settings article.section {
  display: flex;
  padding: 1.25rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.85rem;
  background-color: #FFFFFF;
}
section.settings article.section h3 {
  color: #1B2733;
}
section.settings article.section p.section-help {
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.settings dl.settings-grid {
  margin: 0;
  font-size: 0.95rem;
  display: grid;
  grid-template-columns: 260px 1fr;
  row-gap: 0.55rem;
  column-gap: 1rem;
}
section.settings dl.settings-grid dt {
  margin: 0;
  color: #5C6B7A;
  font-weight: 500;
}
section.settings dl.settings-grid dd {
  margin: 0;
  color: #1B2733;
}
section.settings dl.settings-grid dd .enforced {
  padding: 0.1rem 0.5rem;
  margin-left: 0.4rem;
  border-radius: 4px;
  color: #0D47A1;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #E3F2FD;
}
section.settings dl.settings-grid dd code {
  padding: 0.05rem 0.4rem;
  border-radius: 3px;
  font-size: 0.85rem;
  background-color: #F4F5F7;
}
section.settings dl.settings-grid dd .chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
section.settings dl.settings-grid dd .chip-list .chip {
  padding: 0.1rem 0.5rem;
  border-radius: 4px;
  color: #01589B;
  font-size: 0.8rem;
  font-weight: 700;
  background-color: #01589B14;
}
section.settings .compliance-note {
  padding: 0.85rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}
section.settings .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.settings .section-head {
  display: flex;
  align-items: center;
  column-gap: 0.75rem;
}
section.settings .section-head h3 {
  margin: 0;
  color: #1B2733;
}
section.settings .section-head .spacer {
  flex-grow: 1;
}
section.settings .section-head button.admin-btn {
  padding: 0.4rem 0.85rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  border: 1px solid #CFD8DC;
  background: transparent;
  color: inherit;
}
section.settings form.edit-form {
  display: flex;
  flex-direction: column;
  row-gap: 0.85rem;
}
section.settings form.edit-form label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  color: #5C6B7A;
  font-size: 0.85rem;
}
section.settings form.edit-form input, select {
  padding: 0.5rem 0.7rem;
  border-radius: 6px;
  color: #1B2733;
  font-size: 0.95rem;
  border: 1px solid #CFD8DC;
  background: #FFFFFF;
}
section.settings form.edit-form .form-actions {
  display: flex;
  justify-content: end;
}
section.settings form.edit-form .form-actions button.admin-btn {
  padding: 0.55rem 1rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  transition: opacity 0.15s ease;
}
section.settings form.edit-form .form-actions button.admin-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
section.settings form.edit-form .form-actions button.admin-btn.primary {
  color: #FFFFFF;
  background-color: #01589B;
}
section.settings .inline-error {
  padding: 0.55rem 0.85rem;
  margin: 0;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.9rem;
  background-color: #FFEBEE;
}
section.signin {
  display: flex;
  height: 100%;
  padding: 3rem 1.5rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #F4F5F7;
}
section.signin .signin-card {
  display: flex;
  width: 100%;
  max-width: 420px;
  padding: 2rem;
  border-radius: 8px;
  box-shadow: 0px 2px 8px #0001;
  flex-direction: column;
  row-gap: 1rem;
  background-color: #FFFFFF;
}
section.signin .signin-card h1 {
  color: #01589B;
  font-size: 1.6rem;
}
section.signin .signin-card .subtitle {
  color: #5C6B7A;
  font-size: 0.9rem;
  line-height: 1.5;
}
section.signin .signin-card label {
  display: flex;
  flex-direction: column;
  row-gap: 0.3rem;
  font-size: 0.9rem;
  font-weight: 500;
}
section.signin .signin-card input {
  padding: 0.5rem 0.75rem;
  border: solid #CBD2D9 1px;
  border-radius: 4px;
  font-size: 1rem;
}
section.signin .signin-card input:focus {
  border: solid #01589B 1px;
  outline: none;
}
section.signin .signin-card button[type="submit"] {
  padding: 0.85rem 1rem;
  border: solid 0px;
  border-radius: 6px;
  cursor: pointer;
  color: #FFFFFF;
  font-size: 1rem;
  font-weight: 700;
  background-color: #01589B;
}
section.signin .signin-card button[type="submit"]:disabled {
  cursor: auto;
  background-color: #9AA5B1;
}
section.signin .signin-card button[type="submit"]:hover:not(:disabled) {
  background-color: #0E6BB7;
}
section.signin .signin-card .error {
  padding: 0.75rem;
  border-radius: 6px;
  color: #B71C1C;
  font-size: 0.85rem;
  background-color: #FFCDD2;
}
section.signin .signin-card .help {
  color: #5C6B7A;
  font-size: 0.8rem;
  line-height: 1.5;
}
section.signin .signin-card .help a {
  color: #01589B;
  font-weight: 700;
  text-decoration: none;
}
section.training {
  display: flex;
  padding: 2rem;
  flex-direction: column;
  row-gap: 1.25rem;
}
section.training .page-head .subtitle {
  margin-top: 0.4rem;
  color: #5C6B7A;
}
section.training .summary-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
section.training .summary-tile {
  display: flex;
  min-width: 160px;
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  flex-direction: column;
  row-gap: 0.2rem;
  flex-grow: 1;
  background-color: #FFFFFF;
}
section.training .summary-tile .label {
  color: #5C6B7A;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
section.training .summary-tile .value {
  color: #BF360C;
  font-size: 1.6rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.training table.drills {
  width: 100%;
  border-radius: 8px;
  box-shadow: 0px 1px 2px #0001;
  background-color: #FFFFFF;
  border-collapse: separate;
  border-spacing: 0;
}
section.training table.drills th {
  padding: 0.75rem 1rem;
  color: #5C6B7A;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  background-color: #FAFBFC;
  border-bottom: 1px solid #E1E5EA;
  letter-spacing: 0.04em;
}
section.training table.drills td {
  padding: 0.7rem 1rem;
  font-size: 0.9rem;
  border-bottom: 1px solid #F0F2F4;
}
section.training table.drills tr.row-link {
  cursor: pointer;
}
section.training table.drills tr.row-link:hover td {
  background-color: #FFEFC4;
}
section.training table.drills .number {
  color: #BF360C;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
section.training table.drills .scenario {
  display: block;
  color: #5C6B7A;
  font-size: 0.8rem;
}
section.training .empty-state {
  padding: 2rem;
  color: #5C6B7A;
  text-align: center;
}
section.training .facilitator-note {
  padding: 1rem;
  border-radius: 6px;
  color: #0D47A1;
  font-size: 0.85rem;
  background-color: #E3F2FD;
}