@font-face{font-family:Cormorant;src:url(/fonts/CormorantGaramond.woff2) format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:InterVar;src:url(/fonts/Inter.woff2) format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}:root{--serif: "Cormorant", Didot, "Bodoni MT", Georgia, serif;--sans: "InterVar", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: #FAF8F4;--surface: #FFFFFF;--surface-2: #F4F1EA;--ink: #14130F;--muted: #6F6A60;--faint: #96907F;--line: #E4DFD5;--line-strong: #CFC8B9;--accent: #9A7B3F;--accent-soft: rgba(154, 123, 63, .1);--ok: #2F6B4F;--ok-soft: rgba(47, 107, 79, .1);--warn: #A9702A;--warn-soft: rgba(169, 112, 42, .12);--alarm: #8C2F39;--alarm-soft: rgba(140, 47, 57, .1);--offline: #8A8A82;--offline-soft: rgba(138, 138, 130, .12);--shadow: 0 24px 60px rgba(20, 19, 15, .1);color-scheme:light}:root[data-theme=dark]{--bg: #0C0C0D;--surface: #141416;--surface-2: #1B1B1E;--ink: #F2EFE9;--muted: #9B978D;--faint: #77746C;--line: #2A2A2E;--line-strong: #3A3A40;--accent: #C9A96A;--accent-soft: rgba(201, 169, 106, .12);--ok: #5FB08A;--ok-soft: rgba(95, 176, 138, .12);--warn: #D9A441;--warn-soft: rgba(217, 164, 65, .14);--alarm: #E06B63;--alarm-soft: rgba(224, 107, 99, .14);--offline: #7D7B75;--offline-soft: rgba(125, 123, 117, .16);--shadow: 0 24px 60px rgba(0, 0, 0, .55);color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-theme=auto]{--bg: #0C0C0D;--surface: #141416;--surface-2: #1B1B1E;--ink: #F2EFE9;--muted: #9B978D;--faint: #77746C;--line: #2A2A2E;--line-strong: #3A3A40;--accent: #C9A96A;--accent-soft: rgba(201, 169, 106, .12);--ok: #5FB08A;--ok-soft: rgba(95, 176, 138, .12);--warn: #D9A441;--warn-soft: rgba(217, 164, 65, .14);--alarm: #E06B63;--alarm-soft: rgba(224, 107, 99, .14);--offline: #7D7B75;--offline-soft: rgba(125, 123, 117, .16);--shadow: 0 24px 60px rgba(0, 0, 0, .55);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}html{scroll-padding-top:84px}body{font-variant-numeric:lining-nums;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}a{color:inherit;text-decoration:none}:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:var(--surface);padding:8px 14px;z-index:100}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:28px;padding:0 28px;height:68px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;gap:2px;flex:0 0 auto}.brand .word{font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;line-height:1;white-space:nowrap}.brand .sub{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1 1 auto}.nav::-webkit-scrollbar{display:none}.nav a{padding:8px 9px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid transparent;white-space:nowrap;transition:color .16s ease,border-color .16s ease}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:0 0 auto}.clock{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.04em}.live{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.live i{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.live.off i{background:var(--offline);box-shadow:0 0 0 3px var(--offline-soft)}.icon-btn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:2px;color:var(--muted);transition:border-color .16s ease,color .16s ease}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.bell{position:relative}.bell .count{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;display:grid;place-items:center;font-size:10px;font-weight:600;background:var(--alarm);color:#fff;border-radius:9px;padding:0 4px}.theme-seg{display:inline-flex;border:1px solid var(--line);border-radius:2px;overflow:hidden}.theme-seg button{padding:5px 7px;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.theme-seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.user{display:flex;align-items:center;gap:10px;padding-left:18px;border-left:1px solid var(--line)}.user .who{display:flex;flex-direction:column;line-height:1.25}.user .who b{font-size:12px;font-weight:500}.user .who span{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.page{max-width:1560px;margin:0 auto;padding:30px 28px 72px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 24px;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.page-title{font-family:var(--serif);font-size:38px;font-weight:400;line-height:1.05;letter-spacing:.005em}.page-sub{font-size:13px;color:var(--muted);max-width:62ch}.page-head .right{margin-left:auto;display:flex;align-items:center;gap:10px}.split{display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:26px;align-items:start}@media(max-width:1080px){.split{grid-template-columns:minmax(0,1fr)}}.serif{font-family:var(--serif)}.label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));border:1px solid var(--line);background:var(--surface)}.kpi{padding:16px 20px 18px;border-right:1px solid var(--line)}.kpi:last-child{border-right:0}.kpi .k-label{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.kpi .k-value{display:block;font-family:var(--serif);font-size:40px;line-height:1.05;margin-top:4px;font-variant-numeric:tabular-nums}.kpi .k-unit{font-family:var(--sans);font-size:11px;color:var(--muted);letter-spacing:.08em}.kpi[data-status=ok] .k-value{color:var(--ok)}.kpi[data-status=warning] .k-value{color:var(--warn)}.kpi[data-status=alarm] .k-value{color:var(--alarm)}.kpi[data-status=offline] .k-value{color:var(--offline)}.kpis button.kpi{text-align:left;width:100%;background:transparent;border-right:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.kpis button.kpi:last-child{border-right:0}.kpi .k-text{min-width:0}.kpi .k-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line);color:var(--faint);transition:color .16s ease,border-color .16s ease}.kpi[data-status=ok] .k-icon{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 32%,var(--line))}.kpi[data-status=warning] .k-icon{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 32%,var(--line))}.kpi[data-status=alarm] .k-icon{color:var(--alarm);border-color:color-mix(in srgb,var(--alarm) 32%,var(--line))}.kpi[data-status=offline] .k-icon{color:var(--offline);border-color:color-mix(in srgb,var(--offline) 28%,var(--line))}.kpi:hover .k-icon{border-color:var(--line-strong);color:var(--ink)}.kpi[data-status=ok]:hover .k-icon{color:var(--ok)}.kpi[data-status=warning]:hover .k-icon{color:var(--warn)}.kpi[data-status=alarm]:hover .k-icon{color:var(--alarm)}.kpis button.kpi[aria-pressed=true]{box-shadow:inset 0 -2px 0 var(--ink)}.kpis button.kpi[aria-pressed=true][data-status=ok]{box-shadow:inset 0 -2px 0 var(--ok)}.kpis button.kpi[aria-pressed=true][data-status=warning]{box-shadow:inset 0 -2px 0 var(--warn)}.kpis button.kpi[aria-pressed=true][data-status=alarm]{box-shadow:inset 0 -2px 0 var(--alarm)}.kpis button.kpi[aria-pressed=true][data-status=offline]{box-shadow:inset 0 -2px 0 var(--offline)}.kpi-hint{margin-top:8px;font-size:11px;color:var(--faint)}.dash-shell{display:grid;grid-template-columns:170px minmax(0,1fr) 344px;gap:22px;align-items:start}@media(max-width:1360px){.dash-shell{grid-template-columns:minmax(0,1fr) 344px}.type-rail{grid-column:1 / -1}}@media(max-width:1080px){.dash-shell{grid-template-columns:minmax(0,1fr)}}.type-rail{position:sticky;top:88px;display:grid;gap:1px;align-content:start}.type-rail button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-left:1px solid var(--line);text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:color .16s ease,border-color .16s ease,background .16s ease}.type-rail button:hover{color:var(--ink);border-left-color:var(--line-strong)}.type-rail button[aria-current=true]{color:var(--ink);border-left:2px solid var(--ink);background:var(--surface)}.type-rail .count{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}@media(max-width:1360px){.type-rail{position:static;display:flex;flex-wrap:wrap;gap:6px}.type-rail button{border:1px solid var(--line);padding:6px 10px;background:var(--surface)}.type-rail button[aria-current=true]{border:1px solid var(--ink);border-left-width:1px}}.section{margin-bottom:38px}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:16px}.section-head .idx{font-size:10px;letter-spacing:.2em;color:var(--accent)}.section-head h3{font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.section-head h3 .full-name{margin-left:8px;font-family:var(--sans);font-size:11.5px;font-weight:400;letter-spacing:.06em;text-transform:none;color:var(--muted)}.section-head .meta{font-size:12px;color:var(--muted)}.section-head .right{margin-left:auto;display:flex;align-items:center;gap:6px}.card{background:var(--surface);border:1px solid var(--line);padding:18px 20px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.card h3,.card h4{font-size:13px;font-weight:500}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px}.dcard{position:relative;background:var(--surface);border:1px solid var(--line);padding:16px 18px 14px;display:flex;flex-direction:column;gap:12px;overflow:hidden;transition:border-color .18s ease,transform .18s ease}.dcard:before{content:"";position:absolute;inset:-1px -1px auto;height:2px;background:transparent;z-index:2}.dcard[data-status=ok]:before{background:var(--ok);opacity:.55}.dcard[data-status=warning]:before{background:var(--warn)}.dcard[data-status=alarm]:before{background:var(--alarm)}.dcard[data-status=offline]:before{background:var(--offline)}.dcard:hover{border-color:var(--line-strong)}.dcard .d-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;text-align:left}.dcard .d-title{min-width:0}.dcard .d-code{font-family:var(--serif);font-size:20px;letter-spacing:.03em;line-height:1}.dcard .d-type{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:5px}.dcard .params{display:grid;gap:0}.dcard .param{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}.dcard .param:last-child{border-bottom:0}.dcard .param dt{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.dcard .param dd{margin:0;font-size:13px;font-variant-numeric:tabular-nums}.dcard .d-foot{font-size:10.5px;color:var(--faint);letter-spacing:.02em}.dcard .d-glyph{position:absolute;top:-30px;left:-26px;width:60%;max-width:210px;height:auto;color:var(--ink);opacity:.1;pointer-events:none;-webkit-mask-image:linear-gradient(140deg,#000 0%,rgba(0,0,0,.6) 46%,rgba(0,0,0,.18) 72%,transparent 92%);mask-image:linear-gradient(140deg,#000 0%,rgba(0,0,0,.6) 46%,rgba(0,0,0,.18) 72%,transparent 92%)}.dcard>*:not(.d-glyph){position:relative;z-index:1}.status{display:inline-flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.status i{width:6px;height:6px;display:inline-block;transform:rotate(45deg);background:currentColor}.status[data-status=ok]{color:var(--ok)}.status[data-status=warning]{color:var(--warn)}.status[data-status=alarm]{color:var(--alarm)}.status[data-status=offline]{color:var(--offline)}.status i.round{border-radius:50%;transform:none}.status[data-status=offline] i{background:transparent;border:1px solid currentColor}.tabs{display:inline-flex;gap:0;border:1px solid var(--line);background:var(--surface)}.tabs button{padding:8px 16px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--line)}.tabs button:last-child{border-right:0}.tabs button[aria-selected=true]{background:var(--ink);color:var(--bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-strong);padding:8px 16px;min-height:38px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;background:var(--surface);color:var(--ink);transition:background .16s ease,border-color .16s ease,color .16s ease}.btn:hover{border-color:var(--ink)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:hover{opacity:.88}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn.ghost:hover{color:var(--ink)}.btn.danger{background:var(--alarm);border-color:var(--alarm);color:#fff}.btn.danger:hover{background:color-mix(in srgb,var(--alarm) 84%,#000)}.btn.danger.ghost{background:transparent;border-color:transparent;color:var(--alarm)}.btn.danger.ghost:hover{background:var(--alarm-soft);color:var(--alarm)}.btn.sm{padding:5px 10px;min-height:30px;font-size:9.5px}.btn:disabled{opacity:.45;cursor:not-allowed}.filters{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;margin-bottom:18px}.filters .btn,.filters .btn.sm{min-height:38px;padding:0 14px}.filters .zoom{display:inline-flex;height:38px;border:1px solid var(--line);background:var(--surface)}.filters .zoom .btn,.filters .zoom .btn.sm{min-height:0;height:100%;border:0;border-right:1px solid var(--line);padding:0 12px}.filters .zoom .btn:last-child{border-right:0;min-width:62px}.filters .count{display:inline-flex;align-items:center;min-height:38px;font-size:12px}.field{display:grid;gap:5px;align-content:end}.field>span{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}input,select{background:var(--surface);border:1px solid var(--line);border-radius:0;height:38px;padding:0 10px;font-size:13px;min-width:0}input:focus,select:focus{border-color:var(--accent);outline:none}input[aria-invalid=true]{border-color:var(--alarm)}.err{color:var(--alarm);font-size:11px;min-height:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.table-wrap{border:1px solid var(--line);background:var(--surface);overflow-x:auto}table.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:11px 14px;border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface)}.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr[data-clickable]{cursor:pointer}.tbl tbody tr[data-clickable]:hover{background:var(--surface-2)}.tbl td.n,.tbl th.n{text-align:right;font-variant-numeric:tabular-nums}.tbl td.serif-cell{font-size:12.5px;font-weight:500;letter-spacing:.06em;font-variant-numeric:tabular-nums}.bar{display:flex;height:6px;min-width:90px;background:var(--offline-soft)}.bar i{display:block;height:100%}.bar i[data-status=ok]{background:var(--ok)}.bar i[data-status=warning]{background:var(--warn)}.bar i[data-status=alarm]{background:var(--alarm)}.bar i[data-status=offline]{background:var(--offline)}.alarm-item{display:grid;gap:3px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-left-width:2px;padding:11px 13px;margin-bottom:8px;transition:border-color .16s ease}.alarm-item:hover{border-color:var(--line-strong)}.alarm-item[data-severity=warning]{border-left-color:var(--warn)}.alarm-item[data-severity=alarm]{border-left-color:var(--alarm)}.alarm-item[data-severity=offline]{border-left-color:var(--offline)}.alarm-item .a-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.alarm-item .a-code{font-family:var(--serif);font-size:16px;letter-spacing:.04em}.alarm-item .a-kind{font-size:12.5px}.alarm-item .a-meta{font-size:10.5px;color:var(--muted);letter-spacing:.02em}.aside-panel{position:sticky;top:88px;max-height:calc(100vh - 108px);overflow:auto;background:var(--surface);border:1px solid var(--line);padding:18px}.aside-panel::-webkit-scrollbar{width:8px}.aside-panel::-webkit-scrollbar-thumb{background:var(--line-strong)}@media(max-width:1080px){.aside-panel{position:static;max-height:none}}.overlay{position:fixed;inset:0;z-index:80;background:#0a0a0a8c;display:grid;place-items:center;padding:24px;animation:fade .16s ease}.modal{background:var(--surface);border:1px solid var(--line-strong);width:min(620px,94vw);max-height:88vh;overflow:auto;box-shadow:var(--shadow);animation:rise .2s cubic-bezier(.2,.7,.2,1)}.modal.wide{width:min(940px,96vw)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 16px;border-bottom:1px solid var(--line)}.modal-head h2{font-family:var(--serif);font-size:27px;font-weight:400;line-height:1.1}.modal-body{padding:20px 24px}.modal-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:16px 24px 22px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.chart{width:100%}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart .axis{stroke:var(--line);stroke-width:1}.chart .grid-line{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4;opacity:.7}.chart .line{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--accent);opacity:.07}.chart .tick{fill:var(--muted);font-size:9.5px;letter-spacing:.06em;font-family:var(--sans)}.chart .dot{fill:var(--accent)}.toast-host{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:120;display:grid;gap:8px;width:max-content;max-width:92vw}.toast{background:var(--ink);color:var(--bg);padding:11px 18px;font-size:12.5px;letter-spacing:.02em;box-shadow:var(--shadow);animation:rise .18s ease}.toast.bad{background:var(--alarm);color:#fff}.empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed var(--line)}.note{font-size:11.5px;color:var(--muted);line-height:1.7}.pill{display:inline-block;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border:1px solid var(--line-strong);color:var(--muted)}.pill.demo{border-color:var(--warn);color:var(--warn)}.timeline{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--line)}.timeline li{position:relative;padding:0 0 16px 14px}.timeline li:before{content:"";position:absolute;left:-18px;top:6px;width:6px;height:6px;background:var(--accent);transform:rotate(45deg)}.timeline .t{font-size:10.5px;color:var(--muted);letter-spacing:.04em}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.spacer{flex:1}@media(max-width:1560px){.clock{display:none}}@media(max-width:1500px){.pill.demo{display:none}}@media(max-width:1180px){.topbar{height:auto;padding:12px 20px;flex-wrap:wrap;gap:10px 18px}.nav{order:3;width:100%;flex:1 1 100%}.topbar-right{margin-left:auto}.clock{display:none}}@media(max-width:760px){.topbar{padding:10px 16px;gap:8px 12px}.nav{order:3;width:100%}.topbar-right{gap:8px}.theme-seg button{padding:5px 6px;font-size:9px}.pill.demo,.user .who{display:none}.page{padding:20px 16px 60px}.page-title{font-size:30px}.kpi .k-value{font-size:32px}.kpi{padding:12px 14px}}@media print{.topbar,.filters,.no-print,.toast-host{display:none!important}body{background:#fff;color:#000}.card,.table-wrap,.kpis{break-inside:avoid}.page{max-width:none;padding:0}}.kpi .k-value,.dcard .d-code,.alarm-item .a-code,.serif-cell,.sensor-value,.brand .word{font-feature-settings:"lnum" 1;font-variant-numeric:lining-nums tabular-nums}.with-icon{display:inline-flex;align-items:center;gap:7px}.points-scroll{max-height:240px;overflow:auto;border:1px solid var(--line);margin-top:6px}.points-scroll table.tbl th{position:sticky;top:0;z-index:2}.points-scroll table.tbl td,.points-scroll table.tbl th{padding:7px 12px}.points-scroll .empty-row{padding:22px;text-align:center;color:var(--muted);font-size:12px}.device-row{animation:card-in .52s cubic-bezier(.22,.7,.2,1) backwards;animation-delay:calc(var(--i, 0) * 20ms)}.device-detail{animation:card-in .56s cubic-bezier(.22,.7,.2,1) backwards}.tbl tbody tr.row-in{animation:fade-in .42s ease backwards;animation-delay:calc(var(--i, 0) * 14ms)}.page-enter{animation:page-in .46s cubic-bezier(.22,.7,.2,1) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.dcard{animation:card-in .56s cubic-bezier(.22,.7,.2,1) backwards;animation-delay:calc(var(--i, 0) * 26ms);transition:border-color .18s ease,transform .22s cubic-bezier(.22,.7,.2,1),box-shadow .22s ease}@keyframes card-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.dcard:hover{transform:translateY(-2px);box-shadow:0 10px 26px #14130f0f}.chart .line{stroke-dasharray:1;stroke-dashoffset:1;animation:draw-line 1.2s cubic-bezier(.4,0,.2,1) 80ms forwards}@keyframes draw-line{to{stroke-dashoffset:0}}.live i{animation:pulse-dot 2.6s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 3px var(--ok-soft)}50%{box-shadow:0 0 0 7px transparent}}.live.off i{animation:none;box-shadow:0 0 0 3px var(--offline-soft)}.kpi{transition:background .2s ease}.kpi:hover{background:var(--surface-2)}.section-head{animation:fade-in .62s ease backwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .26s cubic-bezier(.22,.7,.2,1)}.nav a:hover:after{transform:scaleX(.6)}.nav a[aria-current=page]:after{transform:scaleX(1);background:var(--ink)}.toast{animation:toast-in .26s cubic-bezier(.22,.7,.2,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.page-enter,.dcard,.section-head,.toast,.live i,.marker .halo,.splash,.device-row,.device-detail,.tbl tbody tr.row-in{animation:none!important}.chart .line{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}.dcard:hover{transform:none}.nav a:after{transition:none}}body.is-splashing{overflow:hidden}a.dcard{color:inherit;text-decoration:none;display:flex}.menu-btn,.nav-sheet{display:none}@media(max-width:760px){html{scroll-padding-top:74px}.page{padding:18px 14px 64px}.page-head{margin-bottom:18px;align-items:flex-start;gap:10px}.page-title{font-size:27px}.page-sub{max-width:none;font-size:12.5px}.page-head .right{width:100%;margin-left:0;flex-wrap:wrap}.eyebrow{font-size:9.5px}.tabs{display:flex;width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:1 0 auto;white-space:nowrap;padding:9px 12px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.filters .field{display:grid}.filters .field:first-child{grid-column:1 / -1}.filters .btn,.filters .btn.sm,.filters .zoom{width:100%}.filters .zoom .btn{flex:1}.filters .count{grid-column:1 / -1;min-height:0}.filters>.btn,.filters>.zoom{grid-column:1 / -1}.filters .spacer{display:none}input,select{width:100%}.kpis{grid-template-columns:1fr 1fr}.kpis .kpi:nth-child(2n){border-right:0}.kpis .kpi:nth-child(n+3){border-top:1px solid var(--line)}.kpis .kpi:last-child{grid-column:1 / -1}.kpi{padding:12px 14px 14px}.kpi .k-value{font-size:32px}.kpi .k-icon{width:38px;height:38px}.kpi-hint{font-size:10.5px}.overlay{padding:0;align-items:end;height:100dvh}.modal,.modal.wide{width:100%;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);display:flex;flex-direction:column;overflow:hidden;border-left:0;border-right:0;border-bottom:0}.modal-head{flex:0 0 auto;padding:14px 16px 12px;background:var(--surface);border-bottom:1px solid var(--line);z-index:2;align-items:center}.modal-head>div{min-width:0}.modal-head h2{font-size:21px;line-height:1.15;overflow-wrap:anywhere}.modal-head .eyebrow{overflow-wrap:anywhere}.modal-head .icon-btn{flex:none}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 16px calc(16px + env(safe-area-inset-bottom))}.modal-foot{flex:0 0 auto;border-top:1px solid var(--line);padding:12px 16px calc(14px + env(safe-area-inset-bottom))}}@media(max-width:760px){.topbar{height:58px;padding:0 14px;gap:10px;flex-wrap:nowrap;align-items:center;background:color-mix(in srgb,var(--bg) 94%,transparent)}.brand{flex:1 1 auto;min-width:0}.brand .sub{display:none}.brand .word{font-size:15px;letter-spacing:.16em}.brand-line{gap:8px}.nav{display:none}.menu-btn{display:grid}.topbar-right{margin-left:0;gap:6px}.topbar-right .clock,.topbar-right .pill.demo,.topbar-right .theme-seg,.topbar-right .user .who{display:none}.topbar-right .live{display:inline-flex}.live-text{display:none}.user{padding-left:0;border-left:0}.icon-btn{width:34px;height:34px}.nav-sheet{display:grid;gap:6px;position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--surface);border-bottom:1px solid var(--line-strong);box-shadow:var(--shadow);padding:8px 16px 16px}.nav-sheet nav{display:grid}.nav-sheet a{padding:11px 2px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}.nav-sheet a[aria-current=page]{color:var(--accent)}.nav-sheet-row{display:flex;gap:10px;padding-top:10px}.nav-sheet-row .theme-seg{flex:1;justify-content:space-between}.nav-sheet-row .theme-seg button{flex:1;padding:8px 6px}.nav-sheet-user{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px}.nav-sheet-user .who{display:grid;line-height:1.3}.nav-sheet-user .who b{font-size:12.5px;font-weight:500}.nav-sheet-user .who span{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.bell-panel{top:62px;right:10px;left:10px;width:auto}}@media(max-width:760px){.section-head{gap:4px 10px}.section-head h3{font-size:18px;letter-spacing:.04em}.section-head h3 .full-name{margin-left:6px;font-size:10.5px;letter-spacing:.04em}.section-head .meta{font-size:11px}.dcard{padding:14px 14px 12px}.dcard .d-glyph{top:-40px;left:-26px;width:46%;max-width:150px}.dcard .d-code{font-size:19px}.dcard .d-type{font-size:9.5px}.dcard .param dt{font-size:11.5px}.dcard .param dd{font-size:12.5px}}@media(max-width:900px){.table-wrap:has(.tbl-stack){border:0;background:transparent;overflow:visible}.tbl-stack,.tbl-stack tbody{display:block;width:100%}.tbl-stack thead{display:none}.tbl-stack tbody tr{display:block;border:1px solid var(--line);background:var(--surface);padding:11px 13px;margin-bottom:10px}.tbl-stack tbody tr:last-child{margin-bottom:0}.tbl-stack tbody td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:4px 0;border:0;white-space:normal;font-size:12.5px;text-align:right}.tbl-stack tbody td:before{content:attr(data-label);flex:0 0 40%;text-align:left;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.tbl-stack tbody td.td-title:before{content:none}.tbl-stack tbody td.actions{display:flex;gap:8px;padding:10px 0 0}.tbl-stack tbody td.actions:before{content:none}.tbl-stack tbody td.actions .btn{flex:1}.tbl-stack tbody td .bar{width:100%;min-width:0}.tbl-stack tbody td input,.tbl-stack tbody td select{width:100%!important}.tbl-stack tbody td.td-title{display:block;text-align:left;padding:0 0 8px;font-family:var(--serif);font-size:17px;letter-spacing:.02em}.tbl-stack tbody td.td-title .device-name{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}.tbl-stack tbody tr.empty-row td{display:block;text-align:center;padding:14px 4px}.tbl-stack tbody tr.empty-row td:before{content:none}}@media(min-width:601px)and (max-width:900px){.tbl-stack tbody{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.tbl-stack tbody tr{margin-bottom:0}.tbl-stack tbody tr.empty-row{grid-column:1 / -1}}@media(max-width:760px){.modal .row>.btn{flex:1 1 auto;justify-content:center}.modal-body .row{gap:8px}}.splash.svelte-1n8ds2t{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--bg);animation:svelte-1n8ds2t-veil 2.08s cubic-bezier(.22,.7,.2,1) forwards}.splash.hold.svelte-1n8ds2t{animation:none}.splash-frame.svelte-1n8ds2t{position:absolute;inset:18px;border:1px solid var(--line);border-radius:2px;opacity:0;animation:svelte-1n8ds2t-fade-up .9s ease .18s forwards}.splash-inner.svelte-1n8ds2t{display:grid;justify-items:center;gap:14px}.splash-mark.svelte-1n8ds2t{animation:svelte-1n8ds2t-mark-in .9s cubic-bezier(.22,.7,.2,1) both}.splash-mark.svelte-1n8ds2t svg path{stroke-dasharray:420;stroke-dashoffset:420;animation:svelte-1n8ds2t-draw 1.4s cubic-bezier(.4,0,.2,1) .12s forwards}.splash-word.svelte-1n8ds2t{font-family:var(--serif);font-size:30px;letter-spacing:.9em;text-indent:.9em;color:var(--ink);animation:svelte-1n8ds2t-tracking 1.4s cubic-bezier(.22,.7,.2,1) .22s forwards}.splash-sub.svelte-1n8ds2t{font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:var(--muted);opacity:0;animation:svelte-1n8ds2t-fade-up .7s ease .7s forwards}.splash-line.svelte-1n8ds2t{display:block;width:0;height:1px;background:var(--accent);animation:svelte-1n8ds2t-rule .9s cubic-bezier(.22,.7,.2,1) .62s forwards}@keyframes svelte-1n8ds2t-draw{to{stroke-dashoffset:0}}@keyframes svelte-1n8ds2t-mark-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes svelte-1n8ds2t-tracking{0%{letter-spacing:.9em;opacity:0}to{letter-spacing:.34em;opacity:1}}@keyframes svelte-1n8ds2t-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes svelte-1n8ds2t-rule{to{width:148px}}@keyframes svelte-1n8ds2t-veil{0%,74%{opacity:1}to{opacity:0;visibility:hidden;clip-path:inset(0 0 100% 0)}}.confirm-message.svelte-1efofyg{font-size:13px;line-height:1.65;color:var(--ink-2, var(--ink));margin:2px 0 0}.login.svelte-1428x5h{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);background:var(--bg)}@media(max-width:900px){.login.svelte-1428x5h{grid-template-columns:1fr}.art.svelte-1428x5h{min-height:42vh}}.art.svelte-1428x5h{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:44px 46px;background:#0b0b0c;color:#f4f1ea;overflow:hidden}.art-lines.svelte-1428x5h{position:absolute;inset:0;opacity:.14}.art-lines.svelte-1428x5h span:where(.svelte-1428x5h){position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#C9A96A 30%,#C9A96A 70%,transparent)}.art-top.svelte-1428x5h{position:relative}.mark-line.svelte-1428x5h{display:flex;align-items:center;gap:12px;color:#f4f1ea}.mark.svelte-1428x5h{font-family:var(--serif);font-size:26px;letter-spacing:.44em}.mark-sub.svelte-1428x5h{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:#9b978d;margin-top:6px}.art-mid.svelte-1428x5h{position:relative;max-width:460px}.art-mid.svelte-1428x5h h1:where(.svelte-1428x5h){font-family:var(--serif);font-size:clamp(38px,5vw,62px);font-weight:300;line-height:1.02;letter-spacing:-.005em}.art-mid.svelte-1428x5h p:where(.svelte-1428x5h){color:#b8b2a6;font-size:13.5px;margin-top:18px;max-width:40ch;line-height:1.7}.art-foot.svelte-1428x5h{position:relative;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8c877c}.demo-pill.svelte-1428x5h{border:1px solid #4A4438;padding:4px 9px;color:#c9a96a}.form-side.svelte-1428x5h{display:grid;place-items:center;padding:40px 24px}.form.svelte-1428x5h{width:min(360px,100%);display:grid;gap:14px}.form.svelte-1428x5h h2:where(.svelte-1428x5h){font-family:var(--serif);font-size:34px;font-weight:400;line-height:1.1;margin-top:4px}.hint.svelte-1428x5h{font-size:12.5px;color:var(--muted);margin-bottom:8px}.submit.svelte-1428x5h{margin-top:8px;justify-content:center;padding:11px 18px}.fine.svelte-1428x5h{font-size:10.5px;color:var(--faint);letter-spacing:.03em;margin-top:6px}.detail-grid.svelte-nvtdet{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 20px;margin:0 0 6px}.detail-grid.svelte-nvtdet dt:where(.svelte-nvtdet){font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.detail-grid.svelte-nvtdet dd:where(.svelte-nvtdet){margin:2px 0 0;font-size:13.5px}.sensor-icon.svelte-1wljky9{display:inline-flex;align-items:center;vertical-align:middle;color:var(--accent);opacity:.85;flex:none}.sensor-icon[data-status=warning].svelte-1wljky9{color:var(--warn)}.sensor-icon[data-status=alarm].svelte-1wljky9{color:var(--alarm)}.sensor-icon[data-status=offline].svelte-1wljky9{color:var(--offline)}.sensor-icon[data-status=muted].svelte-1wljky9{color:var(--faint)}.device-split.svelte-118ro6e{display:grid;grid-template-columns:176px minmax(0,1fr);gap:18px;align-items:start}@media(max-width:760px){.device-split.svelte-118ro6e{grid-template-columns:1fr}}.device-list.svelte-118ro6e{display:grid;gap:6px;align-content:start;max-height:640px;overflow:auto}.device-row.svelte-118ro6e{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);text-align:left}.device-row[aria-current=true].svelte-118ro6e{border-color:var(--ink);box-shadow:inset 2px 0 0 var(--ink)}.device-row.svelte-118ro6e .code:where(.svelte-118ro6e){font-family:var(--serif);font-size:16px;letter-spacing:.04em}.device-detail.svelte-118ro6e{padding:22px 24px}.meta-grid.svelte-118ro6e{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 18px;margin:6px 0 0}.meta-grid.svelte-118ro6e dt:where(.svelte-118ro6e){font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.meta-grid.svelte-118ro6e dd:where(.svelte-118ro6e){margin:2px 0 0;font-size:13px}.alert-inline.svelte-118ro6e{margin-top:12px;padding:10px 12px;border-left:2px solid var(--offline);background:var(--offline-soft);font-size:12.5px}@media(max-width:760px){.device-split.svelte-118ro6e{grid-template-columns:1fr;gap:12px}.device-list.svelte-118ro6e{display:flex;overflow-x:auto;max-height:none;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.device-list.svelte-118ro6e::-webkit-scrollbar{display:none}.device-row.svelte-118ro6e{flex:none;padding:8px 12px}.device-detail.svelte-118ro6e{padding:16px 14px}.meta-grid.svelte-118ro6e{grid-template-columns:1fr;gap:8px}.meta-grid.svelte-118ro6e dd:where(.svelte-118ro6e){overflow-wrap:anywhere}}.map-grid.svelte-xhnypc{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}@media(max-width:1080px){.map-grid.svelte-xhnypc{grid-template-columns:minmax(0,1fr)}}.mapbox.svelte-xhnypc{position:relative;background:var(--surface);border:1px solid var(--line);padding:8px}.mapbox.svelte-xhnypc svg:where(.svelte-xhnypc){display:block;width:100%;height:auto;touch-action:none;cursor:grab}.mapbox.svelte-xhnypc svg:where(.svelte-xhnypc):active{cursor:grabbing}.marker.svelte-xhnypc{cursor:pointer}.marker.svelte-xhnypc .halo:where(.svelte-xhnypc){fill:none;stroke:currentColor;stroke-width:1;opacity:.5;transform-box:fill-box;transform-origin:center;animation:svelte-xhnypc-halo 2.6s ease-out infinite}.marker[data-status=alarm].svelte-xhnypc .halo:where(.svelte-xhnypc){stroke:var(--alarm)}.marker[data-status=warning].svelte-xhnypc .halo:where(.svelte-xhnypc){stroke:var(--warn)}@keyframes svelte-xhnypc-halo{0%{transform:scale(.6);opacity:.55}70%{transform:scale(1.6);opacity:0}to{transform:scale(1.6);opacity:0}}.marker.svelte-xhnypc circle:where(.svelte-xhnypc),.marker.svelte-xhnypc path:where(.svelte-xhnypc){fill:var(--ok)}.marker[data-status=warning].svelte-xhnypc circle:where(.svelte-xhnypc),.marker[data-status=warning].svelte-xhnypc path:where(.svelte-xhnypc){fill:var(--warn)}.marker[data-status=alarm].svelte-xhnypc circle:where(.svelte-xhnypc),.marker[data-status=alarm].svelte-xhnypc path:where(.svelte-xhnypc){fill:var(--alarm)}.marker[data-status=offline].svelte-xhnypc circle:where(.svelte-xhnypc){fill:none;stroke:var(--offline);stroke-width:2}.marker-label.svelte-xhnypc{fill:var(--ink);font-size:10px;letter-spacing:.06em;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.legend.svelte-xhnypc{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11px;color:var(--muted)}.legend.svelte-xhnypc i:where(.svelte-xhnypc){display:inline-block;width:7px;height:7px;margin-right:6px;transform:rotate(45deg);background:var(--ok)}.legend.svelte-xhnypc i[data-status=warning]:where(.svelte-xhnypc){background:var(--warn)}.legend.svelte-xhnypc i[data-status=alarm]:where(.svelte-xhnypc){background:var(--alarm)}.legend.svelte-xhnypc i[data-status=offline]:where(.svelte-xhnypc){background:transparent;border:1px solid var(--offline)}.meta-grid.svelte-xhnypc{display:grid;gap:8px;margin:12px 0 0}.meta-grid.svelte-xhnypc dt:where(.svelte-xhnypc){font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.meta-grid.svelte-xhnypc dd:where(.svelte-xhnypc){margin:1px 0 0;font-size:13px}.plan-hint.svelte-xhnypc{position:absolute;left:16px;right:16px;bottom:14px;font-size:11.5px;color:var(--muted);background:color-mix(in srgb,var(--surface) 92%,transparent);border-left:2px solid var(--accent);padding:8px 10px}@media(max-width:760px){.filters.svelte-xhnypc .field:where(.svelte-xhnypc):first-child{grid-column:span 1}.filters.svelte-xhnypc .zoom:where(.svelte-xhnypc){grid-column:1 / -1}.mapbox.svelte-xhnypc{padding:6px}.plan-hint.svelte-xhnypc{left:10px;right:10px;bottom:10px;font-size:10.5px}}.pager.svelte-bv30mo{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:14px;font-size:12px}.report-head.svelte-iufsej{display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between;align-items:flex-end;padding-bottom:14px;border-bottom:1px solid var(--line-strong);margin-bottom:22px}.report-head.svelte-iufsej h2:where(.svelte-iufsej){font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:.01em;margin-top:4px}.meta.svelte-iufsej{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:11.5px;color:var(--muted)}.meta.svelte-iufsej .label:where(.svelte-iufsej){margin-right:4px}.sensor-section.svelte-iufsej{margin-bottom:34px}.sensor-grid.svelte-iufsej{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.sensor.svelte-iufsej{text-align:left;padding:14px 16px;display:grid;gap:6px}.sensor.svelte-iufsej:hover{border-color:var(--line-strong)}.sensor-head.svelte-iufsej{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.sensor-value.svelte-iufsej{font-family:var(--serif);font-size:24px;letter-spacing:.02em}.sensor-value.svelte-iufsej small:where(.svelte-iufsej){font-family:var(--sans);font-size:11px;color:var(--muted)}.sensor-state.svelte-iufsej{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.sensor-state[data-status=ok].svelte-iufsej{color:var(--ok)}.sensor-state[data-status=warning].svelte-iufsej{color:var(--warn)}.binary-big.svelte-iufsej{font-family:var(--serif);font-size:38px;letter-spacing:.04em;margin:6px 0 14px}.binary-big[data-status=ok].svelte-iufsej{color:var(--ok)}.binary-big[data-status=warning].svelte-iufsej{color:var(--warn)}.sensor-stats.svelte-iufsej{font-size:10.5px;color:var(--muted)}.notes.svelte-iufsej{margin-top:20px;display:grid;gap:4px;font-size:11.5px;color:var(--muted);max-width:90ch}.sensor-detail.svelte-iufsej{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0 0}.sensor-detail.svelte-iufsej dt:where(.svelte-iufsej){font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.sensor-detail.svelte-iufsej dd:where(.svelte-iufsej){margin:2px 0 0;font-size:14px;font-variant-numeric:tabular-nums}.points-head.svelte-iufsej{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.device-grid.svelte-1qy3nhb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.78fr);gap:20px;align-items:start}@media(max-width:1080px){.device-grid.svelte-1qy3nhb{grid-template-columns:minmax(0,1fr)}}.groups.svelte-1qy3nhb{display:grid;gap:22px}.group-head.svelte-1qy3nhb{display:flex;align-items:center;gap:12px;margin-bottom:10px}.group-head.svelte-1qy3nhb .idx:where(.svelte-1qy3nhb){font-size:10px;letter-spacing:.18em;color:var(--faint)}.group-title.svelte-1qy3nhb h3:where(.svelte-1qy3nhb){margin:0;font-size:15px;font-family:var(--serif);letter-spacing:.12em}.group-title.svelte-1qy3nhb .meta:where(.svelte-1qy3nhb){font-size:11px;color:var(--muted);letter-spacing:.04em}.group-head.svelte-1qy3nhb .locked:where(.svelte-1qy3nhb){margin-left:auto;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.group-head.svelte-1qy3nhb .btn:where(.svelte-1qy3nhb){flex:none}.group[data-empty=true].svelte-1qy3nhb .group-head:where(.svelte-1qy3nhb) .locked:where(.svelte-1qy3nhb){margin-left:auto}.group-empty.svelte-1qy3nhb{padding:14px 2px}@media(max-width:760px){.group-head.svelte-1qy3nhb{flex-wrap:wrap;gap:6px 10px}.group-title.svelte-1qy3nhb{flex:1 1 100%;order:2}.group-head.svelte-1qy3nhb .idx:where(.svelte-1qy3nhb){order:1}.group-head.svelte-1qy3nhb .locked:where(.svelte-1qy3nhb){display:none}.group-head.svelte-1qy3nhb .btn:where(.svelte-1qy3nhb){flex:1 1 100%;order:3}.group-title.svelte-1qy3nhb h3:where(.svelte-1qy3nhb){font-size:16px}}.actions.svelte-1qy3nhb{white-space:nowrap;text-align:right}.actions.svelte-1qy3nhb .btn:where(.svelte-1qy3nhb){padding:4px 8px;font-size:10.5px}.actions.svelte-1qy3nhb .btn.danger:where(.svelte-1qy3nhb){color:var(--alarm)}.config.svelte-1qy3nhb{padding:22px 24px}.device-name.svelte-1qy3nhb{display:block;font-size:10px;color:var(--muted);letter-spacing:.02em}.alert-inline.svelte-1qy3nhb{margin-top:12px;padding:10px 12px;border-left:2px solid var(--accent);background:var(--accent-soft);font-size:12.5px}.timeline.svelte-1qy3nhb{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--line)}.timeline.svelte-1qy3nhb li:where(.svelte-1qy3nhb){position:relative;padding:0 0 14px 14px;font-size:12.5px}.timeline.svelte-1qy3nhb li:where(.svelte-1qy3nhb):before{content:"";position:absolute;left:-18px;top:6px;width:6px;height:6px;background:var(--accent);transform:rotate(45deg)}.timeline.svelte-1qy3nhb .t:where(.svelte-1qy3nhb){font-size:10.5px;color:var(--muted)}.modbus-panel.svelte-1qy3nhb{border:1px solid var(--line);background:var(--surface);padding:16px 18px 18px;margin-bottom:22px}.modbus-head.svelte-1qy3nhb{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.modbus-grid.svelte-1qy3nhb{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.modbus-card.svelte-1qy3nhb{border:1px solid var(--line);padding:12px 14px;display:grid;gap:10px}.modbus-card[data-live=true].svelte-1qy3nhb{border-left:2px solid var(--ok)}.modbus-card[data-live=false].svelte-1qy3nhb{border-left:2px solid var(--offline)}.modbus-card.svelte-1qy3nhb header:where(.svelte-1qy3nhb){display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.modbus-card.svelte-1qy3nhb h3:where(.svelte-1qy3nhb){font-family:var(--serif);font-size:19px;letter-spacing:.04em}.modbus-endpoint.svelte-1qy3nhb{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.modbus-state.svelte-1qy3nhb{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--offline)}.modbus-state[data-live=true].svelte-1qy3nhb{color:var(--ok)}.modbus-card.svelte-1qy3nhb dl:where(.svelte-1qy3nhb){display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin:0}.modbus-card.svelte-1qy3nhb dt:where(.svelte-1qy3nhb){font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.modbus-card.svelte-1qy3nhb dd:where(.svelte-1qy3nhb){margin:1px 0 0;font-size:12.5px;font-variant-numeric:tabular-nums}.modbus-card.svelte-1qy3nhb .row:where(.svelte-1qy3nhb){gap:6px}.mapping-head.svelte-1qy3nhb{margin-top:18px;display:grid;gap:2px}.detail-actions.svelte-1qy3nhb{display:flex;align-items:center;gap:8px}.detail-backdrop.svelte-1qy3nhb,.detail-close.svelte-1qy3nhb{display:none}@media(max-width:900px){.detail-backdrop.svelte-1qy3nhb{display:block;position:fixed;inset:0;z-index:70;background:#0a0a0a80}.config.svelte-1qy3nhb{position:fixed;inset:auto 0 0;z-index:75;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow:auto;overscroll-behavior:contain;box-shadow:var(--shadow);border-left:0;border-right:0;border-bottom:0;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.config.svelte-1qy3nhb .card-head:where(.svelte-1qy3nhb){position:sticky;top:0;z-index:2;background:var(--surface);padding-top:4px;padding-bottom:10px;border-bottom:1px solid var(--line)}.detail-close.svelte-1qy3nhb{display:grid}}.two-col.svelte-1ozf5k3{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;align-items:start}@media(max-width:760px){.tabs.svelte-1ozf5k3{display:grid;grid-template-columns:1fr 1fr;width:100%;overflow:visible}.tabs.svelte-1ozf5k3 button:where(.svelte-1ozf5k3){flex:none;white-space:normal;border-bottom:1px solid var(--line);padding:10px 8px;font-size:9.5px;letter-spacing:.1em}.tabs.svelte-1ozf5k3 button:where(.svelte-1ozf5k3):nth-child(2n){border-right:0}}.boot.svelte-1n46o8q{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.boot-word.svelte-1n46o8q{font-family:var(--serif);font-size:30px;letter-spacing:.4em;color:var(--muted)}.brand-line.svelte-1n46o8q{display:flex;align-items:center;gap:10px}.brand-line.svelte-1n46o8q svg{flex:none}.bell-panel.svelte-1n46o8q{position:absolute;right:20px;top:74px;width:min(400px,92vw);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);padding:14px;display:grid;gap:4px}.bell-head.svelte-1n46o8q{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.bell-row.svelte-1n46o8q{display:grid;gap:2px;padding:9px 6px;border-bottom:1px solid var(--line)}.bell-row.svelte-1n46o8q:hover{background:var(--surface-2)}.a-kind.svelte-1n46o8q{font-size:12.5px}.a-meta.svelte-1n46o8q{font-size:10.5px;color:var(--muted)}
