*,:before,:after{box-sizing:border-box;border:0 solid}body,h1,h2,h3,p,ul,ol,figure{margin:0}h1,h2,h3{font-size:inherit;font-weight:inherit}ul,ol{padding:0;list-style:none}button,input,select,textarea{color:inherit;font:inherit;background:0 0;margin:0;padding:0}button,select{text-transform:none}button{cursor:pointer}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}img,svg{max-width:100%;display:block}code{font-family:var(--font-mono)}@font-face{font-family:Inter SQM;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/inter-sqm-ZJhQ4JZ9.woff2)format("woff2")}@font-face{font-family:JetBrains Mono SQM;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/jetbrains-mono-sqm-DiDEgsrm.woff2)format("woff2")}:root{--bg:#080d14;--panel:#0d141d;--panel-2:#111b27;--panel-3:#0a1018;--line:#1b2a38;--line-soft:#142130;--text:#e7edf3;--muted:#8b9baa;--dim:#566675;--cyan:#55c7f2;--violet:#a78bfa;--green:#5ee0a0;--amber:#f4c15d;--red:#f26b62;--font-ui:"Inter SQM", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono SQM", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input,select,textarea{font:inherit}button{color:inherit}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.app-shell{background:radial-gradient(circle at 50% -15%, #55c7f21f, transparent 28rem), var(--bg);min-height:100vh}.app-header{z-index:10;border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080d14f0;position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:1180px;margin:0 auto;padding:0 1rem;display:flex}.brand{align-items:center;gap:.65rem;min-width:max-content;padding:.75rem 0;display:flex}.brand-mark{border:1px solid var(--line);width:2rem;height:2rem;color:var(--cyan);background:var(--panel-2);border-radius:.5rem;place-items:center;display:grid}.brand h1{letter-spacing:0;margin:0;font-size:.98rem;font-weight:650;line-height:1}.brand p{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;margin:.15rem 0 0;font-size:.62rem;font-weight:650;line-height:1}.top-nav{align-items:stretch;gap:.1rem;display:flex;overflow-x:auto}.nav-button{appearance:none;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.45rem;min-height:3.5rem;padding:0 .95rem;font-size:.82rem;font-weight:550;display:flex}.nav-button.is-active{color:var(--cyan);border-bottom-color:var(--cyan);background:#55c7f217}.nav-label-short{display:none}@media (width<=375px){.nav-label-full{display:none}.nav-label-short{display:inline}}.nav-icon-svg{flex:none;display:block}.app-main{max-width:1180px;margin:0 auto;padding:1rem}.dashboard{gap:.75rem;display:grid}.dashboard-toolbar{justify-content:flex-end;gap:.5rem;display:flex}.masonry{position:relative}.masonry-item{visibility:hidden;position:absolute;top:0;left:0}.masonry.is-measured .masonry-item{visibility:visible;transition:transform .2s}.masonry-item.is-dragging{z-index:2;opacity:.85;transition:none}.arrange-bar{align-items:center;gap:.25rem;margin-bottom:.375rem;display:flex}.arrange-handle{border:1px dashed var(--line);color:var(--muted);font:inherit;text-align:left;cursor:grab;touch-action:none;background:0 0;border-radius:.5rem;flex:1;align-items:center;gap:.5rem;padding:.375rem .625rem;font-size:.8125rem;display:flex}.is-dragging .arrange-handle{cursor:grabbing;color:var(--text)}.page-enter{animation:.2s ease-out fade-in}.hero-card,.sq-card{background:linear-gradient(180deg, var(--panel), #0a1119);border:1px solid var(--line-soft);border-radius:.85rem;padding:1rem;box-shadow:0 14px 42px #00000038}.hero-card{position:relative;overflow:hidden}.hero-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#55c7f229,#0000 68%);border-radius:50%;width:16rem;height:16rem;position:absolute;inset:-8rem auto auto 50%;transform:translate(-50%)}.hero-card.tone-green:before{background:radial-gradient(circle,#5ee0a029,#0000 68%)}.hero-card.tone-amber:before{background:radial-gradient(circle,#f4c15d2b,#0000 68%)}.hero-card.tone-red:before{background:radial-gradient(circle,#f26b622b,#0000 68%)}.hero-topline,.card-topline{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.card-topline{margin-bottom:.85rem}.card-topline .card-title{margin-bottom:0}.card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;min-width:0;display:flex}.status-dot{background:var(--red);border-radius:50%;flex:none;width:.48rem;height:.48rem;box-shadow:0 0 0 .18rem #f26b6226}.status-dot.is-ok{background:var(--green);animation:2s infinite pulse-dot;box-shadow:0 0 0 .18rem #5ee0a026}.sqm-display{z-index:1;text-align:center;padding:1rem 0 1.1rem;position:relative}.metric-label,.card-title h2{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.sqm-value{color:var(--cyan);font-family:var(--font-mono);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:clamp(3.1rem,12vw,4.35rem);font-weight:650;line-height:.98}.sqm-unit,.metric-unit{color:var(--dim);font-family:var(--font-mono);font-size:.68rem}.sqm-display p{color:var(--muted);margin:.7rem 0 0;font-weight:550}.sq-card{min-width:0}.card-title{align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.card-title.flat{margin-bottom:0}.card-title h2{margin:0}.panel-page .card-title h2{letter-spacing:.08em;text-transform:uppercase;margin:0;color:var(--dim)!important;font-size:.68rem!important;font-weight:700!important}.ui-icon{flex:none;display:block}.hero-pills{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.85rem;display:grid}.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.tile-grid{gap:.5rem;margin-top:.85rem;display:grid}.tile-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-grid.gps-metrics{grid-template-columns:repeat(2,minmax(6.8rem,1fr));gap:.5rem}.metric-tile{border:1px solid var(--line-soft);text-align:center;background:#080d14ad;border-radius:.45rem;min-width:0;padding:.65rem}.metric-tile.left{text-align:left}.metric-value{color:var(--text);font-family:var(--font-mono);overflow-wrap:anywhere;word-break:normal;font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:1.12rem;font-weight:700;line-height:1.05}.metric-value.small{font-size:.78rem}.metric-sub{color:var(--muted);overflow-wrap:anywhere;margin-top:.35rem;font-size:.72rem}.metric-label.pushed{margin-top:.7rem}.coordinate-line{color:var(--muted);overflow-wrap:anywhere;margin:.55rem 0 .1rem;font-size:.78rem}.sparkline{width:100%;height:2.25rem;margin:0 0 .85rem;display:block}.spark-fill{fill:#55c7f214;stroke:none}.spark-line{fill:none;stroke:var(--cyan);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.sparkline.tone-green .spark-line{stroke:var(--green)}.sparkline.tone-green .spark-fill{fill:#5ee0a014}.sparkline.tone-amber .spark-line{stroke:var(--amber)}.sparkline.tone-amber .spark-fill{fill:#f4c15d14}.sparkline.tone-red .spark-line{stroke:var(--red)}.sparkline.tone-red .spark-fill{fill:#f26b6214}.reading-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:baseline;gap:1rem;padding:.58rem 0;display:flex}.reading-row:last-child{border-bottom:0}.reading-label{color:var(--muted);font-size:.86rem}.reading-value{color:var(--text);font-family:var(--font-mono);text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:650}.sensor-reading strong em{color:var(--dim);font-size:.68rem;font-style:normal;font-weight:500}.firmware-row{border-top:1px solid var(--line-soft);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;padding-top:.75rem;font-size:.86rem;display:flex}.pill{border:1px solid var(--line);min-height:1.35rem;color:var(--muted);white-space:nowrap;background:#ffffff08;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.16rem .55rem;font-size:.7rem;font-weight:650;line-height:1;display:inline-flex}.pill-cyan{color:var(--cyan);background:#55c7f21c;border-color:#55c7f247}.pill-green{color:var(--green);background:#5ee0a01c;border-color:#5ee0a047}.pill-amber{color:var(--amber);background:#f4c15d1f;border-color:#f4c15d4d}.pill-red{color:var(--red);background:#f26b621f;border-color:#f26b624d}.progress-meter{background:var(--line);border-radius:999px;height:.35rem;margin-top:.45rem;overflow:hidden}.progress-meter>div{border-radius:inherit;background:var(--cyan);height:100%}.tone-cyan{color:var(--cyan)}.tone-violet{color:var(--violet)}.tone-green{color:var(--green)}.tone-amber{color:var(--amber)}.tone-red{color:var(--red)}.tone-muted{color:var(--muted)}.warning-list{border-top:1px solid var(--line-soft);color:var(--amber);gap:.35rem;margin-top:.8rem;padding-top:.75rem;font-size:.78rem;display:grid}.empty-state{text-align:center;min-height:60vh;color:var(--muted);align-content:center;place-items:center;gap:.55rem;display:grid}.empty-state h2{color:var(--text);margin:0;font-size:1.25rem}.empty-state p{margin:0}.panel-page{grid-template-columns:minmax(0,1fr);gap:1rem;width:min(100%,58rem);margin:0 auto;display:grid}.panel-page.compact-page{width:min(100%,42rem)}.panel-page>h1,.panel-page>div:first-child h1{color:var(--text);letter-spacing:0;margin:0 0 .15rem;font-size:1.25rem;font-weight:650}.panel-page>div:first-child p{color:var(--muted);margin:0;font-size:.86rem}.panel-page section{box-shadow:0 14px 42px #0000002e;background:linear-gradient(180deg, var(--panel), #0a1119)!important;border:1px solid var(--line-soft)!important;border-radius:.85rem!important;padding:1rem!important}.panel-page section section{box-shadow:none}.system-page{-moz-column-count:2;column-count:2;-moz-column-gap:1rem;align-items:start;column-gap:1rem;width:min(100%,58rem);margin-inline:auto;display:block}.system-row-grid,.system-diagnostic-grid{grid-template-columns:1fr;gap:0;display:grid}.system-diagnostic-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:.85rem}.system-log-row span{min-width:0;color:var(--muted);font-size:.82rem}.system-list{gap:0;display:grid}.system-row-grid>.system-metric,.system-row-grid>div{border-bottom:1px solid var(--line-soft);padding-bottom:.55rem}.system-row-grid>.system-metric:last-child,.system-row-grid>div:last-child{border-bottom:0;padding-bottom:0}.system-row-grid>*+*{margin-top:.55rem}.system-time{color:var(--text);font-family:var(--font-mono);overflow-wrap:anywhere;margin-top:.25rem;font-size:.9rem;display:block}.system-subtle{color:var(--dim);margin:.35rem 0 0;font-size:.76rem;line-height:1.4}.system-log-row{border:1px solid var(--line-soft);background:var(--panel-3);border-radius:.55rem;gap:.35rem;margin-top:.85rem;padding:.75rem;display:grid}.system-log-row strong,.system-log-row em{color:var(--text);font-family:var(--font-mono);overflow-wrap:anywhere;font-size:.76rem;font-style:normal}.system-log-row em{color:var(--muted)}.system-page>h1,.system-page>div:not(section){-moz-column-span:all;column-span:all;grid-column:1/-1}.system-page section{-moz-column-break-inside:avoid;break-inside:avoid;vertical-align:top;width:100%;min-width:0;margin:0 0 1rem;display:inline-block}.not-found-page{place-items:center;min-height:calc(100vh - 8rem);display:grid}.not-found-card{border:1px solid var(--line-soft);background:linear-gradient(135deg,#101a26f5,#0a1019f5);border-radius:.85rem;width:min(100%,34rem);padding:1.25rem;box-shadow:0 24px 70px #00000047}.not-found-kicker{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.45rem;font-size:.74rem;font-weight:700;display:inline-flex}.not-found-kicker span:first-child{width:1.25rem;height:1.25rem;color:var(--cyan);font-family:var(--font-mono);letter-spacing:0;background:#55c7f21a;border:1px solid #55c7f247;border-radius:999px;place-items:center;font-size:.78rem;display:grid}.not-found-code{font-family:var(--font-mono);color:var(--cyan);margin-top:1.4rem;font-size:clamp(4.5rem,15vw,8rem);line-height:.9}.not-found-card h1{color:var(--text);margin-top:.9rem;font-size:1.35rem;line-height:1.2}.not-found-card p{max-width:27rem;color:var(--muted);margin-top:.65rem;line-height:1.55}.not-found-card p span{font-family:var(--font-mono);color:var(--text);overflow-wrap:anywhere}.not-found-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.35rem;display:flex}.not-found-actions button{min-height:2.55rem;color:var(--cyan);background:#55c7f21f;border:1px solid #55c7f247;border-radius:.45rem;padding:0 1rem;font-weight:650}.not-found-actions button:first-child{background:var(--cyan);border-color:var(--cyan);color:var(--bg)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.45}}@keyframes fade-in{0%{opacity:0;transform:translateY(.3rem)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-header-inner{padding:0 .75rem;display:block}.brand{padding:.65rem 0}.top-nav{border-top:1px solid var(--line-soft)}.nav-button{letter-spacing:0;text-transform:uppercase;flex-direction:column;flex:1 1 0;justify-content:center;gap:.25rem;min-width:0;min-height:3rem;padding:.45rem .1rem .35rem;font-size:.58rem}.nav-button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.top-nav>.alerts-bell{flex:0 0 2.75rem;display:flex}.top-nav>.alerts-bell .nav-button{flex:auto}.app-main{padding:.75rem}.system-page{-moz-column-count:1;column-count:1}.metric-grid,.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-card .metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=420px){.hero-card,.sq-card{border-radius:.7rem;padding:.85rem}.hero-topline{flex-direction:column;align-items:flex-start}.hero-card .metric-grid.compact,.tile-grid.two{grid-template-columns:1fr}}.settings-tabs{top:env(safe-area-inset-top,0px);z-index:7;scrollbar-width:none;border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080d14e0;border-radius:.8rem;gap:.25rem;margin:0 0 1rem;padding:.3rem;display:flex;position:sticky;overflow-x:auto}.settings-tabs::-webkit-scrollbar{display:none}.panel-page .settings-tab{color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;flex:none;padding:.5rem .9rem;font-size:.86rem;font-weight:600;transition:color .15s,background .15s,border-color .15s;position:relative;border-radius:.55rem!important}.panel-page .settings-tab:hover{color:var(--text);background:var(--panel-2)}.panel-page .settings-tab.is-active{color:var(--cyan);background:#55c7f21a;border-color:#55c7f247}.settings-tab-error{background:var(--red);border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.35rem;right:.35rem}.settings-tabs{top:4rem}@media (width<=760px){.settings-tabs{position:static}}.btn{min-height:2.25rem;color:var(--cyan);font:650 .84rem/1.2 var(--font-ui);white-space:nowrap;cursor:pointer;background:#55c7f21a;border:1px solid #55c7f247;border-radius:.45rem;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .95rem;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){background:#55c7f22e}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{border-color:var(--cyan);background:var(--cyan);color:var(--bg)}.btn-primary:hover:not(:disabled){background:#7dd6f6}.btn-danger{color:var(--red);background:#f26b621a;border-color:#f26b6252}.btn-danger:hover:not(:disabled){background:#f26b622e}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.btn-link{min-height:0;color:var(--cyan);background:0 0;border:0;padding:0;font-weight:600}.btn-link:hover:not(:disabled){background:0 0;text-decoration:underline}.btn-sm{min-height:1.7rem;padding:.2rem .6rem;font-size:.74rem}.btn-block{width:100%}.btn-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.info-tip{border:1px solid var(--line);width:1rem;height:1rem;color:var(--dim);font:700 .62rem/1 var(--font-ui);cursor:help;vertical-align:middle;border-radius:50%;flex:none;justify-content:center;align-items:center;margin-left:.35rem;display:inline-flex;position:relative}.info-tip:hover,.info-tip:focus{border-color:var(--cyan);color:var(--cyan);outline:none}.info-tip-body{z-index:20;border:1px solid var(--line);background:var(--panel-2);width:max-content;max-width:min(17rem,75vw);color:var(--text);font:400 .76rem/1.4 var(--font-ui);letter-spacing:0;text-align:left;text-transform:none;white-space:normal;pointer-events:none;border-radius:.45rem;padding:.5rem .65rem;display:none;position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0006}.info-tip:hover .info-tip-body,.info-tip:focus .info-tip-body{display:block}.note{color:var(--dim);margin:0;font-size:.76rem;line-height:1.4}.note-warn{color:var(--amber)}.note-bad{color:var(--red)}.note-ok{color:var(--green)}.note-action{color:var(--cyan);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:.45rem;padding:0}.note-action:hover{text-decoration:underline}.toaster{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:30;flex-direction:column;gap:.5rem;max-width:min(26rem,100vw - 2rem);display:flex;position:fixed}.toast{border:1px solid var(--line);border-left:3px solid var(--green);background:var(--panel-2);color:var(--text);border-radius:.55rem;align-items:center;gap:.75rem;padding:.65rem .75rem .65rem .9rem;font-size:.84rem;animation:.18s ease-out toast-in;display:flex;box-shadow:0 16px 40px #00000073}.toast-warn{border-left-color:var(--amber)}.toast-bad{border-left-color:var(--red)}.toast>span{flex:1}.toast-action,.toast-close{font:650 .8rem/1 var(--font-ui);cursor:pointer;background:0 0;border:0;padding:0}.toast-action{color:var(--cyan)}.toast-close{color:var(--dim);font-size:1.1rem}@keyframes toast-in{0%{opacity:0;transform:translateY(.4rem)}}.field{flex-direction:column;gap:.35rem;min-width:0;display:flex}.field-label{color:var(--muted);align-items:center;font-size:.8rem;font-weight:600;display:flex}.input{border:1px solid var(--line);background:var(--panel-3);width:100%;min-height:2.3rem;color:var(--text);font:.86rem var(--font-ui);border-radius:.45rem;outline:none;padding:.4rem .7rem}.input:focus{border-color:var(--cyan)}.input:disabled{opacity:.45;cursor:not-allowed}.input.is-invalid{border-color:var(--red)}.input-row{align-items:center;gap:.5rem;display:flex}.input-group{border:1px solid var(--line);background:var(--panel-3);border-radius:.45rem;align-items:center;min-height:2.3rem;display:flex}.input-group:focus-within{border-color:var(--cyan)}.input-group.is-invalid{border-color:var(--red)}.input-group.is-disabled{opacity:.45}.input-group .input{background:0 0;border:0;flex:1;min-width:0}.input-group .input:disabled{opacity:1}.input-unit{color:var(--dim);white-space:nowrap;padding-right:.7rem;font-size:.76rem}input[type=file].input{padding:.3rem}input[type=file].input::file-selector-button{color:var(--cyan);font:650 .78rem var(--font-ui);cursor:pointer;background:#55c7f21a;border:1px solid #55c7f247;border-radius:.35rem;margin-right:.6rem;padding:.3rem .7rem}.form-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.85rem 1rem;display:grid}.toggle{color:var(--text);cursor:pointer;align-items:center;gap:.7rem;font-size:.86rem;display:flex}.toggle input{appearance:none;border:1px solid var(--line);background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:2.25rem;height:1.25rem;margin:0;transition:background .18s,border-color .18s;position:relative}.toggle input:before{content:"";background:var(--text);border-radius:50%;width:.82rem;height:.82rem;transition:transform .18s;position:absolute;top:.16rem;left:.18rem}.toggle input:checked{border-color:var(--cyan);background:var(--cyan)}.toggle input:checked:before{background:var(--bg);transform:translate(.94rem)}.toggle.is-disabled{opacity:.5;cursor:not-allowed}.toggle.is-disabled input{cursor:not-allowed}.indent{margin-left:2.95rem}.card-group{border-top:1px solid var(--line-soft);gap:.75rem;padding-top:.9rem;display:grid}.card-group-title .pill{letter-spacing:0;text-transform:none}.card-group:first-child{border-top:0;padding-top:0}.card-group-title{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:.5rem;margin:0;font-size:.68rem;font-weight:700;display:flex}.card-body{grid-template-columns:minmax(0,1fr);gap:.9rem;display:grid}.card-body>*,.reading-row>*{min-width:0}.rule-row{grid-template-columns:minmax(0,1fr) minmax(9rem,13rem);align-items:start;gap:.5rem 1rem;display:grid}.event-table{gap:.5rem;display:grid}.event-row{grid-template-columns:minmax(0,1fr) 8rem auto auto;align-items:center;gap:.5rem .75rem;display:grid}.with-sound .event-row{grid-template-columns:minmax(0,1fr) 8rem 10rem auto auto}.event-table-head{color:var(--muted);font-size:.75rem}.event-label{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.event-label .input-group{width:6.5rem}@media (width<=640px){.with-sound .event-row{grid-template-columns:1fr 1fr auto auto}.with-sound .event-label{grid-column:1/-1}.event-table-head{display:none}}.reason-list{color:var(--red);gap:.3rem;margin:0;padding:0;font-size:.86rem;list-style:none;display:grid}.reason-list li:before{content:"• "}@media (width<=560px){.rule-row{grid-template-columns:1fr}.rule-row>.input-row,.rule-row>.input{width:auto;margin-left:2.95rem}}.card-body:is(fieldset){border:0;min-width:0;margin:0;padding:0}.card-body:is(fieldset):disabled{opacity:.55}.event-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.event-list li{border-bottom:1px solid var(--line-soft);padding:.6rem 0}.event-list li:last-child{border-bottom:0}.event-head{justify-content:space-between;gap:.5rem;font-size:.86rem;display:flex}.event-head span{color:var(--dim);font-size:.74rem}.event-list p{white-space:pre-line;color:var(--muted);margin:.15rem 0 .3rem;font-size:.78rem}.event-channels{flex-wrap:wrap;gap:.75rem;font-size:.72rem;display:flex}.event-sent{color:var(--green)}.event-failed{color:var(--red)}.event-skipped{color:var(--amber)}.event-pending{color:var(--dim)}.url-row{align-items:center}.url-value{flex:auto;justify-content:flex-end;align-items:center;gap:.4rem;min-width:0;display:flex}.url-row .reading-label{flex:none}.url-value a,.url-value code{color:var(--cyan);font:.74rem var(--font-mono);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.url-value code{color:var(--muted)}.url-value a:hover{text-decoration:underline}.settings-tab-panel{gap:1rem;display:grid}.save-bar{bottom:max(.75rem, env(safe-area-inset-bottom));z-index:8;border:1px solid var(--line-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080d14e0;border-radius:.85rem;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .9rem;display:flex;position:sticky;box-shadow:0 18px 50px #00000052}.save-bar-state{color:var(--dim);margin-right:auto;font-size:.8rem}.save-bar.is-dirty .save-bar-state{color:var(--amber)}.settings-tabs{margin:0}@media (width<=560px){.rule-row>.input-group{margin-left:2.95rem}}.alerts-bell{display:flex;position:relative}.alerts-bell-button{position:relative}.alerts-bell-count{background:var(--red);min-width:1rem;height:1rem;color:var(--bg);font:700 .62rem/1rem var(--font-ui);text-align:center;border-radius:999px;padding:0 .25rem;position:absolute;top:.45rem;right:.3rem}.alerts-flyout{right:max(.75rem, env(safe-area-inset-right));z-index:25;border:1px solid var(--line);background:var(--panel-2);border-radius:.75rem;width:min(24rem,100vw - 1.5rem);max-height:min(32rem,70vh);padding:.85rem 1rem;position:fixed;overflow-y:auto;box-shadow:0 20px 50px #00000080}.alerts-flyout-head{align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.alerts-flyout-head h2{color:var(--dim);letter-spacing:.08em;text-transform:uppercase;margin-right:auto;font-size:.68rem;font-weight:700}.field-wide{max-width:28rem}.sun-moon{align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.sun-moon-summary{color:var(--muted);gap:.125rem;font-size:.8125rem;display:grid}.sun-moon-summary strong{color:var(--text);font-size:.9375rem}.night-chart{touch-action:pan-y;position:relative}.night-chart svg{cursor:crosshair;display:block}.band-day{fill:#2c4a63}.band-civil{fill:#223a50}.band-nautical{fill:#192c3e}.band-astro{fill:#121f2c}.band-night{fill:#0a121a}.chart-grid{stroke:#ffffff14;stroke-dasharray:2 3}.chart-label{fill:var(--muted);font-size:10px}.moon-area{fill:#e8e4d81a}.moon-line{fill:none;stroke:#e8e4d8;stroke-width:1.75px}.now-line{stroke:#f4c15d;stroke-width:1.25px}.now-label{fill:#f4c15d}.hover-line{stroke:#ffffff8c;stroke-dasharray:3 3}.hover-dot{fill:#e8e4d8;stroke:#0a121a;stroke-width:1.5px}.chart-tip{border:1px solid var(--line);color:var(--muted);white-space:nowrap;pointer-events:none;background:#080e14eb;border-radius:.375rem;gap:.0625rem;padding:.375rem .5rem;font-size:.75rem;display:grid;position:absolute;top:.25rem;transform:translate(-50%)}.chart-tip strong{color:var(--text)}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:.75rem;margin-top:.375rem;font-size:.75rem;display:flex}.swatch{vertical-align:middle;border-radius:2px;width:.75rem;height:.5rem;margin-right:.25rem;display:inline-block}.swatch.band-day{background:#2c4a63}.swatch.band-civil{background:#192c3e}.swatch.band-night{box-shadow:inset 0 0 0 1px var(--line);background:#0a121a}.swatch-moon{background:#e8e4d8;height:2px}.moon-disc{flex:none}.moon-dark{fill:#1c2633}.moon-lit{fill:#e8e4d8}.template-editor{border:1px solid var(--line);border-radius:.5rem;gap:.5rem;padding:.75rem;display:grid}.template-editor textarea{resize:vertical;min-height:4.5rem;font:inherit}.var-chips{flex-wrap:wrap;gap:.25rem;display:flex}.var-chip{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.var-chip:hover{color:var(--text)}.history-list{color:var(--muted);gap:.25rem;margin:0;padding:0;font-size:.8125rem;list-style:none;display:grid}.history-list li{grid-template-columns:6.5rem minmax(0,1fr);gap:.5rem;display:grid}.history-time{font-variant-numeric:tabular-nums}.history-list .is-unsafe{color:#f26b62}.history-list .is-safe{color:#5ee0a0}.history-list .history-alert{color:var(--text)}.toggle-stack{gap:.5rem;display:grid}.alerts-bell-button.is-off{opacity:.6}.wifi-list{gap:.35rem;margin-bottom:.75rem;display:grid}.wifi-option{border:1px solid var(--line-soft);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:.5rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.wifi-option.is-selected{border-color:var(--cyan)}.wifi-option:disabled{opacity:.6;cursor:default}.wifi-addresses{margin:.5rem 0 .75rem;padding-left:1.2rem;font-size:1.05rem}.api-view{max-width:58rem;margin:0 auto;padding:1.5rem 1rem}.api-view pre{border:1px solid var(--line-soft);background:var(--panel-3);color:var(--text);font:.8rem/1.5 var(--font-mono);border-radius:.7rem;padding:1rem;overflow-x:auto}.api-view-head code{font-family:var(--font-mono)}.demo-panel{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));z-index:30;flex-direction:column;align-items:flex-end;gap:.5rem;display:flex;position:fixed}.demo-panel-toggle{color:var(--cyan);font:600 .82rem var(--font-ui);cursor:pointer;background:#0d141df0;border:1px solid #55c7f273;border-radius:999px;padding:.55rem .95rem;box-shadow:0 10px 30px #00000059}.demo-panel-body{border:1px solid var(--line);background:var(--panel);border-radius:.85rem;gap:.75rem;width:min(22rem,100vw - 2rem);max-height:calc(100vh - 6rem);padding:1rem;display:grid;overflow-y:auto;box-shadow:0 14px 42px #00000073}.demo-panel-head{justify-content:space-between;align-items:center;display:flex}.demo-panel-head h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem}.demo-scenarios{flex-wrap:wrap;gap:.4rem;display:flex}.demo-clock{color:var(--muted);margin:0;font-size:.76rem}.demo-speed{color:var(--muted);align-items:flex-start;gap:.5rem;font-size:.76rem;display:flex}
