:root{--brix-page:#f1ede4;--brix-card:#fff;--brix-ink:#14201a;--brix-muted:#6c7770;--brix-line:#14201a14;--brix-line-strong:#14201a29;--brix-primary:#1f3a2e;--brix-primary-ink:#fff;--brix-solar:#c9893a;--brix-grid:#8a8170;--brix-battery:#5b8a6b;--brix-generator:#7c6a52;--brix-load:#14201a;--brix-good:#3f7a55;--brix-warn:#c08a2a;--brix-alert:#b04a3a;--brix-good-soft:#3f7a551f;--brix-warn-soft:#c08a2a24;--brix-alert-soft:#b04a3a1f;--brix-neutral-soft:#14201a0f;--brix-radius-s:8px;--brix-radius-m:12px;--brix-radius-l:18px;--brix-radius-xl:26px;--brix-font:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--brix-font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--brix-text-xs:11px;--brix-text-s:12px;--brix-text-m:13px;--brix-text-l:15px;--brix-text-xl:20px;--brix-text-xxl:28px;--brix-space-1:4px;--brix-space-2:8px;--brix-space-3:12px;--brix-space-4:16px;--brix-space-5:24px;--brix-space-6:32px;--brix-shadow:0 1px 2px #14201a0a, 0 4px 16px #14201a0a}*,:before,:after{box-sizing:border-box}html,body{background:var(--brix-page);color:var(--brix-ink);font-family:var(--brix-font);font-size:var(--brix-text-m);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}a{color:var(--brix-primary)}h1,h2{letter-spacing:-.01em;margin:0;font-weight:600}.mono{font-family:var(--brix-font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--brix-muted)}.small{font-size:var(--brix-text-s)}.nowrap{white-space:nowrap}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;align-items:center;gap:var(--brix-space-5);padding:var(--brix-space-2) var(--brix-space-5);background:var(--brix-primary);color:var(--brix-primary-ink);display:flex;position:sticky;top:0}.topbar__brand{align-items:center;gap:var(--brix-space-2);display:flex}.brand-mark{background:linear-gradient(180deg, var(--brix-page) 0 35%, var(--brix-battery) 35% 100%);border-radius:5px;width:18px;height:18px}.brand-mark--large{border-radius:10px;width:36px;height:36px}.brand-name{font-weight:700;font-size:var(--brix-text-l)}.brand-sub{opacity:.7;font-size:var(--brix-text-s)}.topbar__nav{gap:var(--brix-space-1);display:flex}.navlink{color:inherit;border-radius:var(--brix-radius-s);opacity:.75;padding:6px 12px;text-decoration:none}.navlink:hover{opacity:1}.navlink--active{opacity:1;background:#ffffff1f}.topbar__right{align-items:center;gap:var(--brix-space-3);margin-left:auto;display:flex}.topbar .btn--ghost{color:var(--brix-primary-ink);border-color:#ffffff40}.topbar .segmented{background:#ffffff1a}.topbar .segmented__item{color:#ffffffbf}.topbar .segmented__item--active{background:var(--brix-page);color:var(--brix-ink)}.operator{align-items:center;gap:var(--brix-space-2);display:flex}.content{padding:var(--brix-space-5);flex:1;width:100%;max-width:1680px;margin:0 auto}.page{gap:var(--brix-space-4);flex-direction:column;display:flex}.page__head{align-items:center;gap:var(--brix-space-4);flex-wrap:wrap;display:flex}.page__title{font-size:var(--brix-text-xl)}.toolbar{align-items:center;gap:var(--brix-space-3);flex-wrap:wrap;flex:1;display:flex}.refresh-note{color:var(--brix-muted);font-size:var(--brix-text-s);margin-left:auto}.breadcrumbs{gap:var(--brix-space-2);color:var(--brix-muted);font-size:var(--brix-text-s);display:flex}.card{background:var(--brix-card);border-radius:var(--brix-radius-l);box-shadow:var(--brix-shadow);padding:var(--brix-space-4);min-width:0}.card--flush{padding:0;overflow:hidden}.card__header{justify-content:space-between;align-items:center;gap:var(--brix-space-3);margin-bottom:var(--brix-space-3);display:flex}.card--flush .card__header{padding:var(--brix-space-4) var(--brix-space-4) 0}.card__title{font-size:var(--brix-text-l)}.card__actions{align-items:center;gap:var(--brix-space-2);display:flex}.card__foot{margin-top:var(--brix-space-3)}.btn{font:inherit;border-radius:var(--brix-radius-s);cursor:pointer;background:var(--brix-neutral-soft);color:var(--brix-ink);border:1px solid #0000;padding:8px 16px;font-weight:500}.btn:disabled{opacity:.45;cursor:default}.btn--primary{background:var(--brix-primary);color:var(--brix-primary-ink)}.btn--primary:not(:disabled):hover{filter:brightness(1.15)}.btn--ghost{border-color:var(--brix-line-strong);background:0 0}.btn--small{font-size:var(--brix-text-s);padding:4px 10px}.btn--block{width:100%}.input{font:inherit;border-radius:var(--brix-radius-s);border:1px solid var(--brix-line-strong);background:var(--brix-card);color:var(--brix-ink);min-width:0;padding:7px 10px}.input:focus,.btn:focus-visible,.segmented__item:focus-visible{outline:2px solid var(--brix-battery);outline-offset:1px}.input[aria-invalid=true]{border-color:var(--brix-alert)}.input--search{width:340px}.input--narrow{width:80px}.field{gap:var(--brix-space-1);flex-direction:column;display:flex}.field__label{font-size:var(--brix-text-s);color:var(--brix-muted);font-weight:500}.field__error{color:var(--brix-alert);font-size:var(--brix-text-s)}.segmented{border-radius:var(--brix-radius-s);background:var(--brix-neutral-soft);gap:2px;padding:2px;display:inline-flex}.segmented--wrap{flex-wrap:wrap}.segmented__item{font:inherit;color:var(--brix-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px}.segmented--small .segmented__item{font-size:var(--brix-text-s);padding:2px 8px}.segmented__item--active{background:var(--brix-card);color:var(--brix-ink);box-shadow:0 1px 2px #14201a1f}.badge{font-size:var(--brix-text-xs);white-space:nowrap;background:var(--brix-neutral-soft);color:var(--brix-ink);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-weight:600;display:inline-flex}.badge--good{background:var(--brix-good-soft);color:var(--brix-good)}.badge--warn{background:var(--brix-warn-soft);color:#8a6110}.badge--alert{background:var(--brix-alert-soft);color:var(--brix-alert)}.badge--info{color:var(--brix-primary);background:#5b8a6b29}.topbar .badge--info,.topbar .badge--neutral{color:var(--brix-primary-ink);background:#ffffff24}.status-dot-wrap{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.status-dot{border-radius:50%;flex:none;width:8px;height:8px}.status-dot--online{background:var(--brix-good);box-shadow:0 0 0 3px var(--brix-good-soft)}.status-dot--offline{background:var(--brix-muted);opacity:.5}.socbar{align-items:center;gap:6px;display:inline-flex}.socbar__track{background:var(--brix-neutral-soft);border-radius:3px;width:44px;height:6px;overflow:hidden}.socbar__fill{height:100%;display:block}.socbar__fill--good{background:var(--brix-battery)}.socbar__fill--warn{background:var(--brix-warn)}.socbar__fill--alert{background:var(--brix-alert)}.socbar__value{text-align:right;min-width:2.5ch}.notice{padding:var(--brix-space-2) var(--brix-space-3);border-radius:var(--brix-radius-s);font-size:var(--brix-text-s)}.notice--warn{background:var(--brix-warn-soft)}.notice--alert{background:var(--brix-alert-soft);color:var(--brix-alert)}.notice--neutral{background:var(--brix-neutral-soft);color:var(--brix-muted)}.banner{gap:var(--brix-space-2);padding:var(--brix-space-3) var(--brix-space-4);border-radius:var(--brix-radius-m);font-size:var(--brix-text-l);align-items:baseline;display:flex}.banner--alert{background:var(--brix-alert);color:#fff}.banner--warn{background:var(--brix-generator);color:#fff}.state-msg{padding:var(--brix-space-5);color:var(--brix-muted);text-align:center;gap:var(--brix-space-3);justify-content:center;align-items:center;display:flex}.state-msg--error{color:var(--brix-alert)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.table th,.table td{border-bottom:1px solid var(--brix-line);text-align:left;vertical-align:middle;padding:9px 12px}.table thead th{font-size:var(--brix-text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--brix-muted);white-space:nowrap;background:#f1ede480;font-weight:600}.table--compact th,.table--compact td{padding:6px 10px}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom:0}.table tbody th{color:var(--brix-muted);font-weight:500}.table .num{text-align:right}.table--interactive tbody tr{cursor:pointer}.table--interactive tbody tr:hover{background:#f1ede499}.row--highlight,.row--pending td{background:var(--brix-warn-soft)}.pending-mark{color:#8a6110;font-size:var(--brix-text-xs);font-style:italic;display:block}.serial-link{font-weight:600;text-decoration:none}.serial-link:hover{text-decoration:underline}.answer{overflow-wrap:anywhere;max-width:260px}.pager{justify-content:flex-end;align-items:center;gap:var(--brix-space-2);padding:var(--brix-space-2) var(--brix-space-4);border-top:1px solid var(--brix-line);display:flex}.pager .muted{margin-right:auto}.station-head{justify-content:space-between;gap:var(--brix-space-4);background:var(--brix-card);border-radius:var(--brix-radius-l);padding:var(--brix-space-4) var(--brix-space-5);box-shadow:var(--brix-shadow);flex-wrap:wrap;display:flex}.station-head__title{align-items:center;gap:var(--brix-space-3);display:flex}.station-head__serial{font-size:var(--brix-text-xl)}.station-head__name{color:var(--brix-muted);margin-top:2px}.facts{gap:var(--brix-space-1) var(--brix-space-5);grid-template-columns:repeat(5,auto);margin:0;display:grid}.facts dt{font-size:var(--brix-text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--brix-muted)}.facts dd{margin:0}.tiles-wrap{gap:var(--brix-space-2);flex-direction:column;display:flex}.tiles{gap:var(--brix-space-3);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.tile{background:var(--brix-card);border-radius:var(--brix-radius-m);padding:var(--brix-space-3) var(--brix-space-4);border-top:3px solid var(--tile-accent,var(--brix-line));box-shadow:var(--brix-shadow)}.tile__label{font-size:var(--brix-text-s);color:var(--brix-muted)}.tile__value{font-size:var(--brix-text-xxl);white-space:nowrap;font-weight:600;line-height:1.2}.tile__sub{font-size:var(--brix-text-s);color:var(--brix-muted);min-height:1.45em}.station-grid{gap:var(--brix-space-4);grid-template-columns:minmax(0,1fr) 380px;align-items:start;display:grid}.station-grid__main,.station-grid__side{gap:var(--brix-space-4);flex-direction:column;min-width:0;display:flex}.cmd-form{gap:var(--brix-space-2);padding-bottom:var(--brix-space-3);margin-bottom:var(--brix-space-3);border-bottom:1px solid var(--brix-line);flex-direction:column;display:flex}.cmd-form__row{align-items:center;gap:var(--brix-space-2);flex-wrap:wrap;display:flex}.cmd-note{margin:0}.alarm-active{gap:var(--brix-space-1);margin-bottom:var(--brix-space-3);flex-wrap:wrap;display:flex}.alarm-list{max-height:260px;margin:0;padding:0;list-style:none;overflow-y:auto}.alarm-list__item{align-items:center;gap:var(--brix-space-2);border-bottom:1px solid var(--brix-line);padding:5px 0;display:flex}.alarm-list__time{margin-left:auto}.alarm-dot{background:var(--brix-muted);opacity:.4;border-radius:50%;flex:none;width:7px;height:7px}.alarm-dot--on{background:var(--brix-alert);opacity:1}.chart{width:100%;min-height:280px}.chart .u-legend{font-size:var(--brix-text-s);text-align:left}.login{min-height:100vh;padding:var(--brix-space-5);place-items:center;display:grid;position:relative}.login__lang{top:var(--brix-space-4);right:var(--brix-space-4);position:absolute}.login__card{background:var(--brix-card);border-radius:var(--brix-radius-xl);width:360px;padding:var(--brix-space-6);gap:var(--brix-space-4);box-shadow:var(--brix-shadow);flex-direction:column;display:flex}.login__brand{gap:var(--brix-space-3);align-items:center;display:flex}.login__title{font-size:var(--brix-text-xl);font-weight:700}.login__subtitle{color:var(--brix-muted)}@media (max-width:1280px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.station-grid{grid-template-columns:minmax(0,1fr)}.facts{grid-template-columns:repeat(3,auto)}}
