/* ===========================
   PASTIR MONITOR — STYLE
   =========================== */
:root {
    --bg:#0a0c0f; --bg2:#111418; --bg3:#181c22;
    --border:#1e2530; --border2:#2a3340;
    --text:#e8edf3; --text2:#7a8a9a; --text3:#4a5a6a;
    --green:#00e87a; --green-glow:rgba(0,232,122,.15);
    --yellow:#f5c400; --red:#ff3d5a; --red-glow:rgba(255,61,90,.15);
    --orange:#ff7a3d;
    --font-d:'Syne',sans-serif; --font-m:'Space Mono',monospace;
    --r:12px; --r-sm:8px;
    --ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-d);min-height:100vh;overflow-x:hidden;padding-bottom:80px}
.scanline{position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none;z-index:9999}

/* ── HEADER ── */
header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
.header-left{display:flex;align-items:center;gap:12px}
.logo-mark{width:40px;height:40px;background:var(--green);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 20px var(--green-glow);flex-shrink:0}
h1{font-size:16px;font-weight:800;letter-spacing:3px}
.subtitle{font-size:10px;color:var(--text3);font-family:var(--font-m);letter-spacing:1px;margin-top:2px;display:block}
.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.connection-badge{display:flex;align-items:center;gap:6px;background:var(--bg3);border:1px solid var(--border);padding:4px 10px;border-radius:20px;font-size:11px;font-family:var(--font-m)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text3);animation:dotPulse 2s infinite}
.dot.online{background:var(--green);box-shadow:0 0 6px var(--green)}
.dot.offline{background:var(--red);animation:none}
.dot.demo{background:var(--yellow)}
@keyframes dotPulse{0%,100%{opacity:1}50%{opacity:.4}}
.timestamp{font-family:var(--font-m);font-size:10px;color:var(--text3)}

/* ── DEMO BANNER ── */
.demo-banner{background:linear-gradient(90deg,#1a1500,#2a2000,#1a1500);border-bottom:1px solid rgba(245,196,0,.3);color:var(--yellow);font-family:var(--font-m);font-size:10px;text-align:center;padding:6px;letter-spacing:1px;display:none}
.demo-banner.visible{display:block}

/* ── STATUS HERO ── */
.status-hero{display:flex;flex-direction:column;align-items:center;padding:32px 20px 16px;gap:18px}
.status-ring{position:relative;width:150px;height:150px;display:flex;align-items:center;justify-content:center}
.ring-svg{position:absolute;top:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:var(--bg3);stroke-width:8}
.ring-progress{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round;stroke-dasharray:553;stroke-dashoffset:553;filter:drop-shadow(0 0 8px var(--green));transition:stroke-dashoffset 1s ease,stroke .5s ease}
.status-icon{font-size:48px;z-index:1;filter:drop-shadow(0 0 12px var(--green));transition:filter .5s ease}
.status-info{text-align:center}
.status-label{font-size:22px;font-weight:800;letter-spacing:2px;color:var(--green);transition:color .5s ease}
.status-desc{font-size:12px;color:var(--text2);font-family:var(--font-m);margin-top:5px}

.status-ok .ring-progress{stroke:var(--green);filter:drop-shadow(0 0 8px var(--green))}
.status-ok .status-label{color:var(--green)}
.status-warning .ring-progress{stroke:var(--yellow);filter:drop-shadow(0 0 8px var(--yellow))}
.status-warning .status-label{color:var(--yellow)}
.status-leaking .ring-progress{stroke:var(--orange);filter:drop-shadow(0 0 8px var(--orange))}
.status-leaking .status-label{color:var(--orange)}
.status-leaking .status-icon{animation:shake .3s infinite}
.status-broken .ring-progress{stroke:var(--red);filter:drop-shadow(0 0 8px var(--red))}
.status-broken .status-label{color:var(--red);animation:blink 1s infinite}
.status-off .ring-progress,.status-offline .ring-progress{stroke:var(--text3);filter:none}
.status-off .status-label,.status-offline .status-label{color:var(--text3)}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

/* ── CONTROLS ── */
.controls{display:flex;gap:10px;padding:0 20px 20px;justify-content:center}
.btn{flex:1;max-width:200px;padding:13px;border:none;border-radius:var(--r);font-family:var(--font-d);font-weight:700;font-size:14px;letter-spacing:2px;cursor:pointer;transition:.3s var(--ease);display:flex;align-items:center;justify-content:center;gap:7px}
.btn-on{background:var(--green);color:#000;box-shadow:0 4px 20px var(--green-glow)}
.btn-on:hover{background:#00ff88;box-shadow:0 4px 30px rgba(0,232,122,.4);transform:translateY(-2px)}
.btn-off{background:transparent;color:var(--red);border:2px solid var(--red)}
.btn-off:hover{background:var(--red-glow);transform:translateY(-2px)}
.btn:active{transform:translateY(0)!important}

/* ── METRICS ── */
.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 20px 20px}
.metric-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px;position:relative;overflow:hidden;transition:.3s var(--ease)}
.metric-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--green);opacity:.6}
.metric-card:hover{border-color:var(--border2);transform:translateY(-2px)}
.metric-icon{font-size:18px;margin-bottom:8px;opacity:.7}
.metric-value{font-size:26px;font-weight:800;font-family:var(--font-m);line-height:1;margin-bottom:4px;color:var(--green)}
.metric-value small{font-size:12px;color:var(--text2);font-weight:400;margin-left:2px}
.metric-label{font-size:10px;color:var(--text3);letter-spacing:1px;font-family:var(--font-m);margin-bottom:8px}
.metric-sub{font-size:10px;color:var(--text2);font-family:var(--font-m)}
.metric-bar{height:3px;background:var(--border);border-radius:2px;overflow:hidden}
.metric-bar-fill{height:100%;background:var(--green);border-radius:2px;width:0%;transition:width 1s ease,background .5s ease}

/* ── CHART ── */
.chart-section{margin:0 20px 20px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:18px}
.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.chart-header h2{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--text2)}
.chart-legend{display:flex;gap:10px;font-size:9px;font-family:var(--font-m)}
.legend-ok{color:var(--green)}.legend-warn{color:var(--orange)}
.chart-container{height:130px}
canvas{width:100%!important;height:130px!important}
.chart-labels{display:flex;justify-content:space-between;margin-top:6px;font-size:9px;color:var(--text3);font-family:var(--font-m)}

/* ── EVENTS ── */
.events-section{margin:0 20px}
.events-section h2{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--text2);margin-bottom:10px}
.events-list{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;max-height:280px;overflow-y:auto}
.event-empty{padding:24px;text-align:center;color:var(--text3);font-family:var(--font-m);font-size:12px}
.event-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:11px;animation:slideIn .3s ease}
.event-item:last-child{border-bottom:none}
@keyframes slideIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
.event-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.event-dot.ok{background:var(--green)}.event-dot.warning{background:var(--yellow)}
.event-dot.leaking{background:var(--orange)}.event-dot.broken{background:var(--red)}.event-dot.off{background:var(--text3)}
.event-time{font-family:var(--font-m);color:var(--text3);font-size:9px;width:50px;flex-shrink:0}
.event-text{color:var(--text2);flex:1}
.event-power{font-family:var(--font-m);font-size:10px;color:var(--text3)}

/* ── FAB ── */
.fab{position:fixed;bottom:20px;right:20px;width:50px;height:50px;background:var(--bg3);border:1px solid var(--border2);border-radius:50%;font-size:22px;cursor:pointer;color:var(--text2);transition:.3s var(--ease);z-index:200;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.fab:hover{background:var(--green);color:#000;border-color:var(--green);transform:rotate(90deg) scale(1.1)}

/* ── SETTINGS OVERLAY ── */
.settings-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:300;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(4px)}
.settings-overlay.active{opacity:1;pointer-events:all}

/* ══════════════════════════════
   SETTINGS DRAWER — MOBILE FIRST
   ══════════════════════════════ */
.settings-drawer{
    position:fixed;
    bottom:0;left:0;right:0;
    background:var(--bg2);
    border-top:1px solid var(--border2);
    border-radius:20px 20px 0 0;
    z-index:400;
    display:flex;flex-direction:column;
    max-height:92vh;
    transform:translateY(100%);
    transition:transform .4s var(--ease);
}
.settings-drawer.active{transform:translateY(0)}

/* DRAWER HEADER */
.drawer-header{
    flex-shrink:0;
    border-bottom:1px solid var(--border);
    padding:16px 20px 0;
}
.drawer-title-row{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:14px;
}
.drawer-title{
    display:flex;align-items:center;gap:10px;
    font-size:16px;font-weight:800;letter-spacing:1px;
}
.drawer-icon{
    width:34px;height:34px;background:var(--bg3);border:1px solid var(--border2);
    border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;
}
.drawer-title-right{display:flex;align-items:center;gap:8px}
.drawer-close{
    background:var(--bg3);border:1px solid var(--border);color:var(--text2);
    width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:14px;
    transition:.2s;display:flex;align-items:center;justify-content:center;
}
.drawer-close:hover{background:var(--red-glow);border-color:var(--red);color:var(--red)}
.admin-badge{
    background:rgba(0,232,122,.12);border:1px solid rgba(0,232,122,.25);color:var(--green);
    font-size:10px;padding:3px 8px;border-radius:10px;font-family:var(--font-m);
    letter-spacing:1px;display:none;white-space:nowrap;
}

/* TAB BAR */
.tab-bar{
    display:flex;gap:2px;
    overflow-x:auto;padding-bottom:0;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}
.tab-bar::-webkit-scrollbar{display:none}
.tab{
    flex-shrink:0;
    padding:8px 14px;border:none;background:transparent;
    color:var(--text3);font-family:var(--font-m);font-size:11px;
    letter-spacing:.5px;cursor:pointer;transition:.2s;
    border-bottom:2px solid transparent;white-space:nowrap;
}
.tab:hover{color:var(--text2)}
.tab.active{color:var(--green);border-bottom-color:var(--green)}

/* DRAWER BODY */
.drawer-body{
    flex:1;overflow-y:auto;padding:20px;
    -webkit-overflow-scrolling:touch;
}

/* TAB PANELS */
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ── LOGIN CARD ── */
.login-card{
    max-width:380px;margin:0 auto;
    display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
    padding:10px 0;
}
.login-icon{font-size:40px;margin-bottom:4px}
.login-title{font-size:18px;font-weight:800;letter-spacing:1px}
.login-sub{font-size:12px;color:var(--text2);font-family:var(--font-m)}
.login-hint{font-size:11px;color:var(--text3);font-family:var(--font-m)}
.login-hint code{background:var(--bg3);padding:2px 6px;border-radius:4px;color:var(--text2)}
.login-error{color:var(--red);font-family:var(--font-m);font-size:12px;min-height:16px;width:100%}
.login-card .field-group{width:100%}

/* ── FIELDS GRID ── */
.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-group{display:flex;flex-direction:column;gap:6px}
.field-group.full{grid-column:1/-1}
.field-label{font-size:11px;color:var(--text2);font-family:var(--font-m);letter-spacing:1px}
.field-input{
    background:var(--bg3);border:1px solid var(--border2);
    color:var(--text);padding:10px 12px;border-radius:var(--r-sm);
    font-family:var(--font-m);font-size:15px;outline:none;width:100%;
    transition:.25s;-webkit-appearance:none;
}
.field-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-glow)}
.field-hint{font-size:10px;color:var(--text3);font-family:var(--font-m);line-height:1.5}

/* input with unit */
.input-with-unit{position:relative}
.input-with-unit .field-input{padding-right:44px}
.unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-family:var(--font-m);font-size:11px;color:var(--text3);pointer-events:none}

/* input with eye button */
.input-wrap{position:relative}
.input-wrap .field-input{padding-right:44px}
.input-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;opacity:.5;transition:.2s;padding:4px}
.input-toggle:hover{opacity:1}

/* ── TOGGLE SWITCH ── */
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px}
.toggle-row-label{font-size:13px;font-weight:700}
.toggle-row-sub{font-size:10px;color:var(--text3);font-family:var(--font-m);margin-top:2px}
.toggle-switch{position:relative;width:46px;height:26px;flex-shrink:0;cursor:pointer}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.toggle-track{
    position:absolute;inset:0;border-radius:13px;
    background:var(--border2);transition:.3s;display:block;
}
.toggle-switch input:checked ~ .toggle-track{background:rgba(0,232,122,.25);border:1px solid var(--green)}
.toggle-thumb{
    position:absolute;width:20px;height:20px;background:var(--text3);
    border-radius:50%;top:3px;left:3px;transition:.3s;display:block;
}
.toggle-switch input:checked ~ .toggle-track .toggle-thumb{background:var(--green);transform:translateX(20px)}

/* ── CONNECTION TEST CARD ── */
.status-test-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.stc-label{font-size:11px;color:var(--text2);font-family:var(--font-m)}
.stc-status{font-size:12px;font-family:var(--font-m);color:var(--text3);flex:1}

/* ── ALARM THRESHOLD DISPLAY ── */
.alarm-threshold-display{
    background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);
    padding:10px 12px;display:flex;align-items:baseline;gap:6px;
    font-size:26px;font-weight:800;font-family:var(--font-m);color:var(--orange);
}
.alarm-threshold-display small{font-size:13px;color:var(--text2);font-weight:400}

/* ── ALARM LEGEND ── */
.alarm-legend{display:flex;flex-direction:column;gap:8px;margin-top:16px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px}
.alarm-row{display:flex;align-items:center;gap:10px;font-size:12px}
.al-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.alarm-row strong{color:var(--text)}
.alarm-row div{color:var(--text2)}

/* ── COST PREVIEW ── */
.cost-preview{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:16px}
.cost-preview-title{font-size:11px;color:var(--text3);font-family:var(--font-m);letter-spacing:1px;margin-bottom:12px}
.cost-rows{display:flex;flex-direction:column;gap:8px}
.cost-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}
.cost-row span{color:var(--text2)}
.cost-row strong{font-family:var(--font-m);color:var(--green);font-size:15px}
.cost-note{font-size:10px;color:var(--text3);font-family:var(--font-m);margin-top:12px;line-height:1.6}

/* ── PASSWORD ERROR ── */
.pwd-error{color:var(--red);font-family:var(--font-m);font-size:11px;min-height:16px;grid-column:1/-1}

/* ── LOGOUT ── */
.logout-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.btn-logout{
    width:100%;background:transparent;color:var(--text3);border:1px solid var(--border2);
    padding:12px;border-radius:var(--r);font-family:var(--font-m);font-size:12px;
    letter-spacing:1px;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center;gap:8px;
}
.btn-logout:hover{border-color:var(--red);color:var(--red)}

/* ── DRAWER FOOTER ── */
.drawer-footer{
    flex-shrink:0;padding:14px 20px;border-top:1px solid var(--border);
    display:flex;gap:10px;background:var(--bg2);
}
.btn-primary{
    flex:1;background:var(--green);color:#000;border:none;padding:13px;
    border-radius:var(--r);font-family:var(--font-d);font-weight:700;font-size:14px;
    letter-spacing:1px;cursor:pointer;transition:.25s;
}
.btn-primary:hover{background:#00ff88;transform:translateY(-1px)}
.btn-secondary{
    background:var(--bg2);border:1px solid var(--border2);color:var(--text2);
    padding:7px 12px;border-radius:var(--r-sm);font-family:var(--font-m);
    font-size:11px;cursor:pointer;transition:.2s;white-space:nowrap;
}
.btn-secondary:hover{border-color:var(--green);color:var(--green)}
.btn-cancel{
    background:transparent;border:1px solid var(--border2);color:var(--text3);
    padding:13px 20px;border-radius:var(--r);font-family:var(--font-m);
    font-size:12px;letter-spacing:1px;cursor:pointer;transition:.2s;
}
.btn-cancel:hover{border-color:var(--text2);color:var(--text2)}

/* ══════════════════════════════
   DESKTOP — sidebar drawer
   ══════════════════════════════ */
@media(min-width:640px){
    body{max-width:820px;margin:0 auto}
    header{padding:18px 36px}
    .status-hero{flex-direction:row;justify-content:center;gap:40px;padding:44px 36px 28px}
    .status-info{text-align:left}
    .status-label{font-size:28px}
    .controls{padding:0 36px 28px}
    .metrics{grid-template-columns:repeat(4,1fr);padding:0 36px 28px}
    .chart-section{margin:0 36px 28px}
    .events-section{margin:0 36px}

    /* Drawer becomes right-side panel */
    .settings-drawer{
        top:0;bottom:0;left:auto;right:0;
        width:420px;max-width:45vw;
        border-radius:0;border-top:none;border-left:1px solid var(--border2);
        transform:translateX(100%);max-height:100vh;
    }
    .settings-drawer.active{transform:translateX(0)}

    /* Wider fields grid on desktop */
    .fields-grid{grid-template-columns:1fr 1fr}
    .tab{padding:10px 16px;font-size:11px}
    .drawer-body{padding:24px}
}

@media(min-width:900px){
    body{max-width:960px}
    .settings-drawer{width:460px}
}

/* Scrollbar */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

@keyframes fadeToast{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ── TELEGRAM ── */
.tg-actions{display:flex;gap:8px;flex-wrap:wrap}
.tg-status{font-family:var(--font-m);font-size:11px;margin-top:8px;min-height:16px;transition:.3s}
.tg-status.ok{color:var(--green)}.tg-status.err{color:var(--red)}

.tg-guide{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px;grid-column:1/-1}
.tg-guide-title{font-size:11px;color:var(--text3);font-family:var(--font-m);letter-spacing:1px;margin-bottom:12px}
.tg-guide-step{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;font-size:12px;color:var(--text2);line-height:1.5}
.tg-guide-step:last-child{margin-bottom:0}
.tg-step-num{width:22px;height:22px;background:var(--green);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:1px}
.tg-guide-step code{background:var(--bg2);padding:1px 5px;border-radius:3px;color:var(--green);font-family:var(--font-m)}

/* ── WEATHER ── */
.weather-section{margin:0 20px 20px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:18px}
.weather-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.weather-header h2{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--text2)}
.weather-location{font-size:10px;color:var(--text3);font-family:var(--font-m)}
.weather-current{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.weather-desc{font-size:18px;font-weight:700;flex:1;min-width:120px}
.weather-temp{font-size:36px;font-weight:800;font-family:var(--font-m);color:var(--green)}
.weather-details{display:flex;gap:12px;flex-wrap:wrap;width:100%}
.weather-details span{font-size:11px;font-family:var(--font-m);color:var(--text2);background:var(--bg3);padding:4px 8px;border-radius:6px}
.weather-alert{background:rgba(245,196,0,.1);border:1px solid rgba(245,196,0,.3);border-radius:var(--r-sm);padding:10px 12px;font-size:12px;color:var(--yellow);margin-bottom:12px;font-family:var(--font-m)}
.weather-forecast{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.forecast-day{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px;text-align:center}
.forecast-name{font-size:10px;color:var(--text3);font-family:var(--font-m);letter-spacing:1px;margin-bottom:4px}
.forecast-icon{font-size:20px;margin:4px 0}
.forecast-temps{font-size:11px;font-family:var(--font-m)}
.forecast-max{color:var(--text);font-weight:700}
.forecast-min{color:var(--text3)}
.forecast-rain{font-size:10px;color:var(--blue);margin-top:3px;font-family:var(--font-m)}

/* Weather admin */
.weather-hint-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px}
.weather-hint-title{font-size:11px;color:var(--text3);font-family:var(--font-m);letter-spacing:1px;margin-bottom:10px}
.weather-hint-step{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;color:var(--text2)}
.weather-hint-note{font-size:10px;color:var(--text3);font-family:var(--font-m);margin-top:10px;padding-top:10px;border-top:1px solid var(--border);line-height:1.6}

@media(min-width:640px){
    .weather-section{margin:0 36px 28px}
    .weather-forecast{grid-template-columns:repeat(3,1fr)}
}

/* ── STATS SECTION ── */
.stats-section{margin:0 20px 20px;display:flex;flex-direction:column;gap:12px}
.stats-header{display:flex;flex-direction:column;gap:10px}
.stats-header h2{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--text2)}
.stats-summary{display:flex;gap:6px;flex-wrap:wrap}
.stat-pill{background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:4px 10px;font-size:10px;font-family:var(--font-m);color:var(--text2);white-space:nowrap}

.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px}
.stat-card-header{margin-bottom:12px}
.stat-card-title{font-size:13px;font-weight:700;margin-bottom:3px}
.stat-card-sub{font-size:10px;color:var(--text3);font-family:var(--font-m)}

.bar-chart-note{font-size:10px;color:var(--text3);font-family:var(--font-m);margin-top:8px;text-align:center}
.dual-chart-legend{display:flex;gap:12px;font-size:10px;font-family:var(--font-m);margin-bottom:8px}

/* Uptime bar */
.uptime-bar{height:32px;border-radius:6px;overflow:hidden;display:flex;background:var(--bg3);margin-bottom:6px}
.uptime-seg{height:100%;transition:.3s}
.uptime-seg.on{background:var(--green);opacity:.8}
.uptime-seg.off{background:var(--border2)}
.uptime-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text3);font-family:var(--font-m);margin-bottom:6px}
.uptime-legend{display:flex;gap:12px;font-size:10px;font-family:var(--font-m)}
.uptime-on{color:var(--green)}.uptime-off{color:var(--text3)}

@media(min-width:640px){
    .stats-section{margin:0 36px 28px}
    .stats-header{flex-direction:row;align-items:center;justify-content:space-between}
}

/* ── HISTORY SECTION ── */
.history-section{margin:0 20px 20px;display:flex;flex-direction:column;gap:12px}
.history-tabs{display:flex;gap:8px;margin-bottom:4px}
.htab{padding:8px 16px;border:1px solid var(--border2);background:transparent;color:var(--text3);border-radius:var(--r-sm);font-family:var(--font-m);font-size:11px;cursor:pointer;transition:.2s;white-space:nowrap}
.htab.active{background:var(--green);color:#000;border-color:var(--green);font-weight:700}
.htab:hover:not(.active){border-color:var(--text2);color:var(--text2)}
.history-panel{display:flex;flex-direction:column;gap:12px}

/* Monthly table */
.monthly-table{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.mtable-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;padding:10px 14px;border-bottom:1px solid var(--border);font-size:11px;align-items:center}
.mtable-row:last-child{border-bottom:none}
.mtable-header{background:var(--bg3);font-family:var(--font-m);font-size:10px;color:var(--text3);letter-spacing:1px}
.mtable-row:not(.mtable-header):hover{background:var(--bg3)}
.mtable-cost{color:var(--green);font-family:var(--font-m);font-weight:700}
.mtable-alarm{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-m)}
.mtable-bar{height:3px;background:var(--border);border-radius:2px;margin-top:3px}
.mtable-bar-fill{height:100%;background:var(--green);border-radius:2px}

/* Yearly cards */
.yearly-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.yearly-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px}
.yearly-year{font-size:22px;font-weight:800;margin-bottom:8px;color:var(--green)}
.yearly-kwh{font-size:28px;font-weight:800;font-family:var(--font-m);line-height:1}
.yearly-kwh small{font-size:13px;color:var(--text2);font-weight:400}
.yearly-cost{font-size:16px;color:var(--text2);font-family:var(--font-m);margin-top:4px}
.yearly-stats{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.yearly-stat{display:flex;justify-content:space-between;font-size:11px;font-family:var(--font-m)}
.yearly-stat span:first-child{color:var(--text3)}
.yearly-stat span:last-child{color:var(--text)}

@media(min-width:640px){
    .history-section{margin:0 36px 28px}
    .yearly-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
}
