:root {

    --bg: #f3f4f6;
    --card-bg: #ffffff;
    --text: #222222;
    --accent: #0078d4;
}

.dark-mode {

    --bg: #151515;
    --card-bg: #222222;
    --text: #f0f0f0;
    --accent: #4ea3ff;
}

body {

    margin: 0;
    padding: 30px;

    font-family: Arial, sans-serif;

    background: var(--bg);
    color: var(--text);

    transition: .3s;
}

.container {

    max-width: 1000px;
    margin: auto;
}

.header {

    max-width: 1000px;

    margin: auto;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card {

    background: var(--card-bg);

    border-radius: 16px;

    padding: 24px;

    margin-top: 20px;

    box-shadow:
        0 3px 12px rgba(0,0,0,.10);

    transition: .3s;
}

.gauge-card {

    text-align: center;
}

.gauge-svg {

    width: 100%;
    max-width: 650px;
    height: auto;
}

.gauge-red,
.gauge-yellow,
.gauge-green {

    fill: none;

    stroke-width: 42;

    stroke-linecap: butt;
}


.gauge-red {

    stroke: #f3493b;
}

.gauge-yellow {

    stroke: #ffb300;
}

.gauge-green {

    stroke: #49b347;
}

#needleStem {

    stroke: var(--text);

    stroke-width: 8;

    stroke-linecap: round;

    transform-origin: 200px 200px;

    transition: transform 1s ease;
}

#needleGroup {
    transition:
        transform 0.8s cubic-bezier(.22,.61,.36,1);
}

#gaugeNeedle {

    fill: var(--text);

    stroke: rgba(255,255,255,.75);

    stroke-width: 1.75;
}

.dark-mode #gaugeNeedle {

    filter:
        drop-shadow(
            0 0 1.5px
            rgba(0,0,0,.8)
        );
}

.needle-hub {

    fill: var(--text);
}

.gauge-value {

    font-size: 82px;

    font-weight: 300;

    letter-spacing: -2px;
}


.gauge-title {

    margin-top: 12px;

    font-size: 34px;

    color: var(--text);
}

.label {

    color: #888;
    font-size: 14px;
}

.timestamp {

    font-size: 16px;
}

.button-row {

    display: flex;
    gap: 10px;

    margin-top: 20px;
}

button {

    padding: 10px 16px;

    cursor: pointer;
}

.status-loading,
.status-good,
.status-warning,
.status-error {

    padding: 10px;

    margin-top: 20px;

    border-radius: 8px;

    text-align: center;
    font-weight: bold;
}

.status-loading {

    background: #e8f1ff;
    color: #005fb8;
}

.status-good {

    background: #dff6dd;
    color: #107c10;
}

.status-warning {

    background: #fff4ce;
    color: #8a6d00;
}

.status-error {

    background: #fde7e9;
    color: #a4262c;
}

@media (max-width: 768px) {

    .gauge-value {

        font-size: 48px;
    }

    .gauge-title {

        font-size: 24px;
    }
}