@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color:#17221f;font-synthesis:none;--ink:#0b1513;--panel:#f1f4ee;--paper:#e7ece5;--line:#c6cec5;--muted:#68736d;--green:#1fc47a;--green-dark:#11734d;--orange:#e56f45;background:#dfe6df;font-family:Space Grotesk,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.boot-screen{background:var(--ink);color:#b9c4bd;letter-spacing:.18em;place-content:center;justify-items:center;gap:18px;height:100%;font:500 11px/1 DM Mono,monospace;display:grid}.boot-pulse{border:1px solid #2c3d37;width:30px;height:30px;position:relative}.boot-pulse:after{content:"";background:var(--green);animation:1.4s ease-in-out infinite pulse;position:absolute;inset:7px}@keyframes pulse{50%{opacity:.2;transform:scale(.65)}}.login-page{background:var(--ink);place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative;overflow:hidden auto}.theme-toggle{color:#aab5af;letter-spacing:.1em;background:0 0;border:0;border-left:1px solid #283630;justify-content:center;align-items:center;gap:8px;min-width:56px;height:100%;padding:0 14px;font:500 9px/1 DM Mono,monospace;display:inline-flex}.theme-toggle span{font:400 18px/1 system-ui,sans-serif}.theme-toggle b{font:inherit}.theme-toggle:hover{color:#fff;background:#14221e}.theme-toggle:focus-visible{outline:2px solid var(--green);outline-offset:-3px}.login-theme-toggle{z-index:2;color:#becbc3;background:#0b1513d1;border:1px solid #40534a;height:42px;position:absolute;top:22px;right:22px}.login-grid{opacity:.18;background-image:linear-gradient(#486057 1px,#0000 1px),linear-gradient(90deg,#486057 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 72%);mask-image:radial-gradient(circle,#000,#0000 72%)}.login-card{z-index:1;background:#eff4edfa;border:1px solid #7b8980;width:min(100%,430px);padding:42px;position:relative;box-shadow:12px 12px #1fc47a29}.brand-mark{align-items:flex-end;gap:4px;width:44px;height:36px;margin-bottom:30px;display:flex}.brand-mark span{background:var(--green-dark);width:10px;display:block}.brand-mark span:first-child{height:16px}.brand-mark span:nth-child(2){height:27px}.brand-mark span:nth-child(3){background:var(--green);height:36px}.brand-mark.compact{gap:2px;width:25px;height:23px;margin:0}.brand-mark.compact span{width:6px}.brand-mark.compact span:first-child{height:10px}.brand-mark.compact span:nth-child(2){height:17px}.brand-mark.compact span:nth-child(3){height:23px}.eyebrow{color:var(--green-dark);letter-spacing:.16em;margin:0 0 9px;font:500 10px/1.2 DM Mono,monospace}.login-card h1{letter-spacing:-.055em;margin:0;font-size:clamp(34px,7vw,47px);line-height:.95}.login-copy{color:var(--muted);margin:20px 0 32px;font-size:14px;line-height:1.55}.login-card form{gap:18px;display:grid}.login-card label{gap:7px;display:grid}.login-card label span{color:#3f4c46;letter-spacing:.12em;text-transform:uppercase;font:500 10px/1 DM Mono,monospace}.login-card input{width:100%;color:var(--ink);background:#fbfcf9;border:1px solid #aeb8af;border-radius:0;outline:none;padding:14px 15px;font:400 14px/1.3 DM Mono,monospace;transition:border-color .15s,box-shadow .15s}.login-card input:focus{border-color:var(--green-dark);box-shadow:3px 3px #1fc47a2e}.login-card form>button{color:#07100d;background:var(--green);letter-spacing:.12em;border:0;margin-top:4px;padding:16px;font:600 11px/1 DM Mono,monospace;transition:transform .15s,background .15s}.login-card form>button:hover{background:#35d890;transform:translateY(-1px)}.form-error{color:#a63c2e;margin:-4px 0;font:500 11px/1.4 DM Mono,monospace}.login-card footer{color:#7e8982;letter-spacing:.14em;align-items:center;gap:8px;margin-top:30px;font:500 9px/1 DM Mono,monospace;display:flex}.login-card footer i{background:var(--green);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #1fc47a21}.app-shell{background:var(--paper);grid-template:58px minmax(0,1fr)/1fr;height:100%;display:grid;overflow:hidden}.topbar{color:#dfe8e2;background:var(--ink);border-bottom:1px solid #283630;grid-column:1/-1;align-items:center;min-width:0;display:flex}.topbar-brand{border-right:1px solid #283630;flex:none;align-items:center;gap:10px;width:auto;height:100%;padding:0 20px;display:flex}.topbar-brand strong{letter-spacing:.08em;font:600 15px/1 DM Mono,monospace}.topbar-brand small{color:#75837c;letter-spacing:.14em;font:500 9px/1 DM Mono,monospace}.network-summary{color:#7e8a84;letter-spacing:.11em;align-items:center;gap:24px;padding-left:22px;font:500 9px/1 DM Mono,monospace;display:flex}.network-summary span{white-space:nowrap;align-items:center;gap:7px;display:flex}.network-summary i{border-radius:50%;width:7px;height:7px}i.online{background:var(--green);box-shadow:0 0 0 3px #1fc47a24}i.offline{background:#78817c}.topbar-actions{align-items:center;height:100%;margin-left:auto;display:flex}.updated-at{color:#67736d;letter-spacing:.1em;padding:0 18px;font:500 8px/1 DM Mono,monospace}.icon-button,.logout-button{color:#aab5af;background:0 0;border:0;border-left:1px solid #283630;height:100%}.icon-button{width:56px;font:300 25px/1 DM Mono,monospace}.icon-button:hover,.logout-button:hover{color:#fff;background:#14221e}.logout-button{letter-spacing:.12em;padding:0 20px;font:500 9px/1 DM Mono,monospace}.sidebar{z-index:500;background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.sidebar-head{flex:none;justify-content:space-between;align-items:flex-end;padding:25px 20px 18px;display:flex}.sidebar-head h1{letter-spacing:-.04em;margin:0;font-size:25px}.sidebar-close{background:0 0;border:0;font-size:28px;display:none}.search-field{border:1px solid var(--line);background:#fbfcf9;flex:none;align-items:center;margin:0 20px;display:flex}.search-field span{color:var(--muted);padding-left:12px;font-size:20px}.search-field input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:12px 11px;font:400 11px/1 DM Mono,monospace}.device-list{scrollbar-width:thin;scrollbar-color:#b9c2ba transparent;flex:1;min-height:0;padding:0 10px 18px;overflow-y:auto}.location-group+.location-group{margin-top:6px}.location-group-head{z-index:2;color:#45534c;letter-spacing:.08em;text-transform:uppercase;background:#f1f4eef7;border-bottom:1px solid #adb8af;align-items:center;gap:10px;min-width:0;padding:10px 10px 8px;font:500 9px/1.2 DM Mono,monospace;display:flex;position:sticky;top:0}.location-group-head span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.location-group-head b{text-align:center;color:#0c5138;background:#d6eadc;flex:none;min-width:20px;padding:3px 5px;font:600 8px/1 DM Mono,monospace}.device-card{text-align:left;width:100%;color:inherit;background:0 0;border:1px solid #0000;border-bottom-color:#d7ddd6;grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:11px;padding:14px 10px;transition:background .12s,border-color .12s;display:grid}.device-card:hover{background:#e8ede7}.device-card.selected{background:#e2ece5;border-color:#9dc8ae}.status-light{background:#929b95;border-radius:50%;width:7px;height:7px;margin-top:4px}.status-light.online{background:var(--green);box-shadow:0 0 0 3px #1fc47a24}.device-card-main{gap:5px;min-width:0;display:grid}.device-card-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.device-card-main small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;overflow:hidden}.device-card-main code{color:#78837d;font:400 9px/1.2 DM Mono,monospace}.device-card-meta{justify-items:end;gap:8px;display:grid}.device-card-meta b{color:#526159;text-transform:uppercase;background:#dce3dc;padding:3px 5px;font:500 8px/1 DM Mono,monospace}.device-card-meta small{color:#89928d;font:400 8px/1 DM Mono,monospace}.device-card-meta .temporary-location,.device-facts .temporary-location{color:#8a6313;letter-spacing:.05em;font:600 7px/1.2 DM Mono,monospace}.device-facts .temporary-location{margin-top:4px;display:block}.data-error,.empty-state,.list-loading{color:#6e7973;margin:20px;font:400 10px/1.6 DM Mono,monospace}.data-error{color:#8b4134;background:#f5e3dd;margin:8px 20px;padding:12px}.data-error button{color:inherit;background:0 0;border:0;text-decoration:underline}.mobile-inventory,.mobile-backdrop{display:none}.topbar-brand{color:inherit;text-align:left;background:0 0;border:0}.device-card-meta i{color:#78837d;font:400 15px/1 DM Mono,monospace}.inventory-dashboard{background-color:var(--paper);background-image:linear-gradient(#6270680f 1px,#0000 1px),linear-gradient(90deg,#6270680f 1px,#0000 1px);background-size:36px 36px;min-width:0;min-height:0;padding:42px max(24px,50vw - 620px) 28px;overflow-y:auto}.inventory-hero{border-bottom:1px solid #aeb8b0;justify-content:space-between;align-items:flex-end;gap:36px;padding-bottom:30px;display:flex}.inventory-hero h1{letter-spacing:-.06em;margin:0;font-size:clamp(38px,5vw,62px);line-height:.92}.inventory-hero h1:focus{outline:none}.inventory-hero>div:first-child>p:last-child{max-width:560px;color:var(--muted);margin:17px 0 0;font-size:14px;line-height:1.5}.inventory-totals{background:#f1f4eee0;border:1px solid #aeb8b0;flex:none;grid-template-columns:repeat(3,minmax(86px,1fr));display:grid;box-shadow:5px 5px #0b151312}.inventory-totals span{border-right:1px solid #c7cfc7;gap:5px;min-width:86px;padding:14px 16px;display:grid}.inventory-totals span:last-child{border-right:0}.inventory-totals b{letter-spacing:-.04em;font-size:24px;line-height:1}.inventory-totals small{color:#748078;letter-spacing:.1em;font:500 8px/1 DM Mono,monospace}.inventory-toolbar{justify-content:space-between;align-items:end;gap:24px;margin:30px 0 16px;display:flex}.inventory-toolbar h2{letter-spacing:-.04em;margin:0;font-size:24px}.inventory-toolbar .search-field{flex:none;width:min(100%,420px);margin:0;box-shadow:3px 3px #0b15130f}.inventory-toolbar .search-field:focus-within{border-color:var(--green-dark);box-shadow:3px 3px #1fc47a29}.inventory-dashboard>.data-error,.inventory-dashboard>.empty-state,.inventory-dashboard>.list-loading{margin:20px 0}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.group-column{align-content:start;gap:16px;min-width:0;display:grid}.inventory-group{background:#f1f4eef5;border:1px solid #aab5ac;min-width:0;overflow:hidden;box-shadow:5px 5px #0b151313}.inventory-group.address{border-top:3px solid var(--green-dark)}.inventory-group.isp{border-top:3px solid #65766d}.inventory-group.device{border-top:3px solid #9a8b66}.inventory-group-head{border-bottom:1px solid #c7cfc7;justify-content:space-between;align-items:flex-start;gap:18px;min-width:0;padding:18px 19px 16px;display:flex}.inventory-group-head>div:first-child{min-width:0}.inventory-group-head .eyebrow{margin-bottom:7px}.inventory-group-head h3{text-overflow:ellipsis;letter-spacing:-.035em;margin:0;font-size:19px;line-height:1.18;overflow:hidden}.group-health{border-left:1px solid #cbd2cb;flex:none;justify-items:end;gap:4px;padding-left:14px;display:grid}.group-health strong{font:600 14px/1 DM Mono,monospace}.group-health small{color:#758078;letter-spacing:.1em;font:500 7px/1 DM Mono,monospace}.group-devices{display:grid}.group-devices .device-card{border:0;border-bottom:1px solid #d4dbd4;padding:15px 18px}.group-devices .device-card:last-child{border-bottom:0}.group-devices .device-card:hover,.group-devices .device-card:focus-visible{background:#e4ece5;outline:0}.group-devices .device-card-main strong{font-size:14px}.inventory-source{color:#7b8780;letter-spacing:.1em;text-align:right;margin-top:22px;font:500 8px/1 DM Mono,monospace}.app-shell.detail-shell{grid-template:58px minmax(0,1fr)/1fr}.detail-page,.terminal-page{grid-column:1/-1;min-width:0;min-height:0;overflow:auto}.detail-page{background:var(--paper);width:100%;padding:32px max(24px,50vw - 550px)}.detail-head{border-bottom:1px solid #aeb8b0;grid-template-columns:110px minmax(0,1fr) auto;align-items:start;gap:22px;padding-bottom:22px;display:grid}.back-button{color:#536159;letter-spacing:.1em;background:0 0;border:0;width:max-content;padding:8px 0;font:500 9px/1 DM Mono,monospace}.back-button:hover{color:var(--green-dark)}.detail-title{min-width:0}.detail-title h1,.terminal-head h1{text-overflow:ellipsis;letter-spacing:-.05em;margin:0;font-size:clamp(30px,4vw,46px);line-height:1;overflow:hidden}.detail-title h1:focus,.terminal-head h1:focus,.service-app-head h1:focus{outline:none}.detail-status{color:#747f79;letter-spacing:.11em;align-items:center;gap:7px;margin-top:11px;font:500 9px/1 DM Mono,monospace;display:inline-flex}.detail-status i{background:#89938d;border-radius:50%;width:7px;height:7px}.detail-status.online{color:var(--green-dark)}.detail-status.online i{background:var(--green);box-shadow:0 0 0 4px #1fc47a24}.terminal-button{color:#e6efe9;background:var(--ink);letter-spacing:.09em;border:1px solid #0d1a16;align-self:center;align-items:center;gap:9px;padding:13px 16px;font:500 9px/1 DM Mono,monospace;display:flex;box-shadow:4px 4px #1fc47a38}.terminal-button span{color:var(--green);font-size:15px}.terminal-button:hover{background:#14221e}.terminal-button:disabled{cursor:not-allowed;opacity:.52;box-shadow:none}.device-facts{background:#f1f4eec2;border:1px solid #b8c2b9;flex-wrap:wrap;gap:0;margin:18px 0 22px;display:flex}.device-facts span{color:#435049;border-right:1px solid #cdd4cc;flex:1;gap:5px;min-width:150px;padding:12px 14px;font-size:11px;display:grid}.device-facts span:last-child{border-right:0}.device-facts b{color:#7b8780;letter-spacing:.11em;font:500 8px/1 DM Mono,monospace}.device-facts code{color:#34423b;font:400 10px/1.2 DM Mono,monospace}.inspection-warning,.detail-error{color:#794537;background:#f4e5df;border:1px solid #dfb9aa;margin:0 0 18px;padding:12px 14px;font:400 10px/1.5 DM Mono,monospace}.proxy-disconnected{justify-content:space-between;align-items:center;gap:14px;display:flex}.proxy-disconnected>span{min-width:0}.proxy-disconnected button{color:#794537;letter-spacing:.07em;background:#ffffff4d;border:1px solid #b97e6c;flex:none;align-items:center;gap:6px;min-height:34px;padding:7px 9px;font:600 8px/1 DM Mono,monospace;display:inline-flex}.proxy-disconnected button:hover{color:#5e3026;background:#ffffff9e}.proxy-disconnected button:focus-visible{outline-offset:2px;outline:2px solid #794537}.proxy-disconnected button i{font-size:13px;font-style:normal}.proxy-status,.services-only-status{color:#176345;background:#def0e4;border:1px solid #9bcbb1;align-items:flex-start;gap:10px;margin:0 0 18px;padding:12px 14px;font:400 10px/1.5 DM Mono,monospace;display:flex}.proxy-status i,.services-only-status i{background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;margin-top:3px;box-shadow:0 0 0 4px #1fc47a24}.detail-error button{color:inherit;background:0 0;border:0;text-decoration:underline}.metrics-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.metric-card{background:var(--panel);border:1px solid #abb7ae;grid-template-columns:1fr auto;gap:8px 14px;min-width:0;padding:18px;display:grid;box-shadow:4px 4px #0b151314}.metric-card>span{color:#68756e;letter-spacing:.12em;font:500 9px/1 DM Mono,monospace}.metric-card>strong{letter-spacing:-.05em;grid-area:1/2/span 2;font-size:26px;line-height:.9}.metric-card>small{color:#7c8881;font:400 8px/1 DM Mono,monospace}.metric-card>i{background:#d5ddd5;grid-column:1/-1;height:3px;overflow:hidden}.metric-card>i b{background:var(--green);height:100%;display:block}.metric-card.unavailable{opacity:.58}.detail-columns{grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;display:grid}.detail-panel{background:var(--panel);border:1px solid #abb7ae;min-width:0}.detail-panel>header{border-bottom:1px solid #c5cdc5;justify-content:space-between;align-items:center;gap:14px;padding:18px;display:flex}.detail-panel>header h2{letter-spacing:-.035em;margin:0;font-size:21px}.detail-panel>header .eyebrow{margin-bottom:6px}.detail-panel>header>b{text-align:center;color:#0c5138;background:#d6eadc;min-width:28px;padding:5px;font:600 9px/1 DM Mono,monospace}.services-panel:only-child{grid-column:1/-1}.detail-list{scrollbar-width:thin;max-height:330px;overflow:auto}.visible-row,.service-row{border-bottom:1px solid #d6dcd5;align-items:center;gap:11px;min-width:0;padding:12px 15px;display:grid}.visible-row{grid-template-columns:8px minmax(0,1fr) auto auto}button.visible-row{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border-top:0;border-left:0;border-right:0}button.visible-row:not(:disabled){cursor:pointer}button.visible-row:not(:disabled):hover,button.visible-row:not(:disabled):focus-visible{background:#e8f1e9;outline:0}button.visible-row:disabled{opacity:1}.visible-row>i{background:var(--green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #1fc47a21}.visible-row>span,.service-row>span{gap:3px;min-width:0;display:grid}.visible-row strong,.service-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.visible-row small,.service-row small{text-overflow:ellipsis;white-space:nowrap;color:#78837d;font-size:9px;overflow:hidden}.visible-row>code{color:#526159;font:400 9px/1 DM Mono,monospace}.service-row{grid-template-columns:48px minmax(0,1fr) auto}button.service-row{width:100%;color:inherit;text-align:left;font:inherit;background:0 0;border-top:0;border-left:0;border-right:0}button.service-row.service-row-action{cursor:pointer}button.service-row.service-row-action:hover{background:#e8f1e9}button.service-row.service-row-action:focus-visible{outline:2px solid var(--green-dark);outline-offset:-2px;background:#e8f1e9}.service-row>code{color:var(--green-dark);font:500 12px/1 DM Mono,monospace}.service-row>b{color:#6c7871;font:500 8px/1 DM Mono,monospace}.panel-empty{color:#7b8780;margin:0;padding:22px 18px;font:400 9px/1.5 DM Mono,monospace}.detail-refresh{color:#617068;letter-spacing:.08em;background:0 0;border:0;margin-top:18px;padding:9px 0;font:500 9px/1 DM Mono,monospace}.detail-loading{color:#68756e;letter-spacing:.13em;place-content:center;height:100%;font:500 10px/1 DM Mono,monospace;display:grid}.detail-loading span{color:var(--green)}.terminal-page{background:#101a17;grid-template-rows:auto minmax(0,1fr);padding:20px max(20px,50vw - 550px) 24px;display:grid;overflow:hidden}.terminal-head{color:#dce7df;border-color:#34443d;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;padding-bottom:16px}.terminal-head .eyebrow{margin-bottom:5px}.terminal-head .back-button{color:#94a49b}.terminal-state{color:#89978f;letter-spacing:.11em;font:500 8px/1 DM Mono,monospace}.terminal-state.connected{color:var(--green)}.terminal-state.error{color:#f08a6b}.terminal-frame{background:#07100d;border:1px solid #34443d;min-width:0;min-height:0;margin-top:16px;padding:12px;overflow:hidden;box-shadow:6px 6px #1fc47a1a}.terminal-frame .xterm{width:100%;height:100%}.visible-row>.machine-service-icons{align-items:center;gap:4px;display:flex}.machine-service-icons>span{color:#496057;flex:none;place-items:center;width:25px;height:25px;display:grid}.machine-service-icons svg,.service-kind svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;overflow:visible}.service-modal-backdrop{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#060d0b9e;place-items:center;width:100vw;height:100dvh;padding:18px;display:grid;position:fixed;inset:0}.service-modal{width:min(100%,560px);max-height:min(680px,100dvh - 36px);color:var(--ink);background:var(--panel);border:1px solid #809087;outline:0;overflow:hidden;box-shadow:10px 10px #1fc47a2e}.service-modal>header{border-bottom:1px solid #bcc7bd;justify-content:space-between;align-items:flex-start;gap:18px;padding:22px;display:flex}.service-modal h2{letter-spacing:-.04em;margin:0 0 5px;font-size:25px}.service-modal header code{color:#67756d;font:400 10px/1 DM Mono,monospace}.service-modal>header>button{color:#516059;background:0 0;border:1px solid #bac5bb;width:38px;height:38px;font-size:25px;line-height:1}.service-modal>header>button:hover{color:var(--ink);background:#e3e9e2;border-color:#7a8b81}.service-modal-list{max-height:min(500px,100dvh - 170px);overflow:auto}.service-modal-list>button{width:100%;min-width:0;color:inherit;text-align:left;background:0 0;border:0;border-bottom:1px solid #d1d9d1;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 18px;display:grid}.service-modal-list>button.available:hover{background:#e1ece4}.service-modal-list>button:disabled{cursor:default;opacity:.62}.service-kind{color:#496057;background:#f8faf6;border:1px solid #b8c5bb;place-items:center;width:34px;height:34px;display:grid}.service-kind.ssh,.service-kind.http,.service-kind.https,.service-kind.postgresql{color:#0b6845;background:#ddf1e4;border-color:#9fc8ad}.service-modal-list>button>span:nth-child(2){gap:4px;min-width:0;display:grid}.service-modal-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.service-modal-list small{color:#748078;font:400 9px/1.2 DM Mono,monospace}.service-modal-list b{color:#7c8881;letter-spacing:.08em;font:500 8px/1 DM Mono,monospace}.service-modal-list .available b{color:var(--green-dark)}.service-app-page{background:var(--paper);grid-column:1/-1;min-width:0;min-height:0;padding:26px max(20px,50vw - 550px);overflow:auto}.service-app-head{grid-template-columns:110px minmax(0,1fr) auto}.browser-client-page{grid-template-rows:auto 42px minmax(360px,1fr) auto;display:grid;overflow:hidden}.browser-toolbar{color:#718078;background:#101a17;border:1px solid #34443d;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;margin-top:16px;padding:0 13px;display:grid}.browser-toolbar>span{color:#50645a;letter-spacing:5px;font-size:8px}.browser-toolbar code{text-overflow:ellipsis;white-space:nowrap;color:#becbc3;font:400 10px/1 DM Mono,monospace;overflow:hidden}.browser-toolbar a{color:var(--green);letter-spacing:.08em;font:500 8px/1 DM Mono,monospace;text-decoration:none}.browser-frame{background:#fff;border:1px solid #34443d;border-top:0;width:100%;height:100%;min-height:0}.browser-http-fallback{background-color:#0b1513;background-image:linear-gradient(#1d2b26 1px,#0000 1px),linear-gradient(90deg,#1d2b26 1px,#0000 1px);background-size:34px 34px;border:1px solid #34443d;border-top:0;place-items:center;display:grid}.browser-http-fallback>div{color:#dce7df;background:#0b1513f5;border:1px solid #40534a;width:min(90%,520px);padding:34px;box-shadow:7px 7px #1fc47a1f}.browser-http-fallback b{color:var(--green);letter-spacing:.12em;font:500 9px/1 DM Mono,monospace}.browser-http-fallback h2{margin:13px 0 9px;font-size:27px}.browser-http-fallback p{color:#98a79e;margin:0 0 22px;font-size:13px;line-height:1.55}.browser-http-fallback a{color:#07100d;background:var(--green);letter-spacing:.09em;padding:12px 14px;font:600 9px/1 DM Mono,monospace;text-decoration:none;display:inline-block}.service-via{color:#718078;text-align:right;padding-top:8px;font:400 8px/1 DM Mono,monospace}.database-connect-card{background:var(--panel);border:1px solid #a6b4a9;width:min(100%,650px);margin:clamp(36px,8vh,90px) auto 0;padding:28px;box-shadow:8px 8px #1fc47a26}.database-connect-card h2{margin:0 0 22px;font-size:28px}.database-connect-card>div{grid-template-columns:1fr 120px;gap:14px;display:grid}.database-connect-card label{gap:6px;display:grid}.database-connect-card label span{color:#657269;letter-spacing:.1em;font:500 8px/1 DM Mono,monospace}.database-connect-card input{width:100%;min-width:0;color:var(--ink);background:#fbfcf9;border:1px solid #b8c4ba;border-radius:0;outline:none;padding:12px;font:400 12px/1 DM Mono,monospace}.database-connect-card input:focus{border-color:var(--green-dark);box-shadow:3px 3px #1fc47a26}.database-connect-card p:not(.eyebrow){color:#6a7770;margin:17px 0;font-size:11px}.database-connect-card>button{color:#07100d;background:var(--green);letter-spacing:.1em;border:0;width:100%;padding:14px;font:600 10px/1 DM Mono,monospace}.postgres-client{background:var(--panel);border:1px solid #a6b4a9;gap:15px;margin-top:20px;padding:20px;display:grid;box-shadow:6px 6px #1fc47a1f}.postgres-connection{grid-template-columns:minmax(130px,1fr) 90px minmax(120px,.75fr) minmax(140px,.75fr) minmax(120px,.75fr);gap:10px;display:grid}.postgres-client label{gap:6px;min-width:0;display:grid}.postgres-client label>span{color:#657269;letter-spacing:.1em;font:500 8px/1 DM Mono,monospace}.postgres-client input,.postgres-client textarea{width:100%;min-width:0;color:var(--ink);background:#fbfcf9;border:1px solid #b8c4ba;border-radius:0;outline:none;font:400 12px/1.4 DM Mono,monospace}.postgres-client input{padding:10px}.postgres-client textarea{resize:vertical;min-height:145px;padding:13px}.postgres-client .postgres-tls textarea{min-height:76px}.postgres-client input:focus,.postgres-client textarea:focus{border-color:var(--green-dark);box-shadow:3px 3px #1fc47a26}.postgres-actions{justify-content:space-between;align-items:center;gap:18px;display:flex}.postgres-actions small{color:#6f7d75;font:400 9px/1.4 DM Mono,monospace}.postgres-actions button{color:#07100d;background:var(--green);letter-spacing:.09em;border:0;flex:none;padding:13px 16px;font:600 9px/1 DM Mono,monospace}.postgres-result{background:var(--panel);border:1px solid #a6b4a9;min-width:0;margin-top:16px}.postgres-result>header{border-bottom:1px solid #c8d1c8;justify-content:space-between;gap:14px;padding:11px 14px;display:flex}.postgres-result>header b,.postgres-result>header span{letter-spacing:.08em;font:500 9px/1 DM Mono,monospace}.postgres-result>header b{color:var(--green-dark)}.postgres-result>header span{color:#718078}.postgres-result>div{max-height:360px;overflow:auto}.postgres-result table{border-collapse:collapse;width:100%;font:400 10px/1.35 DM Mono,monospace}.postgres-result th,.postgres-result td{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top;border-bottom:1px solid #d9ded8;border-right:1px solid #d1d8d1;max-width:420px;padding:9px 11px}.postgres-result th{color:#425047;background:#e2e8e1;position:sticky;top:0}.postgres-result>p{color:#6f7c74;margin:0;padding:17px;font-size:11px}:root[data-theme=dark]{color:#dce7df;--panel:#14201c;--paper:#101a17;--line:#34443d;--muted:#91a099;--green-dark:#36d28a;background:#0b1513}:root[data-theme=dark] .inventory-dashboard{background-image:linear-gradient(#7f978b13 1px,#0000 1px),linear-gradient(90deg,#7f978b13 1px,#0000 1px)}:root[data-theme=dark] .login-card,:root[data-theme=dark] .inventory-group,:root[data-theme=dark] .inventory-totals,:root[data-theme=dark] .device-facts{color:#dce7df;background:#14201cf7;border-color:#46574f;box-shadow:5px 5px #1fc47a1a}:root[data-theme=dark] .login-card{box-shadow:12px 12px #1fc47a21}:root[data-theme=dark] .login-card label span,:root[data-theme=dark] .database-connect-card label span,:root[data-theme=dark] .postgres-client label>span{color:#a6b5ad}:root[data-theme=dark] .login-card input,:root[data-theme=dark] .search-field,:root[data-theme=dark] .database-connect-card input,:root[data-theme=dark] .postgres-client input,:root[data-theme=dark] .postgres-client textarea{color:#e2ece6;background:#0d1815;border-color:#46574f}:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#6f7f77}:root[data-theme=dark] .inventory-hero,:root[data-theme=dark] .detail-head{border-color:#46574f}:root[data-theme=dark] .inventory-totals span,:root[data-theme=dark] .inventory-group-head,:root[data-theme=dark] .group-health,:root[data-theme=dark] .device-facts span,:root[data-theme=dark] .detail-panel>header,:root[data-theme=dark] .service-modal>header,:root[data-theme=dark] .postgres-result>header{border-color:#3b4b44}:root[data-theme=dark] .inventory-totals small,:root[data-theme=dark] .group-health small,:root[data-theme=dark] .device-card-main small,:root[data-theme=dark] .device-card-main code,:root[data-theme=dark] .device-card-meta small,:root[data-theme=dark] .device-card-meta i,:root[data-theme=dark] .inventory-source,:root[data-theme=dark] .detail-status,:root[data-theme=dark] .device-facts b,:root[data-theme=dark] .device-facts code,:root[data-theme=dark] .metric-card>span,:root[data-theme=dark] .metric-card>small,:root[data-theme=dark] .visible-row small,:root[data-theme=dark] .service-row small,:root[data-theme=dark] .visible-row>code,:root[data-theme=dark] .service-row>b,:root[data-theme=dark] .panel-empty,:root[data-theme=dark] .detail-refresh,:root[data-theme=dark] .detail-loading,:root[data-theme=dark] .service-modal header code,:root[data-theme=dark] .service-modal-list small,:root[data-theme=dark] .service-modal-list b,:root[data-theme=dark] .database-connect-card p:not(.eyebrow),:root[data-theme=dark] .postgres-actions small,:root[data-theme=dark] .postgres-result>header span,:root[data-theme=dark] .postgres-result>p,:root[data-theme=dark] .service-via{color:#91a099}:root[data-theme=dark] .back-button,:root[data-theme=dark] .machine-service-icons>span{color:#a6b5ad}:root[data-theme=dark] .device-card-meta b{color:#aebdb5;background:#293831}:root[data-theme=dark] .device-card,:root[data-theme=dark] .group-devices .device-card,:root[data-theme=dark] .visible-row,:root[data-theme=dark] .service-row,:root[data-theme=dark] .service-modal-list>button,:root[data-theme=dark] .postgres-result th,:root[data-theme=dark] .postgres-result td{border-color:#2d3d36}:root[data-theme=dark] .group-devices .device-card:hover,:root[data-theme=dark] .group-devices .device-card:focus-visible,:root[data-theme=dark] button.visible-row:not(:disabled):hover,:root[data-theme=dark] button.visible-row:not(:disabled):focus-visible,:root[data-theme=dark] button.service-row.service-row-action:hover,:root[data-theme=dark] button.service-row.service-row-action:focus-visible,:root[data-theme=dark] .service-modal-list>button.available:hover{background:#1b2c25}:root[data-theme=dark] .metric-card,:root[data-theme=dark] .detail-panel,:root[data-theme=dark] .service-modal,:root[data-theme=dark] .database-connect-card,:root[data-theme=dark] .postgres-client,:root[data-theme=dark] .postgres-result{color:#dce7df;background:var(--panel);border-color:#46574f;box-shadow:4px 4px #00000038}:root[data-theme=dark] .metric-card>i{background:#2b3a34}:root[data-theme=dark] .detail-panel>header>b,:root[data-theme=dark] .location-group-head b{color:#74e3ad;background:#153c2c}:root[data-theme=dark] .service-kind{color:#a3b2aa;background:#192721;border-color:#46574f}:root[data-theme=dark] .service-kind.ssh,:root[data-theme=dark] .service-kind.http,:root[data-theme=dark] .service-kind.https,:root[data-theme=dark] .service-kind.postgresql{color:#71dda8;background:#123526;border-color:#286947}:root[data-theme=dark] .service-modal>header>button{color:#aebdb5;border-color:#46574f}:root[data-theme=dark] .service-modal>header>button:hover{color:#fff;background:#21322b;border-color:#6c8177}:root[data-theme=dark] .inspection-warning,:root[data-theme=dark] .detail-error,:root[data-theme=dark] .data-error{color:#f0a58f;background:#321d18;border-color:#784b3e}:root[data-theme=dark] .proxy-disconnected button{color:#f0a58f;background:#ffffff09;border-color:#9a624f}:root[data-theme=dark] .proxy-status,:root[data-theme=dark] .services-only-status{color:#86e6b5;background:#123526;border-color:#286947}:root[data-theme=dark] .postgres-result th{color:#dce7df;background:#21322b}:root[data-theme=dark] .browser-frame{background:#fff}@media (width<=760px){.app-shell{grid-template:54px minmax(0,1fr)/1fr}.topbar-brand{border-right:0;flex:none;width:auto;padding:0 13px}.topbar-brand small,.network-summary span:nth-child(2),.updated-at{display:none}.network-summary{padding-left:7px}.topbar-actions{margin-left:auto}.theme-toggle{width:46px;min-width:46px;padding:0}.theme-toggle b{display:none}.icon-button{width:46px}.logout-button{padding:0 12px;font-size:8px;display:block}.sidebar{z-index:1001;border:1px solid #77857d;max-height:min(68vh,590px);transition:transform .22s;position:fixed;bottom:10px;left:10px;right:10px;transform:translateY(calc(100% + 24px));box-shadow:8px 8px #0b15133d}.sidebar.open{transform:translateY(0)}.sidebar-head{padding:20px 18px 14px}.sidebar-close{display:block}.search-field{margin:0 18px}.inventory-dashboard{padding:24px 14px 22px}.inventory-hero{flex-direction:column;align-items:stretch;gap:20px;padding-bottom:22px}.inventory-hero h1{font-size:42px}.inventory-totals{width:100%}.inventory-totals span{min-width:0;padding:12px}.inventory-totals b{font-size:21px}.inventory-toolbar{flex-direction:column;align-items:stretch;gap:14px;margin-top:24px}.inventory-toolbar .search-field{width:100%}.group-grid{grid-template-columns:1fr;gap:12px}.group-column{gap:12px}.inventory-group-head{padding:16px}.inventory-group-head h3{font-size:18px}.group-devices .device-card{padding:14px 15px}.inventory-source{text-align:left}.app-shell.detail-shell{grid-template:54px minmax(0,1fr)/1fr}.detail-page{padding:19px 14px 28px}.detail-head{grid-template-columns:1fr auto;gap:13px;padding-bottom:17px}.detail-head .back-button{grid-column:1/-1}.detail-title h1{font-size:31px}.terminal-button{grid-column:1/-1;justify-content:center;align-self:end;width:100%;padding:12px}.terminal-button span{font-size:14px}.device-facts{grid-template-columns:1fr 1fr;margin:14px 0 16px;display:grid}.device-facts span{border-bottom:1px solid #cdd4cc;border-right:1px solid #cdd4cc;min-width:0}.proxy-disconnected{align-items:flex-start}.proxy-disconnected button{justify-content:center;min-width:42px;min-height:42px;padding:8px}.proxy-disconnected button span{display:none}.proxy-disconnected button i{font-size:15px}.metrics-grid{grid-template-columns:1fr;gap:9px}.metric-card{padding:15px}.metric-card>strong{font-size:23px}.detail-columns{grid-template-columns:1fr;gap:12px;margin-top:13px}.detail-list{max-height:265px}.visible-row{grid-template-columns:8px minmax(0,1fr)}.machine-service-icons{grid-column:2;padding-bottom:2px;overflow-x:auto}.visible-row>code{grid-column:2}.service-modal-backdrop{padding:10px}.service-modal-list>button{grid-template-columns:36px minmax(0,1fr)}.service-modal-list>button>b{grid-column:2}.service-app-page{padding:17px 12px}.service-app-head{grid-template-columns:minmax(0,1fr) auto;gap:11px}.service-app-head .back-button{grid-column:1/-1}.browser-client-page{grid-template-rows:auto 48px minmax(300px,1fr) auto}.browser-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:9px}.browser-toolbar>span{display:none}.browser-toolbar a{font-size:0}.browser-toolbar a:after{content:"ABRIR ↗";font-size:8px}.browser-http-fallback>div{padding:24px}.database-connect-card{margin-top:24px;padding:20px}.database-connect-card>div{grid-template-columns:1fr 90px}.postgres-client{padding:14px}.postgres-connection{grid-template-columns:minmax(0,1fr) 82px}.postgres-actions{flex-direction:column;align-items:stretch}.postgres-actions button{width:100%}.postgres-result th,.postgres-result td{min-width:120px}.terminal-page{padding:13px 10px 12px}.terminal-head{grid-template-columns:minmax(0,1fr) auto;gap:10px}.terminal-head .back-button{grid-column:1/-1}.terminal-head h1{font-size:25px}.terminal-frame{margin-top:10px;padding:7px}}@media (width<=460px){.login-page{place-items:start center;padding:max(18px,5dvh) 14px}.login-card{padding:30px 24px;box-shadow:7px 7px #1fc47a29}.login-card .brand-mark{margin-bottom:22px}.login-copy{margin-bottom:26px}.login-theme-toggle{top:12px;right:12px}.network-summary{margin-left:auto}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
