
@layer reset,tokens,base,layout,components,upload,remote,utilities;
@layer reset{*,*::before,*::after{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{border:0}svg{display:block;max-width:100%}[hidden]{display:none!important}}
@layer tokens{:root{--shell:#050505;--sidebar:#0b0b0b;--canvas:#030303;--panel:#121212;--panel-hi:#181818;--panel-soft:#202020;--line:#292929;--line-soft:#1d1d1d;--text:#f4f4f4;--text-2:#c1c1c1;--muted:#929292;--faint:#686868;--orange:#ff4b16;--orange-hi:#ff6333;--green:#14d85c;--red:#ff3d4d;--blue:#5ca9ff;--amber:#f2b84b;--r:11px;--r-sm:7px;--shadow:0 28px 62px rgba(0,0,0,.38),0 1px 0 rgba(255,255,255,.04) inset}}
@layer base{body{background:var(--shell);color:var(--text);overflow:hidden;font-size:14px}a{color:inherit;text-decoration:none}::selection{background:rgba(255,75,22,.28)}:focus-visible{outline:2px solid var(--orange);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#090909}::-webkit-scrollbar-thumb{background:#343434;border-radius:999px;border:2px solid #090909}button:disabled{opacity:.42;cursor:not-allowed!important}}
@layer layout{.login-shell{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 55% 20%,#262626 0,transparent 34%),#080808;z-index:100}.app{width:100%;height:100%;display:grid;grid-template-columns:188px minmax(0,1fr);grid-template-rows:58px minmax(0,1fr);background:var(--shell);overflow:hidden}.rail{grid-row:1/-1;display:flex;flex-direction:column;padding:14px 10px 12px;background:linear-gradient(180deg,#101010 0%,#080808 45%,#151515 100%);border-right:1px solid #242424;position:relative;overflow:hidden}.topbar{grid-column:2;display:grid;grid-template-columns:minmax(180px,1fr) minmax(280px,460px) minmax(260px,1fr);align-items:center;gap:18px;padding:0 18px;background:linear-gradient(180deg,#343434,#2b2b2b);border-bottom:1px solid #3b3b3b;box-shadow:0 8px 34px rgba(0,0,0,.2);z-index:4}.workspace{grid-column:2;overflow:auto;padding:17px 18px 24px;background:linear-gradient(180deg,#303030 0,#171717 24%,#060606 45%,#030303 100%)}.page{display:none;max-width:1500px;margin:0 auto}.page.active{display:block}.grid-main{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(300px,.86fr);gap:10px}.grid-bottom{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr) minmax(300px,.88fr);gap:10px;margin-top:10px}.two-col{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:10px}}
@layer components{
.brand{height:48px;display:flex;align-items:center;gap:9px;padding:0 5px 10px;margin-bottom:5px;border-bottom:1px solid rgba(255,255,255,.035)}.brand-logo{width:31px;height:31px;flex:none;filter:drop-shadow(0 0 8px rgba(248,80,13,.18))}.brand-wordmark{font-size:13px;font-weight:730;letter-spacing:-.04em;white-space:nowrap}.brand-wordmark .loader{color:#f8500d}.brand-caption{margin-left:auto;width:8px;height:8px;border-radius:50%;background:#f8500d;box-shadow:0 0 10px rgba(248,80,13,.7)}
.nav{display:flex;flex-direction:column;min-height:0;overflow:auto;padding:2px 0 10px}.nav-group{margin-top:13px}.nav-group:first-child{margin-top:4px}.nav-label{padding:0 9px 7px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#666}.nav-btn{width:100%;height:36px;padding:0 9px;border-radius:7px;background:transparent;color:#929292;display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left;transition:.14s}.nav-btn svg{width:16px;height:16px;opacity:.85;flex:none}.nav-btn span{font-size:12px}.nav-btn:hover{background:#1d1d1d;color:#d6d6d6}.nav-btn.active{background:linear-gradient(180deg,#333,#292929);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.08) inset,0 3px 12px rgba(0,0,0,.22)}.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:5px;background:#292929;color:#ddd;font-size:9px;display:grid;place-items:center}.rail-spacer{flex:1}.connection-card{margin:6px 5px 9px;padding:11px;border:1px solid #303030;border-radius:9px;background:linear-gradient(135deg,#2a2a2a,#171717);display:flex;align-items:center;gap:9px}.connection-icon{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#3a3a3a}.connection-copy b{display:block;font-size:11px}.connection-copy span{display:block;margin-top:2px;font-size:9px;color:#999}#logoutBtn{height:34px;margin:0 5px;padding:0 9px;border-radius:7px;display:flex;align-items:center;gap:9px;background:transparent;color:#929292;cursor:pointer}#logoutBtn:hover{background:#222;color:#eee}#logoutBtn svg{width:15px}
.top-left,.top-right{display:flex;align-items:center;gap:10px}.top-right{justify-content:flex-end}.crumb{font-size:11px;color:#999}.crumb strong{color:#eee;font-weight:600}.crumb-sep{margin:0 4px;color:#666}.top-search{height:32px;border-radius:16px;background:linear-gradient(180deg,#535353,#464646);border:1px solid #5b5b5b;display:flex;align-items:center;padding:0 10px;color:#d2d2d2}.top-search svg{width:14px}.top-search input{width:100%;border:0;outline:0;background:transparent;color:#fff;padding:0 9px;font-size:10px}.top-search input::placeholder{color:#c0c0c0}.key{height:20px;min-width:21px;padding:0 6px;border-radius:8px;background:#5b5b5b;border:1px solid #6a6a6a;display:grid;place-items:center;font-size:8px;color:#eee;margin-left:4px}.system-pill{display:flex;align-items:center;gap:6px;font-size:10px;color:#c0c0c0}.pulse{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(20,216,92,.08)}.icon-btn{width:31px;height:31px;display:grid;place-items:center;border-radius:7px;background:transparent;color:#aaa;cursor:pointer}.icon-btn:hover{background:#464646;color:#fff}.icon-btn svg{width:15px}.avatar{width:28px;height:28px;border-radius:50%;background:#0b0b0b;border:1px solid #545454;display:grid;place-items:center;font-size:10px;font-weight:700}.lang-toggle{display:flex;gap:4px}.lang-btn{height:27px;min-width:31px;padding:0 7px;border:1px solid #555;border-radius:6px;background:transparent;color:#aaa;cursor:pointer;font-size:9px;font-weight:700}.lang-btn.active{background:var(--orange);border-color:var(--orange);color:#fff}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.eyebrow{font-size:10px;color:#969696}.page-head h1,h1{font-size:22px;margin:4px 0 0;font-weight:680;letter-spacing:-.035em}.subtle{font-size:10px;color:#969696;margin-top:5px;line-height:1.55}.muted{color:var(--muted)}.green{color:var(--green)!important}.red{color:var(--red)!important}.blue{color:var(--blue)!important}.amber{color:var(--amber)!important}.nowrap{white-space:nowrap}.right{text-align:right}
.hero{padding:3px 2px 13px}.hero-label{font-size:11px;color:#aaa}.hero-total{display:flex;align-items:center;gap:8px;font-size:30px;font-weight:740;letter-spacing:-.04em;margin-top:3px}.hero-delta{font-size:9px;font-weight:650;color:#eee;background:#3d3d3d;border-radius:7px;padding:3px 7px}.hero-meta{display:flex;gap:14px;margin-top:5px;font-size:9px;color:#aaa}.meta-item{display:flex;align-items:center;gap:5px}.meta-dot{width:5px;height:5px;border-radius:50%;background:#777}.meta-dot.green{background:var(--green)}.hero-actions{display:flex;gap:7px;margin-top:12px}.hero-actions .btn{height:31px;border-radius:15px}
.card{background:linear-gradient(180deg,#161616,#111);border:1px solid #262626;border-radius:var(--r);box-shadow:0 1px 0 rgba(255,255,255,.025) inset,0 7px 18px rgba(0,0,0,.17);min-width:0;overflow:hidden}.card-head{min-height:39px;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px}.card-title{font-size:10px;color:#c0c0c0;font-weight:600}.card-meta{font-size:9px;color:#888}.card-body{padding:13px}.quick-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.quick-card{min-height:88px;padding:11px;position:relative;overflow:hidden}.quick-top{display:flex;align-items:center;gap:6px;font-size:10px;color:#ddd}.quick-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#262626;color:#ccc;font-size:9px}.quick-value{font-size:21px;font-weight:680;margin-top:13px}.quick-foot{font-size:9px;color:#888;margin-top:3px}.chart-card,.bar-card{height:315px}.chart-number{font-size:20px;font-weight:680;margin:0 11px 3px}.chart-wrap{height:230px;padding:4px 11px 0;position:relative}.chart-wrap svg{width:100%;height:100%}.grid-line{stroke:#242424;stroke-width:1;stroke-dasharray:2 3}.axis-text{fill:#757575;font-size:8px}.chart-line-total{fill:none;stroke:#6d6d6d;stroke-width:1.25}.chart-line-online{fill:none;stroke:#dedede;stroke-width:1.6}.chart-line-risk{fill:none;stroke:#d93240;stroke-width:1.35}.chart-dot{fill:var(--orange);stroke:#ff8a66;stroke-width:2}.chart-tooltip{position:absolute;right:18px;top:13px;background:#252525;border:1px solid #3a3a3a;border-radius:7px;padding:7px 9px;font-size:8px;color:#aaa}.chart-tooltip strong{display:block;font-size:10px;color:#ddd;margin-top:2px}.range-row{display:flex;gap:5px;padding:0 11px 10px}.range-chip{height:21px;padding:0 9px;border-radius:10px;background:#1f1f1f;color:#888;display:grid;place-items:center;font-size:8px;cursor:pointer}.range-chip.active{background:#363636;color:#fff}.bar-chart{height:236px;padding:18px 13px 7px;display:flex;align-items:flex-end;justify-content:space-around;gap:9px}.bar-col{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;flex:1}.bar-track{height:160px;width:24px;border-radius:5px;background:#252525;position:relative;overflow:hidden}.bar-success,.bar-fail{position:absolute;left:0;right:0;bottom:0;border-radius:4px}.bar-success{background:#525252}.bar-fail{background:linear-gradient(180deg,#ff3d4d,#76171e)}.bar-label{font-size:8px;color:#777}.activity-card,.flow-card,.matrix-card{height:174px}.activity-list{padding:0 10px 8px}.activity-row{height:36px;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px}.activity-icon{width:25px;height:25px;border-radius:50%;background:#262626;display:grid;place-items:center}.activity-main b{display:block;font-size:10px}.activity-main span{font-size:8px;color:#888}.activity-value{font-size:8px;color:#bbb}.matrix{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;padding:14px 12px}.matrix i{aspect-ratio:1;border-radius:2px;background:#1c1c1c}.matrix i.dim{background:#484848}.matrix i.mid{background:#858585}.matrix i.hot{background:var(--orange);box-shadow:0 0 7px rgba(255,75,22,.25)}
.table-card{overflow:hidden}.table-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.search,.select,.field input,.field select,.field textarea{height:34px;background:#0c0c0c;border:1px solid #303030;color:#eee;border-radius:7px;padding:0 10px;font-size:11px}.field textarea{height:90px;padding:9px;resize:vertical}.search{min-width:220px}.select{color:#bbb}.btn{height:33px;border-radius:8px;padding:0 13px;background:var(--orange);color:#fff;font-weight:650;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 1px 0 rgba(255,255,255,.13) inset}.btn:hover{background:var(--orange-hi)}.btn.secondary{background:#242424;color:#e0e0e0;border:1px solid #343434;box-shadow:none}.btn.secondary:hover{background:#303030}.btn.ghost{background:transparent;color:#aaa;border:1px solid #2f2f2f;box-shadow:none}.btn.danger{background:rgba(255,38,56,.11);color:#ff7d86;border:1px solid rgba(255,38,56,.28);box-shadow:none}.btn.small{height:27px;padding:0 9px;font-size:9px}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;color:#858585;font-weight:600;padding:10px 11px;border-bottom:1px solid #282828;white-space:nowrap}td{padding:11px;border-bottom:1px solid #202020;color:#c7c7c7;vertical-align:middle}tbody tr:hover{background:#181818}.device-name{font-weight:650;color:#f1f1f1}.mono{font-family:"SFMono-Regular",Consolas,monospace;color:#9b9b9b;font-size:9px}.status{display:inline-flex;align-items:center;gap:6px;color:#d0d0d0;white-space:nowrap;font-size:10px}.status::before{content:"";width:6px;height:6px;border-radius:50%;background:#686868}.status.online::before,.status.succeeded::before,.status.healthy::before,.status.running::before,.status.ready::before{background:var(--green)}.status.updating::before,.status.downloading::before,.status.installing::before,.status.repairing::before,.status.active::before{background:var(--blue)}.status.pending::before,.status.queued::before,.status.stale::before,.status.reconnecting::before,.status.stopped::before,.status.verifying::before{background:var(--amber)}.status.failed::before,.status.offline::before,.status.circuit-open::before{background:var(--red)}.row-actions{display:flex;gap:5px;justify-content:flex-end}.empty{padding:32px;text-align:center;color:#8b8b8b;font-size:11px;line-height:1.7}.empty b{display:block;color:#c3c3c3;font-size:12px;margin-bottom:4px}.context{position:fixed;z-index:70;width:205px;background:#1a1a1a;border:1px solid #393939;border-radius:9px;box-shadow:var(--shadow);padding:5px}.context button{width:100%;height:34px;background:transparent;color:#ddd;border-radius:6px;text-align:left;padding:0 10px;cursor:pointer;font-size:10px}.context button:hover{background:#292929}.context hr{border:0;border-top:1px solid #303030;margin:5px}.context .danger-item{color:#ff7982}.toast-stack{position:fixed;right:20px;bottom:20px;display:grid;gap:7px;z-index:100}.toast{min-width:260px;max-width:420px;padding:11px 13px;border-radius:8px;background:#1d1d1d;border:1px solid #373737;box-shadow:var(--shadow);font-size:11px}.toast.error{border-color:rgba(255,38,56,.5)}
dialog{width:min(520px,calc(100vw - 28px));padding:0;background:#131313;color:#eee;border:1px solid #383838;border-radius:12px;box-shadow:0 35px 100px rgba(0,0,0,.65)}dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(4px)}.dialog-head{padding:15px 16px;border-bottom:1px solid #292929;font-weight:680;font-size:14px}.dialog-body{padding:15px 16px;max-height:65vh;overflow:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:7px;padding:11px 16px;border-top:1px solid #292929}.field{display:grid;gap:6px;margin-bottom:12px}.field label{font-size:10px;color:#aaa}.field input,.field select,.field textarea{width:100%}.check-row{display:flex;align-items:center;gap:8px;font-size:10px;color:#bbb;margin:8px 0}.detail-list{display:grid;grid-template-columns:1fr 1fr}.detail-item{padding:11px;border-bottom:1px solid #242424;display:grid;gap:4px}.detail-item span{font-size:9px;color:#888}.detail-item b{font-size:11px;font-weight:600}.managed-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:10px}.managed-card{padding:13px}.managed-top{display:flex;justify-content:space-between;gap:10px}.managed-name{font-weight:680;font-size:13px}.managed-meta{font-size:9px;color:#888;margin-top:4px}.managed-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:13px 0}.mini-stat{padding:9px;border-radius:7px;background:#0d0d0d;border:1px solid #252525}.mini-stat span{display:block;font-size:8px;color:#777}.mini-stat b{display:block;margin-top:4px;font-size:14px}.managed-actions{display:flex;gap:6px;flex-wrap:wrap}.login-card{width:min(400px,100%);padding:31px;border:1px solid #303030;border-radius:14px;background:linear-gradient(160deg,#1a1a1a,#0d0d0d);box-shadow:0 30px 80px rgba(0,0,0,.5)}.login-card h1{font-size:27px}.login-card p{font-size:11px;color:#999;line-height:1.6}.login-card .btn{width:100%;height:38px}.login-mark{width:43px;height:43px;margin-bottom:17px}.login-lang-toggle{position:fixed;top:20px;right:20px;display:flex;gap:4px;z-index:101}.login-error{min-height:18px;margin-top:8px;color:#ff6973;font-size:10px}.license-panel{margin-top:14px;padding:13px;border:1px solid #3a2b25;border-radius:9px;background:rgba(255,75,22,.055)}.license-panel h3{margin:0 0 5px;font-size:12px}.license-panel p{margin:0 0 10px;color:#aaa;font-size:9px;line-height:1.55}.license-machine{display:grid;gap:4px;margin:9px 0;padding:9px;border-radius:7px;background:#0b0b0b;border:1px solid #292929}.license-machine span{font-size:8px;color:#777}.license-machine code{font-size:9px;color:#ddd;word-break:break-all}.license-actions{display:flex;gap:6px}.license-actions .btn{flex:1}
}
@layer upload{
@property --upload-progress{syntax:"<percentage>";inherits:false;initial-value:0%}
dialog.upload-studio{width:min(980px,calc(100vw - 32px));height:min(760px,calc(100vh - 32px));max-width:none;max-height:none;padding:0;overflow:hidden;background:radial-gradient(circle at 50% -20%,rgba(255,75,22,.1),transparent 35%),linear-gradient(180deg,#171717,#0d0d0d 72%);border:1px solid #3b3b3b;border-radius:16px;box-shadow:0 50px 140px rgba(0,0,0,.78),inset 0 1px rgba(255,255,255,.055)}dialog.upload-studio::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(7px) saturate(.75)}.upload-shell{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.upload-header{display:flex;align-items:center;justify-content:space-between;padding:21px 25px 14px}.upload-title h2{margin:0;font-size:22px;letter-spacing:-.035em}.upload-title p{margin:5px 0 0;color:#9b9b9b;font-size:10px}.upload-close{width:32px;height:32px;border-radius:8px;background:#232323;color:#aaa;cursor:pointer;font-size:18px}.upload-close:hover{background:#303030;color:#fff}.upload-steps{display:grid;grid-template-columns:repeat(4,1fr);padding:0 26px 17px;border-bottom:1px solid #272727}.upload-step{position:relative;display:flex;align-items:center;gap:9px;color:#777;font-size:10px}.upload-step:not(:last-child)::after{content:"";position:absolute;left:34px;right:10px;top:14px;height:1px;background:#343434}.upload-step-number{position:relative;z-index:1;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;border:1px solid #3d3d3d;background:#171717;color:#8d8d8d}.upload-step.active{color:#eee}.upload-step.active .upload-step-number{border-color:var(--orange);background:rgba(255,75,22,.14);color:#fff;box-shadow:0 0 18px rgba(255,75,22,.18)}.upload-step.complete .upload-step-number{background:var(--orange);border-color:var(--orange);color:#fff}.upload-body{padding:22px 25px;overflow:auto}.upload-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 25px;border-top:1px solid #292929;background:#111}.upload-footer-meta{font-size:10px;color:#999}.upload-dropzone{position:relative;isolation:isolate;min-height:340px;display:grid;place-items:center;overflow:hidden;cursor:pointer;border:1px dashed #4d4d4d;border-radius:14px;background:radial-gradient(circle at 50% 40%,rgba(255,75,22,.075),transparent 32%),linear-gradient(145deg,#161616,#0b0b0b);transition:border-color .2s,transform .2s,box-shadow .2s,background .2s}.upload-dropzone::before{content:"";position:absolute;inset:-35%;z-index:-1;opacity:0;background:conic-gradient(from 180deg,transparent,rgba(255,75,22,.16),transparent 28%);transition:opacity .2s;animation:upload-orbit 7s linear infinite}.upload-dropzone::after{content:"";position:absolute;left:8%;right:8%;top:-2px;height:1px;opacity:0;background:linear-gradient(90deg,transparent,rgba(255,116,71,.95),transparent);box-shadow:0 0 25px rgba(255,75,22,.42)}.upload-dropzone:hover{border-color:#707070;transform:translateY(-1px);box-shadow:0 22px 55px rgba(0,0,0,.28),inset 0 0 45px rgba(255,255,255,.018)}.upload-dropzone.dragging{border-color:var(--orange);background:radial-gradient(circle at 50% 40%,rgba(255,75,22,.15),transparent 38%),linear-gradient(145deg,#191512,#0b0b0b);box-shadow:0 0 0 4px rgba(255,75,22,.07),0 24px 70px rgba(0,0,0,.42)}.upload-dropzone.dragging::before{opacity:1}.upload-dropzone.dragging::after{opacity:1;animation:upload-scan 1.4s ease-in-out infinite}.upload-drop-content{text-align:center;max-width:540px;padding:30px}.upload-drop-icon{width:72px;height:72px;margin:0 auto 19px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#2b2b2b,#161616);border:1px solid #383838;color:var(--orange);font-size:31px;box-shadow:0 15px 35px rgba(0,0,0,.28),0 0 35px rgba(255,75,22,.08)}.upload-drop-content h3{font-size:24px;margin:0;letter-spacing:-.04em}.upload-drop-content p{font-size:11px;color:#aaa;line-height:1.6;margin:9px 0 18px}.upload-types{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:17px}.upload-types span{height:23px;padding:0 8px;display:grid;place-items:center;border:1px solid #343434;border-radius:7px;background:#161616;color:#999;font-size:8px;font-weight:700}.upload-add-strip{min-height:64px;border:1px dashed #404040;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:9px;color:#aaa;cursor:pointer;margin-bottom:12px;background:#111}.upload-add-strip:hover{border-color:#646464;color:#ddd}.upload-file-list{display:grid;gap:10px}.upload-file-card{position:relative;padding:16px;border:1px solid #2d2d2d;border-radius:12px;background:linear-gradient(180deg,#171717,#111);box-shadow:inset 0 1px rgba(255,255,255,.025);transition:border-color .18s,background .18s}.upload-file-card:hover{border-color:#3b3b3b}.upload-file-card.expanded{border-color:#4a342d;background:radial-gradient(circle at 100% 0,rgba(255,75,22,.055),transparent 30%),linear-gradient(180deg,#191919,#111)}.upload-file-card.expanded::before{content:"";position:absolute;inset:14px auto 14px -1px;width:2px;border-radius:3px;background:var(--orange);box-shadow:0 0 12px rgba(255,75,22,.45)}.upload-file-head{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px}.upload-file-icon{width:43px;height:43px;border-radius:10px;display:grid;place-items:center;background:#232323;border:1px solid #303030;color:#ddd;font-size:11px;font-weight:750}.upload-file-name{font-weight:680;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-file-meta{font-size:9px;color:#999;margin-top:4px}.upload-file-controls{display:flex;align-items:center;gap:6px}.upload-file-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;padding-top:14px;margin-top:13px;border-top:1px solid #282828}.upload-file-config .field{margin-bottom:10px}.upload-card-wide{grid-column:1/-1}.upload-progress-card{padding:17px}.upload-progress-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.upload-progress-title{font-size:12px;font-weight:680}.upload-progress-state{font-size:10px;color:#bbb}.upload-progress-track{height:9px;overflow:hidden;border-radius:999px;background:#252525;box-shadow:inset 0 1px 2px rgba(0,0,0,.7),0 1px rgba(255,255,255,.025);margin:16px 0 9px}.upload-progress-fill{position:relative;width:var(--upload-progress);height:100%;overflow:hidden;border-radius:inherit;background:linear-gradient(90deg,#cc2e0a,var(--orange),#ff7547);box-shadow:0 0 15px rgba(255,75,22,.32),inset 0 1px rgba(255,255,255,.22);transition:--upload-progress .16s linear}.upload-progress-fill::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.22) 48%,transparent 75%);animation:progress-sheen 1.5s ease-in-out infinite}.upload-file-card.verifying .upload-progress-fill{width:100%;opacity:.7;background:linear-gradient(90deg,#252525 0%,#4a3029 38%,var(--orange) 50%,#4a3029 62%,#252525 100%);background-size:220% 100%;animation:verification-pass 1.4s linear infinite}.upload-progress-details{display:flex;justify-content:space-between;gap:10px;color:#999;font-size:9px}.upload-batch{display:flex;align-items:center;gap:13px}.upload-batch-ring{--upload-progress:0%;width:58px;aspect-ratio:1;position:relative;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--orange) var(--upload-progress),#292929 0);box-shadow:0 0 22px rgba(255,75,22,.12)}.upload-batch-ring::before{content:"";position:absolute;inset:6px;border-radius:inherit;background:#141414;border:1px solid #292929}.upload-batch-ring strong{position:relative;font-size:10px}.upload-batch-copy b{display:block;font-size:12px}.upload-batch-copy span{display:block;font-size:9px;color:#999;margin-top:4px}.upload-success{text-align:center;max-width:620px;margin:30px auto}.upload-success-ring{width:76px;aspect-ratio:1;display:grid;place-items:center;margin:8px auto 21px;border-radius:50%;font-size:30px;background:radial-gradient(circle,#ff5a22,#d5320c 72%);box-shadow:0 0 0 8px rgba(255,75,22,.07),0 0 50px rgba(255,75,22,.25);animation:success-arrive .55s cubic-bezier(.2,.85,.25,1.25)}.upload-success h3{font-size:24px;margin:0}.upload-success p{color:#aaa;font-size:11px;line-height:1.65}.upload-success-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:22px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes upload-orbit{to{transform:rotate(1turn)}}@keyframes upload-scan{0%{transform:translateY(15px);opacity:0}20%,80%{opacity:1}100%{transform:translateY(325px);opacity:0}}@keyframes progress-sheen{to{transform:translateX(100%)}}@keyframes verification-pass{to{background-position:-220% 0}}@keyframes success-arrive{from{opacity:0;transform:scale(.72) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
}
@layer remote{
dialog.terminal-dialog{width:min(1120px,calc(100vw - 28px));height:min(760px,calc(100vh - 28px));max-width:none;max-height:none;overflow:hidden;background:#090b0e;border:1px solid #343a44;border-radius:13px}
.terminal-shell{height:100%;min-height:0;display:grid;grid-template-rows:45px minmax(0,1fr) 31px}.terminal-head{display:flex;align-items:center;gap:10px;padding:0 13px;background:#14171c;border-bottom:1px solid #292e36}.terminal-head b{font-size:12px}.terminal-head span{font:10px "Cascadia Mono",Consolas,monospace;color:#8993a2}.terminal-head .terminal-spacer{flex:1}.terminal-end{height:28px;padding:0 10px;border-radius:7px;background:#301b1b;border:1px solid #633;color:#ffb1a8;font-size:9px;font-weight:700;cursor:pointer}.terminal-end:hover{background:#482020}.terminal-close{width:30px;height:30px;border-radius:7px;background:#242932;color:#ddd;cursor:pointer}.terminal-close:hover{background:#343b47}.terminal-screen{min-width:0;min-height:0;overflow:hidden;padding:10px 12px;background:#050608;color:#d7dde8;outline:0;cursor:text;font:14px/1.25 "Cascadia Mono","Cascadia Code",Consolas,monospace;white-space:pre;tab-size:8;contain:paint}.terminal-screen:focus{box-shadow:inset 0 0 0 1px rgba(92,169,255,.4)}.terminal-line{display:block;height:1.25em;min-width:max-content}.terminal-status{display:flex;align-items:center;gap:9px;padding:0 12px;border-top:1px solid #222730;background:#101318;color:#87909d;font-size:9px}.terminal-status i{width:6px;height:6px;border-radius:50%;background:var(--amber)}.terminal-status.connected i{background:var(--green)}.terminal-status.error i{background:var(--red)}.terminal-status .terminal-mode{margin-left:auto;font-family:"Cascadia Mono",Consolas,monospace}.context .menu-label{height:auto;padding:7px 10px 3px;color:#737b86;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
}
@layer utilities{@media(max-width:1150px){.grid-bottom{grid-template-columns:1fr 1fr}.matrix-card{grid-column:1/-1}.quick-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:840px){body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-columns:62px minmax(0,1fr)}.rail{padding:9px 6px}.brand{justify-content:center}.brand-wordmark,.brand-caption,.nav-label,.nav-btn span,.nav-badge,.connection-card,#logoutBtn span{display:none}.nav-btn{justify-content:center;padding:0}.topbar{grid-template-columns:1fr auto;padding:0 9px}.top-search{display:none}.workspace{padding:11px}.grid-main,.grid-bottom,.two-col{grid-template-columns:1fr}.quick-cards{grid-template-columns:repeat(2,1fr)}.detail-list{grid-template-columns:1fr}.upload-file-config{grid-template-columns:1fr}.upload-card-wide{grid-column:auto}.upload-steps{padding-inline:14px}.upload-step span:last-child{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
}

.notification-wrap{position:relative}.notification-pill{height:29px;min-width:34px;padding:0 9px;border-radius:15px;border:1px solid #555;background:#3b3b3b;color:#cfcfcf;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;font-weight:700}.notification-pill svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.notification-pill.unread{background:rgba(20,216,92,.13);border-color:rgba(20,216,92,.45);color:var(--green);box-shadow:0 0 0 3px rgba(20,216,92,.05)}.notification-count{min-width:15px;text-align:center}.notification-panel{position:absolute;right:0;top:38px;width:min(390px,calc(100vw - 32px));max-height:480px;overflow:auto;background:#111;border:1px solid #343434;border-radius:10px;box-shadow:0 22px 55px rgba(0,0,0,.5);z-index:90}.notification-panel-head{position:sticky;top:0;background:#171717;border-bottom:1px solid #2d2d2d;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;z-index:2}.notification-panel-head b{font-size:11px}.notification-list{padding:5px}.notification-item{padding:10px;border-radius:7px;display:grid;grid-template-columns:8px 1fr;gap:9px}.notification-item:hover{background:#1d1d1d}.notification-dot{width:7px;height:7px;border-radius:50%;margin-top:4px;background:#555}.notification-item.unread .notification-dot{background:var(--green);box-shadow:0 0 0 3px rgba(20,216,92,.08)}.notification-item b{font-size:10px;display:block}.notification-item p{font-size:9px;line-height:1.5;color:#aaa;white-space:pre-line;margin:4px 0}.notification-item time{font-size:8px;color:#777}.notification-empty{padding:28px 15px;text-align:center;color:#777;font-size:10px}.idle-pill{font-size:9px;color:#aaa;padding:4px 7px;border-radius:10px;border:1px solid #4b4b4b;background:#383838;white-space:nowrap}.idle-pill.warn{color:var(--amber);border-color:rgba(242,184,75,.4);background:rgba(242,184,75,.08)}.settings-form{display:grid;gap:11px}.settings-form .field{margin:0}.settings-form input[type=password],.settings-form input[type=text],.settings-form input[type=number]{width:100%;height:32px;border-radius:7px;border:1px solid #353535;background:#0c0c0c;color:#eee;padding:0 9px;outline:none}.settings-form input:focus{border-color:#666}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.setting-toggle{display:flex;align-items:flex-start;gap:8px;color:#ccc;font-size:10px;line-height:1.4}.setting-toggle input{margin-top:1px}.settings-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.secret-state{font-size:9px;color:var(--muted)}

/* team UX: inline validation, dialog body, role chip */
.form-err{margin:0 0 10px;padding:7px 10px;border:1px solid rgba(255,61,77,.35);background:rgba(255,61,77,.08);color:#ff9aa3;border-radius:7px;font-size:10px}
input.invalid,.search.invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,61,77,.09)}
.uiDlgBody{margin:0 0 10px;color:#bdbdbd;font-size:11px;line-height:1.6}
#uiDlgField[hidden]{display:none}
.chip.owner{background:rgba(20,216,92,.12);color:#8ff0b3}
#mcount{font-variant-numeric:tabular-nums}

/* permission chips (team page; client.css ships the same for the panel) */
.tg-perm{display:inline-block;font-size:9px;line-height:1.6;padding:0 5px;border-radius:4px;margin:0 0 0 5px;border:1px solid #2b2b2b;color:#9a9a9a}
.tg-perm.perm-control{border-color:rgba(20,216,92,.45);color:#8ff0b3}
.tg-perm.perm-backstage{border-color:rgba(92,169,255,.45);color:#a8ccff}
.tg-perm.perm-view{color:#d8d8d8;border-color:#4a4a4a}
.tg-tag+.tg-tag{margin-top:3px}

/* dialog action hierarchy: solid red for destructive, ghost cancel */
#uiDlg .btn.danger{background:var(--red);color:#fff;border:1px solid var(--red);box-shadow:none}
#uiDlg .btn.danger:hover{background:#ff5563;border-color:#ff5563}
#uiDlg #uiDlgCancel{background:transparent;border:1px solid #343434;color:#c9c9c9}
#uiDlg #uiDlgCancel:hover{background:#1f1f1f}
#uiDlg .uiDlgBody b{color:#f2f2f2}

#save-acl:disabled{background:#242424;color:#8a8a8a;border:1px solid #343434;box-shadow:none}
#members td:first-child{max-width:250px}
.permlegend{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 0;font-size:9px;color:#8d8d8d}
.permlegend b{font-weight:600;color:#c9c9c9}

#members tr.sel{background:#1c1c1c;box-shadow:inset 3px 0 0 var(--orange)}
#members tr.sel td{border-bottom-color:#2a2a2a}
#members tr.me td:first-child .mono-name{color:#fff;font-weight:700}
.permlegend .lgchip{display:inline-block;font-size:9px;line-height:1.6;padding:0 5px;border-radius:4px;border:1px solid #2b2b2b;color:#9a9a9a}
.permlegend .lgchip.c{color:#8ff0b3;border-color:rgba(20,216,92,.45)}
.permlegend .lgchip.b{color:#a8ccff;border-color:rgba(92,169,255,.45)}
.permlegend .lgchip.o{color:#ffb27a;border-color:rgba(255,75,22,.45)}

.chk{display:flex;align-items:center;gap:8px}
.chk .tag{margin-left:8px;font-size:9px;color:#8d8d8d;padding:0 5px;border:1px solid #303030;border-radius:4px;font-variant-numeric:tabular-nums}
.chk input{accent-color:var(--orange)}

#groups th:nth-child(2),#groups td:nth-child(2){width:90px;text-align:right;font-variant-numeric:tabular-nums}
#groups th:nth-child(3),#groups td:nth-child(3){width:96px;text-align:right}

#groups th:nth-child(2),#groups td:nth-child(2){width:70px;text-align:left;padding-left:18px}
#acl-close{margin-left:6px}
#accesscard .table-tools{gap:10px}
.permlegend{line-height:1.7}

#groups th:nth-child(2),#groups td:nth-child(2){width:56px;text-align:right;padding-left:8px;padding-right:10px}
#groups th:nth-child(3),#groups td:nth-child(3){width:92px;white-space:nowrap}
#groups td:nth-child(3) .icon-btn+.icon-btn{margin-left:6px}
#acl-close{margin-left:14px}

.grow{display:flex;align-items:center;gap:6px;padding:3px 0}
.grow .chk{flex:1}
.grow .gname{font-size:11px;color:#d6d6d6}
.grow.on .gname{color:#fff}
.grow .gname{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devwrap{margin:2px 0 8px 22px;padding:6px 8px;border-left:2px solid #262626}
.devtools{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:9px;color:#8d8d8d;margin-bottom:5px}
.devrow{display:grid;grid-template-columns:minmax(90px,1fr) repeat(6,minmax(64px,auto));gap:5px;align-items:center;padding:3px 0;border-bottom:1px solid #1c1c1c}
.devrow .dname{font-size:10px;color:#c9c9c9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devrow.diff{background:rgba(242,184,75,.09);box-shadow:inset 2px 0 0 rgba(242,184,75,.55)}
.devrow.muted-row{opacity:.6}
.tri{height:22px;font-size:9px;background:#0c0c0c;color:#9a9a9a;border:1px solid #2b2b2b;border-radius:5px;padding:0 3px}
.tri.allow{color:#8ff0b3;border-color:rgba(20,216,92,.45)}
.tri.deny{color:#ff9aa3;border-color:rgba(255,61,77,.45)}
.devrow.diff .dname{color:#f2b84b}
.devrow.diff .dname{color:#f2b84b}
.devhint{font-size:9px;color:#7c7c7c;padding:4px 0}
.exchead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#a8a8a8;margin-bottom:6px}
.exchead b{color:#f2b84b}
.excwarn{font-size:9px;color:#f2b84b;border:1px solid rgba(242,184,75,.3);background:rgba(242,184,75,.06);border-radius:6px;padding:4px 7px;margin-bottom:6px}
.excbadge{display:inline-block;margin-left:6px;font-size:9px;padding:0 4px;border-radius:4px;border:1px solid rgba(242,184,75,.4);color:#f2b84b}
.chk.inline{display:inline-flex;align-items:center;gap:6px}

.devhead{font-size:8px;color:#7c7c7c;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #262626;padding-bottom:3px}
.devhead span:not(.dname){text-align:center}
.devrow .dname{max-width:none}
.two-col{grid-template-columns:minmax(0,1.55fr) minmax(390px,.95fr)}

.gacts{display:inline-flex;gap:3px;flex-wrap:wrap;margin-left:6px}
.gacts em{font-style:normal;font-size:8px;padding:0 4px;border-radius:3px;border:1px solid #343434;color:#9a9a9a}
.gperms{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:4px 0 6px}
.glabel{font-size:9px;color:#8d8d8d;margin-right:2px}
.gperm{font-size:9px;line-height:1.7;padding:0 6px;border-radius:4px;border:1px solid #2b2b2b;background:#0c0c0c;color:#8d8d8d;cursor:pointer}
.gperm.on{color:#0b0b0b;background:#7de2a4;border-color:#7de2a4}
.gperm.on.control{background:#8ff0b3;border-color:#8ff0b3}
.gperm.on.backstage{background:#a8ccff;border-color:#a8ccff}
.gperm.on.deny{background:#ff9aa3}

.gperm.on.files,.gperm.on.share,.gperm.on.logs{background:#d8d8d8;border-color:#d8d8d8;color:#111}
.gacts em.control{color:#8ff0b3;border-color:rgba(20,216,92,.45)}
.gacts em.backstage{color:#a8ccff;border-color:rgba(92,169,255,.45)}
.gacts em.files,.gacts em.share,.gacts em.logs{color:#cfcfcf}

.devopen{color:#d6d6d6;text-decoration:none;border-bottom:1px dotted #454545}
.devopen:hover{color:#fff;border-bottom-color:var(--orange)}
