@font-face{font-family:Plus Jakarta Sans;src:url(/assets/PlusJakartaSans-B2KjpZfh.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap}:root{--ink:#132537;--ink-light:#22384f;--muted:#475569;--terracotta:#b83a22;--terracotta-dark:#9c2e19;--terracotta-soft:#fff1ee;--cream:#fff3df;--cream-2:#fffaf1;--paper:#fffefb;--sand:#ead8bd;--peach:#ffc8ad;--teal:#136d66;--teal-soft:#e3f2f0;--line:#13253714;--line-strong:#13253729;--white:#fff;--radius-sm:14px;--radius-md:20px;--radius-lg:32px;--shadow:0 16px 28px #13253714;--focus:0 0 0 3px var(--paper), 0 0 0 6px var(--terracotta);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--cream-2);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,system-ui,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--cream-2);min-height:100vh;margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .75rem;font-weight:800;line-height:1.2}h1{font-size:clamp(1.6rem,3vw,2.2rem)}h2{margin-top:2rem;font-size:1.2rem}.card h2,.rule h2{margin-top:0}h3{font-size:1rem}p{margin:0 0 .5rem}a{color:var(--terracotta-dark);font-weight:600}:focus-visible{box-shadow:var(--focus);border-radius:6px;outline:none}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--ink);color:var(--white);border-radius:var(--radius-sm);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:1rem}.shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--ink);color:var(--cream-2);flex-direction:column;gap:.5rem;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0}.sidebar-top{justify-content:space-between;align-items:center;display:flex}.sidebar .logo{background:var(--paper);border-radius:14px;width:150px;padding:.45rem .7rem}.sidebar-subtitle{color:var(--sand);margin-bottom:1rem;font-size:.85rem;font-weight:600}.nav{flex-direction:column;gap:.25rem;display:flex}.nav-link{color:var(--cream-2);border-radius:999px;padding:.7rem 1rem;font-weight:600;text-decoration:none}.nav-link:hover{background:var(--ink-light)}.nav-link.active{background:var(--terracotta);color:var(--white)}.sidebar-bottom{flex-direction:column;gap:.75rem;margin-top:auto;display:flex}.user{flex-direction:column;margin:0;font-size:.9rem;display:flex}.sidebar .muted{color:var(--sand)}.menu-toggle{color:var(--cream-2);border-color:var(--ink-light);display:none}.content{width:100%;max-width:1280px;padding:2rem clamp(1rem,3vw,2.5rem) 3rem}.content:focus{box-shadow:none}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{margin:0}.page-actions,.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.row-end{align-items:flex-end}.centered{place-items:center;min-height:100vh;padding:1rem;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.25rem}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.grid-small{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid>.card{margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.stat{flex-direction:column;display:flex}.stat-value{font-size:2rem;font-weight:800}.terminal{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.pairing{background:var(--terracotta-soft);color:var(--terracotta-dark);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;padding:.5rem .75rem;font-weight:700}.device-head,.device-foot,.rule-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.device-name{color:var(--ink);font-weight:800;text-decoration:none}.device-name:hover{text-decoration:underline}.device-disabled,.rule-disabled{opacity:.7}.widgets{flex-direction:column;gap:.6rem;margin:.75rem 0;display:flex}.widget{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .75rem;display:flex}.widget-label{color:var(--muted);font-size:.9rem}.widget-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800}.gauge,.battery-bar{background:var(--line-strong);border-radius:999px;width:100%;height:6px;display:block;overflow:hidden}.gauge>span,.battery-bar>span{background:var(--teal);border-radius:999px;height:100%;display:block}.pill,.badge,.tag,.chip{white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .7rem;font-size:.85rem;font-weight:700;display:inline-flex}.pill-on{background:var(--teal-soft);color:var(--teal)}.pill-off{background:var(--terracotta-soft);color:var(--terracotta-dark)}.pill-unknown,.tag,.chip{background:var(--cream);color:var(--ink)}.badge-ok{background:var(--teal-soft);color:var(--teal)}.badge-off{background:var(--line-strong);color:var(--ink)}.badge-ok:before,.badge-off:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.badge-new{background:var(--terracotta);color:var(--white);margin-left:.5rem}.tag-offline,.tag-rule{background:var(--terracotta-soft);color:var(--terracotta-dark)}.tag-online,.tag-joined{background:var(--teal-soft);color:var(--teal)}.chips{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.battery{white-space:nowrap;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:inline-flex}.battery-bar{width:36px}.battery-medium .battery-bar>span{background:#a15c00}.battery-low .battery-bar>span{background:var(--terracotta)}.battery-low{color:var(--terracotta-dark)}.connection{align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:inline-flex}.connection .dot{background:var(--sand);border-radius:50%;width:10px;height:10px}.connection-open .dot{background:#3ccf9e}.connection-closed .dot{background:var(--peach);animation:1.2s ease-in-out infinite pulse}.connection-connecting .dot{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.events{margin:0;padding:0;list-style:none}.event{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:baseline;gap:.75rem;padding:.6rem 0;display:grid}.event:last-child{border-bottom:0}.event-time{white-space:nowrap;font-size:.85rem}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:.65rem 1.2rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--terracotta);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--terracotta-dark)}.btn-secondary{background:var(--paper);color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--cream)}.btn-ghost{color:inherit;border-color:var(--line-strong);background:0 0}.btn-danger{color:var(--terracotta-dark);border-color:var(--terracotta);background:0 0}.btn-danger:hover:not(:disabled){background:var(--terracotta-soft)}.btn-block{width:100%}.field{flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600;display:flex}.field-wide{grid-column:span 2}input,select{font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-width:0;min-height:44px;padding:.6rem .8rem;font-weight:500}input:focus-visible,select:focus-visible{border-color:var(--terracotta);border-radius:var(--radius-sm)}input:disabled,select:disabled{background:var(--cream-2);color:var(--muted)}fieldset{border:1px solid var(--line-strong);border-radius:var(--radius-md);margin:0 0 1rem;padding:1rem}legend{padding:0 .5rem;font-weight:800}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1rem;margin-bottom:.75rem;display:grid}.inline-form{flex-direction:column;gap:.5rem;display:flex}.switch{cursor:pointer;align-items:center;gap:.5rem;min-height:44px;font-weight:600;display:inline-flex}.switch input{width:20px;height:20px;min-height:0;accent-color:var(--teal)}.form-error,.field-error{color:var(--terracotta-dark);font-size:.9rem;font-weight:600}.form-error{margin:.5rem 0}.success{color:var(--teal);font-weight:700}.action{border-bottom:1px dashed var(--line-strong);margin-bottom:.75rem;padding-bottom:.75rem}.rule-form{margin-bottom:2rem}.rules{margin:0;padding:0;list-style:none}.rule-actions{margin:0 0 .75rem}.commands{gap:1.25rem;display:grid}.callout{border-color:var(--terracotta);background:var(--terracotta-soft)}.secret{background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius-sm);word-break:break-all;-webkit-user-select:all;user-select:all;flex:260px;padding:.6rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.details{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin:0 0 1rem;display:grid}.details dt{color:var(--muted);font-size:.85rem}.details dd{overflow-wrap:anywhere;margin:0;font-weight:700}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.segmented{border:1px solid var(--line-strong);background:var(--white);border-radius:999px;padding:3px;display:inline-flex}.segmented button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:38px;padding:.5rem 1rem;font-weight:700}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--white)}.chart{width:100%;min-height:280px}.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.85rem 1rem}th{color:var(--muted);background:var(--cream-2);font-size:.85rem;font-weight:700}tr:last-child td{border-bottom:0}.state{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2.5rem 1rem;display:flex}.state-title{color:var(--ink);font-size:1.05rem;font-weight:800}.state-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-md)}.state-error .state-title{color:var(--terracotta-dark)}.spinner{border:3px solid var(--line-strong);border-top-color:var(--terracotta);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login{background:var(--cream)}.login-card{border-radius:var(--radius-lg);flex-direction:column;gap:1rem;width:min(420px,100%);padding:2rem;display:flex}.login-card .logo{width:160px}@media (width<=960px){.shell{grid-template-columns:1fr}.sidebar{height:auto;padding:1rem;position:static}.sidebar-subtitle{margin-bottom:0}.menu-toggle{display:inline-flex}.nav{display:none}.nav-open{display:flex}.sidebar-bottom{flex-flow:wrap;justify-content:space-between;align-items:center}.field-wide{grid-column:auto}}@media (width<=560px){.event{grid-template-columns:1fr;gap:.25rem}}@media (prefers-reduced-motion:reduce){*{animation:none!important}}
