:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#20324b;background:#f4f6fa;font-synthesis:none;font-size:14px;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #d9e0e9;border-radius:8px;background:#fff;padding:9px 14px;color:#34465e;transition:background .15s,box-shadow .15s}button:hover:not(:disabled){background:#edf2f7;box-shadow:0 2px 6px #11243b0b}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #88bbf1;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d8e0e9;background:#fff;border-radius:8px;padding:10px 12px;outline:none;color:#20324b}input:focus,select:focus,textarea:focus{border-color:#287dce;box-shadow:0 0 0 3px #287dce18}input[type=checkbox]{width:16px;height:16px;accent-color:#227c72;flex-shrink:0}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px}label{display:block;font-weight:550;margin:16px 0}label input,label textarea,label select{margin-top:7px}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-.8px;margin-bottom:8px}h2{font-size:18px;margin-bottom:9px}h3{font-size:15px}p{margin-bottom:12px}code,.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f7fa;border:1px solid #e3e9f0;padding:16px;border-radius:10px;font-size:12px;max-height:300px;overflow:auto}.primary{background:#237c71;border-color:#237c71;color:#fff}.primary:hover:not(:disabled){background:#1d695f}.danger{background:#b54444;border-color:#b54444;color:#fff}.danger:hover:not(:disabled){background:#9e3838}.danger-text{color:#b13e3e;border-color:transparent;background:transparent}.text-button,.ghost{background:transparent;border-color:transparent;color:#237c71}.text-button{padding:0;font-weight:600;text-align:left}.full{width:100%}.muted{color:#7d899a}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#6d8a91;margin-bottom:10px}.actions{display:flex;gap:8px;align-items:center}.alert{padding:12px 16px;border-radius:8px;font-size:13px;overflow-wrap:anywhere}.alert.error{background:#fff0ef;color:#9c3535;border:1px solid #f3cdca}.alert.success{background:#eaf6f0;color:#226c50;border:1px solid #cbe4d8}.close-alert{float:right;background:none;border:0;padding:0 3px}.warning{color:#aa792a!important}.error-text{color:#b54444!important}.brand-symbol{width:48px;height:48px;background:#237c71;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:29px;font-weight:800}.brand-symbol.small{width:39px;height:39px;font-size:25px;border-radius:10px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-card{max-width:520px;padding:12vh 50px 40px;margin:auto;width:100%}.login-card .eyebrow{margin-top:28px}.login-card h1{font-size:40px;line-height:1.35;letter-spacing:-1px}.login-card form{margin-top:35px}.login-card footer{margin-top:60px;color:#8a96a5;font-size:12px}.login-art{background:#12283b;position:relative;overflow:hidden;display:grid;place-items:center}.login-art>p{position:absolute;bottom:10%;left:14%;color:#9bb2c1;font-size:19px;line-height:1.9}.art-center{position:relative;font-size:125px;color:#c9e9dc;font-weight:800;text-align:center;line-height:1}.art-center span{display:block;font-size:10px;letter-spacing:3px;margin-top:26px;color:#7eaaad}.orbit{border:1px solid #416a7659;border-radius:50%;width:360px;height:360px;position:absolute}.orbit-two{width:560px;height:560px}.art-dot{position:absolute;width:17px;height:17px;border-radius:50%;background:#74b7a0;box-shadow:0 0 0 9px #74b7a013}.dot-one{top:30%;left:25%}.dot-two{top:58%;right:13%;width:10px;height:10px;background:#d3bc7e}.shell{display:flex;min-height:100vh}.sidebar{width:230px;position:fixed;inset:0 auto 0 0;background:#14263c;color:#e7edf6;padding:32px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;font-size:21px;font-weight:650;padding:0 6px}.brand small{display:block;font-size:10px;font-weight:400;color:#93a4b9;letter-spacing:1px;margin-top:2px}.nav-label{font-size:10px;letter-spacing:2px;color:#71869f;margin:48px 12px 14px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav button{border:0;background:transparent;color:#adbbcd;text-align:left;display:flex;align-items:center;gap:13px;padding:13px 12px;font-weight:550;border-radius:9px}.sidebar nav button:hover{background:#1d334e}.sidebar nav button.active{background:#27433f;color:#c2e5d4;box-shadow:inset 3px 0 #80ba9a}.sidebar nav small{display:block;font-size:10px;color:#7f94aa;font-weight:400;margin-top:3px}.nav-icon{font-size:24px;font-weight:400;width:23px}.nav-count{margin-left:auto;font-size:11px;background:#ffffff12;border-radius:5px;padding:1px 6px}.sidebar-bottom{margin-top:auto;font-size:12px;padding:30px 9px 0;color:#a9b8ca}.sidebar-bottom small{display:block;font-size:10px;color:#70849c;margin:10px 0 18px}.sidebar-bottom button{background:none;border-color:#33455b;color:#9baec2;font-size:11px;width:100%}.pulse,.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.pulse{background:#8dc5a8;margin-right:6px}.status-dot.online{background:#369d7d;box-shadow:0 0 0 3px #369d7d12}.status-dot.offline{background:#b4bfcd}.workspace{margin-left:230px;flex:1;min-width:0}.topbar{height:76px;border-bottom:1px solid #e4e9f0;background:#ffffffb0;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.breadcrumb{font-size:12px;color:#68788d}.breadcrumb span{margin:0 15px;color:#acb6c4}.topbar-actions{display:flex;align-items:center;gap:18px;font-size:11px}.avatar{width:32px;height:32px;display:grid;place-items:center;background:#e5eaf1;border-radius:50%;font-weight:600;color:#51667c}.content{padding:31px 36px;max-width:1700px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.page-heading p{margin-bottom:0}.page-heading .eyebrow{margin-bottom:7px}.page-heading .muted{margin-top:8px;font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stat-card{border:1px solid #e1e7ef;background:#fff;border-radius:13px;padding:22px 23px}.stat-card>span{color:#788598;font-size:12px}.stat-card strong{display:block;font-size:35px;line-height:1.4;letter-spacing:-1.2px;margin:8px 0}.stat-card strong small{font-size:12px;letter-spacing:0;font-weight:400;color:#9aa5b5;margin-left:10px}.stat-card p{font-size:11px;color:#8a96a6;margin:0}.stat-card p .status-dot{margin-right:6px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:22px;margin-bottom:23px}.panel{border:1px solid #e1e7ef;background:#fff;border-radius:13px;overflow:hidden}.panel-heading{padding:22px 24px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-heading h2{font-size:16px;margin-bottom:4px}.panel-heading p{font-size:11px;color:#929dad;margin:0}.panel-heading .text-button{font-size:11px;white-space:nowrap}.empty{text-align:center;padding:60px 24px;color:#8b98a9}.empty>span{display:block;font-size:39px;color:#9eb2c5;margin-bottom:12px}.empty h3{color:#576b82;margin-bottom:8px;font-weight:550}.empty p{font-size:12px}.empty.compact{padding:35px}.device-summary{display:flex;gap:14px;align-items:center;padding:17px 24px;border-top:1px solid #edf0f5;cursor:pointer}.device-summary:hover{background:#fafcfe}.device-icon{width:34px;height:34px;background:#edf3f7;color:#7a93a4;display:grid;place-items:center;border-radius:8px;font-size:20px;flex-shrink:0}.device-summary-name{flex:1;min-width:0}.device-summary-name strong{display:block;font-size:12px}.device-summary-name>span{font-size:10px;color:#96a0ae;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.cpu-bar{width:95px;font-size:11px;text-align:right;color:#6f8195}.cpu-bar>div{height:4px;background:#edf1f5;border-radius:4px;margin-top:7px;overflow:hidden}.cpu-bar i{display:block;height:100%;background:#78afa0}.control-panel{padding-bottom:18px}.control-panel>.full{width:calc(100% - 48px);margin:0 24px}.control-panel>.danger-text{font-size:11px;margin-top:5px}.workflow{padding:3px 24px 20px}.workflow>div{position:relative;padding:3px 0 19px 40px}.workflow>div:not(:last-child):after{content:"";position:absolute;left:12px;top:32px;height:24px;border-left:1px dashed #d5dfe8}.workflow span{position:absolute;left:0;top:3px;width:26px;height:26px;background:#f1f5f8;border:1px solid #e5ebf1;display:grid;place-items:center;border-radius:8px;font-size:9px;color:#7a90a4}.workflow strong{font-size:12px;font-weight:550}.workflow p{font-size:10px;color:#9aa6b5;margin:4px 0 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{background:#f8fafc;font-size:10px;font-weight:550;color:#8b97a8;padding:12px 18px;white-space:nowrap;border-top:1px solid #eef1f6;border-bottom:1px solid #eef1f6}td{padding:16px 18px;border-bottom:1px solid #edf1f5;color:#53667e;max-width:350px;overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:0}td strong{color:#304660;font-weight:550}td button{font-size:11px;padding:5px 10px}td .text-button{padding:0}.cell-secondary{display:block;font-size:10px;color:#96a1b1;margin-top:4px}.badge{display:inline-block;padding:3px 8px;border-radius:5px;font-size:10px;white-space:nowrap;color:#75879b;background:#eef2f6}.badge.running,.badge.ready{background:#eaf5ee;color:#4b8b69}.badge.failed{background:#fbeeee;color:#ac5555}.badge.paused{background:#fff4df;color:#aa813c}.badge.blue,.badge.deploying,.badge.accepted{background:#eaf1fc;color:#5980bb}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;flex-wrap:wrap}.toolbar p{margin:0;font-size:12px}.filters{display:flex;gap:10px}.filters>input{width:270px}.filters>select{width:180px}.info-banner{background:#eaf1f8;color:#5d7898;border:1px solid #dce6f1;border-radius:9px;font-size:12px;padding:14px 18px;margin-bottom:22px}.template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.template-card{padding:24px;display:flex;flex-direction:column}.template-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.template-icon{width:40px;height:40px;border-radius:10px;background:#edf6f2;display:grid;place-items:center;font-size:24px;color:#58967f}.template-card>p{color:#92a0b0;font-size:12px}.template-card dl{flex:1;font-size:11px}.template-card dt{color:#8e9bad;margin-top:14px}.template-card dd{margin:4px 0 0;color:#536983;overflow-wrap:anywhere}.template-card button{margin-top:14px;font-size:12px}.page-footer{display:flex;justify-content:space-between;margin-top:32px;color:#9da8b6;font-size:10px}.audit-details{font-size:10px;max-width:260px}.modal-backdrop{position:fixed;inset:0;background:#0d20395c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;display:flex;align-items:center;justify-content:center;padding:24px}.modal{position:relative;background:#fff;border-radius:17px;width:530px;max-width:100%;max-height:90vh;overflow:auto;padding:32px;box-shadow:0 20px 90px #172b4630}.modal.wide{width:780px}.modal h2{font-size:22px;margin-right:25px}.modal h3{margin-top:23px}.modal .modal-close{position:absolute;right:15px;top:15px;border:0;background:#f2f5f8;border-radius:50%;width:28px;height:28px;padding:0;font-size:20px;color:#8593a6}.modal p{font-size:13px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.form-grid label{margin:9px 0}.span-two{grid-column:span 2}.check-label{display:flex;align-items:center;gap:10px}.check-label input{margin:0}.check-label small{display:block;color:#8c9aab;font-size:11px;margin-top:2px}.device-picker{max-height:300px;overflow:auto;border:1px solid #e1e7ef;border-radius:10px;padding:0 16px;margin-bottom:18px}.group-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid #eef1f6;padding:14px 0}.group-row strong{flex:1}.group-row+button{margin-top:20px}.detail-list{display:grid;grid-template-columns:135px 1fr;font-size:12px;gap:12px;margin-top:22px}.detail-list dt{color:#8e9bad}.detail-list dd{margin:0;overflow-wrap:anywhere}.sensor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sensor-grid>div{background:#f6f9fb;border-radius:8px;padding:12px;font-size:11px}.sensor-grid p{font-size:11px;margin:5px 0 0;color:#8091a4}.telemetry-chart{width:100%;background:#fafcfe;border-radius:9px;padding:10px}.key-output{margin-top:16px;font-size:11px}.onboarding{padding-left:20px}.onboarding li{padding:7px 0;font-size:13px}@media(min-width:1600px){.content{padding-top:40px}.stats-grid{gap:24px}.stat-card{padding:28px}.overview-grid{grid-template-columns:1.8fr 1fr}.device-summary{padding-top:20px;padding-bottom:20px}}@media(max-width:1150px){.sidebar{width:200px;padding-left:13px;padding-right:13px}.workspace{margin-left:200px}.content{padding:25px 22px}.topbar{padding:0 22px}.stats-grid{gap:12px}.stat-card{padding:18px 14px}.stat-card strong{font-size:29px}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:minmax(0,1.3fr) minmax(270px,1fr)}.device-summary{padding:16px}.cpu-bar{width:65px}.filters>input{width:230px}}@media(max-width:800px){.sidebar{width:74px;padding:23px 12px}.brand{padding:0;justify-content:center}.brand>span:not(.brand-symbol),.nav-label,.sidebar nav small,.sidebar nav button>span:not(.nav-icon),.sidebar-bottom{display:none}.sidebar nav{margin-top:35px}.sidebar nav button{padding:14px;justify-content:center}.nav-icon{width:auto}.workspace{margin-left:74px}.topbar{height:65px}.topbar-actions>.muted{display:none}.content{padding:24px 18px}.stats-grid{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}h1{font-size:25px}.page-heading>.primary{font-size:11px;white-space:nowrap}.page-footer span{display:none}.template-grid,.login-page{grid-template-columns:1fr}.login-art{display:none}.login-card{padding:60px 30px}.filters{width:100%}.filters>input{width:60%}.filters>select{width:40%}.modal{padding:25px}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.detail-list{grid-template-columns:100px 1fr}.sensor-grid{grid-template-columns:1fr 1fr}}
