/* Application colour; loaded after midnight.css so it overrides the package default. */
:root { --app: #e4d35e; }

/* M4 accesses */
.col > .kpi { display: flex; flex-direction: column; gap: .25rem; height: 100%; padding: 1rem 1.25rem; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); }
.col > .kpi b { font-family: var(--bs-font-monospace); font-size: 1.875rem; font-weight: 600; line-height: 1.1; }
.col > .kpi span { font-size: .875rem; color: var(--bs-secondary-color); }

/* Admin form controls use the app colour instead of Bootstrap blue */
.form-check-input:checked {
  background-color: var(--app);
  border-color: var(--app);
}
.form-check-input:checked[type=checkbox] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23111' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
.form-check-input:checked[type=radio] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23111'/%3e%3c/svg%3e");
}
.form-check-input:focus {
  border-color: var(--app);
  box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--app) 25%, transparent);
}
.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23e4d35e'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:checked {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23111'/%3e%3c/svg%3e");
}

/* M4 log */
.ev.badge i { width: auto; height: auto; background: none; }

/* M4 blocks */
.col > .kpi.svc { border-color: color-mix(in srgb, var(--bs-success) 50%, var(--bs-border-color)); background: color-mix(in srgb, var(--bs-success) 9%, var(--bs-body-bg)); }
.col > .kpi.svc b { color: var(--bs-success); }
.col > .kpi.err { border-color: color-mix(in srgb, var(--bs-danger) 50%, var(--bs-border-color)); background: color-mix(in srgb, var(--bs-danger) 9%, var(--bs-body-bg)); }
.col > .kpi.err b { color: var(--bs-danger); }
.col > .kpi.info { border-color: color-mix(in srgb, var(--bs-info) 50%, var(--bs-border-color)); background: color-mix(in srgb, var(--bs-info) 9%, var(--bs-body-bg)); }
.col > .kpi.info b { color: var(--bs-info); }
.esc { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; font-family: var(--bs-font-monospace); font-size: .8125rem; }
.esc li { padding: .25rem .625rem; border-radius: var(--bs-border-radius); border: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.esc li b { color: var(--bs-body-color); font-weight: 600; }

/* M4 access form */
fieldset .invalid-feedback { display: block; }

/* M4 delete */
.mw-card { max-width: 36rem; }

/* M5 terminal (expired page), ported from the legacy stylesheet with midnight tokens */
.term { display: flex; flex-direction: column; height: 540px; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 14px; overflow: hidden; }
.term-static { height: auto; }
.tbar { display: flex; justify-content: space-between; gap: 12px; padding: 10px 20px; border-bottom: 1px solid var(--bs-border-color); font-size: 12.5px; color: var(--bs-tertiary-color); background: var(--bs-tertiary-bg); }
.tout { flex: 1; font-variant-ligatures: none; font-feature-settings: "liga" 0, "calt" 0; overflow-y: auto; padding: 18px 20px 6px; font-size: 14px; line-height: 1.65; }
.term-static .tout { padding-bottom: 18px; }
.tl { white-space: pre-wrap; word-break: break-word; min-height: 1.6em; color: var(--bs-body-color); }
.tl.e { color: var(--bs-link-color); }
.tl.g { color: var(--bs-success); }
.tl.y { color: var(--bs-warning); }
@media (max-width: 560px) { .term { height: 480px; } }
.mono { font-family: var(--bs-font-monospace); }
