/* COMPUS / Infrastructure Control. Source: website prototype + ADR-001.
   Scoped to stable MUI component classes, ntfy v2.34.0. */
:root {
  --compus-bg: #0A111A;
  --compus-panel: #142130;
  --compus-line: #24374A;
  --compus-accent: #46A8E8;
  --compus-text: #E2EAF2;
  --compus-muted: #A1B2C3;
  color-scheme: dark;
}
html, html.dark, body, #root, #main, #splash, html.dark #splash {
  background-color: var(--compus-bg) !important;
  color: var(--compus-text) !important;
}
body, .MuiTypography-root, .MuiButtonBase-root, .MuiInputBase-root,
.MuiFormLabel-root, .MuiMenuItem-root, .MuiTableCell-root {
  font-family: Arial, Helvetica, sans-serif !important;
}
a, a:visited, .MuiLink-root { color: var(--compus-accent); }
a:hover { color: #79c3f3; text-decoration: none; }
:focus-visible { outline: 2px solid var(--compus-accent); outline-offset: 3px; }
.MuiPaper-root {
  color: var(--compus-text) !important;
  background: var(--compus-panel) !important;
  background-image: none !important;
  border-color: var(--compus-line) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
.MuiCard-root, .MuiDialog-paper, .MuiPopover-paper, .MuiAccordion-root {
  border: 1px solid var(--compus-line);
}
.MuiAppBar-root {
  border: 0 !important;
  border-bottom: 1px solid var(--compus-line) !important;
  border-radius: 0 !important;
  background: var(--compus-bg) !important;
}
.MuiAppBar-root .MuiToolbar-root {
  background: var(--compus-bg) !important;
  min-height: 80px;
}
.MuiAppBar-root .MuiTypography-h6 {
  font-size: 15px;
  letter-spacing: .2px;
  font-weight: 500;
  border-left: 1px solid var(--compus-line);
  padding-left: 24px;
}
.MuiAppBar-root img {
  content: url('/branding/compus-logo.svg');
  height: 34px !important;
  width: 178px !important;
  margin-right: 28px !important;
  object-fit: contain;
}
.MuiDrawer-paper { border-right: 1px solid var(--compus-line) !important; border-radius: 0 !important; }
.MuiDrawer-paper .MuiToolbar-root, #main > .MuiToolbar-root { min-height: 80px; }
.MuiListSubheader-root {
  background: var(--compus-panel) !important;
  color: var(--compus-muted) !important;
  font: 10px/2.8 Consolas, 'Courier New', monospace !important;
  text-transform: uppercase;
  letter-spacing: 1.3px;
}
.MuiListItemButton-root { border-left: 2px solid transparent !important; }
.MuiListItemButton-root:hover, .MuiMenuItem-root:hover { background: #1b3043 !important; }
.MuiListItemButton-root.Mui-selected, .MuiMenuItem-root.Mui-selected {
  background: #1a3348 !important;
  border-left-color: var(--compus-accent) !important;
  color: var(--compus-text) !important;
}
.MuiListItemIcon-root, .MuiIconButton-root { color: var(--compus-muted) !important; }
.MuiIconButton-root:hover, .MuiListItemButton-root.Mui-selected .MuiListItemIcon-root {
  color: var(--compus-accent) !important;
}
.MuiDivider-root, .MuiTableCell-root { border-color: var(--compus-line) !important; }
.MuiTypography-colorTextSecondary, .MuiFormHelperText-root,
.MuiListItemText-secondary, .MuiInputLabel-root { color: var(--compus-muted) !important; }
.MuiTypography-h4, .MuiTypography-h5, .MuiTypography-h6 { letter-spacing: -.6px; }
.MuiButton-root {
  border-radius: 2px !important;
  font-weight: 700 !important;
  text-transform: none !important;
  box-shadow: none !important;
  padding: 10px 18px;
}
.MuiButton-containedPrimary, .MuiButton-containedSuccess {
  background: var(--compus-accent) !important;
  color: var(--compus-bg) !important;
  border: 1px solid var(--compus-accent) !important;
}
.MuiButton-containedPrimary:hover, .MuiButton-containedSuccess:hover { background: #79c3f3 !important; }
.MuiButton-textPrimary, .MuiButton-outlinedPrimary { color: var(--compus-accent) !important; }
.MuiButton-outlinedPrimary { border-color: var(--compus-accent) !important; }
.MuiButton-root.Mui-disabled { color: #8496a8 !important; background: #203246 !important; border-color: var(--compus-line) !important; }
.MuiInputBase-root, .MuiOutlinedInput-root {
  background: var(--compus-bg) !important;
  color: var(--compus-text) !important;
  border-radius: 2px !important;
}
.MuiOutlinedInput-notchedOutline { border-color: var(--compus-line) !important; }
.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline { border-color: #58748e !important; }
.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline { border-color: var(--compus-accent) !important; }
.MuiInputLabel-root.Mui-focused { color: var(--compus-accent) !important; }
.MuiInputBase-input::placeholder { color: var(--compus-muted) !important; opacity: 1; }
input:-webkit-autofill { -webkit-text-fill-color: var(--compus-text) !important; box-shadow: 0 0 0 100px var(--compus-bg) inset !important; }
.MuiSelect-icon, .MuiCheckbox-root, .MuiRadio-root { color: var(--compus-muted) !important; }
.MuiCheckbox-root.Mui-checked, .MuiRadio-root.Mui-checked, .MuiSwitch-switchBase.Mui-checked { color: var(--compus-accent) !important; }
.MuiSwitch-switchBase.Mui-checked + .MuiSwitch-track { background: var(--compus-accent) !important; }
.MuiChip-root { background: #203246 !important; color: var(--compus-text) !important; border-radius: 2px !important; }
.MuiBadge-badge { background: var(--compus-accent) !important; color: var(--compus-bg) !important; }
.MuiAlert-root { border-radius: 2px !important; }
.MuiAlert-standardInfo, .MuiAlert-outlinedInfo { color: #b9dfff !important; background: #112b40 !important; }
.MuiAlert-standardWarning { color: #f3d59a !important; background: #352a16 !important; }
.MuiAlert-standardError, .MuiAlert-filledError { color: #ffb5b0 !important; background: #411f29 !important; }
.Mui-error, .MuiFormHelperText-root.Mui-error { color: #ff9991 !important; }
.MuiCircularProgress-root { color: var(--compus-accent) !important; }
.MuiBackdrop-root:not(.MuiBackdrop-invisible) { background-color: #0a111abf; }
.MuiTooltip-tooltip { background: #24374A !important; color: var(--compus-text) !important; }
/* Authentication keeps native forms and interactions. */
#root > div:has(> form) {
  position: relative;
  height: auto !important;
  min-height: 100dvh;
  padding: 48px 0;
}
#root > div:has(> form)::before {
  content: 'COMPUS / INFRASTRUCTURE CONTROL';
  color: var(--compus-accent);
  font: 10px/1.7 Consolas, 'Courier New', monospace;
  letter-spacing: 1.3px;
  text-align: center;
  margin-bottom: 24px;
}
#root > div:has(> form) .MuiAvatar-root {
  width: 230px !important;
  height: 52px !important;
  border-radius: 0 !important;
  background: transparent !important;
  margin: 0 0 24px !important;
}
#root > div:has(> form) .MuiAvatar-img {
  content: url('/branding/compus-logo.svg');
  object-fit: contain;
}
#root > div:has(> form) > form {
  width: 100%;
  padding: 28px;
  margin-top: 24px;
  background: var(--compus-panel);
  border: 1px solid var(--compus-line);
  border-radius: 2px;
}
#root > div:has(> form)::after {
  content: 'Infrastruktura. Integracje. Wsparcie.';
  color: var(--compus-muted);
  font: 11px/1.8 Arial, Helvetica, sans-serif;
  margin-top: 24px;
}
#splash img { content: url('/branding/compus-mark.svg'); }
@media (max-width: 599px) {
  .MuiAppBar-root .MuiToolbar-root, .MuiDrawer-paper .MuiToolbar-root, #main > .MuiToolbar-root { min-height: 64px; }
  .MuiAppBar-root .MuiTypography-h6 { border: 0; padding-left: 0; }
  #root > div:has(> form) { padding: 28px 0; }
  #root > div:has(> form) > form { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }
/* Explicit foregrounds also cover a browser with ntfy's light theme selected. */
.MuiTypography-root, .MuiTableCell-root, .MuiDialogContentText-root {
  color: var(--compus-text) !important;
}
.MuiTypography-root a, .MuiLink-root { color: var(--compus-accent) !important; }
.MuiTypography-colorTextSecondary, .MuiListItemText-secondary, .MuiDialogContentText-root {
  color: var(--compus-muted) !important;
}
.MuiTypography-root.Mui-error { color: #ff9991 !important; }
#main .MuiTypography-h5 > img { content: url('/branding/compus-mark.svg'); }
/* MUI 9 uses separate variant/color classes. */
.MuiButton-root { color: var(--compus-accent) !important; }
.MuiButton-contained.MuiButton-colorPrimary, .MuiButton-contained.MuiButton-colorSuccess {
  background: var(--compus-accent) !important;
  color: var(--compus-bg) !important;
  border: 1px solid var(--compus-accent) !important;
}
.MuiButton-contained.MuiButton-colorPrimary:hover { background: #79c3f3 !important; }
.MuiButton-outlined.MuiButton-colorPrimary { border-color: var(--compus-accent) !important; }
.MuiButton-colorError { color: #ff9991 !important; }
.MuiButton-root.Mui-disabled { color: #8496a8 !important; background: #203246 !important; border-color: var(--compus-line) !important; }
.MuiSelect-select, .MuiSelect-select span { color: var(--compus-text) !important; }
.MuiInput-underline::before { border-bottom-color: var(--compus-line) !important; }
.MuiInput-underline::after { border-bottom-color: var(--compus-accent) !important; }
.MuiInputBase-root input::placeholder, .MuiInputBase-root textarea::placeholder {
  color: var(--compus-muted) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--compus-muted) !important;
}
