:root{color-scheme:dark;--bg:#091418;--panel:#102228;--panel2:#142b32;--line:#24414a;--text:#ecf5f3;--muted:#8ca5a6;--mint:#f0c900;--cyan:#f0c900;--warning:#ffbd4a;--alarm:#ff625f;font-family:Inter,ui-sans-serif,system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 0,#12353c 0,transparent 35%),var(--bg);color:var(--text);min-height:100vh}.topbar,main{width:min(1100px,calc(100% - 32px));margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;padding:28px 0 18px}.eyebrow,.label{color:var(--mint);font-size:.72rem;font-weight:750;letter-spacing:.16em;margin:0 0 4px}.topbar h1{margin:0;font-size:1.35rem}.status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem}.status span{width:9px;height:9px;border-radius:50%;background:var(--warning);box-shadow:0 0 12px currentColor}.status.online span{background:var(--mint)}.status.offline span{background:var(--alarm)}main{display:grid;gap:16px;padding-bottom:48px}.card{background:linear-gradient(145deg,rgba(20,43,50,.97),rgba(14,30,36,.97));border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 40px rgba(0,0,0,.16)}.hero{padding:26px;display:flex;justify-content:space-between;align-items:center;min-height:250px}.wind-primary>div{display:flex;align-items:baseline;gap:9px}.wind-primary>div strong{font-size:clamp(4.6rem,15vw,8.2rem);line-height:1;font-weight:600;letter-spacing:-.08em}.wind-primary>div small{font-size:1.1rem;color:var(--muted)}.wind-primary p{display:flex;gap:18px;margin:12px 0 0}.wind-primary p b{color:var(--mint)}.wind-primary p span{color:var(--muted)}.direction-wrap{text-align:center;display:grid;justify-items:center;gap:4px;color:var(--muted)}.direction-wrap>strong{color:var(--text);font-size:1.25rem}.compass{width:130px;height:130px;border:1px solid var(--line);border-radius:50%;position:relative;background:repeating-conic-gradient(from -1deg,transparent 0 14deg,var(--line) 15deg 16deg)}.compass:after{content:"";position:absolute;inset:12px;background:var(--panel);border-radius:50%}.north{position:absolute;z-index:2;top:8px;left:50%;transform:translateX(-50%);font-size:.68rem;color:var(--muted)}.compass i{position:absolute;z-index:3;left:59px;top:25px;width:12px;height:44px;background:var(--cyan);clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%);transform-origin:6px 40px;transition:transform .5s ease}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.metric{padding:20px}.metric span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:7px}.metric strong{font-size:1.55rem}.metric small{color:var(--muted);margin-left:5px}.metric.warning strong{color:var(--warning)}.metric.alarm strong{color:var(--alarm)}.push-card{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px}.push-card h2{margin:2px 0 5px;font-size:1.05rem}.push-card p{margin:0;color:var(--muted);font-size:.84rem}.push-card button.active{color:var(--alarm)}.history,.admin-card{padding:22px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-head h2{margin:0;font-size:1.15rem}.chart-shell{height:260px;position:relative}canvas{width:100%;height:100%}button,.exports a{border:0;border-radius:11px;padding:11px 16px;background:var(--mint);color:#071b18;font:inherit;font-weight:750;cursor:pointer;text-decoration:none}button:disabled{opacity:.55;cursor:wait}.quiet{background:transparent;color:var(--text);border:1px solid var(--line)}.revision{padding:10px 12px;background:var(--bg);border-radius:10px;color:var(--muted);font-size:.82rem;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}label{display:grid;gap:7px;color:var(--muted);font-size:.82rem}input,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#09191e;color:var(--text);padding:11px;font:inherit}fieldset{border:1px solid var(--line);border-radius:12px;margin:15px 0;padding:14px}legend{color:var(--muted);font-size:.8rem;padding:0 6px}.checks{display:flex;gap:20px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:6px}.checks input{width:auto}.actions,.exports{display:flex;gap:10px;flex-wrap:wrap}.exports{margin-top:18px}.exports a{background:transparent;color:var(--mint);border:1px solid var(--line)}dialog{border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);width:min(420px,calc(100% - 30px));padding:24px}dialog::backdrop{background:rgba(0,0,0,.72)}dialog h2{margin-top:0}.error{color:var(--alarm);min-height:1.2em}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,30px);background:var(--text);color:var(--bg);border-radius:10px;padding:12px 18px;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.topbar,main{width:min(100% - 22px,1100px)}.topbar{padding-top:20px}.hero{min-height:330px;padding:21px;align-items:flex-start}.wind-primary>div strong{font-size:4.7rem}.direction-wrap{margin-top:50px}.compass{width:94px;height:94px}.compass i{left:41px;top:16px;transform-origin:6px 32px;height:36px}.metrics{grid-template-columns:1fr 1fr}.metric:first-child{grid-column:1/-1}.push-card{align-items:flex-start}.form-grid{grid-template-columns:1fr 1fr}.status b{display:none}}
@media(max-width:430px){.hero{display:grid;grid-template-columns:1fr auto;min-height:260px}.direction-wrap{margin-top:20px}.wind-primary>div strong{font-size:4rem}.wind-primary p{display:grid;gap:3px}.push-card{display:grid}.push-card button{width:100%}.form-grid{grid-template-columns:1fr}}
.chart-shell{touch-action:none}
.topbar-actions{display:flex;align-items:center;gap:18px}.device-picker{min-width:190px;gap:4px}.device-picker span{color:var(--muted);font-size:.68rem}.device-picker select{border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);padding:8px 30px 8px 10px;font:inherit}.device-picker select:disabled{opacity:.75}.device-name-field{margin-bottom:14px;max-width:440px}
@media(max-width:600px){.topbar{align-items:flex-start}.topbar-actions{display:grid;justify-items:end;gap:8px}.device-picker{min-width:150px}.device-picker select{max-width:180px}.device-picker span{display:none}}
.status.online span{background:#45d483}.status.error span{background:var(--warning)}
