@import url('/modules/dashboard/ui/layout.css');
@import url('/modules/dashboard/ui/components.css');
@import url('/modules/dashboard/ui/login.css');
@import url('/modules/dashboard/ui/modules.css');

:root {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  color-scheme: light;
  --bg: #f4f7fc;
  --surface: #ffffff;
  --surface-soft: #f7faff;
  --input: #ffffff;
  --text: #1c2d45;
  --muted: #62758f;
  --line: #e1e8f3;
  --accent: #246ecc;
  --accent-soft: #e5f0ff;
  --primary: #2368c3;
  --primary-hover: #1e63bc;
  --on-primary: #ffffff;
  --sidebar: #eaf2fe;
  --sidebar-text: #294363;
  --sidebar-muted: #526b8d;
  --sidebar-active: #d5e8ff;
  --sidebar-hover: #dfecfc;
  --shadow: 0 7px 24px #1d4d8710;
  --warning-bg: #fff4e6;
  --warning-line: #f5d7ad;
  --warning-text: #97601f;
  --error-bg: #fff0ef;
  --error-line: #f2c9c5;
  --error-text: #b04440;
  --danger: #c1323a;
  --danger-hover: #a8262e;
  --radius: 13px;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0d1626;
  --surface: #132138;
  --surface-soft: #172840;
  --input: #101c30;
  --text: #e5eefb;
  --muted: #9aaecb;
  --line: #263852;
  --accent: #8dc7ff;
  --accent-soft: #213e64;
  --primary: #2b72cb;
  --primary-hover: #2e77d0;
  --sidebar: #101f35;
  --sidebar-text: #d0e2fa;
  --sidebar-muted: #93aac9;
  --sidebar-active: #24496e;
  --sidebar-hover: #1a324e;
  --shadow: 0 8px 28px #00000026;
  --warning-bg: #392a19;
  --warning-line: #6c4b24;
  --warning-text: #f0bf79;
  --error-bg: #3b222b;
  --error-line: #6d3945;
  --error-text: #ffb0af;
  --danger: #c63d48;
  --danger-hover: #b5303b;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--text); background: var(--bg); font-size: 15px; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button, a { touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .55; }
a { color: inherit; text-decoration: none; }
button, input, select { outline-offset: 4px; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--accent); }
input, select {
  width: 100%; min-height: 47px; border: 1px solid var(--line);
  border-radius: 8px; padding: 12px 14px;
  background: var(--input); color: var(--text); font-size: 16px;
  transition: border-color .18s, box-shadow .18s, background-color .2s;
}
input:focus, select:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px var(--accent-soft); }
input::placeholder { color: var(--muted); opacity: .75; }
input[type="checkbox"] { width: 17px; min-height: 17px; height: 17px; padding: 0; accent-color: var(--primary); flex-shrink: 0; }
input[type="number"] { appearance: textfield; }
input::-webkit-inner-spin-button, input::-webkit-outer-spin-button { appearance: none; }
label { display: block; font-size: 15px; font-weight: 600; margin: 22px 0 9px; }
label:first-child { margin-top: 0; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: 31px; font-weight: 600; letter-spacing: -.8px; line-height: 1.3; }
h2 { font-size: 19px; font-weight: 600; letter-spacing: -.25px; }
h3 { font-size: 16px; font-weight: 600; }
p { line-height: 1.65; font-size: 15px; color: var(--muted); }
small { font-size: 14px; }
strong { font-weight: 600; }
.icon { flex-shrink: 0; vertical-align: middle; }
.small { font-size: 14px; }
.muted { color: var(--muted); }
.numeric { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.status-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.splash { height: 100dvh; display: flex; flex-direction: column; gap: 20px; justify-content: center; align-items: center; }
.brand { display: flex; gap: 12px; align-items: center; font-size: 23px; font-weight: 650; }
.brand-logo { display: block; width: 56px; height: 56px; object-fit: contain; flex-shrink: 0; }
.brand-sub { display: block; font-size: 13px; font-weight: 400; letter-spacing: .2px; color: var(--sidebar-muted); margin-top: 3px; }
.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-size: 13px; font-weight: 650; }
.theme-control { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--muted); }
.theme-control > .icon { width: 17px; height: 17px; }
.theme-select { position: relative; display: flex; }
.theme-control select { appearance: none; width: 106px; min-height: 38px; padding: 8px 30px 8px 11px; font-size: 13px; border-radius: 7px; }
.theme-select > .icon { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; pointer-events: none; }
.toast { position: fixed; bottom: 25px; left: 50%; transform: translateX(-50%); max-width: calc(100% - 32px); padding: 14px 23px; color: var(--on-primary); background: var(--primary); border-radius: 10px; box-shadow: var(--shadow); font-size: 15px; z-index: 100; animation: toast-in .2s ease-out; }
body, .sidebar, .topbar, .card, .stat-card, .login-form-container { transition: background-color .22s, color .22s, border-color .22s, transform .22s ease, box-shadow .18s; }
@keyframes toast-in { from { opacity: 0; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }
@keyframes live-pulse { 50% { box-shadow: 0 0 0 4px var(--accent-soft); } }
@keyframes dialog-in { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
