html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

:root {
    --bg: #0f172a;
    --panel: #111827;
    --panel2: #0b1220;
    --ring: #1f2937;
    --text: #e5e7eb;
    --muted: #9ca3af;
    --good: #22c55e;
    --bad: #ef4444;
    --blue: #3b82f6;
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: system-ui,Segoe UI,Inter,Arial,sans-serif
}

.wrap {
    max-width: 1280px;
    margin: 20px auto;
    padding: 0 14px
}

h1 {
    margin: 0 0 12px;
    font-size: 22px
}

.toolbar {
    display: grid;
    grid-template-columns: 1fr 1fr auto auto;
    gap: 10px;
    align-items: center
}

.ctrl {
    background: var(--panel);
    border: 1px solid var(--ring);
    border-radius: 12px;
    padding: 8px 10px
}

label {
    display: block;
    font-size: 11px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 4px
}

input[type="datetime-local"] {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    color: var(--text);
    font-size: 14px
}

.btn {
    background: linear-gradient(180deg,#2563eb,#1d4ed8);
    color: white;
    border: none;
    border-radius: 12px;
    padding: 10px 16px;
    font-weight: 600;
    cursor: pointer
}

.switch {
    display: flex;
    gap: 8px;
    align-items: center;
    background: var(--panel);
    border: 1px solid var(--ring);
    border-radius: 12px;
    padding: 10px 12px
}

.grid {
    display: grid;
    gap: 12px
}

.cols-3 {
    grid-template-columns: 1fr 1fr 1fr
}

.cols-2 {
    grid-template-columns: 1fr 1fr
}

.panel {
    background: var(--panel);
    border: 1px solid var(--ring);
    border-radius: 12px;
    padding: 14px
}

.kpi h3 {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    letter-spacing: .05em
}

.big {
    font-size: 36px;
    font-weight: 800
}

.muted {
    color: var(--muted);
    font-size: 13px
}

.good {
    color: var(--good)
}

.bad {
    color: var(--bad)
}

canvas {
    width: 100% !important;
    height: 320px !important
}

table {
    width: 100%;
    border-collapse: collapse
}

th, td {
    padding: 10px;
    border-bottom: 1px solid var(--ring);
    text-align: left
}

th {
    font-size: 12px;
    color: var(--muted);
    text-transform: uppercase;
    background: var(--panel2)
}

.right {
    text-align: right
}

@media (max-width:1000px) {
    .cols-3, .cols-2 {
        grid-template-columns: 1fr
    }

    canvas {
        height: 260px !important
    }
}