:root{color:#182028;font-synthesis:none;text-rendering:optimizelegibility;--ink:#182028;--muted:#6d7780;--line:#dfe5e8;--surface:#fff;--surface-soft:#f7f9fa;--accent:#146c5a;--accent-dark:#0e594a;--accent-soft:#e8f3f0;--danger:#b4453d;--danger-soft:#faecea;--warning:#8a5c16;--warning-soft:#fff5df;background:#f4f7f8;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #146c5a38}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}code,pre{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}.boot-screen,.login-page{place-items:center;min-height:100vh;display:grid}.boot-screen{color:var(--muted);gap:12px}.login-page{background-color:#f4f7f8;background-image:linear-gradient(90deg,#146c5a0a 1px,#0000 1px),linear-gradient(#146c5a0a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;padding:32px 20px}.login-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;width:min(100%,420px);padding:38px;box-shadow:0 20px 60px #1820281a}.login-panel h1{letter-spacing:0;margin:24px 0 8px;font-size:26px;line-height:1.25}.login-panel>p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.brand-mark{color:#fff;background:var(--accent);border-radius:6px;place-items:center;width:36px;height:36px;display:grid}.brand-mark.large{width:44px;height:44px}.login-form{gap:17px;margin-top:28px;display:grid}label{color:#49525a;gap:7px;font-size:13px;font-weight:600;display:grid}input{width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #cfd7db;border-radius:5px;padding:9px 11px;font-size:14px}select{width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #cfd7db;border-radius:5px;padding:9px 32px 9px 11px;font-size:14px}textarea{width:100%;color:var(--ink);resize:vertical;background:#fff;border:1px solid #cfd7db;border-radius:5px;padding:10px 11px;font-size:13px;line-height:1.55}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.primary-button,.secondary-button,.icon-button{cursor:pointer;border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.primary-button,.secondary-button{border-radius:5px;gap:8px;min-height:38px;padding:8px 13px;font-size:13px;font-weight:700}.primary-button{color:#fff;background:var(--accent)}.primary-button:hover{background:var(--accent-dark)}.secondary-button{color:#3e4850;background:#fff;border:1px solid #ccd5d9}.secondary-button:hover{background:var(--surface-soft)}.primary-button:disabled,.secondary-button:disabled{opacity:.58;cursor:wait}.full-width{width:100%;margin-top:4px}.icon-button{color:#56616a;background:0 0;border-radius:5px;flex:0 0 36px;width:36px;height:36px}.icon-button:hover{color:var(--accent);background:var(--accent-soft)}.form-error,.page-error{color:var(--danger);background:var(--danger-soft);border:1px solid #f0c9c4;border-radius:5px;align-items:center;gap:8px;font-size:13px;display:flex}.page-error span{flex:1;min-width:0}.page-error button{min-height:30px;color:var(--danger);cursor:pointer;background:0 0;border:1px solid #dfaaa4;border-radius:4px;padding:4px 9px;font-size:12px;font-weight:700}.form-error{padding:10px 11px}.page-error{margin-bottom:18px;padding:12px 14px}.setup-notice{color:var(--warning);background:var(--warning-soft);border:1px solid #eed7a9;border-radius:6px;gap:12px;margin-top:28px;padding:15px;display:flex}.setup-notice strong{color:#6d4810;font-size:14px;display:block}.setup-notice p{margin:5px 0 0;font-size:13px;line-height:1.55}.setup-notice code{color:#5c3c0b}.login-security{color:#78838b;align-items:center;gap:7px;margin-top:24px;font-size:12px;display:flex}.app-shell{min-height:100vh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;height:64px;padding:0 28px;display:grid}.brand,.topbar-actions,.signed-in{align-items:center;display:flex}.brand{gap:11px}.brand>div:last-child{gap:2px;display:grid}.brand strong{font-size:14px}.brand span{color:var(--muted);font-size:11px}.topbar-actions{justify-self:end;gap:10px}.app-tabs{background:#eef2f3;border-radius:6px;align-items:center;gap:3px;padding:3px;display:flex}.app-tabs button{color:#68737a;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;min-height:32px;padding:6px 11px;font-size:12px;font-weight:700;display:inline-flex}.app-tabs button:hover{color:var(--ink)}.app-tabs button.active{color:var(--accent);background:#fff;box-shadow:0 1px 3px #1820281a}.signed-in{color:#59636b;gap:7px;font-size:12px}.signed-in svg{color:var(--accent)}.workspace{width:min(100%,1460px);margin:0 auto;padding:34px 28px 56px}.page-heading,.heading-actions,.section-header,.dialog-header,.dialog-header>div,.dialog-actions{align-items:center;display:flex}.page-heading{justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h1{letter-spacing:0;margin:0;font-size:24px;line-height:1.25}.page-heading p,.section-header p,.dialog-header p{color:var(--muted);margin:6px 0 0;font-size:13px}.heading-actions{flex-wrap:wrap;gap:9px}.summary-strip{background:var(--surface);border:1px solid var(--line);border-radius:7px;grid-template-columns:repeat(3,1fr);margin-bottom:20px;display:grid}.metric{min-width:0;padding:20px 22px}.metric+.metric{border-left:1px solid var(--line)}.metric span,.metric small{display:block}.metric span{color:var(--muted);font-size:12px}.metric strong{margin:8px 0 4px;font-size:22px;line-height:1;display:block}.metric strong.success{color:var(--accent)}.metric strong.danger{color:var(--danger)}.metric small{color:#7c868d;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.content-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.primary-surface,.ops-panel{background:var(--surface);border:1px solid var(--line);border-radius:7px;min-width:0}.section-header{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;min-height:74px;padding:16px 20px}.section-header h2{margin:0;font-size:15px;line-height:1.3}.section-header>span{color:var(--muted);font-size:12px}.device-table{overflow-x:auto}.device-row{border-bottom:1px solid #edf0f2;grid-template-columns:minmax(220px,1.3fr) minmax(190px,1fr) minmax(150px,.8fr) 115px 78px;align-items:center;gap:16px;min-width:760px;min-height:70px;padding:12px 18px;display:grid}.device-row:last-child{border-bottom:0}.device-row:not(.device-header):hover{background:#fbfcfc}.device-header{color:#7a858c;background:var(--surface-soft);min-height:38px;padding-top:8px;padding-bottom:8px;font-size:11px;font-weight:700}.device-name{align-items:center;gap:11px;min-width:0;display:flex}.device-icon{width:34px;height:34px;color:var(--accent);background:var(--accent-soft);border-radius:5px;flex:0 0 34px;place-items:center;display:grid}.device-name strong,.device-name small{display:block}.device-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.device-name small{color:var(--muted);margin-top:4px;font-size:11px}.device-name .mesh-address{color:var(--accent)}.device-name .mesh-address:not(.is-online){color:var(--muted)}.device-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.connection-menu{position:relative}.connection-trigger{color:#3e4850;cursor:pointer;background:#fff;border:1px solid #ccd5d9;border-radius:5px;justify-content:center;align-items:center;gap:5px;min-height:36px;padding:7px 10px;font-size:12px;font-weight:700;list-style:none;display:inline-flex}.connection-trigger.is-open,.connection-trigger:hover{color:var(--accent);background:var(--accent-soft);border-color:#b8d5ce}.connection-trigger.is-open svg{transform:rotate(180deg)}.connection-popover{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:7px;width:260px;padding:6px;position:fixed;box-shadow:0 12px 32px #18202829}.connection-recommendation{color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 9px 9px;font-size:10px;display:flex}.connection-recommendation strong{color:var(--accent);font-size:11px}.connection-popover>a,.connection-popover>button{width:100%;min-height:46px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;text-decoration:none;display:grid}.connection-popover>a:hover,.connection-popover>button:hover{background:var(--surface-soft)}.connection-popover>a span,.connection-popover>a strong,.connection-popover>a small{display:block}.connection-popover>a strong,.connection-popover>button{font-size:12px;font-weight:700}.connection-popover>a small{color:var(--muted);margin-top:3px;font-family:Cascadia Code,Consolas,monospace;font-size:9px}.connection-popover>a em{color:var(--accent);font-size:9px;font-style:normal;font-weight:700}.endpoint{min-width:0}.endpoint>span{display:none}.endpoint code{color:#4d5860;text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.device-status{color:var(--muted);grid-template-columns:8px auto;align-items:center;gap:5px 7px;font-size:12px;display:grid}.device-status small{color:#8a949b;grid-column:2;font-size:10px}.device-status.is-online{color:var(--accent)}.device-status.is-offline{color:var(--danger)}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.online{background:#1b8b71;box-shadow:0 0 0 3px #1b8b711f}.status-dot.offline{background:#c95b52;box-shadow:0 0 0 3px #c95b521a}.diagnostic-list{padding:4px 18px}.diagnostic-row{border-bottom:1px solid #edf0f2;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:68px;display:grid}.diagnostic-icon{color:#52616a;background:#f0f4f5;border-radius:5px;place-items:center;width:32px;height:32px;display:grid}.diagnostic-copy{min-width:0}.diagnostic-copy strong,.diagnostic-copy span{display:block}.diagnostic-copy strong{font-size:12px}.diagnostic-copy span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:10px;overflow:hidden}.diagnostic-state{align-items:center;gap:4px;font-size:11px;display:inline-flex}.diagnostic-state.healthy{color:var(--accent)}.diagnostic-state.warning{color:var(--danger)}.diagnostic-state.muted{color:var(--muted)}.ops-link{color:#657078;background:var(--surface-soft);border-radius:0 0 7px 7px;justify-content:space-between;align-items:center;gap:12px;min-height:49px;padding:0 18px;font-size:11px;display:flex}.ops-link span{align-items:center;gap:7px;display:flex}.mesh-content-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.mesh-onboarding-panel{background:var(--surface);border:1px solid var(--line);border-radius:7px;min-width:0}.onboarding-steps{gap:0;margin:0;padding:6px 20px 2px;list-style:none;display:grid}.onboarding-steps li{border-bottom:1px solid #edf0f2;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:15px 0;display:grid}.onboarding-steps li:last-child{border-bottom:0}.onboarding-steps li>span{width:26px;height:26px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid}.onboarding-steps strong,.onboarding-steps small{display:block}.onboarding-steps strong{font-size:12px}.onboarding-steps small{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.5}.mesh-onboarding-panel>.primary-button{width:calc(100% - 40px);margin:10px 20px 0}.mesh-security-line{color:#6f7a81;background:var(--surface-soft);border-radius:0 0 7px 7px;align-items:center;gap:7px;margin-top:16px;padding:13px 20px;font-size:10px;display:flex}.mesh-node-table{overflow-x:auto}.mesh-node-row{border-bottom:1px solid #edf0f2;grid-template-columns:minmax(220px,1.4fr) minmax(135px,.8fr) minmax(120px,.7fr) 90px 166px;align-items:center;gap:16px;min-width:670px;min-height:66px;padding:12px 18px;display:grid}.mesh-node-actions{justify-content:flex-end;align-items:center;gap:2px;display:flex}.mesh-node-row:last-child{border-bottom:0}.mesh-node-header{color:#7a858c;background:var(--surface-soft);min-height:38px;padding-top:8px;padding-bottom:8px;font-size:11px;font-weight:700}.mesh-node-name{align-items:center;gap:11px;min-width:0;display:flex}.mesh-node-name strong,.mesh-node-name small{display:block}.mesh-node-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mesh-node-name small{color:var(--muted);margin-top:4px;font-size:10px}.mesh-node-row code,.node-last-seen{color:#536069;font-size:11px}.node-online-state{align-items:center;gap:7px;font-size:11px;display:flex}.node-online-state.online{color:var(--accent)}.node-online-state.offline{color:var(--danger)}.mesh-enrollment-dialog{width:min(100%,760px)}.client-type-fieldset{border:0;margin:0 0 18px;padding:0}.client-type-fieldset legend{color:#49525a;margin-bottom:7px;font-size:13px;font-weight:600}.client-type-selector{background:#eef2f3;border-radius:6px;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;display:grid}.client-type-selector button{color:#667178;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:54px;padding:8px 10px;display:grid}.client-type-selector button:hover{color:var(--ink);background:#ffffff8c}.client-type-selector button.active{color:var(--accent);background:var(--surface);border-color:#d6dfe1;box-shadow:0 1px 3px #18202814}.client-type-selector span,.client-type-selector strong,.client-type-selector small{min-width:0;display:block}.client-type-selector strong{color:var(--ink);font-size:12px}.client-type-selector small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;overflow:hidden}.enrollment-security-note,.mesh-security-line{color:#68767d}.enrollment-security-note{background:var(--accent-soft);border:1px solid #cce1dc;border-radius:5px;align-items:center;gap:7px;margin-top:14px;padding:11px 12px;font-size:11px;display:flex}.android-approval-setup{gap:16px;display:grid}.android-control-row{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:12px 14px;display:flex}.android-control-row>span,.android-control-row small,.android-control-row code{min-width:0;display:block}.android-control-row small{color:var(--muted);margin-bottom:4px;font-size:10px}.android-control-row code{color:var(--accent);overflow-wrap:anywhere;font-size:12px;font-weight:650}.android-approval-steps{gap:9px;margin:0;padding:0;list-style:none;display:grid}.android-approval-steps li{color:#4f5b61;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:9px;min-width:0;font-size:11px;line-height:1.55;display:grid}.android-approval-steps li>span{width:22px;height:22px;color:var(--accent);background:var(--accent-soft);border:1px solid #cce1dc;border-radius:50%;place-items:center;font-size:10px;font-weight:750;display:inline-grid}.android-approval-steps p{overflow-wrap:anywhere;min-width:0;margin:2px 0 0}.android-auth-request-field textarea{overflow-wrap:anywhere;min-height:82px;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}.android-auth-request-field>small{color:var(--muted);font-size:10px;font-weight:400}.android-approved-node{background:var(--surface-soft);border:1px solid var(--line);border-radius:6px;justify-content:space-between;align-items:center;gap:18px;min-width:0;padding:14px 15px;display:flex}.android-approved-node small{color:var(--muted);margin-bottom:6px;font-size:10px;display:block}.android-approved-addresses{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.android-approved-addresses code{color:var(--accent);overflow-wrap:anywhere;font-size:12px;font-weight:650}.enrollment-result{gap:15px;display:grid}.result-heading,.result-block header,.download-enrollment,.download-enrollment>div,.result-heading>div>span,.success-mark{align-items:center;display:flex}.result-heading{justify-content:space-between;gap:16px}.result-heading strong,.result-heading span{display:block}.result-heading>div>strong{font-size:16px}.result-heading>div>span{color:var(--muted);gap:6px;margin-top:5px;font-size:11px}.success-mark{color:var(--accent);gap:5px;font-size:11px;font-weight:700}.result-block{border:1px solid var(--line);border-radius:6px;overflow:hidden}.result-block header{background:var(--surface-soft);border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;min-height:48px;padding:8px 12px 8px 15px}.result-block header strong{font-size:12px}.result-block pre,.secret-code{color:#dcebe7;overflow-wrap:anywhere;white-space:pre-wrap;background:#172421;margin:0;padding:14px 15px;font-size:10px;line-height:1.6;display:block}.android-control-server{color:var(--accent);border-bottom:1px solid var(--line);overflow-wrap:anywhere;background:#f4f8f7;padding:13px 15px;font-size:12px;font-weight:650;display:block}.android-enrollment-guide ol{gap:0;margin:0;padding:5px 15px 7px;list-style:none;display:grid}.android-enrollment-guide li{color:#4f5b61;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;min-width:0;padding:10px 0;font-size:11px;line-height:1.55;display:grid}.android-enrollment-guide li+li{border-top:1px solid #e7ecee}.android-enrollment-guide li>span{width:22px;height:22px;color:var(--accent);background:var(--accent-soft);border:1px solid #cce1dc;border-radius:50%;place-items:center;font-size:10px;font-weight:750;display:inline-grid}.android-enrollment-guide p{overflow-wrap:anywhere;min-width:0;margin:2px 0 0}.download-enrollment{background:#f4f8f7;border:1px solid #d8e5e2;border-radius:6px;justify-content:space-between;gap:18px;padding:14px 15px}.client-type-result-note{color:var(--accent);background:#f4f8f7;border:1px solid #d8e5e2;border-radius:6px;align-items:center;gap:11px;padding:13px 15px;display:flex}.client-type-result-note strong,.client-type-result-note small{display:block}.client-type-result-note strong{color:var(--ink);font-size:12px}.client-type-result-note small{color:var(--muted);margin-top:4px;font-size:10px}.download-enrollment>div{color:var(--accent);gap:10px}.download-enrollment strong,.download-enrollment small{display:block}.download-enrollment strong{color:var(--ink);font-size:12px}.download-enrollment small{color:var(--muted);margin-top:4px;font-size:10px}.loading-state,.empty-state{min-height:190px;color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.loading-state.compact{min-height:220px}.empty-state{flex-direction:column}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dialog-backdrop{z-index:20;background:#141b1f75;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:8px;width:min(100%,700px);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 28px 80px #0d141847}.dialog-header{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:20px 22px}.dialog-header>div{gap:11px}.dialog-icon{width:36px;height:36px;color:var(--accent);background:var(--accent-soft);border-radius:6px;place-items:center;display:grid}.dialog-header h2{margin:0;font-size:16px}.template-form{padding:22px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.port-note{color:var(--muted);margin:14px 0;font-size:12px}.template-result{margin-top:16px}.template-warning{color:var(--warning);background:var(--warning-soft);border:1px solid #eed7a9;border-radius:5px 5px 0 0;align-items:center;gap:7px;padding:10px 12px;font-size:12px;display:flex}.template-result pre{color:#dcebe7;background:#172421;border-radius:0 0 5px 5px;max-height:280px;margin:0;padding:16px;font-size:11px;line-height:1.65;overflow:auto}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px}.rename-node-dialog{width:min(100%,520px)}.field-note{color:var(--muted);margin:10px 0 0;font-size:11px}.toast{z-index:40;color:#fff;background:#1f5f52;border-radius:6px;align-items:center;gap:9px;max-width:min(380px,100vw - 32px);min-height:44px;padding:10px 14px;font-size:12px;font-weight:700;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 10px 30px #18202833}.toast.is-error{background:#983f38}@media (width<=980px){.content-grid,.mesh-content-grid{grid-template-columns:1fr}.diagnostic-list{grid-template-columns:1fr 1fr;column-gap:18px;display:grid}}@media (width<=700px){.topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;height:auto;padding:10px 16px 0}.brand span,.signed-in{display:none}.app-tabs{border-top:1px solid var(--line);background:#f5f7f8;border-radius:0;grid-column:1/-1;justify-content:stretch;width:calc(100% + 32px);margin:0 -16px;padding:4px 16px}.app-tabs button{flex:1;justify-content:center}.workspace{padding:25px 16px 40px}.page-heading{flex-direction:column;align-items:flex-start}.heading-actions{width:100%}.heading-actions .primary-button,.heading-actions .secondary-button{flex:150px}.summary-strip{grid-template-columns:1fr}.metric{padding:16px 18px}.metric+.metric{border-top:1px solid var(--line);border-left:0}.diagnostic-list{display:block}.form-grid,.client-type-selector{grid-template-columns:1fr}.client-type-selector button{min-height:48px}.device-table{overflow:visible}.device-header{display:none}.device-row{grid-template-columns:minmax(0,1fr) 38px;align-items:start;gap:10px 12px;min-width:0;padding:16px 18px}.device-name{grid-column:1}.endpoint{grid-column:1;grid-template-columns:58px minmax(0,1fr);align-items:baseline;gap:8px;display:grid}.endpoint>span{color:var(--muted);font-size:11px;display:block}.endpoint code{white-space:normal;overflow-wrap:anywhere}.device-status{grid-column:1;grid-template-columns:8px auto 1fr}.device-status small{grid-column:3;margin-left:2px}.device-row>.device-actions{grid-area:1/2}.mesh-node-table{overflow:visible}.mesh-node-header{display:none}.mesh-node-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:9px 12px;min-width:0;padding:16px 18px}.mesh-node-name{grid-column:1}.mesh-node-row>code,.node-last-seen{grid-column:1;padding-left:45px}.node-online-state{grid-area:1/2}.mesh-node-actions{grid-area:2/2/auto/4}.mesh-node-actions .icon-button{flex-basis:42px;width:42px;height:42px}.connection-trigger{min-height:42px}.connection-popover{width:auto}.toast{bottom:16px;right:16px}.download-enrollment{flex-direction:column;align-items:stretch}.download-enrollment .primary-button{width:100%}.result-block header{flex-direction:column;align-items:flex-start}.dialog-backdrop{align-items:end;padding:0}.dialog{border-radius:8px 8px 0 0;max-height:92vh}.login-panel{padding:28px 24px}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.console-shell{background:#f4f7f8;grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.console-sidebar{border-right:1px solid var(--line);background:#f9fbfb;flex-direction:column;gap:28px;height:100vh;padding:22px 16px 16px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:11px;min-width:0;padding:0 6px;display:flex}.sidebar-brand>div:last-child,.sidebar-brand span,.sidebar-brand strong{min-width:0;display:block}.sidebar-brand strong{font-size:14px}.sidebar-brand span{color:var(--muted);margin-top:2px;font-size:10px}.sidebar-nav{gap:5px;display:grid}.sidebar-nav button,.mobile-console-nav button{color:#5e6970;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:9px 12px;font-size:13px;font-weight:700;display:flex}.sidebar-nav button:hover,.mobile-console-nav button:hover{color:var(--ink);background:#f0f4f5}.sidebar-nav button.active,.mobile-console-nav button.active{color:var(--accent);background:var(--accent-soft);border-color:#d4e5e1}.sidebar-account{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:12px 8px 4px;display:flex}.sidebar-account>div{min-width:0;color:var(--accent);align-items:center;gap:8px;display:flex}.sidebar-account span,.sidebar-account strong,.sidebar-account small{min-width:0;display:block}.sidebar-account strong{color:var(--ink);font-size:12px}.sidebar-account small{color:var(--muted);text-overflow:ellipsis;margin-top:2px;font-size:9px;overflow:hidden}.console-main{min-width:0}.mobile-console-header,.mobile-console-nav{display:none}.console-page{gap:20px;display:grid}.console-page .page-heading,.console-page .summary-strip{margin-bottom:0}.global-page-error{padding-bottom:0}.page-section{min-width:0}.section-header.unframed{border:0;min-height:auto;padding:0 0 12px}.service-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.service-card{background:var(--surface);border:1px solid var(--line);border-radius:7px;grid-template-rows:auto auto auto 1fr;gap:7px;min-width:0;min-height:150px;padding:14px;display:grid}.service-card-heading{justify-content:space-between;align-items:center;min-height:28px;display:flex}.service-kind{width:fit-content;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:3px 6px;font-size:9px;font-weight:800}.service-card>strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.service-card>small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.service-open-button{color:#3e4850;background:var(--surface-soft);cursor:pointer;border:1px solid #d8dfe2;border-radius:5px;justify-content:center;align-self:end;align-items:center;gap:7px;min-height:38px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.service-open-button:hover{color:var(--accent);background:var(--accent-soft)}.service-empty{min-height:170px;color:var(--muted);text-align:center;background:#f8fafb;border:1px dashed #ccd6da;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:7px;font-size:11px;display:flex}.service-empty strong{color:var(--ink);font-size:13px}.service-empty.compact{border:0;min-height:130px}.discovery-dialog{width:min(100%,680px)}.discovery-results{gap:6px;max-height:350px;margin-top:16px;display:grid;overflow:auto}.discovered-service{background:var(--surface-soft);border:1px solid var(--line);cursor:pointer;border-radius:5px;grid-template-columns:22px 54px minmax(0,1fr);align-items:center;gap:10px;min-height:54px;padding:8px 10px;display:grid}.discovered-service input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--accent)}.discovered-service span:last-child,.discovered-service strong,.discovered-service small{min-width:0;display:block}.discovered-service strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.discovered-service small{color:var(--muted);margin-top:3px;font-size:10px}.page-context-note,.public-access-warning{border-radius:5px;align-items:center;gap:8px;padding:11px 13px;font-size:11px;display:flex}.page-context-note{color:#56636a;background:#edf3f4;border:1px solid #d8e1e4}.public-access-warning{color:var(--warning);background:var(--warning-soft);border:1px solid #eed7a9;margin-top:16px}.tunnel-dialog{width:min(100%,720px)}.domain-input{grid-template-columns:minmax(90px,1fr) auto;align-items:stretch;display:grid}.domain-input input{border-radius:5px 0 0 5px}.domain-input span{color:var(--muted);background:#f2f5f6;border:1px solid #cfd7db;border-left:0;border-radius:0 5px 5px 0;align-items:center;padding:0 10px;font-size:10px;display:flex}.access-mode-fieldset{border:0;margin:18px 0 0;padding:0}.access-mode-fieldset legend{color:#49525a;margin-bottom:7px;font-size:13px;font-weight:600}.access-mode-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.access-mode-selector button{color:#5f6a71;border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:5px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:9px;min-height:58px;padding:9px 11px;display:grid}.access-mode-selector button.active{color:var(--accent);background:var(--accent-soft);border-color:#bdd8d1}.access-mode-selector strong,.access-mode-selector small{display:block}.access-mode-selector strong{color:var(--ink);font-size:12px}.access-mode-selector small,.input-hint{color:var(--muted);margin-top:3px;font-size:9px;font-weight:400}.tunnel-list{display:grid}.tunnel-row{border-bottom:1px solid #edf0f2;grid-template-columns:120px minmax(0,1fr) 82px;align-items:center;gap:16px;min-height:76px;padding:12px 18px;display:grid}.tunnel-row:last-child{border-bottom:0}.tunnel-state{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex}.tunnel-state>span{background:#8c969c;border-radius:50%;flex:0 0 8px;width:8px;height:8px}.tunnel-state.active{color:var(--accent)}.tunnel-state.active>span{background:#1b8b71}.tunnel-state.pending{color:var(--warning)}.tunnel-state.pending>span{background:#b67a20}.tunnel-state.error{color:var(--danger)}.tunnel-state.error>span{background:#c95b52}.tunnel-route,.tunnel-route a,.tunnel-route small{min-width:0;display:block}.tunnel-route a{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;text-decoration:none;overflow:hidden}.tunnel-route a:hover{color:var(--accent)}.tunnel-route small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:10px;overflow:hidden}.tunnel-actions{justify-content:flex-end;gap:4px;display:flex}.danger-action:hover{color:var(--danger);background:var(--danger-soft)}.network-diagnostics{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}@media (width<=860px){.console-shell{display:block}.console-sidebar{display:none}.mobile-console-header{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:58px;padding:8px 16px;display:flex}.mobile-console-header .sidebar-brand{padding:0}.mobile-console-nav{border-bottom:1px solid var(--line);background:#f7f9fa;gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.mobile-console-nav button{flex:none;min-height:40px;padding:7px 10px;font-size:11px}.network-diagnostics{grid-template-columns:1fr}}@media (width<=700px){.service-grid{grid-template-columns:1fr}.service-card{min-height:136px}.access-mode-selector,.domain-input{grid-template-columns:1fr}.domain-input input,.domain-input span{border-radius:5px}.domain-input span{border:1px solid #cfd7db;border-top:0;min-height:34px}.tunnel-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 16px}.tunnel-state,.tunnel-route{grid-column:1}.tunnel-actions{grid-area:1/2/3}}
