:root{color:#1c1e21;font-synthesis:none;--ink:#1c1e21;--muted:#65676b;--line:#dadde1;--soft-line:#e4e6eb;--surface:#fff;--primary:#1877f2;--primary-hover:#166fe5;--primary-soft:#e7f3ff;--blue-soft:#e7f3ff;--orange-soft:#fff3df;--red:#bb4d47;--red-soft:#fcedea;--nav:#1c1e21;--shadow:0 1px 2px #00000029;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#f0f2f5;min-width:320px;min-height:100%;scroll-padding-top:86px}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.56}a{color:inherit;text-decoration:none}h1,h2,h3,p,dl,dd{margin:0}code{overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}:focus-visible{outline-offset:2px;outline:3px solid #1877f240}.boot-screen{min-height:100vh;color:var(--muted);place-items:center;font-size:14px;display:grid}.brand{letter-spacing:-.7px;color:var(--primary);flex-shrink:0;align-items:center;gap:11px;font-size:21px;line-height:1.05;display:flex}.brand b{font-weight:750}.brand small{color:var(--muted);letter-spacing:1.6px;margin-top:6px;font-size:8px;font-weight:650;display:block}.brand-mark{color:#fff;background:var(--primary);border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.button,.icon-button{color:#050505;background:#e4e6eb;border:1px solid #0000;transition:all .15s}.button{white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 14px;font-size:13px;font-weight:650;display:inline-flex}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){color:#050505;background:#d8dadf;border-color:#0000}.button.primary{border-color:var(--primary);background:var(--primary);color:#fff}.button.primary:hover:not(:disabled){border-color:var(--primary-hover);background:var(--primary-hover);color:#fff}.button.ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}.button.small{min-height:32px;padding:7px 10px;font-size:11px}.button.danger{border-color:var(--red);background:var(--red);color:#fff}.button.danger-outline{color:var(--red);border-color:#efd6d3}.button.danger-outline:hover:not(:disabled){background:var(--red-soft);color:#9e3e39;border-color:#e2aaa5}.icon-button{border-radius:8px;flex-shrink:0;place-items:center;width:34px;height:34px;padding:0;display:inline-grid}.icon-button.destructive{color:var(--red)}.device-page{width:100%;min-width:0;padding-bottom:48px}.device-page-header{justify-content:flex-end;align-items:center;gap:20px;padding:0 0 16px;display:flex}.header-actions,.device-card-actions{align-items:center;gap:9px;display:flex}.device-card-actions{flex-wrap:wrap}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--primary);letter-spacing:1.7px;font-size:10px;font-weight:750}.page-heading h1{letter-spacing:-1px;margin-top:6px;font-size:28px;line-height:1.2}.page-heading p{color:var(--muted);margin-top:9px;font-size:13px;line-height:1.7}.alert,.device-notice{overflow-wrap:anywhere;border-radius:10px;margin:0 0 16px;padding:12px 14px;font-size:12px;line-height:1.6}.alert{color:#9c4c43;background:#fff4f0;border:1px solid #efd4ce}.device-notice{color:#17664f;background:#ebf7f2;border:1px solid #cde6dc}.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px;display:grid}.overview-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding:16px;display:grid}.overview-icon,.rule-icon,.service-icon{color:var(--primary);background:var(--primary-soft);flex-shrink:0;place-items:center;display:grid}.overview-icon{border-radius:11px;width:42px;height:42px}.overview-icon.service,.rule-icon{color:var(--primary);background:var(--blue-soft)}.overview-icon.access,.rule-icon.access{color:#8b6e38;background:var(--orange-soft)}.overview-card strong{font-variant-numeric:tabular-nums;font-size:24px;line-height:1;display:block}.overview-card div span{color:#647681;margin-top:6px;font-size:11px;font-weight:600;display:block}.overview-card small{color:#96a4ab;text-align:left;grid-column:2;font-size:10px}.workflow-card,.device-authorization,.local-identity,.local-rules-panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;align-items:flex-start;gap:17px;margin-bottom:16px;padding:21px;display:flex}.step-number{width:30px;height:30px;color:var(--primary);background:var(--primary-soft);border-radius:9px;flex-shrink:0;place-items:center;font-size:13px;font-weight:800;display:grid}.step-content{flex:1;min-width:0}.workflow-card h2,.device-authorization h2,.local-identity h2,.local-rules-panel h2{font-size:17px;line-height:1.4}.workflow-card p,.device-authorization p,.local-identity p,.local-rules-panel p{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.65}.section-title{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.section-hint{color:#83939c;font-size:10px}.command-hint{margin-top:6px;display:block}.command-hint code{color:var(--primary)}.install-command{border:1px solid var(--line);background:#f0f2f5;border-radius:10px;align-items:center;gap:12px;margin:15px 0 10px;padding:12px 12px 12px 14px;display:flex}.install-command code{overflow-wrap:normal;min-width:0;color:var(--ink);white-space:nowrap;flex:1;font-size:11px;overflow-x:auto}.ports-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;margin-top:19px;display:grid}.field{min-width:0;color:var(--muted);flex-direction:column;gap:7px;font-size:12px;font-weight:650;display:flex}.field input,.field select{width:100%;min-width:0;height:41px;color:var(--ink);background:#fff;border:1px solid #d9e2e4;border-radius:9px;outline:none;padding:9px 11px;font-size:14px;transition:all .15s}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1877f217}.field input::placeholder{color:#a7b3b9}.field small{color:#8999a1;font-size:10px;font-weight:450}.ports-form .modal-actions{grid-column:1/-1}.form-note{background:var(--primary-soft);border-radius:8px;padding:10px 12px;color:#3a6092!important;margin-top:14px!important;font-size:10px!important}.rule-list,.device-list{gap:10px;margin:10px 0 22px;display:grid}.rule-card,.device-card{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:14px;padding:15px 17px;display:flex}.rule-icon,.service-icon{border-radius:10px;width:39px;height:39px}.device-card-info{flex:1;min-width:0}.device-card-info h2,.device-card-info h3{font-size:14px;line-height:1.4}.device-card-info p{color:var(--muted);overflow-wrap:anywhere;margin:4px 0 7px;font-size:11px}.device-card-info small,.device-card-info details{color:#84949c;font-size:10px}.device-card-info details{margin-top:9px}.device-card-info details code{margin-top:7px;display:block}.rule-statuses{flex-wrap:wrap;gap:7px;display:flex}.status-pill{color:#677983;overflow-wrap:anywhere;background:#eef2f3;border-radius:999px;align-items:center;gap:6px;max-width:100%;margin-top:5px;padding:4px 8px;font-size:10px;line-height:1.4;display:inline-flex}.status-pill i{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-pill.good{color:#24765d;background:#e7f4ee}.status-pill.warn{color:#9b742b;background:#fff3db}.status-pill.bad{color:#a84943;background:var(--red-soft)}.status-pill.muted{color:#718088;background:#eef2f3}.endpoint-copy{background:#f1f5f6;border-radius:7px;align-items:center;gap:5px;margin-bottom:4px;padding:4px 5px 4px 9px;display:inline-flex}.endpoint-copy code{color:var(--ink);font-size:12px;font-weight:700}.endpoint-copy .icon-button{background:0 0;border:0;width:26px;height:26px}.empty{text-align:center;background:#ffffff8c;border:1px dashed #cfdadb;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:24px;display:flex}.empty-icon{color:#6f9186;background:#eaf3ef;border-radius:13px;place-items:center;width:47px;height:47px;margin-bottom:11px;display:grid}.empty h3{font-size:14px}.empty p{color:#809099;max-width:460px;margin-top:6px;font-size:11px;line-height:1.6}.device-code-form{align-items:end;gap:10px;margin-top:16px;display:flex}.device-code-form .field{width:min(420px,100%)}.device-approval{border-top:1px solid var(--soft-line);margin-top:18px;padding-top:18px}.device-approval h3{font-size:14px}.device-approval dl{grid-template-columns:105px minmax(0,1fr);gap:9px 16px;margin:14px 0;font-size:11px;display:grid}.device-approval dt{color:#85959d}.device-approval dd{overflow-wrap:anywhere}.device-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.device-enroll .step-number{margin-top:1px}.local-identity{justify-content:space-between;align-items:center}.local-identity-main,.approval-action{align-items:center;gap:13px;display:flex}.approval-action code{color:var(--primary-hover);letter-spacing:2px;font-size:18px;font-weight:800}.local-rules-panel{display:block}.local-rule-row{border-bottom:1px solid var(--soft-line);grid-template-columns:36px minmax(120px,1fr) minmax(160px,1fr) auto;align-items:center;gap:12px;padding:12px 0;font-size:12px;display:grid}.local-rule-row:last-child{border-bottom:0}.local-rule-row .rule-icon{width:34px;height:34px}.local-rule-row code{color:var(--ink)}.local-rules-panel .empty{min-height:125px;margin-top:15px}.modal{border:1px solid var(--line);width:min(540px,100% - 30px);max-height:calc(100dvh - 36px);color:var(--ink);background:#fff;border-radius:15px;padding:0;box-shadow:0 30px 90px #1027343d}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1027348c}.modal-header{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;gap:15px;padding:19px 21px;display:flex}.modal-header h2{font-size:16px}.modal-header p{color:var(--muted);margin-top:4px;font-size:10px}.modal-body{padding:21px;overflow-y:auto}.modal-body>p{color:var(--muted);font-size:12px;line-height:1.7}.modal-body .field{margin-bottom:14px}.modal-actions{justify-content:flex-end;align-items:center;gap:9px;margin-top:18px;display:flex}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{z-index:30;background:var(--surface);grid-template-columns:240px minmax(0,1fr) 240px;align-items:center;gap:16px;height:68px;padding:0 24px;display:grid;position:sticky;top:0;box-shadow:0 1px 5px #00000024}.topbar-brand{width:fit-content}.topbar-tabs{justify-content:center;gap:8px;height:100%;display:flex}.topbar-tabs a{min-width:130px;color:var(--muted);border-bottom:3px solid #0000;justify-content:center;align-items:center;gap:10px;padding:8px 20px;font-size:14px;font-weight:600;display:flex}.topbar-tabs a:hover{background:#f2f2f2;border-radius:8px 8px 0 0}.topbar-tabs a[aria-current=page]{color:var(--primary);border-bottom-color:var(--primary)}.account-chip,.rail-profile{align-items:center;gap:10px;min-width:0;font-size:14px;display:flex}.account-chip{background:#f0f2f5;border-radius:24px;justify-self:end;max-width:100%;padding:5px 12px 5px 5px}.account-chip strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-avatar{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:50%;flex:0 0 36px;place-items:center;font-size:18px;font-weight:750;display:grid}.console-columns{grid-template-columns:220px minmax(0,760px) 260px;justify-content:center;align-items:start;gap:28px;max-width:1560px;margin:0 auto;padding:24px;display:grid}.console-feed{min-width:0}.left-rail,.right-rail{scrollbar-width:thin;min-width:0;max-height:calc(100dvh - 112px);position:sticky;top:92px;overflow-y:auto}.rail-profile{margin-bottom:14px;padding:8px}.rail-profile strong,.rail-machine strong{overflow-wrap:anywhere;display:block}.rail-profile small,.rail-machine small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.rail-nav a{border-radius:8px;align-items:center;gap:14px;padding:13px 10px;font-size:14px;font-weight:600;display:flex}.rail-nav a svg{color:var(--primary);flex-shrink:0}.rail-nav a:hover{background:#e4e6e9}.rail-nav a[aria-current=page]{color:#1877f2;background:#e7f3ff}.rail-nav h2,.rail-section-heading h2,.rail-summary h2,.rail-guide h2{color:var(--muted);font-size:15px;font-weight:650}.rail-nav h2{border-top:1px solid var(--line);margin:18px 8px 8px;padding-top:18px}.rail-footer{color:var(--muted);margin:24px 8px;font-size:11px;line-height:1.8}.rail-section-heading{color:var(--muted);justify-content:space-between;align-items:center;margin:9px 8px 12px;font-size:13px;display:flex}.rail-machine{align-items:center;gap:11px;padding:11px 8px;font-size:13px;display:flex}.rail-machine>div{min-width:0}.machine-avatar{color:#65676b;background:#e4e6eb;border-radius:50%;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid;position:relative}.machine-avatar i{background:#bcc0c4;border:2px solid #f0f2f5;border-radius:50%;width:10px;height:10px;position:absolute;bottom:0;right:-1px}.machine-avatar.online i{background:#31a24c}.rail-summary,.rail-guide{border-top:1px solid var(--line);margin:20px 8px 0;padding-top:20px}.rail-summary p,.rail-guide p,.rail-muted{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.8}.rail-summary .status-pill{margin-top:12px}.login-page{grid-template-columns:minmax(0,1fr) 410px;align-items:center;gap:70px;max-width:1060px;min-height:100dvh;margin:0 auto;padding:70px 32px;display:grid}.login-story{flex-direction:column;padding-bottom:54px;display:flex}.login-story .brand{letter-spacing:-2px;font-size:46px}.login-story .brand small,.login-story .brand-mark{display:none}.login-story-content{width:min(520px,100%);padding:24px 0}.login-story h1{letter-spacing:-.5px;font-size:30px;font-weight:500;line-height:1.5}.login-story-content>p{color:var(--muted);margin-top:18px;font-size:14px;line-height:1.8}.story-footer{color:var(--muted);font-size:12px}.login-form-side{flex-direction:column;align-items:center;gap:24px;display:flex}.login-form{background:#fff;border-radius:8px;width:100%;padding:24px;box-shadow:0 2px 4px #0000001a,0 8px 16px #0000001a}.login-form h2{font-size:23px}.login-form>p{color:var(--muted);margin:8px 0 25px;font-size:11px;line-height:1.7}.login-form .field{margin-bottom:16px}.login-form .field input{height:48px;font-size:16px}.login-register-row{border-top:1px solid var(--line);text-align:center;margin-top:20px;padding-top:20px}.login-register{color:#fff;background:#42b72a}.login-register:hover:not(:disabled){color:#fff;background:#36a420}.password-input{display:flex;position:relative}.password-input input{padding-right:42px}.password-input button{color:#80929b;background:0 0;border:0;border-radius:7px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:8px;right:5px}.login-submit{justify-content:center;width:100%;min-height:48px;margin-top:13px;padding:11px 14px;font-size:16px}.login-tip{border-top:1px solid var(--soft-line);color:#83959d;align-items:flex-start;gap:8px;margin-top:22px;padding-top:17px;font-size:9px;line-height:1.6;display:flex}.login-tip svg{color:var(--primary);flex-shrink:0}.login-footer{color:var(--muted);font-size:12px}@media (width<=1200px){.console-columns{grid-template-columns:200px minmax(0,760px);gap:24px}.right-rail{display:none}.topbar{grid-template-columns:220px minmax(0,1fr) 180px}}@media (width<=900px){.console-columns{grid-template-columns:minmax(0,760px)}.left-rail{display:none}.topbar{grid-template-columns:200px minmax(0,1fr) 140px;gap:10px;padding:0 16px}.topbar-tabs a{min-width:0;padding:8px 15px}}@media (width<=800px){.login-page{grid-template-columns:1fr;gap:20px;max-width:500px;padding:48px 20px}.login-story{text-align:center;align-items:center;padding:0}.login-story-content{padding:18px 0 0}.login-story h1{font-size:25px}.story-footer{display:none}.login-form-side{padding:0}}@media (width<=700px){html{scroll-padding-top:128px}.topbar{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;height:auto;padding:10px 12px 0}.topbar .brand{gap:8px;font-size:19px}.topbar .brand small{display:none}.topbar .brand-mark{width:34px;height:34px}.account-chip{max-width:140px;font-size:12px}.account-avatar{flex-basis:30px;width:30px;height:30px;font-size:15px}.topbar-tabs{grid-area:2/1/auto/-1;height:46px}.topbar-tabs a{flex:1;font-size:13px}.topbar-tabs a svg{width:21px;height:21px}.console-columns{padding:18px 12px}.device-page{padding:0 0 40px}.device-page-header{flex-wrap:wrap;align-items:flex-start;margin-bottom:18px;padding-bottom:0}.header-actions{width:100%;max-width:100%;padding-bottom:2px;overflow-x:auto}.page-heading{align-items:flex-start}.page-heading h1{font-size:25px}.page-heading p{font-size:11px}.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.device-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-card{text-align:center;grid-template-columns:1fr;padding:14px 8px}.overview-card>.overview-icon,.overview-card>small{display:none}.overview-icon{width:38px;height:38px}.overview-card strong{font-size:21px}.workflow-card,.device-authorization,.local-identity,.local-rules-panel{padding:16px}.ports-form{grid-template-columns:1fr}.rule-card,.device-card{flex-wrap:wrap;align-items:flex-start;padding:14px}.device-card-actions{justify-content:flex-end;width:100%}.local-identity,.approval-action{flex-direction:column;align-items:stretch}.local-rule-row{grid-template-columns:34px 1fr auto}.local-rule-row code{grid-area:2/2/auto/-1}.local-rule-row .status-pill{grid-area:1/3}.device-code-form{flex-direction:column;align-items:stretch}.device-code-form .field{width:100%}.device-approval dl{grid-template-columns:1fr;gap:5px}.device-approval dd{margin-bottom:7px}}@media (width<=480px){.header-actions .button{flex:1 0 auto}.page-heading .button{padding:8px 9px}.section-title{flex-direction:column}.install-command{align-items:flex-start}.modal-actions{flex-wrap:wrap}.login-story h1{font-size:24px}.login-story-content>p{margin-top:14px;font-size:12px}.login-form{padding:24px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
