/* JDesk Website/User Center base styles V4.32. Extracted snapshot; no client runtime dependency. */
/* JDesk V4.32 unified UI. Generated from V4.32 consolidated baseline, then normalized by one token/component layer. */

/* ==== JDesk shared foundations ==== */

*{box-sizing:border-box}html,body{margin:0;font-family:"Noto Sans CJK SC","Noto Sans SC","Microsoft YaHei UI","Segoe UI",Arial,sans-serif;color:#1D2433;background:#F6F7F9}button,input{font:inherit}.app{height:100vh;display:flex;background:#F6F7F9}.sidebar{width:184px;background:#fff;border-right:1px solid #E7E9ED;display:flex;flex-direction:column;padding:18px 12px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;padding:4px 8px 20px}.logo{width:30px;height:30px;border-radius:9px;object-fit:cover;display:block;box-shadow:0 5px 12px rgba(247,181,0,.2)}.nav{display:flex;flex-direction:column;gap:5px}.nav a{height:42px;padding:0 12px;border-radius:10px;display:flex;align-items:center;gap:10px;color:#667085;text-decoration:none;font-size:14px}.nav a.active{background:#FFF7D6;color:#7A5200;font-weight:650}.nav .dot{width:18px;text-align:center}.side-bottom{margin-top:auto}.account{display:flex;align-items:center;gap:10px;padding:10px 8px;border-top:1px solid #EFF1F3}.avatar{width:30px;height:30px;border-radius:50%;background:#1D2433;color:#fff;display:grid;place-items:center;font-size:12px}.main{flex:1;min-width:0}.topbar{height:60px;background:#fff;border-bottom:1px solid #E7E9ED;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.topbar .title{font-weight:650}.status-pill{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #E7E9ED;border-radius:999px;font-size:12px;color:#667085;background:#fff}.green{width:8px;height:8px;border-radius:50%;background:#12B76A}.content{padding:24px;max-width:1300px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-head h1{font-size:24px;margin:0;letter-spacing:-.3px}.page-head p{margin:5px 0 0;color:#667085;font-size:13px}.btn{height:40px;border-radius:10px;border:1px solid #D0D5DD;background:#fff;padding:0 16px;color:#344054;font-weight:600;cursor:pointer}.btn.primary{background:#F7B500;border-color:#F7B500;color:#1D2433}.btn.ghost{border-color:transparent;background:transparent}.icon-btn{width:36px;height:36px;border:1px solid #E7E9ED;background:#fff;border-radius:10px;display:grid;place-items:center}.card{background:#fff;border:1px solid #E7E9ED;border-radius:14px}.muted{color:#667085}.small{font-size:12px}.two{display:grid;grid-template-columns:1.06fr .94fr;gap:16px}.hero-card{padding:24px;min-height:270px}.eyebrow{font-size:12px;color:#667085;margin-bottom:10px}.device-name{font-size:17px;font-weight:650}.id{font-size:31px;font-weight:760;letter-spacing:2.5px;margin-top:18px}.code{font-size:22px;font-weight:720;letter-spacing:3px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.sep{height:1px;background:#EFF1F3;margin:18px 0}.switch{width:42px;height:24px;border-radius:999px;background:#F7B500;padding:3px}.switch:after{content:"";display:block;width:18px;height:18px;border-radius:50%;background:white;margin-left:18px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.connect-input{height:52px;border:1px solid #D0D5DD;border-radius:12px;padding:0 14px;font-size:17px;outline:none;flex:1}.recent{margin-top:18px}.recent-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:10px}.recent-item:hover{background:#FAFAFB}.metric-strip{margin-top:16px;padding:14px 16px;display:flex;gap:34px}.metric strong{display:block;font-size:14px;margin-top:3px}.metric span{font-size:12px;color:#98A2B3}.search{height:40px;border:1px solid #D0D5DD;border-radius:10px;padding:0 12px;width:260px}.panel-layout{display:grid;grid-template-columns:1fr 330px;gap:16px}.list{overflow:hidden}.list-head,.device-row{display:grid;grid-template-columns:2.2fr 1fr 1fr 1.1fr;align-items:center;padding:0 16px}.list-head{height:40px;background:#FAFAFB;color:#667085;font-size:12px}.device-row{height:58px;border-top:1px solid #EFF1F3;font-size:13px}.device-row.selected{background:#FFFDF6}.os{color:#667085}.detail{padding:18px}.detail h3{margin:0 0 6px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.action{padding:13px;border:1px solid #E7E9ED;border-radius:10px;background:#fff;text-align:left}.action b{display:block;font-size:13px}.action span{font-size:12px;color:#98A2B3}.remote{height:100vh;background:#15181F;position:relative;overflow:hidden}.remote-canvas{position:absolute;inset:0;background:radial-gradient(circle at 60% 35%,#414854 0,#252A32 42%,#181B21 100%);display:flex;align-items:center;justify-content:center;color:#9BA3AF}.desktop-window{width:72%;height:68%;background:#F3F5F7;border-radius:10px;box-shadow:0 22px 70px rgba(0,0,0,.35);overflow:hidden}.remote-toolbar{position:absolute;top:16px;left:50%;transform:translateX(-50%);height:44px;background:rgba(255,255,255,.96);border:1px solid rgba(231,233,237,.85);border-radius:12px;display:flex;align-items:center;padding:0 6px;box-shadow:0 10px 30px rgba(0,0,0,.16);gap:2px}.tool{height:34px;padding:0 10px;border:none;background:transparent;border-radius:8px;font-size:12px;color:#344054}.tool:hover{background:#F2F4F7}.tool.danger{color:#D92D20}.quality{position:absolute;right:16px;bottom:16px;background:rgba(20,23,28,.8);color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 10px;font-size:12px}.file-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px}.file-pane{min-height:520px}.pane-top{padding:14px;border-bottom:1px solid #E7E9ED}.crumb{font-size:12px;color:#667085;margin-top:8px}.file-head,.file-row{display:grid;grid-template-columns:2fr .8fr .8fr;padding:0 14px;align-items:center}.file-head{height:38px;background:#FAFAFB;color:#667085;font-size:12px}.file-row{height:42px;border-top:1px solid #EFF1F3;font-size:12px}.queue{margin-top:12px;padding:12px 14px}.settings{display:grid;grid-template-columns:220px 1fr;gap:16px}.settings-nav{padding:8px}.settings-nav div{padding:10px 12px;border-radius:9px;font-size:13px;color:#667085}.settings-nav .active{background:#FFF7D6;color:#7A5200;font-weight:650}.settings-content{padding:22px}.setting-row{display:flex;justify-content:space-between;gap:30px;padding:16px 0;border-top:1px solid #EFF1F3}.setting-row:first-of-type{border-top:none}.setting-row b{display:block;font-size:13px}.setting-row span{font-size:12px;color:#667085}.site{background:#fff;min-height:100vh}.site-nav{height:68px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px}.site-links{display:flex;gap:24px;color:#667085;font-size:13px}.site-hero{max-width:1180px;margin:auto;padding:72px 24px 40px;display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}.site-hero h1{font-size:48px;line-height:1.1;margin:0 0 18px;letter-spacing:-1.6px}.site-hero p{font-size:17px;color:#667085;line-height:1.7}.site-visual{height:420px;background:#F7F8FA;border:1px solid #E7E9ED;border-radius:24px;padding:28px;box-shadow:0 18px 60px rgba(16,24,40,.08)}.mini-app{height:100%;background:#fff;border-radius:16px;border:1px solid #E7E9ED;display:flex;overflow:hidden}.mini-side{width:120px;background:#FAFAFB;border-right:1px solid #EFF1F3}.mini-main{flex:1;padding:24px}.feature-band{max-width:1180px;margin:34px auto 0;padding:0 24px 60px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.feature{padding:20px;border:1px solid #E7E9ED;border-radius:14px}.feature h3{margin:8px 0;font-size:15px}.feature p{margin:0;color:#667085;font-size:12px;line-height:1.6}.admin{min-height:100vh;background:#F6F7F9}.admin-top{height:60px;background:#202631;color:#fff;display:flex;align-items:center;padding:0 24px;font-weight:650}.admin-content{padding:22px 26px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.kpi{padding:16px;background:#fff;border:1px solid #E7E9ED;border-radius:12px}.kpi .n{font-size:24px;font-weight:720;margin-top:7px}.node-table{background:#fff;border:1px solid #E7E9ED;border-radius:12px;overflow:hidden}.node-head,.node-row{display:grid;grid-template-columns:1.5fr .8fr .9fr .9fr .8fr .8fr .8fr 1fr;align-items:center;padding:0 14px}.node-head{height:42px;background:#FAFAFB;font-size:12px;color:#667085}.node-row{height:52px;border-top:1px solid #EFF1F3;font-size:12px}


.auth-wrap{min-height:100vh;display:grid;place-items:center;background:#F6F7F9}.auth-card{width:420px;padding:28px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.auth-card h1{font-size:22px;margin:0 0 6px}.field{margin-top:14px}.field label{font-size:12px;color:#667085;display:block;margin-bottom:6px}.field input{height:42px;width:100%;border:1px solid #D0D5DD;border-radius:10px;padding:0 12px}.tabs{display:flex;gap:4px;border-bottom:1px solid #E7E9ED;margin-bottom:16px}.tabs span{padding:9px 12px;font-size:12px;color:#667085}.tabs .active{color:#7A5200;border-bottom:2px solid #F7B500;font-weight:650}.stepper{display:flex;gap:8px;margin:20px 0}.step{height:4px;flex:1;border-radius:999px;background:#E7E9ED}.step.done{background:#F7B500}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.info-card{padding:16px}.info-card .n{font-size:22px;font-weight:740;margin-top:6px}.table{background:#fff;border:1px solid #E7E9ED;border-radius:12px;overflow:hidden}.table-head,.table-row{display:grid;align-items:center;padding:0 14px}.table-head{height:40px;background:#FAFAFB;color:#667085;font-size:12px}.table-row{min-height:50px;border-top:1px solid #EFF1F3;font-size:12px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#F2F4F7;color:#475467;font-size:12px}.badge.ok{background:#ECFDF3;color:#027A48}.badge.warn{background:#FFFAEB;color:#B54708}.badge.danger{background:#FEF3F2;color:#B42318}.split{display:grid;grid-template-columns:1fr 320px;gap:16px}.side-card{padding:18px}.terminal{background:#11151B;color:#D0D5DD;border-radius:12px;padding:18px;font-family:Consolas,monospace;min-height:500px;line-height:1.65;font-size:12px}.wall{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.wall-item{height:180px;border-radius:12px;background:linear-gradient(140deg,#20252D,#3E4651);position:relative;overflow:hidden}.wall-item span{position:absolute;left:12px;bottom:10px;color:#fff;font-size:12px;background:rgba(0,0,0,.35);padding:5px 7px;border-radius:7px}.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.price-card{padding:22px}.price{font-size:30px;font-weight:760}.timeline{padding-left:16px;border-left:2px solid #EFF1F3}.timeline-item{margin:0 0 18px 10px}.chartbox{height:150px;border:1px solid #EFF1F3;border-radius:10px;background:linear-gradient(180deg,#FFFDF5,#fff);position:relative}.chartline{position:absolute;left:10px;right:10px;bottom:32px;height:50px;border-bottom:2px solid #F7B500;transform:skewY(-8deg)}.callout{padding:12px 14px;border-radius:10px;background:#FFF9E8;border:1px solid #FDE7A5;color:#7A5200;font-size:12px}.codebox{background:#11151B;color:#D0D5DD;border-radius:10px;padding:12px;font-family:Consolas,monospace;font-size:12px}.progress{height:6px;background:#EEF0F2;border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:#F7B500}.toolbar-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.support-grid{display:grid;grid-template-columns:280px 1fr 300px;gap:12px}.queue-list{padding:8px}.queue-item{padding:12px;border-radius:10px;margin-bottom:5px}.queue-item.active{background:#FFF7D6}.chat-panel{padding:16px}.msg{max-width:76%;padding:9px 11px;border-radius:10px;background:#F2F4F7;font-size:12px;margin:8px 0}.msg.me{margin-left:auto;background:#FFF7D6}.policy-grid{display:grid;grid-template-columns:240px 1fr;gap:16px}.check{width:18px;height:18px;border-radius:5px;background:#F7B500;display:inline-block}.website-price{min-height:100vh;background:#fff}.website-price .pricing{max-width:1000px;margin:30px auto;padding:0 24px}.security-event{border-left:3px solid #D92D20;padding-left:12px}.user-center{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.user-nav{background:#fff;border-right:1px solid #E7E9ED;padding:20px 12px}.user-content{padding:26px}.empty-visual{height:180px;display:grid;place-items:center;color:#98A2B3;border:1px dashed #D0D5DD;border-radius:12px}.mini-device{height:90px;border:1px solid #E7E9ED;border-radius:12px;padding:14px}.danger-text{color:#D92D20}

.ent-grid{display:grid;grid-template-columns:220px 1fr;gap:16px}.plan-side{padding:12px}.plan-side .item{padding:10px 12px;border-radius:9px;font-size:12px;margin-bottom:4px}.plan-side .item.active{background:#FFF7D6;color:#7A5200;font-weight:650}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-box{border:1px solid #E7E9ED;border-radius:10px;padding:13px}.form-box label{display:block;font-size:12px;color:#667085;margin-bottom:6px}.form-box .value{display:flex;align-items:center;justify-content:space-between;height:36px;border:1px solid #D0D5DD;border-radius:8px;padding:0 10px;background:#fff;font-size:12px}.source-list{display:grid;gap:8px}.source-row{display:grid;grid-template-columns:220px 100px 1fr 100px;align-items:center;gap:12px;padding:11px 12px;border:1px solid #E7E9ED;border-radius:10px;font-size:12px}.draftbar{padding:10px 14px;background:#FFF9E8;border:1px solid #FDE7A5;border-radius:10px;display:flex;align-items:center;justify-content:space-between}.impact{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.impact>div{border:1px solid #E7E9ED;border-radius:10px;padding:12px}.impact b{font-size:20px;display:block;margin-top:4px}

.feature-icon{width:28px;height:28px;border-radius:8px;background:#FFF7D6;color:#7A5200;display:grid;place-items:center}.feature-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.marketing-hero{width:100%;height:100%;object-fit:contain;display:block}.site-visual.asset{padding:10px;background:linear-gradient(145deg,#FFFDF6,#F7F8FA)}.price-hero{max-width:1000px;margin:0 auto;padding:0 24px 10px;display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:center}.price-hero img{width:100%;height:190px;object-fit:contain;border-radius:20px;background:#FFFDF6;border:1px solid #FDE7A5}.security-flow{font-size:12px;color:#667085;margin-top:14px;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.security-flow b{color:#7A5200;background:#FFF7D6;padding:5px 8px;border-radius:999px}

/* V3.17 current responsive + admin shell */
.admin-shell-v314{min-height:100vh;display:grid;grid-template-columns:224px 1fr;background:#F6F7F9}.admin-side-v314{background:#111827;color:#D0D5DD;padding:18px 14px;display:flex;flex-direction:column}.admin-brand-v314{display:flex;align-items:center;gap:10px;color:#fff;font-weight:750;font-size:15px;padding:4px 8px 20px}.admin-brand-v314 img{width:30px;height:30px;border-radius:8px}.admin-menu-v314{display:flex;flex-direction:column;gap:4px}.admin-menu-v314 a{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 11px;border-radius:8px;color:#C9D1DC;text-decoration:none;font-size:12px}.admin-menu-v314 a.active{background:#253041;color:#fff}.admin-menu-v314 svg,.v314-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.admin-foot-v314{margin-top:auto;padding:14px 10px;border-top:1px solid #293445;font-size:12px;color:#98A2B3}.admin-main-v314{min-width:0}.admin-top-v314{height:58px;background:#fff;border-bottom:1px solid #E7E9ED;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.admin-top-v314 b{font-size:13px}.admin-top-v314 span{font-size:12px;color:#667085}.admin-body-v314{padding:22px 24px}.admin-body-v314>.content{padding:0;max-width:none}.admin-body-v314 .small,.admin-body-v314 .sub,.admin-body-v314 .badge,.admin-body-v314 .table-head,.admin-body-v314 .node-head{font-size:12px!important}
.product-mockup{height:420px;position:relative;border-radius:26px;background:linear-gradient(145deg,#FFF9E6,#F4F6F8 55%,#EEF2F6);border:1px solid #E7E9ED;overflow:hidden;box-shadow:0 22px 70px rgba(16,24,40,.10)}.mock-window{position:absolute;left:34px;top:38px;width:78%;height:315px;background:#fff;border:1px solid #DDE1E7;border-radius:16px;box-shadow:0 18px 45px rgba(16,24,40,.13);overflow:hidden}.mock-window .barx{height:34px;background:#F8F9FB;border-bottom:1px solid #EEF0F2;display:flex;align-items:center;padding:0 12px;gap:6px}.mock-window .barx i{width:7px;height:7px;border-radius:50%;background:#D0D5DD}.mock-window .inside{display:grid;grid-template-columns:92px 1fr;height:281px}.mock-window .navx{background:#FAFAFB;border-right:1px solid #EEF0F2;padding:14px 9px}.mock-window .navx b{display:block;height:27px;border-radius:7px;background:#FFF3C4;margin-bottom:7px}.mock-window .navx span{display:block;height:7px;background:#E9ECF0;border-radius:8px;margin:12px 4px}.mock-window .screenx{padding:20px}.mock-window .idbox{padding:17px;border:1px solid #E7E9ED;border-radius:12px}.mock-window .idbox strong{font-size:24px;letter-spacing:2px}.mock-window .connectx{margin-top:14px;display:flex;gap:8px}.mock-window .connectx i{height:38px;flex:1;border:1px solid #D0D5DD;border-radius:9px}.mock-window .connectx b{width:92px;background:#F7B500;border-radius:9px}.mock-phone{position:absolute;right:30px;bottom:24px;width:124px;height:238px;border-radius:26px;background:#161B22;padding:8px;box-shadow:0 18px 45px rgba(16,24,40,.2)}.mock-phone .phonein{height:100%;background:#fff;border-radius:20px;padding:24px 12px 12px}.mock-phone .phonein b{display:block;font-size:12px}.mock-phone .phonein span{display:block;height:8px;background:#EEF0F2;border-radius:7px;margin-top:13px}.mock-badge{position:absolute;right:22px;top:28px;background:#111827;color:#fff;border-radius:12px;padding:10px 12px;font-size:12px;box-shadow:0 10px 28px rgba(16,24,40,.15)}
@media(max-width:1024px){.site-hero{grid-template-columns:1fr;gap:30px;padding-top:48px}.site-hero h1{font-size:42px}.site-visual,.product-mockup{height:380px}.feature-band{grid-template-columns:1fr 1fr}.site-links{gap:14px}.website-price .price-hero{grid-template-columns:1fr}.pricing{grid-template-columns:1fr 1fr!important}}
@media(max-width:768px){.site-nav{height:auto;min-height:64px;padding:12px 18px;gap:10px}.site-links{display:none}.site-nav .brand{font-size:14px}.site-hero{padding:38px 18px 24px}.site-hero h1{font-size:36px}.site-hero p{font-size:15px}.feature-band{grid-template-columns:1fr;padding:0 18px 40px}.product-mockup{height:330px}.mock-window{left:18px;top:32px;width:84%;height:250px}.mock-window .inside{height:216px}.mock-phone{width:96px;height:190px;right:16px}.pricing{grid-template-columns:1fr!important;padding:0 18px!important}.price-hero{margin:0 18px!important}.website-price section[style*="text-align:center"]{padding-top:38px!important}.website-price section h1{font-size:34px!important}}
@media(max-width:480px){.site-nav .btn.ghost{display:none}.site-nav .btn{height:38px;padding:0 11px}.site-hero{padding-top:26px}.site-hero h1{font-size:31px;letter-spacing:-1px}.site-hero .row{flex-wrap:wrap}.site-hero .row .btn{width:100%}.product-mockup{height:285px;border-radius:18px}.mock-window{left:12px;top:25px;width:88%;height:220px}.mock-window .inside{grid-template-columns:64px 1fr;height:186px}.mock-window .screenx{padding:12px}.mock-window .idbox strong{font-size:18px}.mock-phone{display:none}.mock-badge{right:12px;top:12px;font-size:12px}.feature-band{margin-top:15px}.security-flow{flex-wrap:wrap}.website-price section h1{font-size:29px!important}}

.icon-btn img,.icon-btn svg{width:18px;height:18px;display:block}


/* V3.22 usability patch */
.auth-card{width:460px;max-width:calc(100vw - 32px)}
.auth-card .row{align-items:stretch;gap:12px}
.auth-card .row input{flex:1;min-width:0}
.auth-card .row .btn{flex:0 0 116px;height:42px;white-space:normal;line-height:1.2;padding:0 10px}
.site{background:linear-gradient(180deg,#fff 0,#fff 620px,#FBFBFC 620px,#FBFBFC 100%)}
.site .section-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.hero-note{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.hero-note span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#FFF7D6;color:#7A5200;font-size:12px}
.quick-modes{padding:18px 0 8px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mode-card{background:#fff;border:1px solid #E7E9ED;border-radius:18px;padding:22px;box-shadow:0 10px 30px rgba(16,24,40,.04)}.mode-card h3{margin:10px 0 8px;font-size:18px}.mode-card p{margin:0;color:#667085;font-size:13px;line-height:1.75}.mode-card ul{margin:14px 0 0;padding-left:18px;color:#475467;font-size:12px;line-height:1.9}
.home-highlight{padding:34px 0}.highlight-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:16px}.highlight-panel{background:#fff;border:1px solid #E7E9ED;border-radius:22px;padding:28px;box-shadow:0 14px 32px rgba(16,24,40,.05)}.highlight-panel h2{font-size:28px;line-height:1.2;margin:0 0 12px}.highlight-panel p{margin:0;color:#667085;line-height:1.8}.user-center-card{display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:center;background:linear-gradient(135deg,#FFFBEC,#FFF 55%);border:1px solid #FDE7A5;border-radius:18px;padding:22px;margin-top:18px}.user-center-card .mini-list{display:grid;gap:10px}.mini-line{height:12px;border-radius:999px;background:#EEF0F2}.mini-line.yellow{background:#FFE08A}
.home-sections{padding:8px 0 44px}.section-title{font-size:30px;margin:0 0 10px;letter-spacing:-.5px}.section-sub{margin:0 0 22px;color:#667085;line-height:1.75}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.trust-item,.step-item,.faq-item,.cta-strip{background:#fff;border:1px solid #E7E9ED;border-radius:18px;padding:20px}.trust-item h4,.step-item h4,.faq-item h4{margin:8px 0 8px;font-size:16px}.trust-item p,.step-item p,.faq-item p{margin:0;color:#667085;font-size:13px;line-height:1.75}.steps-grid,.faq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cta-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#FFF7D6,#fff)}
.site-footer{border-top:1px solid #E7E9ED;background:#fff;margin-top:18px}.footer-grid{max-width:1180px;margin:0 auto;padding:22px 24px 34px;display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr;gap:16px}.footer-grid h5{margin:0 0 10px;font-size:13px}.footer-grid p,.footer-grid li{margin:0;color:#667085;font-size:12px;line-height:1.8}.footer-grid ul{padding-left:18px;margin:0}
@media(max-width:1024px){.mode-grid,.trust-grid{grid-template-columns:1fr 1fr}.highlight-grid,.steps-grid,.faq-grid,.footer-grid{grid-template-columns:1fr 1fr}.user-center-card{grid-template-columns:1fr}}
@media(max-width:768px){.mode-grid,.trust-grid,.steps-grid,.faq-grid,.footer-grid,.highlight-grid{grid-template-columns:1fr}.highlight-panel h2{font-size:24px}.section-title{font-size:24px}.cta-strip{display:block}.cta-strip .row{margin-top:14px;flex-wrap:wrap}}


/* V3.23 final visual polish */
.nav .dot svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.uc-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:16px;margin-top:22px}
.uc-section-title{margin-bottom:10px}.uc-section-title h2{font-size:17px;margin:0}.uc-device-list{display:grid;gap:10px}.uc-device{padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:82px}.uc-device .green{display:inline-block;flex:none}.uc-offline-dot{width:8px;height:8px;border-radius:50%;background:#98A2B3;display:inline-block;flex:none}.uc-panel{padding:17px}.uc-note{padding:13px 0;border-top:1px solid #EFF1F3}.uc-note:first-of-type{margin-top:10px}.uc-note b{font-size:13px}.uc-session{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #EFF1F3;font-size:12px}.uc-session:first-of-type{margin-top:10px}
@media(max-width:960px){.uc-grid{grid-template-columns:1fr}.user-center{grid-template-columns:178px 1fr}.uc-device{align-items:flex-start}.uc-device>.row{flex-wrap:wrap;justify-content:flex-end}}


.uc-mobile-top{display:none}
@media(max-width:600px){
  .user-center{display:block;min-height:100vh}.user-nav{display:none}.user-content{padding:14px 14px 28px}.uc-mobile-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.uc-mobile-top .brand{font-size:15px}.uc-mobile-top .logo{width:28px;height:28px}
  .user-content .page-head{display:block}.user-content .page-head .row{margin-top:12px;display:grid;grid-template-columns:1fr 1fr}.user-content .page-head .btn{width:100%}
  .user-content .info-grid{grid-template-columns:1fr;gap:10px}.user-content .info-card{padding:14px}.user-content .info-card .n{font-size:20px}
  .uc-grid{grid-template-columns:1fr;gap:12px;margin-top:18px}.uc-device{display:block;padding:14px}.uc-device>.row{margin-top:12px;display:grid;grid-template-columns:1fr 1fr}.uc-device>.row .btn{width:100%;padding:0 8px}
  .uc-section-title .btn{height:34px;padding:0 8px}.uc-panel{padding:14px}.user-content h1{font-size:22px}
}


/* V3.24 final visual polish: spacing, typography, information density */
body{font-size:14px}
.content{padding:28px 30px 32px;max-width:1320px}
.page-head{margin-bottom:20px;gap:18px}.page-head h1{font-size:26px;line-height:1.2;letter-spacing:-.45px}.page-head p{font-size:14px;line-height:1.65;margin-top:6px}
.topbar{height:62px;padding:0 26px}.topbar .title{font-size:14px}.status-pill{font-size:13px;padding:7px 11px}
.card{border-radius:16px;box-shadow:0 6px 18px rgba(16,24,40,.035)}
.btn{height:42px;border-radius:10px;padding:0 17px;font-size:13px}.search{height:42px;font-size:13px}
.small{font-size:13px}.action{padding:14px}.action b{font-size:14px}.action span{font-size:13px;line-height:1.45;margin-top:3px;display:block}
.list-head{font-size:13px}.device-row{height:64px;font-size:14px}.file-head{font-size:13px}.file-row{height:46px;font-size:13px}
.table-head{font-size:13px}.table-row{font-size:13px;min-height:54px}
.info-card{padding:18px}.info-card .n{font-size:24px}
.setting-row b{font-size:14px}.setting-row span{font-size:13px;line-height:1.45}
.badge{font-size:12px}
.admin-body-v314{padding:26px 28px}.admin-body-v314 .small,.admin-body-v314 .sub{font-size:13px!important}.admin-body-v314 .table-row,.admin-body-v314 .node-row{font-size:13px}.admin-body-v314 .table-head,.admin-body-v314 .node-head{font-size:12px!important}
.admin-top-v314{height:60px;padding:0 24px}.admin-top-v314 b{font-size:14px}.admin-top-v314 span{font-size:12px}
.admin-menu-v314 a{font-size:13px;min-height:42px}
/* balanced utility components */
.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.summary-card{padding:16px 18px;background:#fff;border:1px solid #E7E9ED;border-radius:14px}.summary-card span{font-size:12px;color:#667085}.summary-card b{display:block;font-size:22px;line-height:1.2;margin-top:6px}.summary-card em{display:block;font-style:normal;font-size:12px;color:#98A2B3;margin-top:5px}
.filter-strip{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;background:#fff;border:1px solid #E7E9ED;border-radius:14px}.filter-strip .search{flex:1;max-width:320px}.filter-chip{height:36px;border:1px solid #E7E9ED;border-radius:9px;background:#fff;padding:0 12px;color:#475467;font-size:12px}
.section-card{margin-top:16px;padding:18px 20px}.section-card h3{font-size:15px;margin:0 0 12px}.activity-list{display:grid;gap:0}.activity-item{display:grid;grid-template-columns:110px 1fr auto;gap:14px;align-items:center;padding:11px 0;border-top:1px solid #EFF1F3;font-size:13px}.activity-item:first-child{border-top:0}.activity-item .muted{font-size:12px}
/* Remote workspace */
.remote{background:#11151C}.remote-canvas{background:linear-gradient(145deg,#222A35,#161B23 62%,#10141A)}
.remote-shell{width:min(1180px,86vw);height:min(680px,76vh);background:#E9EEF5;border-radius:12px;box-shadow:0 28px 90px rgba(0,0,0,.45);overflow:hidden;border:1px solid rgba(255,255,255,.14);position:relative}
.remote-osbar{height:44px;background:#EEF2F7;display:flex;align-items:center;justify-content:space-between;padding:0 14px;color:#475467;font-size:12px;border-bottom:1px solid #DDE3EA}.remote-osbar .window-actions{display:flex;gap:10px;color:#98A2B3}
.remote-desktop{height:calc(100% - 44px);position:relative;overflow:hidden;background:linear-gradient(135deg,#DCE6F4 0,#E7EDF5 42%,#CBD8EA 100%)}
.remote-wallpaper-orb{position:absolute;width:360px;height:360px;border-radius:50%;background:linear-gradient(145deg,rgba(247,181,0,.75),rgba(255,224,138,.28));filter:blur(.2px);right:9%;top:12%;box-shadow:0 40px 90px rgba(247,181,0,.22)}
.remote-app-window{position:absolute;left:9%;top:12%;width:58%;height:68%;background:#fff;border:1px solid #CED6E0;border-radius:10px;box-shadow:0 18px 45px rgba(30,42,60,.22);overflow:hidden}
.remote-app-title{height:38px;background:#F7F9FB;border-bottom:1px solid #E6EAF0;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:12px;color:#475467}.remote-app-content{display:grid;grid-template-columns:150px 1fr;height:calc(100% - 38px)}.remote-app-side{background:#F8FAFC;border-right:1px solid #E8ECF2;padding:14px}.remote-app-side i{display:block;height:10px;border-radius:6px;background:#E3E8EF;margin:0 0 14px}.remote-app-side i:first-child{background:#FFE8A3;height:30px}.remote-app-main{padding:22px}.remote-doc-title{font-size:22px;font-weight:750;margin-bottom:8px}.remote-doc-sub{font-size:13px;color:#667085;line-height:1.6}.remote-doc-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.remote-doc-card{height:90px;border:1px solid #E7E9ED;border-radius:10px;background:#FBFCFD;padding:12px}.remote-doc-card b{font-size:13px}.remote-doc-card span{display:block;font-size:12px;color:#98A2B3;margin-top:8px}
.remote-taskbar{position:absolute;left:0;right:0;bottom:0;height:46px;background:rgba(248,250,252,.9);backdrop-filter:blur(10px);border-top:1px solid rgba(200,208,219,.8);display:flex;align-items:center;justify-content:center;gap:9px}.remote-task-icon{width:28px;height:28px;border-radius:7px;background:#fff;border:1px solid #DDE3EA;box-shadow:0 3px 8px rgba(30,42,60,.08)}.remote-task-icon.active{background:#FFF2C2;border-color:#F1C45E}
.remote-toolbar{top:14px;height:48px;padding:0 7px;gap:3px;border-radius:13px}.remote-toolbar .tool{height:36px;font-size:13px;padding:0 11px}.remote-toolbar .tool-sep{width:1px;height:22px;background:#E4E7EC;margin:0 3px}.remote-toolbar .remote-device-label{padding:0 11px 0 7px;font-size:12px;color:#475467;font-weight:650;white-space:nowrap}.remote-toolbar .remote-device-label i{display:inline-block;width:7px;height:7px;background:#12B76A;border-radius:50%;margin-right:6px}
.quality{right:18px;bottom:18px;padding:9px 12px;border-radius:11px;font-size:12px;line-height:1.5}.quality .quality-more{color:#D0D5DD;font-size:12px;margin-top:2px}
/* Denser detail side */
.device-health{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.health-cell{padding:10px;border:1px solid #EFF1F3;border-radius:9px;background:#FAFAFB}.health-cell span{display:block;font-size:12px;color:#98A2B3}.health-cell b{display:block;font-size:13px;margin-top:4px}
/* Price page */
.website-price{background:linear-gradient(180deg,#fff 0,#FFFDF7 360px,#F7F8FA 360px,#F7F8FA 100%)}.website-price .pricing{max-width:1060px}.website-price .price-card{min-height:300px;display:flex;flex-direction:column;box-shadow:0 12px 32px rgba(16,24,40,.055)}.website-price .price-card p{white-space:pre-line}.website-price .price-card .btn{margin-top:auto}.price-benefits{display:grid;gap:8px;margin:14px 0 20px}.price-benefits span{font-size:13px;color:#475467}.price-benefits span:before{content:'✓';display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#FFF2C2;color:#7A5200;font-weight:800;margin-right:7px}
@media(max-width:768px){.summary-strip{grid-template-columns:1fr 1fr}.filter-strip{flex-wrap:wrap}.activity-item{grid-template-columns:90px 1fr}.activity-item>span:last-child{display:none}}

/* V3.24 pricing vertical fit */
.website-price .price-card{min-height:260px}.website-price section[style*="text-align:center"]{padding-top:42px!important}.website-price .price-hero{padding-bottom:2px}

/* V3.24 final fit corrections */
.website-price .price-card{min-height:250px}

/* V3.24 last vertical tune */
.website-price .price-card{min-height:238px}.website-price section[style*="text-align:center"]{padding-top:38px!important}

/* V3.24 final visual-depth pass */
.v324-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.v324-insight{padding:17px 18px;min-height:126px}.v324-insight-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.v324-insight-head b{font-size:14px}.v324-insight-head span{font-size:12px;color:#667085}.v324-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.v324-stat-cell{background:#FAFAFB;border:1px solid #EEF0F2;border-radius:10px;padding:10px 11px}.v324-stat-cell span{display:block;font-size:12px;color:#98A2B3;margin-bottom:4px}.v324-stat-cell b{font-size:15px}.v324-bars{display:flex;align-items:end;gap:8px;height:58px;padding-top:4px}.v324-bars i{display:block;flex:1;border-radius:5px 5px 2px 2px;background:#F4C84C;min-height:12px}.v324-policy-list{display:grid;gap:8px}.v324-policy-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:7px 0;border-top:1px solid #F0F1F3}.v324-policy-line:first-child{border-top:0}.v324-policy-line strong{font-size:12px}.v324-ok{color:#027A48}.v324-warn{color:#B54708}.v324-mini-desktop{position:absolute;inset:14px 14px 32px;border-radius:10px;background:linear-gradient(145deg,#E8EEF8,#DDE7F4);overflow:hidden;border:1px solid rgba(255,255,255,.22)}.v324-mini-desktop:before{content:"";position:absolute;width:46%;height:68%;right:6%;top:9%;border-radius:50%;background:linear-gradient(145deg,#FFD75C,#F3C138);opacity:.8}.v324-mini-window{position:absolute;left:10%;top:17%;width:57%;height:57%;background:#fff;border-radius:8px;box-shadow:0 8px 24px rgba(16,24,40,.2);overflow:hidden}.v324-mini-window:before{content:"";display:block;height:18px;background:#F3F5F8;border-bottom:1px solid #E7E9ED}.v324-mini-window:after{content:"";position:absolute;left:13px;top:34px;width:55%;height:7px;border-radius:9px;background:#FFE19A;box-shadow:0 18px 0 #E8EBEF,0 36px 0 #E8EBEF,92px 0 0 #EDF0F4,92px 18px 0 #EDF0F4}.v324-mark{position:absolute;border:2px solid #F7B500;border-radius:8px;left:44%;top:39%;width:30%;height:22%;box-shadow:0 0 0 1px rgba(247,181,0,.1)}.wall-item.v324-preview{background:linear-gradient(145deg,#252B34,#323B48)}.wall-item.v324-preview:nth-child(2n) .v324-mini-desktop:before{right:auto;left:8%;background:linear-gradient(145deg,#8FC2FF,#D7E9FF)}.wall-item.v324-preview:nth-child(3n) .v324-mini-window{left:28%;width:58%}.wall-item.v324-preview>span{z-index:4}.collab-preview{position:relative;height:430px;border-radius:12px;background:linear-gradient(145deg,#252B34,#313A47);overflow:hidden}.collab-preview .v324-mini-desktop{inset:18px}.collab-preview .v324-mini-window{width:61%;height:61%;left:11%;top:14%}.collab-preview .v324-mark{left:48%;top:42%;width:24%;height:20%}.collab-preview .collab-note{position:absolute;left:28px;top:35px;z-index:5;background:#FFF7D6;color:#7A5200;border:1px solid #FDE7A5;border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 6px 18px rgba(16,24,40,.12)}.collab-preview .collab-label{position:absolute;left:12px;bottom:10px;z-index:5;color:#fff;background:rgba(17,24,39,.78);padding:6px 8px;border-radius:8px;font-size:12px}.v324-mini-footer{display:flex;gap:12px;align-items:center;color:#667085;font-size:12px;margin-top:10px}.v324-mini-footer i{width:7px;height:7px;border-radius:50%;background:#12B76A}
@media(max-width:900px){.v324-insight-grid{grid-template-columns:1fr}}
/* V3.24 minimum readable text pass */
.quality .quality-more{font-size:12px}.health-cell span{font-size:12px}


/* V3.28 unified visual system */
:root{
  --jd-primary:#F7B500;--jd-primary-soft:#FFF7D6;--jd-primary-line:#F4D66B;
  --jd-bg:#F5F7FA;--jd-surface:#FFFFFF;--jd-surface-soft:#FAFBFC;
  --jd-text:#1D2433;--jd-text-2:#344054;--jd-muted:#667085;--jd-subtle:#98A2B3;
  --jd-line:#E7E9ED;--jd-line-strong:#D0D5DD;--jd-success:#12B76A;--jd-danger:#D92D20;
  --jd-radius-control:10px;--jd-radius-card:14px;--jd-radius-large:22px;
  --jd-shadow-card:0 12px 34px rgba(16,24,40,.055);--jd-shadow-float:0 24px 70px rgba(16,24,40,.11);
}
button,input{font-family:inherit}.btn{min-height:40px;line-height:1.2}.card{box-shadow:0 1px 0 rgba(16,24,40,.015)}
.btn:focus-visible,input:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(247,181,0,.18);border-color:#E3B200}
.chev-down{display:inline-block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:7px;vertical-align:2px}
.window-controls-v328{display:flex;align-items:center;gap:14px;color:#98A2B3}.window-controls-v328 i{display:block;position:relative;width:12px;height:12px}.window-controls-v328 .min:before{content:"";position:absolute;left:1px;right:1px;top:6px;height:1.5px;background:currentColor;border-radius:1px}.window-controls-v328 .max:before{content:"";position:absolute;inset:2px;border:1.4px solid currentColor;border-radius:1px}.window-controls-v328 .close:before,.window-controls-v328 .close:after{content:"";position:absolute;left:5px;top:1px;width:1.4px;height:11px;background:currentColor;border-radius:1px}.window-controls-v328 .close:before{transform:rotate(45deg)}.window-controls-v328 .close:after{transform:rotate(-45deg)}

/* Consumer auth / onboarding use one shell */
.auth-wrap-v328{min-height:100vh;display:grid;place-items:center;padding:40px;background:radial-gradient(circle at 18% 16%,#FFF6D8 0,rgba(255,246,216,.72) 13%,rgba(255,246,216,0) 34%),linear-gradient(145deg,#F7F8FA,#EEF2F6)}
.auth-shell-v328{width:min(920px,calc(100vw - 48px));min-height:548px;display:grid;grid-template-columns:42% 58%;background:#fff;border:1px solid #E5E8ED;border-radius:24px;overflow:hidden;box-shadow:0 28px 80px rgba(16,24,40,.12)}
.auth-visual-v328{padding:36px 34px;background:linear-gradient(145deg,#FFFDF6 0,#FFF5CF 58%,#F8FAFC 100%);position:relative;overflow:hidden}.auth-visual-v328:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:rgba(247,181,0,.16);right:-72px;bottom:-66px}
.auth-brand-v328{display:flex;align-items:center;gap:11px;font-weight:760;font-size:16px}.auth-brand-v328 img{width:34px;height:34px;border-radius:9px;box-shadow:0 7px 16px rgba(247,181,0,.2)}
.auth-visual-v328 h2{font-size:30px;line-height:1.24;letter-spacing:-.5px;margin:68px 0 14px;max-width:300px}.auth-visual-v328 p{font-size:13px;color:#667085;line-height:1.8;max-width:310px;margin:0}.auth-benefits-v328{display:grid;gap:11px;margin-top:28px}.auth-benefit-v328{display:flex;align-items:center;gap:10px;font-size:13px;color:#475467}.auth-benefit-v328 i{width:24px;height:24px;border-radius:8px;background:#fff;border:1px solid #F0D779;display:grid;place-items:center;color:#7A5200;font-style:normal;font-weight:800}
.auth-panel-v328{padding:46px 52px;display:flex;flex-direction:column;justify-content:center}.auth-panel-v328 .auth-brand-mobile{display:none}.auth-panel-v328 h1{font-size:28px;line-height:1.2;margin:0 0 9px;letter-spacing:-.4px}.auth-panel-v328 .auth-desc{font-size:13px;color:#667085;line-height:1.7;margin-bottom:22px}.auth-panel-v328 .tabs{margin-bottom:18px}.auth-panel-v328 .field{margin-top:15px}.auth-panel-v328 .field label{font-size:13px;font-weight:650;color:#475467;margin-bottom:7px}.auth-panel-v328 .field input{height:44px;font-size:14px}.auth-panel-v328 .field .row .btn{height:44px;flex:0 0 122px}.auth-panel-v328 .auth-submit{width:100%;height:46px;margin-top:20px;font-size:14px}.auth-panel-v328 .auth-policy{text-align:center;margin-top:16px;font-size:12px;color:#98A2B3;line-height:1.6}
.auth-step-v328{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 24px}.auth-step-v328 i{height:5px;border-radius:999px;background:#E7E9ED}.auth-step-v328 i.done{background:#F7B500}.onboard-options-v328{display:grid;gap:10px}.onboard-option-v328{padding:15px 16px;border:1px solid #E7E9ED;border-radius:12px;background:#FAFBFC;display:flex;align-items:center;justify-content:space-between;gap:18px}.onboard-option-v328 b{font-size:14px}.onboard-option-v328 span{display:block;font-size:12px;color:#667085;margin-top:5px;line-height:1.55}.onboard-tip-v328{margin-top:14px;padding:12px 14px;border:1px solid #F1D980;background:#FFF9E8;border-radius:11px;color:#6B5B17;font-size:12px;line-height:1.65}

/* Service Desk information density */
.sd-context{display:grid;grid-template-columns:1.08fr .92fr;gap:12px;margin-top:14px}.sd-block{border:1px solid #E7E9ED;border-radius:11px;background:#FAFBFC;padding:14px}.sd-block h3{font-size:13px;margin:0 0 10px}.sd-kv{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;font-size:12px;line-height:1.6}.sd-kv span{color:#98A2B3}.sd-kv b{font-weight:650;color:#475467}.sd-timeline{display:grid;gap:9px}.sd-event{display:grid;grid-template-columns:58px 1fr;gap:10px;font-size:12px}.sd-event time{color:#98A2B3}.sd-event p{margin:0;color:#475467;line-height:1.55}.sd-permission{margin-top:12px;padding:11px 12px;border-radius:10px;background:#FFF9E8;border:1px solid #FDE7A5;font-size:12px;color:#6B5B17;line-height:1.6}
.admin-lock-v328{width:66px;height:66px;border-radius:18px;background:#FFF7CF;border:1px solid #F0D663;display:grid;place-items:center}.admin-lock-v328 svg{width:28px;height:28px;fill:none;stroke:#7A5200;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:760px){
  .auth-wrap-v328{padding:18px}.auth-shell-v328{display:block;width:min(100%,520px);min-height:auto}.auth-visual-v328{display:none}.auth-panel-v328{padding:28px 24px}.auth-panel-v328 .auth-brand-mobile{display:flex;margin-bottom:28px}.auth-panel-v328 h1{font-size:24px}.sd-context{grid-template-columns:1fr}
}


/* V4.5 website homepage conversion-grade Golden Reference */
.jd45-site{--ink:#11151b;--ink2:#202733;--muted:#667085;--yellow:#ffbf12;--yellow2:#f7b500;--soft:#fff8dc;--line:#e8eaee;background:#fff;color:var(--ink);overflow:visible}.jd45-site *{box-sizing:border-box}.jd45-site button{cursor:pointer}.jd45-header{height:76px;background:rgba(255,255,255,.95);border-bottom:1px solid #eef0f2;position:relative;z-index:20}.jd45-nav{height:100%;max-width:1240px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.jd45-brand{display:flex;align-items:center;gap:10px;color:#11151b;text-decoration:none;font-weight:800;white-space:nowrap}.jd45-brand img{width:36px;height:36px;border-radius:10px;box-shadow:0 8px 20px rgba(247,181,0,.22)}.jd45-brand span{font-size:17px;line-height:1.1}.jd45-brand small{display:block;font-size:12px;letter-spacing:1.6px;color:#98a2b3;margin-top:4px;font-weight:700}.jd45-navlinks{display:flex;align-items:center;gap:28px;margin-left:auto}.jd45-navlinks a{color:#475467;text-decoration:none;font-size:13px;font-weight:600}.jd45-navlinks a i{display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 5px}.jd45-navactions{display:flex;gap:9px;align-items:center}.jd45-primary,.jd45-outline,.jd45-linkbtn,.jd45-dark-outline{height:42px;border-radius:10px;padding:0 16px;font-weight:750;border:1px solid transparent;background:#fff;color:#202733}.jd45-primary{background:var(--yellow);border-color:var(--yellow);color:#11151b;box-shadow:0 8px 22px rgba(247,181,0,.18)}.jd45-outline{border-color:#d9dde4}.jd45-linkbtn{background:transparent;padding:0 8px}.jd45-dark-outline{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.04);color:#fff}.jd45-hero{position:relative;background:linear-gradient(145deg,#080b10 0,#121821 56%,#151b24 100%);min-height:680px;color:#fff;overflow:hidden}.jd45-hero:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,191,18,.45),transparent)}.jd45-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55}.jd45-orb-a{width:530px;height:530px;right:-110px;top:-230px;background:radial-gradient(circle,#ffbf12 0,rgba(255,191,18,.17) 38%,rgba(255,191,18,0) 70%)}.jd45-orb-b{width:420px;height:420px;left:30%;bottom:-310px;background:radial-gradient(circle,#795b00 0,rgba(121,91,0,.1) 50%,transparent 72%)}.jd45-hero-grid{max-width:1240px;margin:auto;padding:94px 24px 72px;display:grid;grid-template-columns:.86fr 1.14fr;gap:54px;align-items:center;position:relative;z-index:2}.jd45-kicker{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#d8dde7;font-weight:650}.jd45-kicker span{width:8px;height:8px;border-radius:50%;background:var(--yellow);box-shadow:0 0 18px rgba(255,191,18,.8)}.jd45-hero h1{font-size:72px;line-height:1.02;letter-spacing:-3.5px;margin:22px 0 24px;font-weight:850}.jd45-hero h1 em{font-style:normal;color:var(--yellow)}.jd45-hero-copy>p{font-size:18px;line-height:1.85;color:#aeb7c6;margin:0;max-width:570px}.jd45-hero-actions{display:flex;gap:12px;margin-top:32px}.jd45-hero-primary{height:50px;padding:0 22px;font-size:14px}.jd45-hero-primary b{font-size:18px;margin-left:8px}.jd45-hero-meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:26px;color:#aeb7c6;font-size:12px}.jd45-hero-meta span{display:flex;align-items:center;gap:7px}.jd45-hero-meta .ok{width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,191,18,.45);position:relative}.jd45-hero-meta .ok:after{content:"";position:absolute;width:6px;height:3px;border-left:1.7px solid var(--yellow);border-bottom:1.7px solid var(--yellow);transform:rotate(-45deg);left:4px;top:4px}.jd45-hero-visual{height:500px;position:relative}.jd45-glowline{position:absolute;inset:40px -80px 0 40px;background:radial-gradient(ellipse at 54% 54%,rgba(255,191,18,.22),rgba(255,191,18,0) 60%)}.jd45-laptop-frame{position:absolute;right:0;top:26px;width:92%;border:1px solid rgba(255,255,255,.16);background:#111820;border-radius:18px;box-shadow:0 34px 90px rgba(0,0,0,.42);padding:10px;transform:perspective(1200px) rotateY(-4deg) rotateX(1.5deg)}.jd45-windowbar{height:30px;display:flex;align-items:center;gap:6px;padding:0 8px;color:#6e7887;font-size:12px}.jd45-windowbar span{width:7px;height:7px;border-radius:50%;background:#38414e}.jd45-windowbar b{margin-left:8px;font-weight:600}.jd45-laptop-frame img{width:100%;display:block;border-radius:10px;filter:saturate(.92) contrast(1.02)}.jd45-session-card{position:absolute;left:0;bottom:28px;width:48%;background:#111820;border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:7px;box-shadow:0 24px 60px rgba(0,0,0,.45);transform:rotate(-3deg)}.jd45-session-card img{width:100%;display:block;border-radius:8px}.jd45-status-float,.jd45-route-float{position:absolute;background:rgba(255,255,255,.96);color:#1f2631;border-radius:13px;box-shadow:0 16px 42px rgba(0,0,0,.28);backdrop-filter:blur(12px)}.jd45-status-float{right:2px;bottom:6px;padding:12px 14px;display:flex;gap:10px;align-items:center}.jd45-status-float i{width:10px;height:10px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 5px rgba(18,183,106,.1)}.jd45-status-float b,.jd45-route-float b{display:block;font-size:12px}.jd45-status-float span,.jd45-route-float span,.jd45-route-float small{display:block;font-size:12px;color:#667085;margin-top:3px}.jd45-route-float{left:52%;top:0;padding:10px 12px;border:1px solid rgba(255,191,18,.35)}.jd45-route-float b{margin-top:2px}.jd45-proofbar{max-width:1240px;margin:-1px auto 0;padding:28px 24px 26px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #eceef1}.jd45-proofbar div{padding:0 24px;border-left:1px solid #eceef1}.jd45-proofbar div:first-child{padding-left:0;border-left:0}.jd45-proofbar b{display:block;font-size:17px;margin-bottom:5px}.jd45-proofbar span{font-size:12px;color:#7a8493}.jd45-section{max-width:1240px;margin:0 auto;padding:112px 24px}.jd45-heading{max-width:620px}.jd45-heading.center{text-align:center;margin:0 auto;max-width:760px}.jd45-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#9b7a00;font-weight:800;margin-bottom:14px}.jd45-heading h2,.jd45-security h2,.jd45-compare h2{font-size:48px;line-height:1.12;letter-spacing:-1.7px;margin:0 0 20px}.jd45-heading p,.jd45-security p{font-size:16px;line-height:1.8;color:#667085;margin:0}.jd45-bento{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;margin-top:48px}.jd45-bento-card{min-height:430px;border:1px solid #e7e9ed;border-radius:26px;background:linear-gradient(145deg,#fff,#f8f9fb);overflow:hidden;position:relative;box-shadow:0 18px 45px rgba(16,24,40,.05)}.jd45-bento-main{grid-row:span 2;min-height:878px;background:linear-gradient(160deg,#f9fafb,#fff6d4)}.jd45-bento-wide{min-height:430px}.jd45-cardcopy{padding:34px 34px 20px;position:relative;z-index:3}.jd45-cardcopy h3{font-size:28px;line-height:1.2;letter-spacing:-.6px;margin:12px 0}.jd45-cardcopy p{font-size:14px;line-height:1.8;color:#667085;max-width:500px;margin:0}.jd45-cardcopy a,.jd45-scene-copy a{display:inline-block;margin-top:18px;font-size:13px;color:#7d5d00;font-weight:750}.jd45-tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff1b4;color:#795b00;font-size:12px;font-weight:800}.jd45-shot{position:absolute;left:28px;right:28px;bottom:-8px;height:265px;border-radius:17px 17px 0 0;overflow:hidden;border:1px solid #e1e4e8;box-shadow:0 18px 44px rgba(16,24,40,.12);background:#fff}.jd45-shot img{width:100%;height:100%;object-fit:cover;object-position:top}.jd45-bento-main .jd45-shot{height:610px;left:34px;right:-95px;bottom:-54px;transform:rotate(-1.8deg)}.jd45-bento-main .jd45-shot.dark{background:#10151d;border-color:#222b35}.jd45-bento-main .jd45-shot img{object-fit:cover}.jd45-window-demo{position:absolute;left:40px;right:36px;bottom:28px;height:180px;border-radius:18px;background:#171d25;overflow:hidden;box-shadow:0 20px 48px rgba(16,24,40,.2)}.jd45-window-demo:before{content:"";position:absolute;inset:22px;background:linear-gradient(145deg,#dfe7f2,#cdd9e8);border-radius:12px}.jd45-window-demo .wd-a,.jd45-window-demo .wd-b{position:absolute;background:#fff;border-radius:9px;box-shadow:0 10px 25px rgba(0,0,0,.2)}.jd45-window-demo .wd-a{width:48%;height:56%;left:11%;top:23%}.jd45-window-demo .wd-b{width:34%;height:42%;right:12%;top:18%;opacity:.72}.jd45-window-demo span{position:absolute;left:28%;bottom:20%;padding:5px 8px;background:#ffbf12;border-radius:7px;font-size:12px;font-weight:800}.jd45-route{max-width:none;background:#0d1117;color:#fff;padding:110px max(24px,calc((100vw - 1192px)/2))}.jd45-route-grid{max-width:1192px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}.jd45-heading.light p{color:#a6afbd}.jd45-heading.light .jd45-eyebrow{color:#ffcf42}.jd45-route-points{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.jd45-route-points span{padding:8px 11px;border:1px solid #313a47;border-radius:999px;font-size:12px;color:#c6ceda;background:#141a22}.jd45-route-map{height:430px;position:relative;border:1px solid #252e39;border-radius:28px;background:radial-gradient(circle at center,rgba(255,191,18,.14),transparent 42%),linear-gradient(145deg,#141a22,#0d1117);overflow:hidden}.jd45-route-map:before{content:"";position:absolute;left:11%;right:11%;top:50%;height:1px;background:linear-gradient(90deg,#414b58,#ffbf12,#414b58)}.jd45-device{position:absolute;width:122px;height:142px;border:1px solid #303a46;background:#171e27;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:3}.jd45-device.a{left:34px;top:70px}.jd45-device.b{right:34px;top:70px}.jd45-device i{width:42px;height:42px;border-radius:13px;background:#252d38;display:grid;place-items:center;color:#ffca2e;font-style:normal;font-weight:850;margin-bottom:10px}.jd45-device b{font-size:13px}.jd45-device span{font-size:12px;color:#7f8b9b;margin-top:4px}.jd45-route-center{position:absolute;left:50%;top:124px;transform:translateX(-50%);width:130px;height:130px;border-radius:50%;background:#ffbf12;color:#11151b;display:grid;place-content:center;text-align:center;z-index:4;box-shadow:0 0 70px rgba(255,191,18,.22)}.jd45-route-center .pulse{position:absolute;inset:-20px;border:1px solid rgba(255,191,18,.25);border-radius:50%}.jd45-route-center strong{font-size:17px}.jd45-route-center span{font-size:12px;margin-top:4px}.jd45-path{position:absolute;padding:7px 10px;border-radius:8px;background:#191f28;border:1px solid #313a46;color:#b6bfcc;font-size:12px}.jd45-path.p1{left:26%;top:50px}.jd45-path.p2{right:23%;top:260px}.jd45-relay{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);width:190px;padding:12px 14px;border:1px solid #364150;background:#171d25;border-radius:13px;text-align:center}.jd45-relay small,.jd45-relay span{display:block;font-size:12px;color:#7e8a9b}.jd45-relay strong{display:block;color:#ffcb35;font-size:14px;margin:3px 0}.jd45-scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}.jd45-scene{min-height:540px;border-radius:26px;overflow:hidden;position:relative;border:1px solid #e4e7ec;background:#f7f8fa}.jd45-scene.personal{background:linear-gradient(160deg,#fff8dc,#f6f8fb)}.jd45-scene.creator{background:linear-gradient(160deg,#f1f4f8,#fff)}.jd45-scene.ops{background:linear-gradient(160deg,#171c23,#252c36);color:#fff;border-color:#242c36}.jd45-scene-copy{padding:30px;position:relative;z-index:3}.jd45-scene-copy>span{font-size:12px;font-weight:800;color:#9b7a00}.jd45-scene.ops .jd45-scene-copy>span,.jd45-scene.ops .jd45-scene-copy a{color:#ffcf42}.jd45-scene-copy h3{font-size:25px;line-height:1.2;margin:11px 0}.jd45-scene-copy p{font-size:13px;line-height:1.75;color:#667085;margin:0}.jd45-scene.ops .jd45-scene-copy p{color:#aeb7c4}.jd45-scene-art{position:absolute;left:24px;right:-90px;bottom:-32px;height:280px;border-radius:16px;background:#fff;overflow:hidden;border:1px solid rgba(208,213,221,.8);box-shadow:0 20px 50px rgba(16,24,40,.16);transform:rotate(-2deg)}.jd45-scene:nth-child(2) .jd45-scene-art{right:24px;left:-70px;transform:rotate(2deg)}.jd45-scene.ops .jd45-scene-art{border-color:#343d48;background:#11161d}.jd45-scene-art img{width:100%;height:100%;object-fit:cover;object-position:top}.jd45-security{background:linear-gradient(145deg,#fff8da,#fff);border:1px solid #f0df9a;border-radius:30px;padding:68px;margin-top:30px;margin-bottom:30px}.jd45-security-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:65px;align-items:center}.jd45-security-card{display:grid;grid-template-columns:86px 1fr;gap:28px;align-items:start}.jd45-lock{width:86px;height:86px;border-radius:24px;background:#11161d;display:grid;place-items:center;box-shadow:0 18px 40px rgba(17,22,29,.18)}.jd45-lock span{width:36px;height:29px;border:3px solid #ffbf12;border-radius:8px;position:relative}.jd45-lock span:before{content:"";position:absolute;width:20px;height:17px;border:3px solid #ffbf12;border-bottom:0;border-radius:13px 13px 0 0;left:5px;top:-19px}.jd45-security-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.jd45-security-list div{padding:18px;border:1px solid rgba(216,193,103,.55);background:rgba(255,255,255,.68);border-radius:15px}.jd45-security-list b{display:block;font-size:14px}.jd45-security-list span{display:block;font-size:12px;line-height:1.6;color:#7a8493;margin-top:6px}.jd45-pricing{padding-top:80px}.jd45-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:45px}.jd45-plans article{position:relative;border:1px solid #e4e7ec;border-radius:22px;padding:30px;background:#fff;min-height:390px;display:flex;flex-direction:column}.jd45-plans article.featured{border-color:#eab800;background:linear-gradient(160deg,#fffdf5,#fff8d9);box-shadow:0 24px 55px rgba(224,173,0,.11);transform:translateY(-10px)}.jd45-recommend{position:absolute;right:20px;top:18px;padding:5px 8px;background:#11161d;color:#fff;border-radius:999px;font-size:12px;font-weight:800}.jd45-planlabel{font-size:12px;color:#8b6d00;font-weight:800}.jd45-plans h3{font-size:25px;margin:12px 0}.jd45-plans p{color:#667085;font-size:13px;line-height:1.7;margin:0}.jd45-plans ul{padding-left:18px;margin:24px 0;color:#475467;font-size:12px;line-height:2}.jd45-plans .wide{width:100%;margin-top:auto}.jd45-compare{max-width:none;background:#f6f7f9;padding:92px max(24px,calc((100vw - 1192px)/2))}.jd45-compare-inner{max-width:1192px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.jd45-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.jd45-compare-grid div{background:#fff;border:1px solid #e4e7ec;border-radius:16px;padding:20px}.jd45-compare-grid b{display:block;font-size:16px}.jd45-compare-grid span{display:block;color:#667085;font-size:12px;line-height:1.65;margin-top:7px}.jd45-faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.jd45-faq-list details{border-top:1px solid #e4e7ec;padding:20px 0}.jd45-faq-list details:last-child{border-bottom:1px solid #e4e7ec}.jd45-faq-list summary{list-style:none;font-size:16px;font-weight:750;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.jd45-faq-list summary::-webkit-details-marker{display:none}.jd45-faq-list summary i{width:20px;height:20px;position:relative}.jd45-faq-list summary i:before,.jd45-faq-list summary i:after{content:"";position:absolute;background:#98a2b3;left:4px;right:4px;top:9px;height:1px}.jd45-faq-list summary i:after{transform:rotate(90deg)}.jd45-faq-list details[open] summary i:after{display:none}.jd45-faq-list p{color:#667085;font-size:13px;line-height:1.8;margin:14px 40px 0 0}.jd45-finalcta{background:linear-gradient(145deg,#10151c,#1e2631);color:#fff;position:relative;overflow:hidden}.jd45-finalcta:after{content:"";position:absolute;width:520px;height:520px;right:-110px;top:-250px;border-radius:50%;background:radial-gradient(circle,rgba(255,191,18,.34),transparent 66%)}.jd45-final-inner{max-width:1192px;margin:auto;padding:80px 24px;display:flex;align-items:center;justify-content:space-between;gap:40px;position:relative;z-index:2}.jd45-final-inner span{color:#ffcf42;font-size:12px;font-weight:800}.jd45-final-inner h2{font-size:42px;line-height:1.12;margin:12px 0}.jd45-final-inner p{color:#aeb7c5;margin:0}.jd45-final-actions{display:flex;gap:10px;flex-shrink:0}.jd45-dark-outline.lightbg{background:rgba(255,255,255,.08)}.jd45-footer{background:#fff}.jd45-footer-grid{max-width:1192px;margin:auto;padding:58px 24px 34px;display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:28px}.jd45-footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:10px}.jd45-footer-grid b{font-size:12px;margin-bottom:4px}.jd45-footer-grid a,.jd45-footer-grid p{font-size:12px;color:#7b8492;text-decoration:none;line-height:1.65}.jd45-footer-brand .jd45-brand{display:flex}.jd45-footer-brand p{margin-top:16px}.jd45-footer-bottom{max-width:1192px;margin:auto;border-top:1px solid #eef0f2;padding:18px 24px 30px;display:flex;justify-content:space-between;color:#98a2b3;font-size:12px}
@media(max-width:1100px){.jd45-navlinks{display:none}.jd45-hero-grid{grid-template-columns:1fr;gap:48px}.jd45-hero-copy{max-width:760px}.jd45-hero-visual{height:480px}.jd45-proofbar{grid-template-columns:1fr 1fr;gap:20px}.jd45-proofbar div:nth-child(3){border-left:0;padding-left:0}.jd45-route-grid,.jd45-security-grid,.jd45-compare-inner,.jd45-faq{grid-template-columns:1fr}.jd45-scenes{grid-template-columns:1fr 1fr}.jd45-scene.ops{grid-column:span 2}.jd45-footer-grid{grid-template-columns:1.3fr repeat(2,1fr)}.jd45-footer-grid>div:nth-child(n+4){margin-top:10px}}
@media(max-width:760px){.jd45-header{height:66px}.jd45-nav{padding:0 16px}.jd45-brand img{width:32px;height:32px}.jd45-brand span{font-size:14px}.jd45-navactions .jd45-linkbtn,.jd45-navactions .jd45-outline{display:none}.jd45-navactions .jd45-primary{height:38px;padding:0 11px;font-size:12px}.jd45-hero{min-height:auto}.jd45-hero-grid{padding:60px 18px 54px}.jd45-hero h1{font-size:48px;letter-spacing:-2px}.jd45-hero-copy>p{font-size:15px}.jd45-hero-actions{flex-direction:column;align-items:stretch}.jd45-hero-actions button{width:100%}.jd45-hero-meta{gap:12px}.jd45-hero-visual{height:335px}.jd45-laptop-frame{width:100%;top:30px}.jd45-session-card{width:46%;left:-2px;bottom:8px}.jd45-route-float{left:auto;right:0}.jd45-status-float{display:none}.jd45-proofbar{grid-template-columns:1fr 1fr;padding:22px 18px}.jd45-proofbar div{padding:0 8px;border-left:0}.jd45-proofbar b{font-size:14px}.jd45-proofbar span{font-size:12px}.jd45-section{padding:76px 18px}.jd45-heading h2,.jd45-security h2,.jd45-compare h2{font-size:36px}.jd45-heading p{font-size:14px}.jd45-bento{grid-template-columns:1fr}.jd45-bento-main{grid-row:auto;min-height:620px}.jd45-bento-main .jd45-shot{height:370px;right:-55px}.jd45-bento-card{min-height:390px}.jd45-route{padding:76px 18px}.jd45-route-grid{gap:42px}.jd45-route-map{height:390px}.jd45-device{width:96px;height:120px}.jd45-device.a{left:14px}.jd45-device.b{right:14px}.jd45-route-center{width:100px;height:100px;top:135px}.jd45-path.p1{left:12%;top:32px}.jd45-path.p2{right:12%;top:250px}.jd45-scenes{grid-template-columns:1fr}.jd45-scene.ops{grid-column:auto}.jd45-security{margin:10px 18px;padding:40px 24px}.jd45-security-card{grid-template-columns:1fr}.jd45-security-list{grid-template-columns:1fr}.jd45-plans{grid-template-columns:1fr}.jd45-plans article.featured{transform:none}.jd45-compare{padding:72px 18px}.jd45-compare-grid{grid-template-columns:1fr}.jd45-faq{gap:34px}.jd45-final-inner{padding:64px 18px;display:block}.jd45-final-inner h2{font-size:34px}.jd45-final-actions{margin-top:28px;flex-direction:column}.jd45-footer-grid{padding:48px 18px 28px;grid-template-columns:1fr 1fr}.jd45-footer-brand{grid-column:span 2}.jd45-footer-bottom{padding:18px;display:block;line-height:2}.jd45-footer-bottom span{display:block}}
@media(max-width:420px){.jd45-hero h1{font-size:42px}.jd45-hero-visual{height:300px}.jd45-session-card{display:none}.jd45-route-float{top:-5px}.jd45-proofbar{grid-template-columns:1fr 1fr}.jd45-cardcopy{padding:26px 24px 18px}.jd45-cardcopy h3{font-size:24px}.jd45-bento-main{min-height:560px}.jd45-bento-main .jd45-shot{height:330px;left:24px}.jd45-bento-card{min-height:365px}.jd45-scene{min-height:500px}.jd45-heading h2,.jd45-security h2,.jd45-compare h2{font-size:32px}.jd45-security{margin:0 12px}.jd45-route-map{transform:scale(.96);transform-origin:center}.jd45-final-inner h2{font-size:31px}}


/* V4.9 website navigation/download/image presentation fixes */
.jd45-header{position:sticky;top:0;z-index:100;backdrop-filter:saturate(1.25) blur(14px)}
.jd45-nav{position:relative}
.jd45-primary,.jd45-outline,.jd45-linkbtn,.jd45-dark-outline{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;white-space:nowrap}
.jd45-navlinks a{position:relative;padding:28px 0 26px}
.jd45-navlinks a:hover{color:#11151b}
.jd45-navlinks a:hover:after{content:"";position:absolute;left:0;right:0;bottom:18px;height:2px;border-radius:2px;background:var(--yellow)}
.jd45-mobile-menu{display:none;width:42px;height:42px;border:1px solid #e2e6eb;background:#fff;border-radius:10px;padding:9px;align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer}
.jd45-mobile-menu span{display:block;width:18px;height:2px;background:#202733;border-radius:2px;transition:.18s}
.jd45-mobile-only{display:none}
.jd45-shot,.jd45-scene-art{background:#f7f8fa}
.jd45-shot img,.jd45-scene-art img{object-fit:contain!important;object-position:center top;background:#f7f8fa}
.jd45-shot{height:auto;aspect-ratio:1.46}
.jd45-bento-main{min-height:750px}
.jd45-bento-main .jd45-shot{height:auto;aspect-ratio:1.5;left:34px;right:34px;bottom:28px;transform:rotate(-1deg)}
.jd45-scene-art{height:auto;aspect-ratio:1.5;bottom:26px}
.jd45-section[id],.jd45-hero[id]{scroll-margin-top:92px}
@media(max-width:1100px){
  .jd45-mobile-menu{display:inline-flex;order:2;margin-left:auto}
  .jd45-navactions{order:3}
  .jd45-navlinks{display:none;position:absolute;top:68px;left:24px;right:24px;margin:0;padding:10px;background:#fff;border:1px solid #e7e9ed;border-radius:16px;box-shadow:0 18px 50px rgba(16,24,40,.14);flex-direction:column;align-items:stretch;gap:2px;z-index:120}
  .jd45-navlinks.jd45-mobile-open{display:flex}
  .jd45-navlinks a{padding:12px 14px;border-radius:10px}
  .jd45-navlinks a:hover{background:#fff8dc}
  .jd45-navlinks a:hover:after{display:none}
  .jd45-mobile-only{display:block}
}
@media(max-width:760px){
  .jd45-navlinks{top:58px;left:12px;right:12px}
  .jd45-mobile-menu{width:38px;height:38px}
  .jd45-navactions .jd45-primary{display:none}
  .jd45-bento-main{min-height:570px}
  .jd45-bento-main .jd45-shot{left:24px;right:24px;bottom:24px;height:auto;aspect-ratio:1.46}
  .jd45-shot{height:auto;aspect-ratio:1.46}
  .jd45-scene-art{left:20px!important;right:20px!important;bottom:22px;transform:none!important;height:auto;aspect-ratio:1.5}
}

/* V5.0 sticky header / horizontal clipping: clip 不创建滚动容器，避免破坏 position:sticky */
html,body{overflow-x:clip}


/* ==== merged: demo-enhancements.css ==== */
/* JDesk HTML 演示包统一增强层 V4.8
   1) 品牌锁定为用户确认的完整/紧凑两种样式
   2) 所有页面正文可见文字不低于 12px
   3) 静态演示点击反馈与焦点态 */
small{font-size:12px!important}
button,[role="button"],a,.btn,.nav-item,.settings-nav>div,.switch,.tabs>*{touch-action:manipulation}
button:focus-visible,[role="button"]:focus-visible,a:focus-visible,.btn:focus-visible,.nav-item:focus-visible,.settings-nav>div:focus-visible,.switch:focus-visible,.tabs>*:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #f7b500!important;outline-offset:2px}

/* 图2：紧凑品牌版 */
.jdesk-brand-compact,.jd45-brand,.admin-brand-v314,.auth-brand-v328,.brand-row{display:flex;align-items:center;gap:10px;text-decoration:none}
.jdesk-brand-compact img,.jd45-brand>img,.admin-brand-v314>img,.auth-brand-v328>img,.brand-row>img{width:34px;height:34px;flex:0 0 34px;object-fit:cover;border-radius:9px;box-shadow:0 6px 16px rgba(247,181,0,.18)}
.jdesk-brand-copy{display:flex!important;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;line-height:1.1!important}
.jdesk-brand-copy strong{display:block;font-size:16px;line-height:1.15;font-weight:800;letter-spacing:0;color:inherit}
.jdesk-brand-copy small{display:block!important;margin-top:3px!important;font-size:12px!important;line-height:1!important;letter-spacing:1.1px!important;color:#8f99aa!important;font-weight:700!important;white-space:nowrap}

/* 图1：完整品牌版 */
.jdesk-brand-full{display:flex;align-items:center;gap:12px}
.jdesk-brand-full>img{width:38px;height:38px;flex:0 0 38px;object-fit:cover;border-radius:10px;box-shadow:0 8px 20px rgba(247,181,0,.22)}
.jdesk-brand-full .jdesk-brand-copy strong{font-size:17px}
.jdesk-brand-full .jdesk-brand-copy small{letter-spacing:0!important;color:#718096!important;font-weight:500!important}

/* 官网新版品牌修正：不再使用 span 内直接塞 small 的旧结构 */
.jd45-brand{color:#11151b;font-weight:800;white-space:nowrap}
.jd45-brand .jdesk-brand-copy{font-size:inherit!important}
.jd45-brand .jdesk-brand-copy strong{font-size:17px}
.jd45-footer-brand .jd45-brand>img{width:36px;height:36px;flex-basis:36px}
.jd45-footer-brand .jdesk-brand-copy small{letter-spacing:0!important;color:#718096!important;font-weight:500!important}

/* 新版后台深色侧栏 */
.admin-side-v314 .admin-brand-v314 .jdesk-brand-copy strong{color:#fff}
.admin-side-v314 .admin-brand-v314 .jdesk-brand-copy small{color:#8c98aa!important}

/* 登录品牌 */
.auth-brand-v328 .jdesk-brand-copy strong,.brand-row .jdesk-brand-copy strong{font-size:16px}

/* 用户中心原“用户中心”品牌位改为产品品牌，区域名称放副标 */
.jdesk-brand-copy small[data-context]{letter-spacing:0!important}

/* 演示交互 V4.8：只保留真实导航、真实状态切换和可验证本地动作；移除全局黑色 Toast。 */
html{scroll-behavior:smooth}
.jdesk-demo-clicked{box-shadow:0 0 0 2px rgba(247,181,0,.28)!important}
.jdesk-demo-success{box-shadow:0 0 0 2px rgba(18,183,106,.22)!important}
.jdesk-demo-active{box-shadow:0 0 0 2px rgba(247,181,0,.30)!important}
.jdesk-demo-unavailable{cursor:not-allowed!important;opacity:.56!important;filter:saturate(.75)}
a.jdesk-demo-unavailable{pointer-events:none}
.switch{cursor:pointer;transition:.18s ease}
.switch.jdesk-off{background:#d0d5dd!important}
.switch.jdesk-off:after{margin-left:0!important}
.tabs>* ,.settings-nav>div,.nav-item{cursor:pointer}
.jdesk-demo-filter-panel{position:absolute;z-index:2147483000;width:288px;padding:14px;border:1px solid #e2e7ef;border-radius:12px;background:#fff;box-shadow:0 18px 48px rgba(16,24,40,.16);font:12px/1.5 "Microsoft YaHei UI","Segoe UI",Arial,sans-serif}
.jdesk-demo-filter-panel label{display:block;margin:0 0 10px;color:#475467;font-weight:700}
.jdesk-demo-filter-panel input,.jdesk-demo-filter-panel select{display:block;width:100%;height:36px;margin-top:5px;padding:0 10px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;font-size:12px;line-height:1.4;font-family:inherit;color:#101828}
.jdesk-demo-filter-panel button{width:100%;height:36px;border:0;border-radius:8px;background:#f7b500;color:#111;font-weight:800;cursor:pointer}


.jdesk-demo-modal{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:20px;background:rgba(16,24,40,.42);backdrop-filter:blur(2px)}
.jdesk-demo-modal-card{width:min(460px,calc(100vw - 32px));border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(16,24,40,.28);overflow:hidden;transform:translateY(0);transition:.18s ease}
.jdesk-demo-modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #eaecf0;font-size:15px;color:#101828}
.jdesk-demo-modal-close{width:32px;height:32px;border:0;border-radius:8px;background:#f2f4f7;color:#475467;font-size:20px;line-height:1;cursor:pointer}
.jdesk-demo-modal-body{padding:18px;color:#475467;font-size:12px;line-height:1.7}
.jdesk-demo-modal-body label{display:block;margin-bottom:12px;font-weight:700}
.jdesk-demo-modal-body input,.jdesk-demo-modal-body select{display:block;width:100%;height:38px;margin-top:6px;padding:0 10px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;font-size:12px;font-family:inherit}
.jdesk-demo-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 18px}
.jdesk-demo-modal-actions button{height:36px;padding:0 16px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;font-size:12px;font-weight:700;cursor:pointer}
.jdesk-demo-modal-actions .jdesk-demo-modal-confirm{border-color:#f7b500;background:#f7b500;color:#111}
.jdesk-demo-confirmed{box-shadow:0 0 0 3px rgba(18,183,106,.22),0 24px 70px rgba(16,24,40,.28)}
@media(max-width:760px){
  .jd45-brand>img{width:32px;height:32px;flex-basis:32px}
  .jd45-brand .jdesk-brand-copy strong{font-size:14px}
  .jdesk-brand-copy small{font-size:12px!important}
}
@media(max-width:780px){
  .user-nav.jdesk-demo-mobile-open{display:block!important;position:fixed;inset:0 auto 0 0;width:min(86vw,300px);z-index:2147483000;background:#fff;box-shadow:18px 0 50px rgba(16,24,40,.22);overflow:auto;padding:18px 12px}
}


/* Web/管理端响应式基础；Windows 主客户端不进入手机布局。 */
html,body{max-width:100%!important;min-width:0!important}
body{overflow-x:hidden!important;overflow-y:auto!important}
.page{width:100%!important;max-width:100%!important;height:auto!important;min-height:100vh!important;position:relative!important;overflow:visible!important}
img,svg,video,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}

.device-grid,.kpi-grid,.detail-grid,.content-grid-2{min-width:0}
.table{max-width:100%}

/* 旧后台：统一成与新版后台相同的 224px / 58px 管理框架。 */
.admin-shell{position:relative!important;inset:auto!important;display:grid!important;grid-template-columns:240px minmax(0,1fr)!important;grid-template-rows:58px minmax(calc(100vh - 58px),auto)!important;min-height:100vh!important;background:#F6F7F9!important}
.admin-side{position:sticky!important;left:auto!important;top:0!important;bottom:auto!important;grid-column:1!important;grid-row:1/3!important;width:240px!important;height:100vh!important;background:#111827!important;color:#D0D5DD!important;padding:18px 14px!important;overflow-y:auto!important;z-index:30!important}
.admin-top{position:sticky!important;left:auto!important;right:auto!important;top:0!important;grid-column:2!important;grid-row:1!important;height:58px!important;padding:0 22px!important;z-index:25!important}
.admin-main{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;grid-column:2!important;grid-row:2!important;padding:22px 24px!important;min-width:0!important;min-height:calc(100vh - 58px)!important;overflow:visible!important}
.admin-side>.brand{padding:4px 8px 14px!important}.admin-side>.brand .logo{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:9px!important}
.admin-side .nav-item{height:40px!important;border-radius:8px!important;color:#C9D1DC!important;margin-bottom:4px!important;padding:0 11px!important}
.admin-side .nav-item.active{background:#253041!important;color:#fff!important}.admin-side .admin-nav-title{color:#667085!important}
.admin-side .admin-user{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;margin-top:18px!important}

/* 新版后台在平板/手机上也不固定左栏。 */
.admin-main-v314,.admin-body-v314{min-width:0!important}
.session-table,.node-table,.table-wrap,.overflow-table{max-width:100%;overflow-x:auto}

@media(max-width:1100px){
  .device-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .content-grid-2,.detail-grid{grid-template-columns:1fr!important}
  .admin-main{padding:18px!important}.admin-body-v314{padding:18px!important}
}

@media(max-width:860px){
  .device-grid,.kpi-grid{grid-template-columns:1fr!important}.form-row{grid-template-columns:1fr!important;gap:8px!important}
  .table{display:block!important;width:100%!important;overflow-x:auto!important;white-space:nowrap!important}
  .tabs{overflow-x:auto!important;gap:16px!important}.tab{white-space:nowrap!important;flex:0 0 auto!important}
  .remote-canvas{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;min-height:640px!important}
  .remote-screen{left:12px!important;right:12px!important}.remote-toolbar{overflow-x:auto!important}.remote-toolbar>*{flex:0 0 auto!important}

  .admin-shell{display:block!important;min-height:100vh!important}
  .admin-side{position:relative!important;width:100%!important;height:auto!important;padding:10px 12px!important;overflow:visible!important}
  .admin-side>.brand{padding:4px 6px 10px!important}.admin-side>div:nth-of-type(2){display:flex!important;gap:6px!important;overflow-x:auto!important;padding-bottom:4px!important}
  .admin-side .admin-nav-title{display:none!important}.admin-side .nav-item{flex:0 0 auto!important;white-space:nowrap!important;margin:0!important}.admin-side .admin-user{display:none!important}
  .admin-top{position:sticky!important;top:0!important;width:100%!important;height:auto!important;min-height:52px!important;padding:10px 14px!important;flex-wrap:wrap!important;gap:8px!important}
  .admin-main{padding:16px 14px 28px!important;min-height:auto!important}.admin-title-row,.admin-header,.admin-top-actions{flex-wrap:wrap!important;gap:10px!important}

  .admin-shell-v314{display:block!important;min-height:100vh!important}
  .admin-side-v314{position:relative!important;padding:10px 12px!important;display:block!important}
  .admin-brand-v314{padding:4px 6px 10px!important}.admin-menu-v314{flex-direction:row!important;gap:6px!important;overflow-x:auto!important;padding-bottom:4px!important}.admin-menu-v314 a{flex:0 0 auto!important;white-space:nowrap!important;min-height:38px!important}.admin-foot-v314{display:none!important}
  .admin-top-v314{position:sticky!important;top:0!important;height:auto!important;min-height:52px!important;padding:10px 14px!important;gap:8px!important;flex-wrap:wrap!important;z-index:25!important}.admin-top-v314 span{max-width:100%!important}
  .admin-body-v314{padding:16px 14px 28px!important}.admin-body-v314 .page-head,.toolbar-row{align-items:flex-start!important;flex-wrap:wrap!important;gap:10px!important}
  .tele-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.bottom,.split,.support-grid,.policy-grid{grid-template-columns:1fr!important}
  .session-table{overflow-x:auto!important}.session-table .shead,.session-table .srow{min-width:920px!important}
}

@media(max-width:600px){
  .client-titlebar .brand-name,.admin-side .brand-name{font-size:15px!important}.client-titlebar .brand-sub,.admin-side .brand-sub{font-size:12px!important}
  .client-main{padding:14px 12px 24px!important}.client-title{font-size:20px!important}
  .device-card{padding:14px!important}.device-top,.device-bottom{align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}.device-bottom>div:last-child{margin-left:auto!important}
  .admin-main,.admin-body-v314{padding:14px 12px 24px!important}.admin-top .breadcrumb{max-width:100%!important;white-space:normal!important}
  .kpi-grid,.tele-kpis,.summary-strip,.info-grid{grid-template-columns:1fr!important}
  .admin-title{font-size:20px!important}.admin-title-row{align-items:flex-start!important}
  .auth-card{width:min(100% - 24px,420px)!important;padding:20px 16px!important}
  .modal{width:calc(100vw - 24px)!important;max-width:100%!important}
}

/* V4.8.1：新版后台移动端工具栏必须换行，不能把正文 viewport 撑宽。 */
@media(max-width:860px){
  .admin-body-v314 .toolbar-row>.row{width:100%!important;min-width:0!important;flex-wrap:wrap!important}
  .admin-body-v314 .toolbar-row>.row>.search{flex:1 1 180px!important;min-width:0!important;width:auto!important}
  .admin-body-v314 .toolbar-row>.row>.btn{flex:0 0 auto!important}
  .admin-body-v314 .page-head>.row{flex-wrap:wrap!important}
}
@media(max-width:480px){
  .admin-body-v314 .toolbar-row>.row>.search{flex-basis:100%!important;width:100%!important}
}
@media(max-width:600px){
  .admin-body-v314 .lat{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .admin-body-v314 .lat>div{min-width:0!important}
  .admin-body-v314 .card2{min-width:0!important;max-width:100%!important}
}

/* V4.8.2 全页面响应式收口 */
.admin-page{width:100%!important;height:auto!important;min-height:100vh!important;max-width:100%!important;grid-template-columns:240px minmax(0,1fr)!important}
.admin-page>.admin-main{grid-column:auto!important;grid-row:auto!important;min-width:0!important;width:auto!important;max-width:100%!important;padding:0!important}
.admin-page .admin-top{left:auto!important;right:auto!important;width:100%!important}
.admin-page .admin-body{max-width:100%!important;min-width:0!important}

/* 共享 app 壳（更新/安全/告警等用户页） */
.app{max-width:100%!important;min-width:0!important}.app>.main{min-width:0!important;max-width:100%!important}

@media(max-width:1100px){
  .feature-grid,.limit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .wizard,.update-grid{grid-template-columns:1fr!important}
}

@media(max-width:860px){
  /* 支付后台 */
  .admin-page{display:block!important;min-height:100vh!important}
  .admin-page>.admin-side{position:relative!important;width:100%!important;height:auto!important;max-width:100%!important;overflow-x:hidden!important}
  .admin-page>.admin-main{width:100%!important;max-width:100%!important}
  .admin-page .admin-body{padding:16px 14px 28px!important}
  .admin-page .metric-grid,.admin-page .grid{grid-template-columns:1fr 1fr!important}
  .admin-page .table{display:block!important;overflow-x:auto!important;max-width:100%!important}
  .admin-page .thead,.admin-page .trow{min-width:760px!important}
  .admin-page .actions,.admin-page .row{flex-wrap:wrap!important}

  /* 用户中心类 app */
  .app{height:auto!important;min-height:100vh!important;display:block!important}
  .app>.sidebar{width:100%!important;height:auto!important;max-width:100%!important;padding:10px 12px!important;display:block!important;border-right:0!important;border-bottom:1px solid #E7E9ED!important;overflow-x:hidden!important}
  .app>.sidebar>.brand{padding:4px 6px 10px!important}.app>.sidebar>.nav{flex-direction:row!important;overflow-x:auto!important;gap:6px!important;padding-bottom:4px!important}.app>.sidebar>.nav a{flex:0 0 auto!important;white-space:nowrap!important}.app>.sidebar>.side-bottom{display:none!important}
  .app>.main{width:100%!important;max-width:100%!important}.app .topbar{height:auto!important;min-height:54px!important;padding:10px 14px!important;flex-wrap:wrap!important;gap:8px!important}.app .content{padding:16px 14px 28px!important;max-width:100%!important}
  .app .page-head{align-items:flex-start!important;flex-wrap:wrap!important;gap:10px!important}.app .page-head>.row{flex-wrap:wrap!important}
  .app .two,.app .panel-layout,.app .file-layout,.app .settings,.app .update-grid{grid-template-columns:1fr!important}.app .metric-strip{flex-wrap:wrap!important;gap:14px!important}.app .setting-row{gap:14px!important;flex-wrap:wrap!important}.app .search{width:min(100%,260px)!important}
  .app .list,.app .table,.app .node-table{max-width:100%!important;overflow-x:auto!important}.app .list-head,.app .device-row,.app .node-head,.app .node-row{min-width:680px!important}

  /* 老客户端/管理员登录页 + 新管理员登录页 */
  .admin-login{position:relative!important;inset:auto!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:100vh!important;display:block!important;overflow:hidden!important}
  .admin-login .login-art,.admin-login>.visual{width:100%!important;max-width:100%!important;padding:28px 20px!important;min-height:auto!important}
  .admin-login .login-panel,.admin-login>.panel{width:100%!important;max-width:100%!important;padding:24px 16px!important;min-height:520px!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .admin-login .login-card{width:min(420px,100%)!important;max-width:100%!important;padding:24px 18px!important}
  .admin-login .shield{position:relative!important;right:auto!important;bottom:auto!important;width:min(330px,100%)!important;margin:24px 0 0!important}
  .admin-login .hero{margin-top:28px!important;max-width:100%!important}

  /* 老后台内容：表格局部滚动、头部换行，外层不撑 viewport */
  .admin-shell .admin-side{max-width:100vw!important;overflow-x:hidden!important}.admin-shell .admin-side>div:nth-of-type(2){width:100%!important;max-width:100%!important;overflow-x:auto!important}
  .admin-shell .admin-main{max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .admin-shell .filterbar,.admin-shell .admin-title-row,.admin-shell .admin-top-actions,.admin-shell .row,.admin-shell .between{flex-wrap:wrap!important}
  .admin-shell .table,.admin-shell .list,.admin-shell .node-table{display:block!important;max-width:100%!important;overflow-x:auto!important}
  .admin-shell .table>*,.admin-shell .list-head,.admin-shell .device-row,.admin-shell .node-head,.admin-shell .node-row{min-width:680px!important}
  .admin-shell .content-grid-2,.admin-shell .panel-layout,.admin-shell .detail-grid{grid-template-columns:1fr!important}

  /* 新后台专项 */
  .feature-grid,.limit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .source-row{grid-template-columns:150px 70px minmax(180px,1fr) 88px!important;min-width:620px!important}.source-list{max-width:100%!important;overflow-x:auto!important}
  .form-grid,.form2{grid-template-columns:1fr!important}.wizard,.policy{grid-template-columns:1fr!important}.osgrid{grid-template-columns:1fr 1fr!important}.bands{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .node-table{max-width:100%!important;overflow-x:auto!important}.node-table .nh,.node-table .nr{min-width:1050px!important}
}

@media(max-width:600px){
  .admin-page .metric-grid,.admin-page .grid{grid-template-columns:1fr!important}
  .feature-grid,.limit-grid{grid-template-columns:1fr!important}.osgrid{grid-template-columns:1fr!important}.bands{grid-template-columns:1fr 1fr!important}
  .source-row{min-width:560px!important}
  .app .pkg{grid-template-columns:1fr!important}.app .meta{grid-template-columns:1fr!important}
  .admin-login .login-art,.admin-login>.visual{padding:22px 16px!important}.admin-login .login-panel,.admin-login>.panel{padding:18px 12px!important;min-height:480px!important}.admin-login .login-card{padding:20px 14px!important}
  .admin-login>.visual .hero p{font-size:14px!important}
}

/* V4.8.3 剩余窄屏收口 */
@media(max-width:1100px){
  .admin-body-v314 .split{grid-template-columns:1fr!important}
  .admin-body-v314 .split>*{min-width:0!important;max-width:100%!important}
  .admin-body-v314 .source-list{min-width:0!important;width:100%!important;max-width:100%!important;overflow-x:auto!important}
}
@media(max-width:860px){
  .ent-grid{grid-template-columns:1fr!important}.plan-side{max-width:100%!important}
  .admin-body-v314 .card{min-width:0!important;max-width:100%!important}
  .admin-body-v314 .feature-grid,.admin-body-v314 .limit-grid{min-width:0!important;width:100%!important}
  .admin-body-v314 .feat,.admin-body-v314 .limit{min-width:0!important;max-width:100%!important}
  .node-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  body[data-jdesk-scope="client"] .client-login-brand-wrap{position:relative!important;left:auto!important;top:auto!important;padding:22px 18px 0!important}
  body[data-jdesk-scope="client"] .client-login-card{position:relative!important;left:auto!important;top:auto!important;width:min(430px,calc(100% - 24px))!important;max-width:100%!important;margin:34px auto 20px!important;padding:28px 24px!important}
  body[data-jdesk-scope="client"] .client-login-foot{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;width:calc(100% - 24px)!important;margin:18px auto 30px!important;text-align:center!important}
}
@media(max-width:600px){
  .node-kpis{grid-template-columns:1fr!important}
  body[data-jdesk-scope="client"] .client-login-card{margin-top:24px!important;padding:24px 18px!important}
}

/* V4.8 client help: focused search target */
.jdesk-demo-focus{outline:2px solid #F7B500!important;outline-offset:2px;background:#fffdf5!important}

/* V4.9 图片与品牌资源显示修复：品牌源图不是正方形，统一用 cover 裁切，禁止 fill 拉伸。 */
img[src*="jiandian-logo-square"],img[data-original-src*="jiandian-logo-square"]{object-fit:cover!important;object-position:center!important}
/* 营销/产品截图必须完整展示，不允许 cover 截掉界面信息。 */
body[data-jdesk-scope="website"] img[src*="screenshots/"],body[data-jdesk-scope="website"] img[data-original-src*="screenshots/"],body[data-jdesk-scope="website"] img[src*="marketing/"],body[data-jdesk-scope="website"] img[data-original-src*="marketing/"]{object-fit:contain!important;object-position:center!important}

/* V4.9 品牌图像收口：旧支付 Golden 把内嵌 Logo 强行 fill 成正方形会造成约 20% 拉伸。 */
body[data-jdesk-scope="user"] .brand img,
body[data-jdesk-scope="admin"] .brand img,
body[data-jdesk-scope="user"] .qrbrand,
body[data-jdesk-scope="admin"] .qrbrand {
  object-fit: cover !important;
  object-position: center !important;
}
body[data-jdesk-scope="admin"] .admin-brand img {
  object-fit: cover !important;
  object-position: center !important;
}

/* V5.0 website document scroll: keep sticky header attached to viewport */
html{overflow-x:clip!important;overflow-y:visible!important}
body[data-jdesk-scope="website"]{overflow-x:clip!important;overflow-y:visible!important}
body[data-jdesk-scope="website"] .jd45-site{overflow:visible!important}


/* V5.0 payment pages: genuine responsive layout */
body.payment-demo .brand img,
body.payment-demo .qrbrand{object-fit:cover!important;object-position:center!important}
body.payment-demo .shellwrap{min-height:100%;display:flex;flex-direction:column}
body.payment-demo .main{flex:1;min-width:0}
body.payment-demo .footer{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;margin-top:auto;padding:20px 42px 26px;gap:16px;flex-wrap:wrap}
@media(max-width:900px){
  body.payment-demo .page{padding:22px!important}
  body.payment-demo .shell{height:auto!important;min-height:calc(100vh - 44px)!important;border-radius:18px!important;overflow:visible!important}
  body.payment-demo .nav{height:auto!important;min-height:68px!important;padding:12px 20px!important;gap:12px!important;flex-wrap:wrap!important}
  body.payment-demo .nav-right{margin-left:auto!important;gap:10px!important;flex-wrap:wrap!important;justify-content:flex-end!important}
  body.payment-demo .main{padding:28px 24px!important}
  body.payment-demo .head{align-items:flex-start!important;gap:16px!important;flex-wrap:wrap!important}
  body.payment-demo .grid{grid-template-columns:1fr!important}
  body.payment-demo .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.payment-demo .table{overflow-x:auto!important}
  body.payment-demo .thead,body.payment-demo .trow{min-width:720px!important}
  body.payment-demo .footer{padding:20px 24px 26px!important}
}
@media(max-width:560px){
  body.payment-demo{background:#f4f6f8!important}
  body.payment-demo .page{padding:10px!important}
  body.payment-demo .shell{min-height:calc(100vh - 20px)!important;border-radius:16px!important}
  body.payment-demo .nav{padding:12px 14px!important;align-items:center!important}
  body.payment-demo .brand{gap:8px!important;font-size:14px!important;min-width:0!important}
  body.payment-demo .brand img{width:32px!important;height:32px!important;flex:0 0 32px!important}
  body.payment-demo .nav-right>span:not(.badge){display:none!important}
  body.payment-demo .nav-right{font-size:12px!important;max-width:46%!important}
  body.payment-demo .main{padding:22px 16px!important}
  body.payment-demo .head h1{font-size:26px!important;line-height:1.2!important}
  body.payment-demo .head>.badge{max-width:100%!important;white-space:normal!important;line-height:1.45!important}
  body.payment-demo .content{margin-top:20px!important}
  body.payment-demo .card{padding:18px!important;border-radius:16px!important;min-width:0!important}
  body.payment-demo .line{align-items:flex-start!important;flex-wrap:wrap!important;gap:6px 14px!important;padding:10px 0!important;min-height:0!important}
  body.payment-demo .line>span:first-child{flex:0 0 72px!important}
  body.payment-demo .line>.muted,body.payment-demo .line>b{min-width:0!important;overflow-wrap:anywhere!important;text-align:right!important;flex:1 1 140px!important}
  body.payment-demo .line>.amount{font-size:30px!important;white-space:nowrap!important;text-align:right!important}
  body.payment-demo .channels{grid-template-columns:1fr!important}
  body.payment-demo .channel{height:62px!important}
  body.payment-demo .actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  body.payment-demo .actions .btn{width:100%!important;padding:0 12px!important}
  body.payment-demo .qrbox{width:min(276px,calc(100vw - 74px))!important;height:min(276px,calc(100vw - 74px))!important;padding:18px!important}
  body.payment-demo .status-card{margin:24px auto 0!important;padding:24px 18px!important;border-radius:18px!important}
  body.payment-demo .status-card h2{font-size:23px!important}
  body.payment-demo .info-strip{grid-template-columns:1fr!important}
  body.payment-demo .info{text-align:left!important}
  body.payment-demo .metric-grid{grid-template-columns:1fr!important}
  body.payment-demo .footer{padding:18px 16px 22px!important;display:block!important;line-height:1.8!important}
  body.payment-demo .footer span{display:block!important}
}

/* V5.0 natural document height for responsive app/admin pages */
body[data-jdesk-scope="user"],body[data-jdesk-scope="client"],body[data-jdesk-scope="admin"]{height:auto!important;min-height:100vh!important;overflow-x:clip!important;overflow-y:visible!important}

/* V5.0 inline admin shells (release/cache) keep their topbar/content in the same main column. */
body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx){
  height:auto!important;
  min-height:100vh!important;
  grid-template-rows:auto!important;
}
body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx)> .left{
  grid-column:1!important;
  grid-row:1!important;
  min-height:100vh!important;
  align-self:stretch!important;
}
body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx)> .mainx{
  grid-column:2!important;
  grid-row:1!important;
  min-width:0!important;
  min-height:100vh!important;
  overflow:visible!important;
}
body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx)> .mainx> .top{
  position:sticky!important;
  top:0!important;
  z-index:25!important;
}
body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .menu a{
  display:flex!important;
  align-items:center!important;
  color:inherit!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
@media(max-width:860px){
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx){display:block!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx)> .left{min-height:auto!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx)> .mainx{min-height:0!important}
}

/* V5.0 responsive content rules for the two inline admin operations pages. */
@media(max-width:860px){
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .contentx{padding:14px 16px!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .headx{flex-direction:column!important;gap:12px!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .toolbar{flex-wrap:wrap!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .release-grid,
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .grid{grid-template-columns:minmax(0,1fr)!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .chain{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .policy{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .flow{flex-wrap:wrap!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .card,
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .cardx{min-width:0!important;max-width:100%!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .trow{min-width:620px!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .card:has(.trow){overflow-x:auto!important}
}
@media(max-width:560px){
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .top{height:auto!important;min-height:58px!important;padding:10px 16px!important;gap:8px!important;flex-wrap:wrap!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .chain{grid-template-columns:minmax(0,1fr)!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .policy{grid-template-columns:minmax(0,1fr)!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .artifact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .table-title{align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .event{grid-template-columns:54px minmax(0,1fr)!important}
  body[data-jdesk-scope="admin"] .admin-shell:has(> .left + .mainx) .event em{grid-column:2!important;justify-self:start!important}
}

/* V4.10 旧管理员后台：真实表单、表格操作与移动菜单 */
.filterbar input.input.search{appearance:none;display:block!important;color:#273142!important;background:#fff!important;outline:none}.filterbar input.input.search:focus{border-color:#F7B500!important;box-shadow:0 0 0 3px rgba(247,181,0,.13)!important}.filterbar select.select{appearance:auto!important;justify-content:initial!important;color:#566273!important;outline:none;cursor:pointer;padding-right:28px!important}.filterbar select.select:focus{border-color:#F7B500!important;box-shadow:0 0 0 3px rgba(247,181,0,.12)!important}
.jdesk-table-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.jdesk-table-action{border:0;background:transparent;color:#8A6200;font:inherit;font-weight:700;padding:4px 2px;cursor:pointer;border-radius:6px}.jdesk-table-action:hover,.jdesk-table-action:focus-visible{background:#FFF4CC;outline:0}.jdesk-table-action.danger{color:#C93645}.jdesk-inline-link{color:#8A6200!important;font-weight:700}.jdesk-inline-link:hover{text-decoration:underline}.jdesk-admin-logout{color:#98A2B3;text-decoration:none}.jdesk-admin-logout:hover{color:#fff}.admin-top-actions button.icon{border:0;cursor:pointer}.admin-top-actions button.icon:hover,.admin-top-actions button.icon:focus-visible{background:#FFF4CC;outline:0}.jdesk-admin-mobile-toggle{display:none;border:1px solid #344054;background:#1D2939;color:#fff;border-radius:9px;min-height:40px;padding:0 13px;font-weight:700;font-size:13px;cursor:pointer}
.admin-shell .form-row input.input{width:100%!important;display:block!important;outline:none}.admin-shell .form-row input.input:focus{border-color:#F7B500!important;box-shadow:0 0 0 3px rgba(247,181,0,.12)!important}
@media(max-width:860px){
 .admin-side{position:sticky!important;top:0!important;z-index:60!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important}
 .admin-side>.brand{padding:4px 6px!important;min-width:0!important}.admin-side>.brand>div{min-width:0!important}.admin-side>.brand-name{white-space:nowrap!important}
 .jdesk-admin-mobile-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;grid-column:2!important;grid-row:1!important}
 .admin-side>.jdesk-admin-nav{display:none!important;grid-column:1/-1!important;width:100%!important;max-height:min(68vh,520px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:8px 0 4px!important;border-top:1px solid #344054!important;margin-top:2px!important}
 .admin-side>.jdesk-admin-nav.jdesk-mobile-open{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
 .admin-side>.jdesk-admin-nav .admin-nav-title{display:block!important;grid-column:1/-1!important;padding:10px 8px 4px!important}
 .admin-side>.jdesk-admin-nav .nav-item{width:100%!important;min-width:0!important;white-space:normal!important;margin:0!important;min-height:40px!important;height:auto!important;padding:9px 10px!important}
 .admin-top{top:60px!important;z-index:45!important}
 .admin-shell .filterbar{height:auto!important;align-items:stretch!important}.admin-shell .filterbar input.search,.admin-shell .filterbar select.select{width:100%!important;min-width:0!important;flex:1 1 180px!important}
 .jdesk-table-actions{gap:6px!important}
}
@media(max-width:520px){.admin-side>.jdesk-admin-nav.jdesk-mobile-open{grid-template-columns:1fr!important}.admin-top{top:60px!important}.admin-shell .filterbar input.search,.admin-shell .filterbar select.select{flex-basis:100%!important}.jdesk-table-action{min-height:34px!important}}

/* V4.10 客户端套餐页：窄屏从三列真正重排为单列，避免卡片被压成细条 */
@media (max-width: 760px) {
  body[data-jdesk-scope="client"] .client-main > div[style*="grid-template-columns:repeat(3,1fr)"],
  body[data-jdesk-scope="client"] .client-main > div[style*="grid-template-columns: repeat(3,1fr)"],
  body[data-jdesk-scope="client"] .client-main > div[style*="grid-template-columns:repeat(3, 1fr)"],
  body[data-jdesk-scope="client"] .client-main > div[style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
  body[data-jdesk-scope="client"] .client-main > .card > div[style*="display:flex"] {
    flex-wrap: wrap !important;
    gap: 14px !important;
  }
  body[data-jdesk-scope="client"] .client-main > .card > div[style*="margin-left:auto"] {
    margin-left: 0 !important;
    width: 100% !important;
    text-align: left !important;
  }
}

/* V4.10 客户端移动导航：不再用横向滚动条藏菜单项。 */
.jdesk-client-mobile-toggle{display:none;border:1px solid #dfe5ee;background:#fff;color:#344054;border-radius:9px;min-height:38px;padding:0 12px;font:inherit;font-size:12px;font-weight:650;cursor:pointer}
@media (max-width: 860px) {
  .jdesk-client-mobile-toggle{display:inline-flex!important;align-items:center;justify-content:center;margin-left:auto!important}
  .client-titlebar .window-dots{margin-left:0!important}
  body[data-jdesk-scope="client"] .client-sidebar{display:none!important;position:sticky!important;top:58px!important;z-index:39!important;width:100%!important;max-height:calc(100vh - 58px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding:12px!important;background:#f8fafc!important;border-bottom:1px solid #e8edf4!important;box-shadow:0 18px 30px rgba(16,24,40,.12)!important}
  body[data-jdesk-scope="client"] .client-sidebar.jdesk-client-open{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  body[data-jdesk-scope="client"] .client-sidebar>.nav-item{width:100%!important;min-width:0!important;white-space:normal!important;margin:0!important;padding:0 12px!important}
  body[data-jdesk-scope="client"] .client-sidebar .sidebar-bottom{position:static!important;display:contents!important}
  body[data-jdesk-scope="client"] .client-sidebar .sidebar-bottom>.nav-item{width:100%!important;margin:0!important}
  body[data-jdesk-scope="client"] .client-sidebar .sidebar-bottom>div:last-child{display:none!important}
}
@media (max-width: 520px) {
  body[data-jdesk-scope="client"] .client-sidebar.jdesk-client-open{grid-template-columns:1fr!important}
}

/* V4.10 用户页 / 新版后台移动导航：隐藏横向滚动导航，改成可展开菜单。 */
.jdesk-user-app-mobile-toggle,.jdesk-admin-v314-mobile-toggle{display:none;border:1px solid #dfe5ee;background:#fff;color:#344054;border-radius:9px;min-height:38px;padding:0 12px;font:inherit;font-size:12px;font-weight:650;cursor:pointer}
@media (max-width: 860px) {
  .app>.sidebar>.brand{display:flex!important;align-items:center!important;gap:10px!important}
  .jdesk-user-app-mobile-toggle{display:inline-flex!important;align-items:center;justify-content:center;margin-left:auto!important}
  .app>.sidebar>.nav{display:none!important;overflow:visible!important;flex-direction:column!important;width:100%!important;margin-top:8px!important}
  .app>.sidebar>.nav.jdesk-user-app-open{display:flex!important}
  .app>.sidebar>.nav a{width:100%!important;white-space:normal!important}

  .admin-brand-v314{display:flex!important;align-items:center!important;gap:10px!important}
  .jdesk-admin-v314-mobile-toggle{display:inline-flex!important;align-items:center;justify-content:center;margin-left:auto!important}
  .admin-menu-v314{display:none!important;overflow:visible!important;flex-direction:column!important;width:100%!important;margin-top:8px!important}
  .admin-menu-v314.jdesk-admin-v314-open{display:flex!important}
  .admin-menu-v314 a{width:100%!important;white-space:normal!important}
}

/* V4.10 新版节点后台：宽数据表在移动端局部横向滚动，不把十列硬压成竖字。 */
@media (max-width: 860px) {
  .node-table2{display:block!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .node-table2>.nh,.node-table2>.nr{min-width:980px!important}
}

/* V4.10 窄屏宽数据结构：局部滚动，不压缩单元格可读性。 */
@media (max-width: 860px) {
  .app .table>.table-head,.app .table>.table-row{min-width:680px!important}
  .permission-grid-scroll{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;border-radius:12px}
  .permission-grid-scroll>.permission-grid{min-width:860px!important;width:860px!important;overflow:visible!important}
}

/* V4.10 旧后台移动菜单优先级修正：覆盖早期 nth-of-type 横向导航规则。 */
@media (max-width: 860px) {
  .admin-side>div.jdesk-admin-nav:nth-of-type(2){display:none!important}
  .admin-side>div.jdesk-admin-nav:nth-of-type(2).jdesk-mobile-open{display:grid!important}
}

/* === V4.11 systematic layout / scope / alignment hardening === */
:root{--jd411-control-h:40px;--jd411-page-gap:24px;--jd411-page-x:clamp(16px,2.2vw,32px)}
button,.btn,a.btn,[role="button"]{box-sizing:border-box}
.btn,button.btn,a.btn{min-height:var(--jd411-control-h)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px;line-height:1.2!important;text-align:center!important;text-decoration:none!important;padding-top:0!important;padding-bottom:0!important;vertical-align:middle}
a.btn:link,a.btn:visited,a.btn:hover,a.btn:active{text-decoration:none!important}
.row>.btn,.row>button.btn,.row>a.btn,.toolbar>.btn,.toolbar>button.btn,.toolbar>a.btn{min-height:var(--jd411-control-h)!important}
input.input,input[type="text"],input[type="search"],input[type="number"],input[type="password"],select.input,select{box-sizing:border-box}
/* paired actions: same height always; symmetric CTA pairs get equal footprint */
.jd411-action-pair{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.jd411-action-pair>*{width:100%!important;min-height:44px!important}
/* User center: real anchors, web/device scope isolation */
.settings-nav>.jdesk-user-center-nav-link{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:9px;color:#475467;text-decoration:none;font-size:13px;font-weight:650;margin-bottom:4px}
.settings-nav>.jdesk-user-center-nav-link:hover{background:#f7f8fa;color:#101828}.settings-nav>.jdesk-user-center-nav-link.active{background:#fff7d6;color:#7a5800}
.jdesk-user-web-note{margin:2px 0 12px!important;line-height:1.7}.uc-device>.row:last-child{align-items:center}.uc-device>.row:last-child .btn{min-width:96px}
/* User app pages consume available content width */
body[data-jdesk-scope="user"] .app .content{width:100%!important;max-width:none!important;margin:0!important;padding:28px var(--jd411-page-x) 34px!important}
body[data-jdesk-scope="user"] .app .main{width:calc(100% - 184px)!important;max-width:none!important}
/* Old admin: full-width working area; inline 930px legacy caps are historical only */
body[data-jdesk-scope="admin"] .admin-main{width:100%!important;max-width:none!important;box-sizing:border-box!important;padding:24px var(--jd411-page-x) 34px!important}
body[data-jdesk-scope="admin"] .admin-main>.card,body[data-jdesk-scope="admin"] .admin-main>.notice{max-width:none!important;width:100%!important;box-sizing:border-box!important}
body[data-jdesk-scope="admin"] .admin-main-v314{width:100%!important;max-width:none!important}
body[data-jdesk-scope="admin"] .admin-body-v314{width:100%!important;max-width:none!important;box-sizing:border-box!important;padding:24px var(--jd411-page-x) 34px!important}
body[data-jdesk-scope="admin"] .admin-body-v314>.content{max-width:none!important;width:100%!important;margin:0!important}
/* Unified admin menu, both old and V3.14 shells */
.jdesk-admin-unified{display:flex!important;flex-direction:column!important;gap:3px!important;overflow:visible!important}.jdesk-admin-unified .jdesk-admin-group{margin:12px 10px 5px;color:#667085;font-size:12px;font-weight:700;letter-spacing:.02em}.jdesk-admin-unified a{display:flex!important;align-items:center!important;gap:9px!important;min-height:36px!important;padding:0 10px!important;border-radius:8px!important;color:inherit!important;text-decoration:none!important;font-size:12px!important;white-space:nowrap!important}.jdesk-admin-unified a:hover{background:rgba(255,255,255,.06)!important}.jdesk-admin-unified a.active{background:#253041!important;color:#fff!important}.jdesk-admin-unified .jdesk-admin-menu-icon{width:18px;display:inline-grid;place-items:center;color:#f7b500;font-size:13px}
.admin-side-v314 .jdesk-admin-unified{padding:0 2px}.admin-side-v314 .jdesk-admin-unified .jdesk-admin-group{color:#667085}.admin-side-v314 .jdesk-admin-unified a{color:#c9d1dc!important}.admin-side-v314 .jdesk-admin-unified a.active{background:#253041!important;color:#fff!important}
/* Node install roles / capacity policy */
.jd411-node-policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.jd411-node-policy-grid>div,.jd411-role-table>div{border:1px solid #e5e9ef;border-radius:10px;padding:12px;background:#fbfcfd}.jd411-node-policy-grid b,.jd411-role-table b{display:block;font-size:12px;margin-bottom:5px;color:#1d2939}.jd411-node-policy-grid span,.jd411-role-table span{display:block;font-size:12px;line-height:1.55;color:#667085}.jd411-role-table{display:grid;gap:8px}.jdesk-role-help{margin-top:6px;line-height:1.55}
/* System health / Dbli */
.jd411-db-health{padding:18px;margin:16px 0}.jd411-health-layers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.jd411-health-layers>div{padding:13px;border:1px solid #e5e9ef;border-radius:10px;background:#fbfcfd}.jd411-health-layers b{display:block;margin-bottom:8px}.jd411-health-layers small{display:block;margin-top:8px;color:#667085;font-size:12px!important;line-height:1.45}
/* client login must center against actual window width, not 1440 design coordinate */
body[data-jdesk-scope="client"] .client-login-card{left:50%!important;right:auto!important;transform:translateX(-50%)!important}
body[data-jdesk-scope="client"] .client-login-foot{left:50%!important;right:auto!important;width:min(620px,calc(100vw - 40px))!important;transform:translateX(-50%)!important}
/* spacing hygiene */
.page-head{gap:16px}.admin-title-row{gap:18px}.card{box-sizing:border-box}.between{gap:14px}
@media(max-width:900px){.jd411-node-policy-grid,.jd411-health-layers{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  body[data-jdesk-scope="user"] .app .main{width:100%!important}.jd411-action-pair{grid-template-columns:1fr}.jd411-node-policy-grid,.jd411-health-layers{grid-template-columns:1fr}
  body[data-jdesk-scope="client"] .client-login-brand-wrap{left:18px!important;top:22px!important}.client-login-card{width:min(430px,calc(100vw - 28px))!important;top:100px!important;padding:26px 22px!important}
  .jdesk-admin-unified{display:none!important}.jdesk-admin-unified.jdesk-mobile-open,.jdesk-admin-unified.jdesk-admin-v314-open{display:flex!important}
}

/* V4.11 官网 Footer / 成组按钮 / 内容宽度统一 */
.v50-site-footer{margin-top:60px;border-top:1px solid #e7e9ed;background:#fbfbfc}
.v50-footer-inner{max-width:1180px;margin:0 auto;padding:34px 22px;display:flex;justify-content:space-between;gap:28px;align-items:flex-start}
.v50-footer-brand p{color:#667085;margin:10px 0 0}
.v50-footer-links{display:flex;gap:20px;flex-wrap:wrap;padding-top:10px}
.v50-footer-links a{color:#667085;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.v50-footer-links a:hover{color:#8b6200}
.v50-footer-bottom{max-width:1180px;margin:0 auto;padding:18px 22px;border-top:1px solid #eef0f2;color:#98a2b3;font-size:12px}
.jd411-action-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.jd411-action-pair>.btn,.jd411-action-pair>button,.jd411-action-pair>a{width:100%;min-height:44px}
.admin-main,.admin-main-v314{width:100%;max-width:none!important;min-width:0}
.admin-main>.card,.admin-main>.notice,.admin-main>.filterbar,.admin-main>.admin-title-row{max-width:none}
@media(max-width:760px){.v50-footer-inner{padding:28px 18px;flex-direction:column}.v50-footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px 16px}.v50-footer-bottom{padding:16px 18px}.jd411-action-pair{grid-template-columns:1fr}}

/* V4.11 管理后台四种历史框架统一菜单与操作控件 */
.jdesk-table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.jdesk-table-action{min-height:32px!important;min-width:48px;padding:0 10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:7px!important;text-decoration:none!important;line-height:1!important}
.admin-side>.admin-nav.jdesk-admin-unified,.left>.menu.jdesk-admin-unified{display:flex;flex-direction:column;gap:4px}
.admin-side>.admin-nav.jdesk-admin-unified .jdesk-admin-group,.left>.menu.jdesk-admin-unified .jdesk-admin-group{padding:11px 10px 4px;color:#7f8a9a;font-size:12px;line-height:1.2}
.admin-side>.admin-nav.jdesk-admin-unified a,.left>.menu.jdesk-admin-unified a{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:8px;color:inherit;text-decoration:none;font-size:12px}
.admin-side>.admin-nav.jdesk-admin-unified a.active,.left>.menu.jdesk-admin-unified a.active{background:#253041;color:#fff}
.jdesk-admin-generic-mobile-toggle{display:none;min-height:38px;border:1px solid rgba(255,255,255,.14);background:#253041;color:#fff;border-radius:8px;padding:0 12px;font:inherit;font-size:12px;font-weight:700;align-items:center;justify-content:center}
@media(max-width:860px){
 .jdesk-admin-custom-shell{height:auto!important;min-height:100vh!important;display:block!important}
 .jdesk-admin-custom-shell>.left{position:relative!important;width:100%!important;min-height:0!important;padding:10px 12px!important;display:block!important}
 .jdesk-admin-custom-shell>.left>.brand{padding:4px 6px 10px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:10px!important}
 .jdesk-admin-custom-shell>.left>.brand>.jdesk-admin-generic-mobile-toggle{display:inline-flex!important;margin-left:auto}
 .jdesk-admin-custom-shell>.left>.jdesk-admin-unified{display:none!important;width:100%!important;margin-top:8px!important}
 .jdesk-admin-custom-shell>.left>.jdesk-admin-unified.jdesk-admin-generic-open{display:flex!important}
 .jdesk-admin-custom-shell>.mainx{overflow:visible!important;width:100%!important}
 .admin-side>.admin-nav.jdesk-admin-unified:not(.jdesk-admin-nav){display:none!important}
 .admin-side>.admin-nav.jdesk-admin-unified.jdesk-admin-generic-open{display:flex!important}
 .admin-side .admin-brand>.jdesk-admin-generic-mobile-toggle{display:inline-flex!important;margin-left:auto}
}
/* V4.11 移动管理头部收口 */
.jdesk-admin-generic-mobile-toggle{min-width:104px;white-space:nowrap}
@media(max-width:860px){
  body[data-jdesk-scope="admin"] .admin-side .admin-foot{display:none!important}
  body[data-jdesk-scope="admin"] .admin-brand{display:flex!important;align-items:center!important;gap:10px!important}
  body[data-jdesk-scope="admin"] .admin-brand .jdesk-admin-generic-mobile-toggle{margin-left:auto!important}
}
/* V4.11 客户端登录窄屏品牌区不允许相对偏移撑宽 viewport */
@media(max-width:760px){
  body[data-jdesk-scope="client"] .client-login-brand-wrap{left:0!important;right:0!important;top:0!important;width:100%!important;max-width:100%!important;padding:22px 18px 0!important;transform:none!important}
}
/* V4.11 文本型操作也保留明确点击热区，不使用额外下划线制造视觉噪声 */
.jdesk-text-action{min-height:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 6px!important;text-decoration:none!important;line-height:1.2!important}
.jdesk-text-action:hover{text-decoration:none!important;background:#fff7d6!important;border-radius:6px!important}
/* V4.11 final: client login card must stay geometrically centered on narrow screens. */
@media (max-width: 860px){
  body[data-jdesk-scope="client"] .client-login-card{
    left:auto!important;
    right:auto!important;
    transform:none!important;
    width:calc(100% - 28px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* ============================================================
   V4.12 体验完善：可访问性、触控、稳定性、表格阅读与一致性
   ============================================================ */
:root{
  --jd-touch-desktop:40px;
  --jd-touch-mobile:44px;
  --jd-focus:#f7b500;
  --jd-focus-shadow:0 0 0 3px rgba(247,181,0,.16);
}

/* 统一键盘焦点，不靠 hover 猜当前控件。 */
:where(button,a,[role="button"],input,select,textarea,summary,.btn,.nav-item,.switch,.tabs>*){
  -webkit-tap-highlight-color:rgba(247,181,0,.14);
}
:where(button,a,[role="button"],input,select,textarea,summary,.btn,.nav-item,.switch,.tabs>*):focus-visible{
  outline:2px solid var(--jd-focus)!important;
  outline-offset:2px!important;
  box-shadow:var(--jd-focus-shadow);
}

/* 同一操作区按钮保持相同的垂直规格；不强制等宽，避免“主/次操作”层级被抹平。 */
:where(.row,.actions,.toolbar-row,.admin-top-actions,.jd45-hero-actions,.jd45-final-actions,.jdesk-demo-modal-actions,.jd411-action-row) > :is(button,.btn,a[role="button"],a.btn){
  min-height:var(--jd-touch-desktop);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
}

/* 图标按钮和纯图标操作也要有稳定热区。 */
:where(.icon-btn,button.icon,.jdesk-table-action){min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center}

/* 局部滚动的数据表，表头保持可见，提高高密度后台可读性。 */
:where(.table,.list,.node-table,.session-table,.source-list){scrollbar-gutter:stable both-edges}
.table>.table-head,.list>.list-head,.node-table>.node-head,.session-table>.shead,.node-table>.nh,.source-list>.source-head{
  position:sticky;top:0;z-index:3;
}
:where(.table-row,.device-row,.node-row,.trow,.srow,.nr):hover{background:#fffdf5}

/* 更清楚的禁用态，避免“像能点但点不了”。 */
:where(button,[role="button"],.btn).jdesk-demo-unavailable,
:where(button,[role="button"],.btn):disabled{
  opacity:.52!important;cursor:not-allowed!important;filter:saturate(.72);
}

/* 模态框打开时锁定背景滚动，并提供键盘焦点边界。 */
html.jdesk-modal-open,html.jdesk-modal-open body{overflow:hidden!important}
.jdesk-demo-modal-card:focus{outline:none}

/* 表单控件文本与按钮文本统一居中/行高，避免个别页面出现“多一条线/上下偏”。 */
:where(button,.btn,a.btn,[role="button"]){text-decoration:none!important}
:where(button,.btn,a.btn,[role="button"],input,select,textarea){line-height:1.25}

/* 降低动画敏感用户的不适，同时避免自动验收被平滑滚动拖慢。 */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

@media(max-width:760px){
  :where(button,.btn,a.btn,[role="button"],input,select,textarea,.jd45-navlinks a,.client-sidebar a,.jdesk-admin-unified a){
    min-height:var(--jd-touch-mobile)!important;
  }
  :where(.icon-btn,button.icon,.jdesk-table-action){min-height:44px!important;min-width:44px!important}
  .jdesk-demo-modal-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  .jdesk-demo-modal-actions>button{width:100%!important;min-height:44px!important}
}

/* V4.12.1：小字号辅助文字可读性 + 移动触控热区 */
.payment-demo .footer,.payment-demo .info span{color:#667085!important}
body[data-jdesk-scope="client"] :is(.muted,.section-sub,.device-meta,.kpi-label,.breadcrumb,.table th){color:#667085!important}
body[data-jdesk-scope="admin"] :is(.admin-main,.admin-body-v314,.mainx) :is(.muted,.section-sub,.kpi-label,.breadcrumb,.table th,.thead,.list-head){color:#667085!important}
body[data-jdesk-scope="website"] :is(.jd45-footer-grid a,.jd45-footer-grid p,.jd45-footer-bottom,.v50-footer-bottom){color:#667085!important}
.resource-note,.demo-sub,.demo-meta{color:#667085!important}

/* 套餐权益页曾使用 34×19 的微型开关，统一到可读规格。 */
.feat .switch{width:42px!important;height:24px!important;min-width:42px!important;min-height:24px!important}
.feat .switch:after{width:18px!important;height:18px!important;top:3px!important;right:3px!important}
.feat .switch.off:after{left:3px!important;right:auto!important}

/* 设备快捷操作与后台表格动作：桌面保留紧凑，移动端扩大热区。 */
.quick-btn{min-width:36px!important;min-height:36px!important;cursor:pointer}
.jdesk-table-action{min-height:36px!important}
.jd45-faq-list summary{min-height:40px;align-items:center}
.jd45-scene-copy a,.jd45-bento a{display:inline-flex;align-items:center;min-height:36px;text-decoration:none}
.jd45-footer-grid a,.v50-footer-links a{display:inline-flex;align-items:center;min-height:36px}

@media(max-width:760px){
  button,.btn,[role="button"],a.btn{min-height:44px!important}
  .jdesk-table-action{min-height:44px!important;min-width:44px!important}
  .quick-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .switch{min-width:44px!important;min-height:26px!important}
  .feat .switch{width:44px!important;height:26px!important;min-width:44px!important;min-height:26px!important}
  .feat .switch:after{top:4px!important;right:4px!important}.feat .switch.off:after{left:4px!important;right:auto!important}
  .jd45-mobile-menu{width:44px!important;height:44px!important;min-width:44px!important}
  .jd45-brand{min-height:44px!important}
  .jd45-navlinks a{display:flex!important;align-items:center!important;min-height:44px!important;padding:0 8px!important}
  .jd45-scene-copy a,.jd45-bento a,.jd45-footer-grid a,.v50-footer-links a,.jd45-faq-list summary{min-height:44px!important}
  .jdesk-text-action{min-height:40px!important}
}

/* V4.12.2：历史模板的次级文字统一到可读灰阶，避免 12px 灰字发虚。 */
.metric span,.action span,.summary-card em,.health-cell span,.v324-stat-cell span,
.auth-panel-v328 .auth-policy,.sd-kv span,.sd-event time{color:#667085!important}
body[data-jdesk-scope="client"] :is(.detail-key,.device-meta,.section-sub,.muted,.tiny.muted,.small.muted,.brand-sub){color:#667085!important}
body[data-jdesk-scope="admin"] :is(.breadcrumb,.kpi-label,.section-sub,.muted,.small.muted,.detail-key){color:#667085!important}
body[data-jdesk-scope="admin"] :is(.nk .mini,.mini){color:#667085!important}
.payment-demo :is(.footer,.info span){color:#667085!important}
.v50-footer-bottom,.jd45-footer-bottom{color:#667085!important}

/* V4.12.2：移动端按钮和链接使用实际 44px 触控区；高密度开关保持视觉紧凑。 */
@media(max-width:760px){
  body .btn,body button,body [role="button"],body a.btn{min-height:44px!important}
  body .jdesk-table-action{min-height:44px!important;min-width:44px!important}
  body .quick-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .jd45-footer-bottom a{display:inline-flex!important;align-items:center!important;min-height:44px!important;margin-right:12px!important}
  .v50-footer-links a{min-height:44px!important}
  .jd45-navlinks a{min-height:44px!important}
  .jd45-mobile-menu{width:44px!important;min-width:44px!important}
}

/* V4.12.3：剩余高频低对比度文字与移动链接热区 */
.card span,.tele-kpi em,.tiny2,.lat span{color:#667085!important}
.jd45-proofbar span{color:#667085!important}
.jd411-security-flow span{color:#667085!important}
body[data-jdesk-scope="admin"] .admin-top .breadcrumb{color:#667085!important}
body[data-jdesk-scope="admin"] .admin-top-actions .muted{color:#667085!important}
body[data-jdesk-scope="client"] .detail-key{color:#667085!important}
.footer-links a{color:#667085!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;min-height:36px!important}

@media(max-width:760px){
  .footer-links a{min-height:44px!important}
  .tabs>*{min-width:44px!important;padding-left:10px!important;padding-right:10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
  .jdesk-inline-link,.back{min-height:40px!important;display:inline-flex!important;align-items:center!important}
  body[data-jdesk-scope="user"] .btn.ghost,body[data-jdesk-scope="admin"] .btn,body[data-jdesk-scope="website"] a.primary{min-height:44px!important}
}

/* V4.12.4：最后的可读性与语义控件收口 */
.content a.primary{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;text-decoration:none!important}
.tele-kpi em,.tiny2,.lat span{color:#667085!important}
.admin-login .footer{color:#667085!important}
.admin-login .shield [style*="#98a2b3"],.admin-login .shield [style*="#98A2B3"]{color:#667085!important}
.jd45-security-list span{color:#667085!important}
body.remote-control-demo .client-titlebar .brand-sub{color:#cbd5e1!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* V4.12.5 可读性与真实触控热区收口 */
.jd45-navlinks a{min-width:40px;text-align:center}
body[data-jdesk-scope="admin"] .cap.off{color:#667085!important}
body[data-jdesk-scope="admin"] .event em,
body[data-jdesk-scope="admin"] .metric span,
body[data-jdesk-scope="admin"] .flow i,
body[data-jdesk-scope="admin"] .trow.h{color:#667085!important}
body[data-jdesk-scope="admin"] .mini{color:#667085!important}
body[data-jdesk-scope="client"] .badge{color:#7A5200!important}
body[data-jdesk-scope="client"] .badge.green{color:#027A48!important}
body[data-jdesk-scope="client"] .badge.red{color:#B42318!important}
body[data-jdesk-scope="client"] .badge.orange{color:#9A4F00!important}
body[data-jdesk-scope="client"] .badge.gray{color:#475467!important}
body[data-jdesk-scope="client"] .btn.primary{color:#11151B!important}
/* 开关视觉轨道保持轻巧，但真实可点击区域扩展到至少 44px 高 */
.switch{position:relative;overflow:visible!important}
.switch::before{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:44px;transform:translateY(-50%);border-radius:999px}

/* V4.12.6 最后一轮浅色背景文字对比度 */
.admin-login .brand-sub{color:#59677A!important}
.admin-login .footer-note{color:#667085!important}
body[data-jdesk-scope="admin"] .event-sub{color:#667085!important}
body[data-jdesk-scope="admin"] .brand-sub{color:#59677A}
body[data-jdesk-scope="admin"] .tiny.muted{color:#667085!important}
body[data-jdesk-scope="admin"] .small.muted{color:#667085!important}
body[data-jdesk-scope="admin"] .section-sub{color:#667085!important}
body:not([data-jdesk-scope]) .card code{color:#667085!important}
/* V4.12.7 深色管理员侧栏的辅助文字单独使用浅色，不与内容区规则混用 */
body[data-jdesk-scope="admin"] aside .brand-sub,
.admin-login .brand-sub{color:#CBD5E1!important}
body[data-jdesk-scope="admin"] aside .tiny.muted,
body[data-jdesk-scope="admin"] aside .small.muted{color:#98A2B3!important}
/* V4.12.8 预览页与权益模拟器的浅色背景辅助文字 */
body[data-jdesk-scope="index"] .card code{color:#667085!important}
body[data-jdesk-scope="admin"] .admin-shell-v314 .side-card p.small.muted{color:#667085!important}
/* V4.12.9 客户端页签文字严格垂直居中，激活线仍贴底 */
body[data-jdesk-scope="client"] .tabs{align-items:stretch}
body[data-jdesk-scope="client"] .tabs .tab{height:41px!important;padding-top:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.2!important}

/* ========================================================================
   V4.13 — 原生导航 / 真实控件 / 视觉一致性收口
   目标：即使交互脚本未运行，菜单仍可通过 <a href> 正常使用。
   ======================================================================== */
:root{
  --jd-control-h:40px;
  --jd-control-h-mobile:44px;
  --jd-gap-xs:8px;
  --jd-gap-sm:12px;
  --jd-gap-md:16px;
  --jd-gap-lg:24px;
}

/* 原生导航统一去掉浏览器默认下划线，并保留明确点击态。 */
a.nav-item,.client-sidebar a,.jdesk-admin-unified a,.settings-nav a,.jd45-nav a,.v50-site-footer a{
  text-decoration:none!important;
}
a.nav-item:focus-visible,.client-sidebar a:focus-visible,.jdesk-admin-unified a:focus-visible,
.settings-nav a:focus-visible,.jd45-nav a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{
  outline:3px solid rgba(247,181,0,.32)!important;
  outline-offset:2px!important;
}
.nav-item{cursor:pointer}

/* 所有真实按钮/链接按钮的文字保持几何居中。 */
button,.btn,a.btn,[role="button"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
  line-height:1.2;
  text-decoration:none!important;
}
button.btn,a.btn{min-height:var(--jd-control-h)}
button.switch{display:inline-block!important;padding:0!important;border:0!important;cursor:pointer}

/* 同一动作组：高度一致；宽度按语义决定，不强迫所有按钮等宽。 */
.row,.jd411-price-actions,.jd45-navactions,.modal-actions,.jdesk-demo-modal-actions{align-items:center}
[data-button-group="paired"]>*{min-height:40px}
.jd411-price-actions>*{min-width:132px;justify-content:center}
.jdesk-demo-modal-actions>button,.modal-actions>.btn,.modal-actions>button{min-width:96px}

/* 价格页：上/下留白和卡片结构统一，三套餐卡动作始终对齐到底部。 */
.jdesk-pricing-v413 .jd411-price-page{padding-bottom:0!important}
.jdesk-pricing-v413 .jd411-price-hero{padding-top:64px!important;padding-bottom:28px!important}
.jdesk-pricing-v413 .jd411-security{align-items:stretch!important;gap:24px!important}
.jdesk-pricing-v413 .jd411-security>*{height:auto!important;min-height:210px!important}
.jdesk-pricing-v413 .jd411-plans{align-items:stretch!important;gap:16px!important}
.jdesk-pricing-v413 .jd411-plan{display:flex!important;flex-direction:column!important;min-height:360px!important;padding:24px!important}
.jdesk-pricing-v413 .jd411-plan ul{flex:1!important;margin-bottom:22px!important}
.jdesk-pricing-v413 .jd411-plan-action{width:100%!important;margin-top:auto!important}
.jdesk-pricing-v413 .jd411-price-bottom{margin-top:32px!important}
.jdesk-pricing-v413 .jd411-price-cta{gap:24px!important}

/* 用户中心锚点是真菜单：跳转后有视觉反馈，且固定侧栏不会遮住目标。 */
.jdesk-user-anchor-section{scroll-margin-top:24px}
.jdesk-user-anchor-section.jdesk-anchor-current{animation:jdeskAnchorPulse .7s ease-out}
@keyframes jdeskAnchorPulse{0%{box-shadow:0 0 0 4px rgba(247,181,0,.18)}100%{box-shadow:none}}
.user-nav .settings-nav a{display:flex!important;align-items:center!important;min-height:42px!important;border-radius:8px!important;padding:0 12px!important;color:inherit!important}
.user-nav .settings-nav a.active{background:#FFF8E1!important;color:#8B6200!important;font-weight:700!important}

/* 账号安全：左侧项目不再是“只变色的 div”，每项有真实内容面板。 */
.settings-nav .jdesk-security-tab{display:flex!important;align-items:center!important;min-height:42px!important;padding:0 12px!important;border-radius:8px!important;color:#475467!important}
.settings-nav .jdesk-security-tab.active{background:#FFF8E1!important;color:#8B6200!important;font-weight:700!important}
.jdesk-security-panels{min-height:360px}
.jdesk-security-panel[hidden]{display:none!important}
.jdesk-security-panel .setting-row:last-child{border-bottom:0!important}

/* 客户端 Tab 全部是 button，并真正切换内容；按钮不带默认边框/背景。 */
body[data-jdesk-scope="client"] .tabs .tab{
  appearance:none!important;-webkit-appearance:none!important;border:0!important;background:transparent!important;
  cursor:pointer!important;font-family:inherit!important;
}
.jdesk-client-tab-panel[hidden]{display:none!important}
.jdesk-client-tab-panel{animation:jdeskPanelIn .16s ease-out}
@keyframes jdeskPanelIn{from{opacity:.65;transform:translateY(2px)}to{opacity:1;transform:none}}
.jdesk-demo-qr{width:176px;height:176px;margin:24px auto 8px;border-radius:16px;border:1px solid #E4E7EC;background:
  linear-gradient(90deg,#111 12px,transparent 12px) 0 0/24px 24px,
  linear-gradient(#111 12px,transparent 12px) 0 0/24px 24px,#fff;
  display:flex;align-items:center;justify-content:center;color:#F7B500;font-weight:800;font-size:22px;box-shadow:inset 0 0 0 18px #fff}

/* 历史模板中的真正 select/input 使用同一视觉尺寸。 */
select.select,input.input{
  width:100%;min-height:42px;border:1px solid #DBE1EA;border-radius:10px;background:#fff;color:#273142;
  padding:0 13px;font:inherit;font-size:13px;outline:none;
}
select.select{appearance:auto;cursor:pointer}
input.input:focus,select.select:focus{border-color:#F7B500;box-shadow:0 0 0 3px rgba(247,181,0,.14)}

/* 管理后台的统一菜单覆盖所有模板，名称统一为“节点管理”。 */
.jdesk-admin-unified a{cursor:pointer}
.jdesk-admin-unified .jdesk-admin-group{pointer-events:none;user-select:none}

/* 桌面内容区尽量利用可用宽度，避免卡片缩在左上角。 */
body[data-jdesk-scope="admin"] :is(.admin-main,.admin-body-v314,.mainx)>.card,
body[data-jdesk-scope="admin"] :is(.admin-main,.admin-body-v314,.mainx)>.panel{max-width:none!important}
body[data-jdesk-scope="admin"] :is(.admin-main,.admin-body-v314,.mainx) .content{max-width:none!important}

/* 所有看起来像控件的装饰元素不再显示手型，避免误导。 */
.jdesk-decorative-control{pointer-events:none!important;cursor:default!important;opacity:.72}

@media(max-width:760px){
  button,.btn,a.btn,[role="button"],.user-nav .settings-nav a,.settings-nav .jdesk-security-tab{min-height:var(--jd-control-h-mobile)!important}
  .jd411-price-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  .jd411-price-actions>*{min-width:0!important;width:100%!important}
  .jdesk-pricing-v413 .jd411-price-hero{padding-top:36px!important;padding-bottom:20px!important}
  .jdesk-pricing-v413 .jd411-plan{min-height:0!important;padding:20px!important}
  .jdesk-pricing-v413 .jd411-security>*{min-height:0!important}
  .jdesk-security-panels{min-height:0}
}
/* V4.13 节点管理：角色真源与容量策略可见，但不把页面做成单一 Relay 管理页。 */
.jd413-node-role-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.jd413-node-role-strip>div{background:#fff;border:1px solid #E4E7EC;border-radius:12px;padding:14px 16px;min-width:0}
.jd413-node-role-strip b{display:block;font-size:13px;color:#101828;margin-bottom:5px}
.jd413-node-role-strip span{display:block;font-size:12px;line-height:1.55;color:#667085}
@media(max-width:1024px){.jd413-node-role-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.jd413-node-role-strip{grid-template-columns:1fr}}
/* V4.13 原生表单控件继承站点字体，避免 div→button/input 后出现系统默认字形。 */
button,input,select,textarea{font-family:inherit;color:inherit}
button{font-size:inherit}

/* V4.13.1：窄屏触控与客户端 Tab 最终收口。 */
body[data-jdesk-scope="client"] .tabs a.tab{
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding-top:0!important;
  line-height:1.2!important;
}
@media(max-width:760px){
  body .row>a.btn,body .row>button.btn,body .row>.btn,
  body .toolbar>a.btn,body .toolbar>button.btn,body .toolbar>.btn,
  body .jd411-action-row>a.btn,body .jd411-action-row>button.btn,
  body .modal-actions>a.btn,body .modal-actions>button.btn,
  body .jdesk-demo-modal-actions>button,
  body[data-jdesk-scope="client"] .tabs a.tab,
  body .jdesk-text-action{
    min-height:44px!important;
  }
}

/* V4.13.1 免费通道满载只阻断当前主操作，不锁死整个客户端导航。 */
body.jdesk-free-channel-full .modal-backdrop{
  left:212px!important;
  top:58px!important;
  right:0!important;
  bottom:0!important;
  z-index:30!important;
}
@media(max-width:860px){
  body.jdesk-free-channel-full .modal-backdrop{left:0!important;top:58px!important;z-index:30!important}
  body.jdesk-free-channel-full .client-sidebar.jdesk-client-open{z-index:39!important}
}

/* ========================================================================
   V4.14 — 用户中心统一导航 / 消息中心 / 语义与兼容性收口
   ======================================================================== */
:root{
  --jd-radius-sm:10px;
  --jd-radius-md:14px;
  --jd-shadow-soft:0 10px 28px rgba(16,24,40,.055);
}
html{scrollbar-gutter:stable}
.jdesk-skip-link{
  position:fixed;left:16px;top:12px;z-index:2147483647;transform:translateY(-160%);
  min-height:44px;padding:0 16px;border-radius:10px;background:#111827;color:#fff!important;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;font-weight:700;
  box-shadow:0 10px 30px rgba(16,24,40,.25);transition:transform .16s ease;
}
.jdesk-skip-link:focus{transform:none;outline:3px solid #F7B500;outline-offset:2px}

/* 用户中心所有页面共用同一套 9 项导航；分组只做信息层级，不可点击。 */
.jdesk-user-unified{display:flex;flex-direction:column;gap:3px;padding:6px 0!important}
.jdesk-user-unified .jdesk-user-nav-group{
  padding:14px 12px 5px;color:#98A2B3;font-size:12px;font-weight:700;letter-spacing:.04em;
  pointer-events:none;user-select:none;
}
.jdesk-user-unified .jdesk-user-nav-group:first-child{padding-top:4px}
.jdesk-user-unified a{
  min-height:42px;padding:0 12px;border-radius:9px;display:flex;align-items:center;color:#475467!important;
  text-decoration:none!important;font-size:13px;font-weight:600;transition:background-color .14s ease,color .14s ease;
}
.jdesk-user-unified a:hover{background:#F8FAFC;color:#1D2939!important}
.jdesk-user-unified a.active,.jdesk-user-unified a[aria-current="page"]{background:#FFF7D6;color:#7A5200!important;font-weight:750}
body[data-jdesk-scope="user"] .app>.sidebar{width:210px!important;padding:20px 12px!important}
body[data-jdesk-scope="user"] .app>.main>.content{padding:26px!important;max-width:none!important}
body[data-jdesk-scope="user"] .app>.sidebar>.brand{padding:4px 8px 18px!important}

/* 消息通知中心：用户消息而非管理员告警规则。 */
.jd414-message-actions{flex-wrap:wrap;justify-content:flex-end}
.jd414-message-summary{margin-bottom:16px}
.jd414-message-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.jd414-message-filter .search{flex:1 1 280px;max-width:360px}
.jd414-message-list{overflow:hidden;box-shadow:var(--jd-shadow-soft)}
.jd414-message{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:center;
  min-height:92px;padding:16px 18px;border-top:1px solid #EFF1F3;background:#fff;
}
.jd414-message:first-child{border-top:0}
.jd414-message.unread{background:linear-gradient(90deg,#FFFCF1,#fff 34%)}
.jd414-message.unread .jd414-message-body b:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#F7B500;margin-left:8px;vertical-align:2px}
.jd414-message-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800;background:#F2F4F7;color:#475467}
.jd414-message-icon.security{background:#FFF3E0;color:#9A4F00}.jd414-message-icon.device{background:#ECFDF3;color:#027A48}
.jd414-message-icon.session{background:#EFF8FF;color:#175CD3}.jd414-message-icon.plan{background:#FFF7D6;color:#7A5200}.jd414-message-icon.service{background:#F2F4F7;color:#475467}
.jd414-message-body{min-width:0}.jd414-message-body .between{gap:14px;align-items:baseline}.jd414-message-body b{font-size:14px;color:#1D2939}
.jd414-message-body time{font-size:12px;color:#667085;white-space:nowrap}.jd414-message-body p{font-size:12px;line-height:1.65;color:#667085;margin:6px 0 0}
.jd414-message-preferences{margin-top:14px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--jd-shadow-soft)}
.jd414-message-preferences b{font-size:14px}.jd414-message-preferences p{margin:5px 0 0;color:#667085;font-size:12px;line-height:1.6}
.jd414-message[hidden]{display:none!important}

/* 交互状态更加明确，不使用 Toast 冒充结果。 */
.jdesk-inline-status{border-radius:10px;padding:9px 12px;background:#ECFDF3;color:#027A48;font-size:12px;margin:10px 0 0}

/* 统一轻量 hover / active；不让静态卡片产生“可点击”错觉。 */
a.btn,button,.filter-chip,.jdesk-table-action{transition:transform .12s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
a.btn:active,button:active,.filter-chip:active,.jdesk-table-action:active{transform:translateY(1px)}

/* 高对比度 / Windows 强制颜色模式，避免品牌色把边界吃掉。 */
@media (forced-colors:active){
  .btn,button,input,select,.card,.table,.jd414-message-list{forced-color-adjust:auto;border:1px solid CanvasText!important}
  .badge,.status-pill{border:1px solid CanvasText!important}
  .jdesk-skip-link{border:2px solid Highlight!important}
}
@media (prefers-contrast:more){
  .muted,.small.muted,.jd414-message-body p,.jd414-message-body time{color:#475467!important}
  .card,.table,input,select,.btn{border-color:#B9C0CC!important}
}

@media(max-width:860px){
  body[data-jdesk-scope="user"] .app>.sidebar{width:100%!important;padding:10px 12px!important}
  body[data-jdesk-scope="user"] .app>.sidebar>.jdesk-user-unified{display:none!important;width:100%!important;margin-top:8px!important}
  body[data-jdesk-scope="user"] .app>.sidebar>.jdesk-user-unified.jdesk-user-app-open{display:flex!important}
  .jdesk-user-unified .jdesk-user-nav-group{padding:10px 10px 3px}
}
@media(max-width:760px){
  body[data-jdesk-scope="user"] .app>.main>.content{padding:16px!important}
  .jd414-message-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:12px}
  .jd414-message-actions>*{width:100%}
  .jd414-message-filter .search{max-width:none;flex-basis:100%}
  .jd414-message{grid-template-columns:40px minmax(0,1fr);padding:14px;align-items:start}
  .jd414-message>.btn{grid-column:2;width:100%;margin-top:4px}
  .jd414-message-body .between{display:block}.jd414-message-body time{display:block;margin-top:4px}
  .jd414-message-preferences{display:block}.jd414-message-preferences .btn{width:100%;margin-top:14px}
}
.jdesk-user-unified>span.jdesk-user-nav-group{display:block}
.jdesk-current-plan{display:flex;align-items:center;justify-content:center;min-height:34px;margin-top:8px;border-radius:999px;background:#ECFDF3;color:#027A48;font-size:12px;font-weight:700}
.jd414-message-actions>.btn,.jd414-message-actions>a.btn{min-height:44px!important;height:44px!important}

/* 企业治理菜单允许桌面侧栏独立滚动，避免底部菜单不可点击 */
@media(min-width:901px){.admin-side-v314 .jdesk-admin-unified,.admin-side>.jdesk-admin-unified{max-height:calc(100vh - 150px)!important;overflow-y:auto!important;overflow-x:hidden!important;padding-right:3px!important;scrollbar-width:thin}.admin-side-v314 .jdesk-admin-unified .jdesk-admin-group,.admin-side>.jdesk-admin-unified .jdesk-admin-group{margin-top:8px!important}.admin-side-v314 .jdesk-admin-unified a,.admin-side>.jdesk-admin-unified a{min-height:32px!important}}


/* ==== JDesk page foundations ==== */

:root{--jds-yellow:#f7b500;--jds-yellow-2:#ffbf00;--jds-text:#101828;--jds-muted:#667085;--jds-border:#dfe4ea;--jds-bg:#f6f8fb;--jds-control-sm:32px;--jds-control-md:40px;--jds-control-lg:44px;--jds-r-sm:6px;--jds-r-md:10px;--jds-r-lg:14px;--jds-space-1:4px;--jds-space-2:8px;--jds-space-3:12px;--jds-space-4:16px;--jds-space-6:24px;--jds-space-8:32px}
*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{font-family:"Microsoft YaHei",Arial,sans-serif;color:var(--jds-text)}a{text-decoration:none}.jds-button,.btn,button,input,select,textarea{font:inherit}.jds-button,.btn,button:not(.switch):not(.jd45-mobile-menu):not(.jds-mobile-menu){min-height:var(--jds-control-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--jds-r-md);padding:0 16px;line-height:1.2}.jds-button.primary,.btn.primary{background:var(--jds-yellow);border-color:var(--jds-yellow);color:#111827}.jds-sm{height:var(--jds-control-sm)!important;min-height:var(--jds-control-sm)!important}.jds-md{height:var(--jds-control-md)!important;min-height:var(--jds-control-md)!important}.jds-lg{height:var(--jds-control-lg)!important;min-height:var(--jds-control-lg)!important}input,select,textarea{min-height:var(--jds-control-md);border:1px solid var(--jds-border);border-radius:var(--jds-r-md);padding:0 12px;background:#fff;color:var(--jds-text)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(247,181,0,.28);outline-offset:2px}.jds-site-header{height:68px;border-bottom:1px solid #eceff3;background:rgba(255,255,255,.96);position:relative;z-index:20}.jds-site-nav{max-width:1120px;height:100%;margin:auto;padding:0 20px;display:flex;align-items:center;gap:24px}.jds-site-brand{display:flex;align-items:center;gap:10px;color:#111827;white-space:nowrap}.jds-site-brand img{width:34px!important;height:34px!important;object-fit:cover;border-radius:9px}.jds-site-brand strong{display:block;font-size:15px}.jds-site-brand small{display:block;font-size:12px;color:#7a8699}.jds-site-links{display:flex;align-items:center;gap:20px;margin-left:auto}.jds-site-links a{font-size:13px;color:#344054;white-space:nowrap}.jds-site-actions{display:flex;gap:8px}.jds-mobile-menu{display:none}.jds-site-main{min-height:calc(100vh - 68px)}.jds-page-hero{padding:72px 20px 48px;text-align:center}.jds-page-hero h1{font-size:38px;margin:0 0 14px}.jds-page-hero p{max-width:700px;margin:auto;color:var(--jds-muted);line-height:1.8}.jds-page-section{max-width:1120px;margin:0 auto;padding:32px 20px 64px}.jds-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.jds-card{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:22px}.jds-card h3{margin:0 0 10px;font-size:17px}.jds-card p{margin:0;color:var(--jds-muted);font-size:13px;line-height:1.8}.jds-user-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:#f7f8fa}.jds-user-side{background:#fff;border-right:1px solid #e6e9ee;padding:24px 14px}.jds-user-menu a{display:flex;align-items:center;height:42px;padding:0 12px;border-radius:9px;color:#475467;font-size:13px;margin:3px 0}.jds-user-menu a.active{background:#fff4cc;color:#8a6200;font-weight:700}.jds-user-menu .grp{display:block;font-size:12px;color:#98a2b3;padding:14px 12px 5px}.jds-user-main{padding:32px;min-width:0}.jds-user-main-inner{max-width:1180px;margin:0 auto}.jds-user-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.jds-user-head h1{font-size:24px;margin:0}.jds-user-head p{font-size:13px;color:var(--jds-muted);margin:6px 0 0}.jds-client-page{margin:0;background:#eef2f7;min-height:100vh;padding:20px}.jds-client-window{width:min(1040px,calc(100vw - 40px));height:min(720px,calc(100vh - 40px));min-height:620px;margin:auto;background:#fff;border:1px solid #dfe5ee;border-radius:18px;box-shadow:0 20px 50px rgba(16,24,40,.14);display:grid;grid-template-columns:200px 1fr;overflow:hidden}.jds-client-side{background:#f8fafc;border-right:1px solid #e8edf4;padding:18px 12px;display:flex;flex-direction:column}.jds-client-brand{display:flex;gap:10px;align-items:center;padding:4px 8px 18px}.jds-client-brand img{width:36px;height:36px;border-radius:10px}.jds-client-brand strong{font-size:14px;display:block}.jds-client-brand small{font-size:12px;color:#7a8798}.jds-client-nav a{height:42px;display:flex;align-items:center;padding:0 12px;border-radius:9px;color:#5a6677;font-size:13px;margin:4px 0}.jds-client-nav a.active{background:#fff4cc;color:#8a6200;font-weight:700}.jds-client-foot{margin-top:auto;font-size:12px;color:#7a8798;padding:10px}.jds-client-main{padding:24px 28px;overflow:auto;min-width:0}.jds-client-title{font-size:22px;font-weight:780;margin:0 0 18px}.jds-client-homegrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.jds-client-card{border:1px solid #e4e8ef;border-radius:14px;padding:20px;background:#fff}.jds-id{font-size:28px;font-weight:800;letter-spacing:2px;margin:14px 0}.jds-connect-row{display:flex;gap:8px}.jds-connect-row input{flex:1;min-width:0}.jds-recent{margin-top:18px}.jds-recent-item{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eef1f5;padding:12px 0;font-size:13px}.jds-statusbar{display:flex;gap:18px;font-size:12px;color:#667085;margin-top:18px}.jds-inline-result{margin-top:12px;padding:10px 12px;border-radius:9px;background:#f2f4f7;color:#344054;font-size:12px}
@media(max-width:820px){.jds-site-header{height:auto}.jds-site-nav{height:64px}.jds-site-links,.jds-site-actions{display:none}.jds-mobile-menu{margin-left:auto;display:inline-flex}.jds-site-header.open .jds-site-links{display:flex;position:absolute;top:64px;left:0;right:0;background:#fff;padding:12px 20px 18px;flex-direction:column;align-items:stretch;border-bottom:1px solid #e5e7eb}.jds-site-header.open .jds-site-links a{height:42px;display:flex;align-items:center}.jds-card-grid{grid-template-columns:1fr}.jds-user-shell{grid-template-columns:1fr}.jds-user-side{border-right:0;border-bottom:1px solid #e6e9ee;padding:12px}.jds-user-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.jds-user-menu .grp{grid-column:1/-1}.jds-user-main{padding:20px 14px}.jds-client-page{padding:0}.jds-client-window{width:100vw;height:auto;min-height:100vh;border-radius:0;border:0;grid-template-columns:1fr}.jds-client-side{border-right:0;border-bottom:1px solid #e8edf4}.jds-client-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.jds-client-nav a{justify-content:center;padding:0 4px}.jds-client-foot{display:none}.jds-client-main{padding:20px 14px}.jds-client-homegrid{grid-template-columns:1fr}.jds-page-hero{padding-top:48px}.jds-page-hero h1{font-size:30px}}
.settings-nav.jds-user-menu,.jds-user-menu{display:block}.settings-nav.jds-user-menu a,.jds-user-menu a{display:flex;align-items:center;height:42px;padding:0 12px;border-radius:9px;color:#475467;font-size:13px;margin:3px 0;text-decoration:none}.settings-nav.jds-user-menu a.active,.jds-user-menu a.active{background:#fff4cc;color:#8a6200;font-weight:700}.settings-nav.jds-user-menu .grp,.jds-user-menu .grp{display:block;font-size:12px;color:#98a2b3;padding:14px 12px 5px}
@media(max-width:820px){.settings-nav.jds-user-menu,.jds-user-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.settings-nav.jds-user-menu .grp,.jds-user-menu .grp{grid-column:1/-1}.settings-nav.jds-user-menu a,.jds-user-menu a{margin:0}}

/* 产品化增强 */
.jds-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:#9a6a00;text-transform:uppercase}.jds-lead{font-size:15px!important}.jds-pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:#fff7d6;color:#805c00;font-size:12px;font-weight:700}.jds-pill.green{background:#eaf8ef;color:#137a45}.jds-pill.gray{background:#f2f4f7;color:#667085}.jds-pill.dark{background:#1f2937;color:#fff}.jds-stack{display:grid;gap:16px}.jds-card-link{display:block;color:inherit;transition:.18s ease}.jds-card-link:hover{transform:translateY(-2px);border-color:#e2b500;box-shadow:0 12px 28px rgba(16,24,40,.08)}.jds-feature-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:9px}.jds-feature-list li{font-size:13px;color:#475467;padding-left:20px;position:relative;line-height:1.55}.jds-feature-list li:before{content:'✓';position:absolute;left:0;color:#9a6a00;font-weight:800}.jds-note{border:1px solid #f0d36c;background:#fff9e8;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.7;color:#694d00}.jds-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.jds-kpi{border:1px solid #e5e9ef;border-radius:14px;background:#fff;padding:18px}.jds-kpi b{display:block;font-size:24px;margin-top:6px}.jds-kpi span{font-size:12px;color:#667085}.jds-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.jds-three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.jds-five{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.jds-table{width:100%;border-collapse:collapse;font-size:12px}.jds-table th,.jds-table td{padding:12px;border-bottom:1px solid #eef1f5;text-align:left}.jds-table th{color:#667085;background:#fafbfc}.jds-table td{color:#344054}.jds-progress{height:8px;border-radius:999px;background:#eaecf0;overflow:hidden}.jds-progress>i{display:block;height:100%;background:#f7b500;border-radius:999px}.jds-code{font-family:Consolas,monospace;background:#101828;color:#f8fafc;border-radius:10px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.jds-roadmap{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.jds-roadmap .jds-card{position:relative}.jds-roadmap .status{position:absolute;right:16px;top:16px}.jds-inline-actions{display:flex;gap:8px;flex-wrap:wrap}.jds-button{border:1px solid #d0d5dd;background:#fff;color:#344054}.jds-button.primary{border-color:#f7b500}.jds-site-links a[aria-current="page"]{color:#9a6a00;font-weight:800}.jds-footer{border-top:1px solid #eaecf0;padding:28px 20px;color:#667085;font-size:12px;text-align:center;background:#fff}
@media(max-width:980px){.jds-five{grid-template-columns:repeat(2,1fr)}.jds-roadmap{grid-template-columns:repeat(2,1fr)}.jds-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.jds-two,.jds-three,.jds-five,.jds-roadmap,.jds-kpi-grid{grid-template-columns:1fr}.jds-inline-actions{flex-direction:column}.jds-inline-actions>*{width:100%}}

/* 产品闭环与信息架构统一 */
.jds-client-nav{display:flex;flex-direction:column;min-height:0}.jds-client-nav .jds-client-nav-main{display:grid;gap:2px}.jds-client-nav .jds-client-nav-bottom{display:grid;gap:2px;margin-top:auto;padding-top:14px;border-top:1px solid #eaecf0}.jds-client-nav a{gap:8px}.jds-client-nav .navico{width:18px;text-align:center;color:#98a2b3}.jds-client-nav a.active .navico{color:#8a6200}
.jd-admin-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px}.jd-admin-chip.platform{background:#111827;color:#f8fafc}.jd-admin-chip.enterprise{background:#fff4cc;color:#7a5600}
.jd-state-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.jd-state{border:1px solid #e4e7ec;border-radius:14px;padding:16px;background:#fff}.jd-state b{display:block;font-size:14px;margin-bottom:7px}.jd-state p{font-size:12px;line-height:1.65;color:#667085;margin:0}.jd-state .code{display:inline-flex;margin-top:10px;padding:3px 7px;border-radius:6px;background:#f2f4f7;color:#475467;font:11px Consolas,monospace}.jd-conn-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.jd-conn-step{min-width:132px;border:1px solid #e4e7ec;border-radius:12px;background:#fff;padding:13px}.jd-conn-step strong{display:block;font-size:13px}.jd-conn-step span{font-size:11px;color:#667085}.jd-conn-arrow{color:#98a2b3;font-size:18px}.jd-alert{border-left:3px solid #f7b500;background:#fffbeb;padding:12px 14px;border-radius:0 10px 10px 0;font-size:12px;color:#694d00;line-height:1.7}.jd-cap{margin-left:auto;font-size:10px;border:1px solid #e4c34f;color:#7a5600;border-radius:999px;padding:2px 6px;background:#fff9e8}.jd-disabled{opacity:.48;cursor:not-allowed!important}.jd-segment{display:flex;gap:4px;background:#f2f4f7;border-radius:9px;padding:3px}.jd-segment button{min-height:30px!important;height:30px!important;padding:0 10px!important;border:0!important;background:transparent!important}.jd-segment button.selected{background:#fff!important;box-shadow:0 1px 4px rgba(16,24,40,.1)!important;color:#805c00!important}.jd-form{display:grid;gap:14px}.jd-form-row{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:start}.jd-form-row label{font-size:12px;font-weight:700;color:#344054;padding-top:11px}.jd-form-row .help{font-size:11px;color:#98a2b3;margin-top:5px;line-height:1.6}.jd-form-row input,.jd-form-row select,.jd-form-row textarea{width:100%}.jd-form-row textarea{min-height:86px;padding:10px 12px}.jd-policy-builder{display:grid;gap:10px}.jd-rule{display:grid;grid-template-columns:92px 1fr 1fr auto;gap:8px;align-items:center;border:1px solid #eaecf0;border-radius:10px;padding:9px;background:#fafafa}.jd-rule .kw{font-size:11px;font-weight:800;color:#805c00}.jd-table-action{display:flex;gap:6px;flex-wrap:wrap}
/* 独立企业客户控制台：与简点平台管理员后台物理隔离 */
.ent-page{margin:0;background:#f5f7fb;min-height:100vh;color:#101828}.ent-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.ent-side{background:#172033;color:#cbd5e1;padding:20px 14px;display:flex;flex-direction:column;min-height:100vh}.ent-brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px;border-bottom:1px solid #28344a}.ent-brand img{width:38px;height:38px;border-radius:10px}.ent-brand strong{display:block;color:#fff;font-size:14px}.ent-brand small{display:block;color:#8492a8;font-size:11px}.ent-org{margin:14px 8px 8px;border:1px solid #344159;background:#1e2a41;border-radius:10px;padding:10px}.ent-org b{display:block;font-size:12px;color:#fff}.ent-org span{font-size:11px;color:#8fa0b8}.ent-nav{display:grid;gap:3px}.ent-nav .grp{font-size:11px;color:#66758e;padding:13px 10px 4px}.ent-nav a{height:40px;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:9px;color:#aab6c7;font-size:12px}.ent-nav a.active{background:#273650;color:#fff;font-weight:700}.ent-nav .ico{width:18px;text-align:center}.ent-foot{margin-top:auto;border-top:1px solid #28344a;padding:14px 8px 0;font-size:11px;color:#7f8da3}.ent-main{min-width:0}.ent-top{height:64px;border-bottom:1px solid #e4e7ec;background:#fff;display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:10}.ent-top .crumb{font-size:12px;color:#667085}.ent-top .actions{margin-left:auto;display:flex;align-items:center;gap:8px}.ent-content{padding:28px 30px 54px;max-width:1500px}.ent-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.ent-title-row h1{font-size:24px;margin:0}.ent-title-row p{font-size:12px;color:#667085;margin:7px 0 0}.ent-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.ent-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ent-grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.ent-card{background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:18px}.ent-kpi span{font-size:11px;color:#667085}.ent-kpi b{font-size:25px;display:block;margin-top:6px}.ent-card h2{font-size:15px;margin:0 0 12px}.ent-card p{font-size:12px;color:#667085;line-height:1.7}.ent-list{display:grid;gap:9px}.ent-list .row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0f2f5;padding:10px 0;font-size:12px}.ent-list .row:last-child{border-bottom:0}.ent-list .row .meta{margin-left:auto;color:#98a2b3}.ent-table{width:100%;border-collapse:collapse;font-size:12px}.ent-table th,.ent-table td{padding:11px 10px;border-bottom:1px solid #eef1f4;text-align:left}.ent-table th{background:#fafbfc;color:#667085;font-weight:650}.ent-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.ent-toolbar input{width:240px}.ent-mobile{display:none}
@media(max-width:1000px){.jd-state-grid{grid-template-columns:repeat(2,1fr)}.ent-grid-4{grid-template-columns:repeat(2,1fr)}.ent-grid-3{grid-template-columns:1fr 1fr}.ent-grid-2{grid-template-columns:1fr}}
@media(max-width:820px){.jds-client-nav{display:grid!important;grid-template-columns:1fr}.jds-client-nav .jds-client-nav-main,.jds-client-nav .jds-client-nav-bottom{grid-template-columns:repeat(4,minmax(0,1fr));border:0;padding:0}.jds-client-nav a{justify-content:center}.jds-client-nav .navico{display:none}.jd-state-grid{grid-template-columns:1fr}.jd-form-row{grid-template-columns:1fr;gap:5px}.jd-form-row label{padding:0}.jd-rule{grid-template-columns:1fr}.ent-shell{grid-template-columns:1fr}.ent-side{min-height:auto}.ent-nav{display:none}.ent-side.open .ent-nav{display:grid}.ent-org,.ent-foot{display:none}.ent-mobile{display:inline-flex;margin-left:auto}.ent-content{padding:20px 14px}.ent-grid-4,.ent-grid-3{grid-template-columns:1fr}.ent-title-row{flex-direction:column}.ent-top{padding:0 14px}}
@media(max-width:820px){.ent-card{max-width:100%;min-width:0;overflow-x:auto}.ent-table{min-width:640px}.ent-toolbar input{width:100%;min-width:0}.ent-toolbar{min-width:0}.ent-top .actions .btn{padding:0 9px}.ent-top .actions{min-width:0}.ent-top .crumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}


/* ==== JDesk Windows client shell ==== */

:root{--jds-yellow:#f7b500;--jds-yellow-2:#ffbf00;--jds-text:#101828;--jds-muted:#667085;--jds-border:#dfe4ea;--jds-bg:#f6f8fb;--jds-control-sm:32px;--jds-control-md:40px;--jds-control-lg:44px;--jds-r-sm:6px;--jds-r-md:10px;--jds-r-lg:14px;--jds-space-1:4px;--jds-space-2:8px;--jds-space-3:12px;--jds-space-4:16px;--jds-space-6:24px;--jds-space-8:32px}
*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{font-family:"Microsoft YaHei",Arial,sans-serif;color:var(--jds-text)}a{text-decoration:none}.jds-button,.btn,button,input,select,textarea{font:inherit}.jds-button,.btn,button:not(.switch):not(.jd45-mobile-menu):not(.jds-mobile-menu){min-height:var(--jds-control-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--jds-r-md);padding:0 16px;line-height:1.2}.jds-button.primary,.btn.primary{background:var(--jds-yellow);border-color:var(--jds-yellow);color:#111827}.jds-sm{height:var(--jds-control-sm)!important;min-height:var(--jds-control-sm)!important}.jds-md{height:var(--jds-control-md)!important;min-height:var(--jds-control-md)!important}.jds-lg{height:var(--jds-control-lg)!important;min-height:var(--jds-control-lg)!important}input,select,textarea{min-height:var(--jds-control-md);border:1px solid var(--jds-border);border-radius:var(--jds-r-md);padding:0 12px;background:#fff;color:var(--jds-text)}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(247,181,0,.28);outline-offset:2px}.jds-site-header{height:68px;border-bottom:1px solid #eceff3;background:rgba(255,255,255,.96);position:relative;z-index:20}.jds-site-nav{max-width:1120px;height:100%;margin:auto;padding:0 20px;display:flex;align-items:center;gap:24px}.jds-site-brand{display:flex;align-items:center;gap:10px;color:#111827;white-space:nowrap}.jds-site-brand img{width:34px!important;height:34px!important;object-fit:cover;border-radius:9px}.jds-site-brand strong{display:block;font-size:15px}.jds-site-brand small{display:block;font-size:12px;color:#7a8699}.jds-site-links{display:flex;align-items:center;gap:20px;margin-left:auto}.jds-site-links a{font-size:13px;color:#344054;white-space:nowrap}.jds-site-actions{display:flex;gap:8px}.jds-mobile-menu{display:none}.jds-site-main{min-height:calc(100vh - 68px)}.jds-page-hero{padding:72px 20px 48px;text-align:center}.jds-page-hero h1{font-size:38px;margin:0 0 14px}.jds-page-hero p{max-width:700px;margin:auto;color:var(--jds-muted);line-height:1.8}.jds-page-section{max-width:1120px;margin:0 auto;padding:32px 20px 64px}.jds-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.jds-card{background:#fff;border:1px solid #e5e9ef;border-radius:14px;padding:22px}.jds-card h3{margin:0 0 10px;font-size:17px}.jds-card p{margin:0;color:var(--jds-muted);font-size:13px;line-height:1.8}.jds-user-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:#f7f8fa}.jds-user-side{background:#fff;border-right:1px solid #e6e9ee;padding:24px 14px}.jds-user-menu a{display:flex;align-items:center;height:42px;padding:0 12px;border-radius:9px;color:#475467;font-size:13px;margin:3px 0}.jds-user-menu a.active{background:#fff4cc;color:#8a6200;font-weight:700}.jds-user-menu .grp{display:block;font-size:12px;color:#98a2b3;padding:14px 12px 5px}.jds-user-main{padding:32px;min-width:0}.jds-user-main-inner{max-width:1180px;margin:0 auto}.jds-user-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.jds-user-head h1{font-size:24px;margin:0}.jds-user-head p{font-size:13px;color:var(--jds-muted);margin:6px 0 0}
@media(max-width:820px){.jds-site-header{height:auto}.jds-site-nav{height:64px}.jds-site-links,.jds-site-actions{display:none}.jds-mobile-menu{margin-left:auto;display:inline-flex}.jds-site-header.open .jds-site-links{display:flex;position:absolute;top:64px;left:0;right:0;background:#fff;padding:12px 20px 18px;flex-direction:column;align-items:stretch;border-bottom:1px solid #e5e7eb}.jds-site-header.open .jds-site-links a{height:42px;display:flex;align-items:center}.jds-card-grid{grid-template-columns:1fr}.jds-user-shell{grid-template-columns:1fr}.jds-user-side{border-right:0;border-bottom:1px solid #e6e9ee;padding:12px}.jds-user-menu{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.jds-user-menu .grp{grid-column:1/-1}.jds-user-main{padding:20px 14px}.jds-page-hero{padding-top:48px}.jds-page-hero h1{font-size:30px}}
.settings-nav.jds-user-menu,.jds-user-menu{display:block}.settings-nav.jds-user-menu a,.jds-user-menu a{display:flex;align-items:center;height:42px;padding:0 12px;border-radius:9px;color:#475467;font-size:13px;margin:3px 0;text-decoration:none}.settings-nav.jds-user-menu a.active,.jds-user-menu a.active{background:#fff4cc;color:#8a6200;font-weight:700}.settings-nav.jds-user-menu .grp,.jds-user-menu .grp{display:block;font-size:12px;color:#98a2b3;padding:14px 12px 5px}
@media(max-width:820px){.settings-nav.jds-user-menu,.jds-user-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.settings-nav.jds-user-menu .grp,.jds-user-menu .grp{grid-column:1/-1}.settings-nav.jds-user-menu a,.jds-user-menu a{margin:0}}

/* 产品化增强 */
.jds-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:#9a6a00;text-transform:uppercase}.jds-lead{font-size:15px!important}.jds-pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:#fff7d6;color:#805c00;font-size:12px;font-weight:700}.jds-pill.green{background:#eaf8ef;color:#137a45}.jds-pill.gray{background:#f2f4f7;color:#667085}.jds-pill.dark{background:#1f2937;color:#fff}.jds-stack{display:grid;gap:16px}.jds-card-link{display:block;color:inherit;transition:.18s ease}.jds-card-link:hover{transform:translateY(-2px);border-color:#e2b500;box-shadow:0 12px 28px rgba(16,24,40,.08)}.jds-feature-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:9px}.jds-feature-list li{font-size:13px;color:#475467;padding-left:20px;position:relative;line-height:1.55}.jds-feature-list li:before{content:"✓";position:absolute;left:0;color:#9a6a00;font-weight:800}.jds-note{border:1px solid #f0d36c;background:#fff9e8;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.7;color:#694d00}.jds-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.jds-kpi{border:1px solid #e5e9ef;border-radius:14px;background:#fff;padding:18px}.jds-kpi b{display:block;font-size:24px;margin-top:6px}.jds-kpi span{font-size:12px;color:#667085}.jds-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.jds-three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.jds-five{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.jds-table{width:100%;border-collapse:collapse;font-size:12px}.jds-table th,.jds-table td{padding:12px;border-bottom:1px solid #eef1f5;text-align:left}.jds-table th{color:#667085;background:#fafbfc}.jds-table td{color:#344054}.jds-progress{height:8px;border-radius:999px;background:#eaecf0;overflow:hidden}.jds-progress>i{display:block;height:100%;background:#f7b500;border-radius:999px}.jds-code{font-family:Consolas,monospace;background:#101828;color:#f8fafc;border-radius:10px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.jds-roadmap{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.jds-roadmap .jds-card{position:relative}.jds-roadmap .status{position:absolute;right:16px;top:16px}.jds-inline-actions{display:flex;gap:8px;flex-wrap:wrap}.jds-button{border:1px solid #d0d5dd;background:#fff;color:#344054}.jds-button.primary{border-color:#f7b500}.jds-site-links a[aria-current="page"]{color:#9a6a00;font-weight:800}.jds-footer{border-top:1px solid #eaecf0;padding:28px 20px;color:#667085;font-size:12px;text-align:center;background:#fff}
@media(max-width:980px){.jds-five{grid-template-columns:repeat(2,1fr)}.jds-roadmap{grid-template-columns:repeat(2,1fr)}.jds-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.jds-two,.jds-three,.jds-five,.jds-roadmap,.jds-kpi-grid{grid-template-columns:1fr}.jds-inline-actions{flex-direction:column}.jds-inline-actions>*{width:100%}}

/* 产品闭环与信息架构统一 */

.jd-admin-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:12px}.jd-admin-chip.platform{background:#111827;color:#f8fafc}.jd-admin-chip.enterprise{background:#fff4cc;color:#7a5600}
.jd-state-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.jd-state{border:1px solid #e4e7ec;border-radius:14px;padding:16px;background:#fff}.jd-state b{display:block;font-size:14px;margin-bottom:7px}.jd-state p{font-size:12px;line-height:1.65;color:#667085;margin:0}.jd-state .code{display:inline-flex;margin-top:10px;padding:3px 7px;border-radius:6px;background:#f2f4f7;color:#475467;font:11px Consolas,monospace}.jd-conn-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.jd-conn-step{min-width:132px;border:1px solid #e4e7ec;border-radius:12px;background:#fff;padding:13px}.jd-conn-step strong{display:block;font-size:13px}.jd-conn-step span{font-size:11px;color:#667085}.jd-conn-arrow{color:#98a2b3;font-size:18px}.jd-alert{border-left:3px solid #f7b500;background:#fffbeb;padding:12px 14px;border-radius:0 10px 10px 0;font-size:12px;color:#694d00;line-height:1.7}.jd-cap{margin-left:auto;font-size:10px;border:1px solid #e4c34f;color:#7a5600;border-radius:999px;padding:2px 6px;background:#fff9e8}.jd-disabled{opacity:.48;cursor:not-allowed!important}.jd-segment{display:flex;gap:4px;background:#f2f4f7;border-radius:9px;padding:3px}.jd-segment button{min-height:30px!important;height:30px!important;padding:0 10px!important;border:0!important;background:transparent!important}.jd-segment button.selected{background:#fff!important;box-shadow:0 1px 4px rgba(16,24,40,.1)!important;color:#805c00!important}.jd-form{display:grid;gap:14px}.jd-form-row{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:start}.jd-form-row label{font-size:12px;font-weight:700;color:#344054;padding-top:11px}.jd-form-row .help{font-size:11px;color:#98a2b3;margin-top:5px;line-height:1.6}.jd-form-row input,.jd-form-row select,.jd-form-row textarea{width:100%}.jd-form-row textarea{min-height:86px;padding:10px 12px}.jd-policy-builder{display:grid;gap:10px}.jd-rule{display:grid;grid-template-columns:92px 1fr 1fr auto;gap:8px;align-items:center;border:1px solid #eaecf0;border-radius:10px;padding:9px;background:#fafafa}.jd-rule .kw{font-size:11px;font-weight:800;color:#805c00}.jd-table-action{display:flex;gap:6px;flex-wrap:wrap}
/* 独立企业客户控制台：与简点平台管理员后台物理隔离 */
.ent-page{margin:0;background:#f5f7fb;min-height:100vh;color:#101828}.ent-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.ent-side{background:#172033;color:#cbd5e1;padding:20px 14px;display:flex;flex-direction:column;min-height:100vh}.ent-brand{display:flex;align-items:center;gap:10px;padding:0 8px 18px;border-bottom:1px solid #28344a}.ent-brand img{width:38px;height:38px;border-radius:10px}.ent-brand strong{display:block;color:#fff;font-size:14px}.ent-brand small{display:block;color:#8492a8;font-size:11px}.ent-org{margin:14px 8px 8px;border:1px solid #344159;background:#1e2a41;border-radius:10px;padding:10px}.ent-org b{display:block;font-size:12px;color:#fff}.ent-org span{font-size:11px;color:#8fa0b8}.ent-nav{display:grid;gap:3px}.ent-nav .grp{font-size:11px;color:#66758e;padding:13px 10px 4px}.ent-nav a{height:40px;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:9px;color:#aab6c7;font-size:12px}.ent-nav a.active{background:#273650;color:#fff;font-weight:700}.ent-nav .ico{width:18px;text-align:center}.ent-foot{margin-top:auto;border-top:1px solid #28344a;padding:14px 8px 0;font-size:11px;color:#7f8da3}.ent-main{min-width:0}.ent-top{height:64px;border-bottom:1px solid #e4e7ec;background:#fff;display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:10}.ent-top .crumb{font-size:12px;color:#667085}.ent-top .actions{margin-left:auto;display:flex;align-items:center;gap:8px}.ent-content{padding:28px 30px 54px;max-width:1500px}.ent-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.ent-title-row h1{font-size:24px;margin:0}.ent-title-row p{font-size:12px;color:#667085;margin:7px 0 0}.ent-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.ent-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ent-grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.ent-card{background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:18px}.ent-kpi span{font-size:11px;color:#667085}.ent-kpi b{font-size:25px;display:block;margin-top:6px}.ent-card h2{font-size:15px;margin:0 0 12px}.ent-card p{font-size:12px;color:#667085;line-height:1.7}.ent-list{display:grid;gap:9px}.ent-list .row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #f0f2f5;padding:10px 0;font-size:12px}.ent-list .row:last-child{border-bottom:0}.ent-list .row .meta{margin-left:auto;color:#98a2b3}.ent-table{width:100%;border-collapse:collapse;font-size:12px}.ent-table th,.ent-table td{padding:11px 10px;border-bottom:1px solid #eef1f4;text-align:left}.ent-table th{background:#fafbfc;color:#667085;font-weight:650}.ent-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.ent-toolbar input{width:240px}.ent-mobile{display:none}
@media(max-width:1000px){.jd-state-grid{grid-template-columns:repeat(2,1fr)}.ent-grid-4{grid-template-columns:repeat(2,1fr)}.ent-grid-3{grid-template-columns:1fr 1fr}.ent-grid-2{grid-template-columns:1fr}}
@media(max-width:820px){.jd-state-grid{grid-template-columns:1fr}.jd-form-row{grid-template-columns:1fr;gap:5px}.jd-form-row label{padding:0}.jd-rule{grid-template-columns:1fr}.ent-shell{grid-template-columns:1fr}.ent-side{min-height:auto}.ent-nav{display:none}.ent-side.open .ent-nav{display:grid}.ent-org,.ent-foot{display:none}.ent-mobile{display:inline-flex;margin-left:auto}.ent-content{padding:20px 14px}.ent-grid-4,.ent-grid-3{grid-template-columns:1fr}.ent-title-row{flex-direction:column}.ent-top{padding:0 14px}}
@media(max-width:820px){.ent-card{max-width:100%;min-width:0;overflow-x:auto}.ent-table{min-width:640px}.ent-toolbar input{width:100%;min-width:0}.ent-toolbar{min-width:0}.ent-top .actions .btn{padding:0 9px}.ent-top .actions{min-width:0}.ent-top .crumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Windows main client shell: one source of truth. */
:root{--jds-client-normal-w:1160px;--jds-client-normal-h:720px;--jds-client-titlebar-h:44px;--jds-client-side-w:208px;--jds-client-content-max:1320px;--jds-yellow:#f7b500;--jds-text:#1d2939;--jds-muted:#667085;--jds-border:#e4e7ec}
html:has(body.jds-client-page){overflow:hidden}
body.jds-client-page{margin:0;min-height:100vh;padding:24px;overflow:hidden;display:grid;place-items:center;background:#eef2f7;color:var(--jds-text);font-family:"Microsoft YaHei",Arial,sans-serif}
.jds-client-window{width:var(--jds-client-normal-w);min-width:var(--jds-client-normal-w);max-width:var(--jds-client-normal-w);height:var(--jds-client-normal-h);min-height:var(--jds-client-normal-h);max-height:var(--jds-client-normal-h);margin:0;display:grid;grid-template-columns:var(--jds-client-side-w) minmax(0,1fr);grid-template-rows:var(--jds-client-titlebar-h) minmax(0,1fr);border:1px solid #d8dee8;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 22px 56px rgba(16,24,40,.16);resize:none}
.jds-window-titlebar{grid-column:1/-1;grid-row:1;height:var(--jds-client-titlebar-h);display:flex;align-items:center;min-width:0;padding-left:14px;border-bottom:1px solid #e8ecf2;background:#fff;color:#344054;user-select:none;-webkit-user-select:none}
.jds-window-caption{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:#667085}.jds-window-caption img{width:20px;height:20px;border-radius:6px;object-fit:cover}.jds-window-caption strong{font-size:12px;color:#344054;white-space:nowrap}.jds-window-caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jds-window-controls{margin-left:auto;height:100%;display:flex;align-items:stretch}.jds-window-control{width:46px;height:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:#667085;font-size:15px;line-height:1;cursor:pointer}.jds-window-control:hover{background:#f2f4f7;color:#101828}.jds-window-control.close:hover{background:#e81123;color:#fff}
.jds-client-side{grid-column:1;grid-row:2;width:var(--jds-client-side-w);min-width:var(--jds-client-side-w);height:auto;min-height:0;padding:16px 12px;border-right:1px solid #e8edf4;display:flex;flex-direction:column;overflow:hidden;background:#f8fafc}.jds-client-brand{height:62px;min-height:62px;padding:4px 8px 14px;gap:10px;display:flex;align-items:center}.jds-client-brand img{width:34px;height:34px;border-radius:9px}.jds-client-brand strong{display:block;font-size:14px}.jds-client-brand small{display:block;font-size:11px;color:#98a2b3}
.jds-client-nav{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow:hidden}.jds-client-nav-main,.jds-client-nav-bottom{display:grid;grid-template-columns:1fr;gap:2px}.jds-client-nav-bottom{margin-top:auto;padding-top:12px;border-top:1px solid #eaecf0}.jds-client-nav a{width:100%;height:40px;min-height:40px;margin:2px 0;padding:0 12px;display:flex;align-items:center;gap:9px;border-radius:9px;justify-content:flex-start;white-space:nowrap;color:#5a6677;font-size:13px;transition:none}.jds-client-nav a.active{background:#fff4cc;color:#8a6200;font-weight:700}.jds-client-nav .navico{display:inline-block;width:18px;flex:0 0 18px;text-align:center}.jds-client-foot{margin-top:10px;padding:8px 10px 2px;line-height:1.45;white-space:normal;font-size:11px;color:#7a8798}
.jds-client-main{grid-column:2;grid-row:2;position:relative;width:auto;min-width:0;height:auto;min-height:0;padding:24px 30px 26px;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;background:#fff}.jds-client-main>*{max-width:var(--jds-client-content-max);margin-left:auto;margin-right:auto}.jds-client-title{font-size:22px;margin:0 0 18px}.jds-client-homegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.jds-client-card{border:1px solid #e4e8ef;border-radius:14px;padding:20px;background:#fff}.jds-id{font-size:28px;font-weight:800;letter-spacing:2px;margin:14px 0}.jds-connect-row{display:flex;gap:8px}.jds-connect-row input{flex:1;min-width:0}.jds-recent{margin-top:18px}.jds-recent-item{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eef1f5;padding:12px 0;font-size:13px}.jds-statusbar{display:flex;gap:18px;flex-wrap:wrap;row-gap:6px;font-size:12px;color:#667085;margin-top:18px}.jds-inline-result{margin-top:12px;padding:10px 12px;border-radius:9px;background:#f2f4f7;color:#344054;font-size:12px}
body.jds-window-maximized{padding:0;place-items:stretch;background:#fff}body.jds-window-maximized .jds-client-window{width:100vw;min-width:100vw;max-width:100vw;height:100vh;min-height:100vh;max-height:100vh;border:0;border-radius:0;box-shadow:none}body.jds-window-maximized .jds-client-main{padding:28px clamp(30px,3.2vw,52px) 34px}
/* Native main client is not a phone-responsive web app. If work area is too small, runtime must maximize. */
@media(max-width:1180px),(max-height:760px){body.jds-client-page{padding:0;place-items:stretch}.jds-client-window{width:100vw;min-width:100vw;max-width:100vw;height:100vh;min-height:100vh;max-height:100vh;border-radius:0;border:0;box-shadow:none}}
/* Login uses the same 1160×720 shell without authenticated navigation. */
.jds-client-window.jds-client-login-window{grid-template-columns:1fr}.jds-client-login-content{grid-column:1;grid-row:2;min-width:0;min-height:0;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;overflow:hidden}.jds-client-login-hero{padding:48px 54px;background:linear-gradient(145deg,#fffdf6,#fff4cf);display:flex;flex-direction:column}.jds-client-login-brand{display:flex;align-items:center;gap:12px}.jds-client-login-brand img{width:42px;height:42px;border-radius:11px}.jds-client-login-brand strong{display:block;font-size:17px}.jds-client-login-brand span{display:block;font-size:12px;color:#667085;margin-top:2px}.jds-client-login-copy{margin:auto 0}.jds-client-login-copy h1{font-size:30px;line-height:1.35;margin:0 0 14px}.jds-client-login-copy p{font-size:13px;line-height:1.8;color:#667085;max-width:470px}.jds-client-login-points{display:grid;gap:10px;margin-top:24px;color:#475467;font-size:12px}.jds-client-login-panel{display:grid;place-items:center;padding:42px}.jds-client-login-card{width:min(380px,100%)}.jds-client-login-card h2{font-size:22px;margin:0 0 6px}.jds-client-login-card>p{font-size:12px;color:#667085;margin:0 0 22px}.jds-client-login-card label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#475467;margin-top:14px}.jds-client-login-card input{width:100%;height:42px}.jds-client-login-meta{display:flex;justify-content:space-between;font-size:12px;color:#667085;margin:12px 0 18px}.jds-client-login-submit{width:100%;height:42px}.jds-client-login-register{text-align:center;font-size:12px;color:#667085;margin:20px 0}.jds-client-login-card small{display:block;text-align:center;color:#98a2b3}
/* Windows native behavior cards */
.jd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.jd-kv{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 16px;font-size:12px;line-height:1.7}.jd-kv>span{color:#667085}.jd-flow{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.jd-flow>div{flex:1;min-width:130px;border:1px solid #e4e7ec;border-radius:12px;padding:12px;background:#fff}.jd-flow b{display:block;font-size:12px}.jd-flow span{display:block;color:#667085;font-size:11px;margin-top:5px;line-height:1.5}.jd-pill{display:inline-flex;align-items:center;height:25px;padding:0 9px;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:11px;font-weight:700}.jd-pill.warn{background:#fffaeb;color:#b54708}.jd-pill.gray{background:#f2f4f7;color:#475467}.jd-table{width:100%;border-collapse:collapse;font-size:12px}.jd-table th,.jd-table td{padding:10px;border-bottom:1px solid #eef1f4;text-align:left}.jd-table th{background:#fafbfc;color:#667085}.jd-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* simulated hidden-to-tray state */
.jds-client-tray-overlay{display:none;position:fixed;right:18px;bottom:18px;width:315px;border:1px solid #d0d5dd;border-radius:14px;background:#fff;box-shadow:0 22px 54px rgba(16,24,40,.22);padding:14px;z-index:30000}.jds-window-hidden .jds-client-window{visibility:hidden}.jds-window-hidden .jds-client-tray-overlay{display:block}


/* ==== JDesk platform admin shell ==== */

/* Platform admin shell; menu is static HTML, never rebuilt from button text. */
.admin-shell{grid-template-columns:240px minmax(0,1fr)!important}.admin-side{width:240px!important;min-width:240px!important;overflow-y:auto;scrollbar-gutter:stable}.jdesk-admin-native{display:grid!important;gap:2px!important}.jdesk-admin-group{font-size:11px!important;color:#8a96a8!important;padding:12px 11px 4px!important}.jdesk-admin-native a{min-height:40px!important;height:40px!important;margin:0!important;padding:0 11px!important;border-radius:8px!important;display:flex!important;align-items:center!important;gap:8px!important;color:#5f6b7a!important;font-size:12px!important}.jdesk-admin-native a.active{background:#fff4cc!important;color:#8a6200!important;font-weight:700!important}.jdesk-admin-menu-icon{width:18px!important;text-align:center!important}.admin-main{min-width:0!important;overflow:auto!important;scrollbar-gutter:stable}.admin-top{left:240px!important}.admin-side .brand{position:sticky;top:0;background:inherit;z-index:2}
@media(max-width:900px){.admin-shell{grid-template-columns:1fr!important}.admin-side{width:auto!important;min-width:0!important;position:relative!important}.jdesk-admin-native{display:none!important}.admin-side.open .jdesk-admin-native{display:grid!important}.admin-top{left:0!important}.admin-main{padding-left:16px!important;padding-right:16px!important}}


/* ==== JDesk enterprise console shell ==== */

/* Enterprise tenant shell */
.ent-shell{grid-template-columns:240px minmax(0,1fr)!important}.ent-side{width:240px!important;min-width:240px!important;overflow-y:auto;scrollbar-gutter:stable}.ent-nav{display:grid;gap:2px}.ent-nav .grp{padding:11px 10px 4px}.ent-nav a{min-height:40px}.ent-content{max-width:1520px;width:100%;margin:0 auto}.ent-top{padding-left:30px;padding-right:30px}.ent-table-wrap{overflow:auto;scrollbar-gutter:stable}.ent-bulkbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #f0d77a;background:#fff9df;border-radius:10px;margin-bottom:12px;font-size:12px}.ent-bulkbar strong{margin-right:auto}.ent-code{font-family:Consolas,monospace;font-size:11px;background:#101828;color:#d0d5dd;border-radius:10px;padding:12px;line-height:1.7;overflow:auto}.ent-risk-high{color:#b42318;font-weight:700}.ent-risk-mid{color:#b54708;font-weight:700}.ent-risk-ok{color:#027a48;font-weight:700}
@media(max-width:900px){.ent-shell{grid-template-columns:1fr!important}.ent-side{width:auto!important;min-width:0!important}.ent-content{padding:20px 14px!important}.ent-top{padding:0 14px!important}}


/* ==== JDesk website shell ==== */

/* Shared website Header/Footer */
.jd-site-header{height:68px;border-bottom:1px solid #eaecf0;background:rgba(255,255,255,.97);position:relative;z-index:100;backdrop-filter:blur(10px)}.jd-site-nav{max-width:1180px;height:100%;margin:auto;padding:0 20px;display:flex;align-items:center;gap:24px}.jd-site-brand{display:flex;align-items:center;gap:10px;color:#101828;white-space:nowrap}.jd-site-brand img{width:34px;height:34px;border-radius:9px}.jd-site-brand strong{font-size:15px}.jd-site-brand small{display:block;font-size:11px;color:#98a2b3}.jd-site-links{display:flex;align-items:center;gap:20px;margin-left:auto}.jd-site-links a{font-size:13px;color:#475467}.jd-site-links a.active{font-weight:700;color:#8a6200}.jd-site-actions{display:flex;gap:8px}.jd-site-actions a{height:38px;display:inline-flex;align-items:center;padding:0 14px;border:1px solid #d0d5dd;border-radius:9px;color:#344054;font-size:12px}.jd-site-actions .primary{background:#f7b500;border-color:#f7b500;color:#1d2433;font-weight:700}.jd-site-menu{display:none;margin-left:auto}.jd-site-footer{background:#101828;color:#d0d5dd;padding:46px 20px 24px;margin-top:58px}.jd-site-footer-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:28px}.jd-site-footer b{display:block;color:#fff;font-size:12px;margin-bottom:10px}.jd-site-footer a{display:block;color:#98a2b3;font-size:12px;margin:8px 0}.jd-site-footer-brand{display:flex;gap:10px;align-items:center}.jd-site-footer-brand img{width:36px;height:36px;border-radius:9px}.jd-site-footer-brand strong{display:block;color:#fff;font-size:14px}.jd-site-footer-brand small{display:block;color:#667085;font-size:11px}.jd-site-footer-bottom{max-width:1180px;margin:30px auto 0;padding-top:18px;border-top:1px solid #253044;display:flex;justify-content:space-between;font-size:11px;color:#667085}
@media(max-width:820px){.jd-site-header{height:auto}.jd-site-nav{height:64px}.jd-site-links,.jd-site-actions{display:none}.jd-site-menu{display:inline-flex;height:36px;border:1px solid #d0d5dd;background:#fff;border-radius:8px;padding:0 12px}.jd-site-header.open .jd-site-links{display:flex;position:absolute;left:0;right:0;top:64px;background:#fff;border-bottom:1px solid #eaecf0;flex-direction:column;align-items:stretch;padding:10px 20px 18px}.jd-site-header.open .jd-site-links a{height:38px;display:flex;align-items:center}.jd-site-footer-grid{grid-template-columns:1fr 1fr}.jd-site-footer-grid>div:first-child{grid-column:1/-1}.jd-site-footer-bottom{flex-direction:column;gap:8px}}


/* ==== JDesk remote session shell ==== */

*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:"Microsoft YaHei",Arial,sans-serif}body.jds-remote-page{overflow:hidden;background:#0f141d;color:#e7ecf4}.jds-remote-window{position:fixed;inset:0;display:grid;grid-template-rows:42px 52px minmax(0,1fr) 34px;background:#111827;min-width:760px;min-height:520px}.jds-remote-titlebar{display:flex;align-items:center;padding-left:14px;background:#f8fafc;border-bottom:1px solid #cbd5e1;color:#475569;font-size:12px;user-select:none}.jds-remote-titlebar img{width:19px;height:19px;border-radius:5px;margin-right:8px}.jds-remote-titlebar .secure{color:#16834a;margin-left:14px}.jds-remote-window-actions{margin-left:auto;height:100%;display:flex}.jds-remote-window-actions button{width:46px;height:100%;min-height:0;border:0;border-radius:0;background:transparent;color:#64748b}.jds-remote-window-actions button:hover{background:#e8edf3}.jds-remote-window-actions .close:hover{background:#e81123;color:#fff}
.jds-remote-toolbar{display:flex;align-items:center;gap:7px;padding:0 12px;background:#1a2230;border-bottom:1px solid #2e3949;min-width:0}.jds-remote-toolbar .session{font-size:12px;font-weight:700;margin-right:5px;white-space:nowrap}.jds-remote-toolbar .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;margin-right:7px}.jds-remote-toolbar button,.jds-remote-toolbar a{height:32px;min-height:32px;border:1px solid #344154;background:#222c3c;color:#d8e0ea;border-radius:8px;padding:0 10px;font-size:12px;display:inline-flex;align-items:center}.jds-remote-toolbar button:hover{background:#2b384b}.jds-remote-toolbar .end{margin-left:auto;color:#fecaca;border-color:#6b3340;background:#38202a}.jds-remote-canvas{position:relative;overflow:hidden;background:#0b111a}.jds-remote-screen{position:absolute;inset:18px 22px 18px;border:1px solid #344153;border-radius:10px;overflow:hidden;background:linear-gradient(145deg,#dbe7f5,#c5d4e7);transform-origin:center}.jds-remote-screen[data-view="fit"]{inset:18px 22px}.jds-remote-screen[data-view="aspect"]{width:min(calc(100% - 44px),calc((100vh - 164px)*16/9));height:auto;aspect-ratio:16/9;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.jds-remote-screen[data-view="fill"]{inset:0;border-radius:0;border:0}.jds-remote-screen[data-view="pixel"]{width:1920px;height:1080px;inset:50% auto auto 50%;transform:translate(-50%,-50%) scale(.56)}.jds-remote-screen:after{content:'';position:absolute;width:330px;height:330px;border-radius:50%;right:8%;top:10%;background:linear-gradient(145deg,#ffc832,#ffe7a0);opacity:.9}.jds-remote-app{position:absolute;z-index:2;left:8%;top:10%;width:min(62%,760px);height:56%;min-height:310px;border-radius:12px;background:#fff;border:1px solid #cbd5e1;box-shadow:0 22px 55px rgba(51,65,85,.22);overflow:hidden;color:#475569}.jds-remote-app-head{height:42px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 14px;font-size:12px;font-weight:700}.jds-remote-app-body{display:grid;grid-template-columns:150px 1fr;height:calc(100% - 42px)}.jds-remote-app-side{border-right:1px solid #e2e8f0;padding:14px;background:#fbfdff}.jds-remote-app-side i{display:block;height:10px;border-radius:8px;background:#e2e8f0;margin-bottom:12px}.jds-remote-app-side i:first-child{height:30px;background:#ffe39a}.jds-remote-doc{padding:22px}.jds-remote-doc h2{margin:0 0 9px;color:#334155;font-size:18px}.jds-remote-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.jds-remote-metrics div{padding:13px;border:1px solid #e2e8f0;border-radius:9px;background:#fbfcfe;font-size:11px}.jds-remote-statusbar{display:flex;align-items:center;gap:18px;padding:0 14px;background:#141c28;border-top:1px solid #293648;color:#94a3b8;font-size:11px}.jds-remote-statusbar b{color:#86efac}.jds-remote-panel{display:none;position:absolute;z-index:20;top:8px;left:12px;width:345px;max-height:calc(100% - 16px);overflow:auto;background:#fff;color:#344054;border:1px solid #d0d5dd;border-radius:12px;box-shadow:0 20px 55px rgba(0,0,0,.3);padding:12px}.jds-remote-panel.open{display:block}.jds-remote-panel h4{margin:0 0 9px;font-size:13px}.jds-remote-option{width:100%;min-height:36px;border:0;border-radius:8px;background:transparent;justify-content:flex-start;text-align:left;padding:0 10px;color:#475467;font-size:12px}.jds-remote-option:hover,.jds-remote-option.selected{background:#fff6d8;color:#8a6200}.jds-remote-section{padding:8px 0;border-top:1px solid #eef1f4}.jds-remote-section:first-of-type{border:0}.jds-remote-row{display:grid;grid-template-columns:92px 1fr;gap:8px;align-items:center;margin:8px 0;font-size:11px}.jds-remote-row select{height:34px;min-height:34px}.jds-remote-cap{float:right;color:#98a2b3}.jds-remote-toast{position:absolute;right:18px;bottom:18px;z-index:50;background:rgba(15,23,42,.94);border:1px solid #334155;color:#e2e8f0;border-radius:10px;padding:10px 12px;font-size:11px;opacity:0;transform:translateY(6px);transition:.15s}.jds-remote-toast.show{opacity:1;transform:none}
@media(max-width:900px){.jds-remote-toolbar button{padding:0 7px}.jds-remote-toolbar .optional{display:none}.jds-remote-app{left:4%;width:72%}}


/* ==== V4.32 single design system / Element-style dimensional contract ==== */
:root{
  --jd-color-primary:#f7b500;--jd-color-primary-hover:#e8aa00;--jd-color-text:#1f2937;--jd-color-text-2:#475467;--jd-color-muted:#667085;
  --jd-color-border:#dcdfe6;--jd-color-border-light:#ebeef5;--jd-color-bg:#f5f7fa;--jd-color-bg-soft:#fafafa;--jd-color-danger:#f56c6c;--jd-color-success:#67c23a;--jd-color-warning:#e6a23c;
  --jd-control-small:24px;--jd-control-default:32px;--jd-control-large:40px;--jd-radius:6px;--jd-radius-card:10px;
  --jd-icon:16px;--jd-menu-icon:16px;--jd-menu-height:40px;--jd-table-head:40px;--jd-table-row:44px;
  --jd-sidebar-client:208px;--jd-sidebar-admin:240px;--jd-sidebar-enterprise:240px;--jd-titlebar-client:44px;
  --jd-font:13px;--jd-font-small:12px;--jd-shadow-popup:0 12px 32px rgba(16,24,40,.16)
}
html,body{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;-webkit-font-smoothing:antialiased}
/* controls: one dimensional system */
button,.btn,.btnx,.jds-button,.jdesk-table-action,.jd-site-actions a,.jds-site-actions a,.jds-inline-actions a,.jds-inline-actions button{
  min-height:var(--jd-control-default)!important;height:var(--jd-control-default)!important;line-height:30px!important;padding:0 12px!important;border-radius:var(--jd-radius)!important;font-size:var(--jd-font)!important;font-weight:500!important;gap:6px!important;box-sizing:border-box!important;white-space:nowrap
}
button,.btn,.btnx,.jds-button,.jdesk-table-action{border:1px solid var(--jd-color-border);background:#fff;color:var(--jd-color-text-2)}
button:hover:not(:disabled),.btn:hover,.btnx:hover,.jds-button:hover{border-color:#d3a500;color:#8a6200}
button.primary,.btn.primary,.btnx.primary,.jds-button.primary{background:var(--jd-color-primary)!important;border-color:var(--jd-color-primary)!important;color:#111827!important}
button.danger,.btn.danger,.btnx.danger{color:#c45656!important;border-color:#fbc4c4!important;background:#fef0f0!important}
button:disabled,.btn[aria-disabled="true"],.jdesk-demo-unavailable{opacity:.5!important;cursor:not-allowed!important}
.jds-sm,.small-btn,.btn-sm{height:var(--jd-control-small)!important;min-height:var(--jd-control-small)!important;line-height:22px!important;padding:0 8px!important;font-size:12px!important}
.jds-lg,.large-btn,.btn-lg{height:var(--jd-control-large)!important;min-height:var(--jd-control-large)!important;line-height:38px!important;padding:0 16px!important;font-size:14px!important}
input:not([type="checkbox"]):not([type="radio"]),select,.input,input.input,textarea{
  min-height:var(--jd-control-default)!important;height:var(--jd-control-default)!important;border:1px solid var(--jd-color-border)!important;border-radius:var(--jd-radius)!important;padding:0 11px!important;font-size:var(--jd-font)!important;line-height:30px!important;background:#fff!important;color:var(--jd-color-text)!important;box-shadow:none!important
}
textarea{height:auto!important;min-height:80px!important;line-height:1.6!important;padding:8px 11px!important;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#e0a900!important;box-shadow:0 0 0 2px rgba(247,181,0,.14)!important;outline:0!important}
.switch{width:40px!important;height:22px!important;min-height:22px!important;padding:0!important;border:0!important;border-radius:11px!important;line-height:22px!important}
.switch:after{width:18px!important;height:18px!important;top:2px!important}
/* icon contract */
.navico,.nav-sym,.jdesk-admin-menu-icon,.ent-nav .ico,.icon,.menu-icon,.quick-btn>span:first-child,.jd-site-menu:before{
  width:18px!important;min-width:18px!important;height:18px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:var(--jd-menu-icon)!important;line-height:18px!important;text-align:center!important
}
.quick-btn,.icon-btn{width:var(--jd-control-default)!important;min-width:var(--jd-control-default)!important;height:var(--jd-control-default)!important;padding:0!important;border-radius:var(--jd-radius)!important}
/* menu contract across app shells */
.jds-client-nav a,.jds-user-menu a,.settings-nav.jds-user-menu a,.jdesk-admin-native a,.jdesk-admin-unified a,.admin-menu-v314 a,.admin-nav a,.ent-nav a,.left .menu a,.user-nav a{
  min-height:var(--jd-menu-height)!important;height:var(--jd-menu-height)!important;border-radius:var(--jd-radius)!important;padding:0 12px!important;font-size:13px!important;line-height:var(--jd-menu-height)!important;display:flex!important;align-items:center!important;gap:8px!important;box-sizing:border-box!important
}
.jds-client-side{width:var(--jd-sidebar-client)!important;min-width:var(--jd-sidebar-client)!important}.jds-client-main{left:var(--jd-sidebar-client)!important}
.admin-shell{grid-template-columns:var(--jd-sidebar-admin) minmax(0,1fr)!important}.admin-side{width:var(--jd-sidebar-admin)!important;min-width:var(--jd-sidebar-admin)!important}.admin-top{left:var(--jd-sidebar-admin)!important}
.ent-shell{grid-template-columns:var(--jd-sidebar-enterprise) minmax(0,1fr)!important}.ent-side{width:var(--jd-sidebar-enterprise)!important;min-width:var(--jd-sidebar-enterprise)!important}
/* cards/tables/forms */
.card,.jds-card,.jds-client-card,.ent-card,.jdesk-card,.panel,.box{border-radius:var(--jd-radius-card)!important}
.table th,.jds-table th,.ent-table th,table th{height:var(--jd-table-head)!important;min-height:var(--jd-table-head)!important;padding:0 12px!important;font-size:12px!important;vertical-align:middle!important}
.table td,.jds-table td,.ent-table td,table td{height:var(--jd-table-row)!important;min-height:var(--jd-table-row)!important;padding:6px 12px!important;font-size:12px!important;vertical-align:middle!important}
.jdesk-table-action{height:32px!important;min-height:32px!important;line-height:30px!important;padding:0 8px!important;font-size:12px!important}
.badge,.jds-pill,.jd-admin-chip{height:24px!important;min-height:24px!important;border-radius:12px!important;padding:0 8px!important;font-size:12px!important;line-height:22px!important}
/* client fixed shell / titlebar */
.jds-client-window{width:1160px!important;height:720px!important;min-width:1160px!important;min-height:720px!important;max-width:1160px!important;max-height:720px!important}
.jds-window-titlebar{height:var(--jd-titlebar-client)!important;min-height:var(--jd-titlebar-client)!important}.jds-window-control{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border:0!important;border-radius:0!important;padding:0!important;line-height:44px!important;font-size:15px!important}
body.jds-window-maximized .jds-client-window{width:100vw!important;height:100vh!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important}
/* remote session remains independently resizable */
.jds-remote-page button,.jds-remote-page select{height:32px!important;min-height:32px!important;border-radius:6px!important}.jds-remote-toolbar button{padding:0 10px!important}.jds-remote-option{justify-content:flex-start!important;width:100%!important}
/* modal/dropdown/action components */
.jd-modal{position:fixed;inset:0;z-index:50000;background:rgba(16,24,40,.42);display:flex;align-items:center;justify-content:center;padding:24px}
.jd-modal-card{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:12px;box-shadow:var(--jd-shadow-popup);border:1px solid var(--jd-color-border-light)}
.jd-modal-card.wide{width:min(720px,calc(100vw - 32px))}.jd-modal-head{height:52px;padding:0 18px;display:flex;align-items:center;border-bottom:1px solid var(--jd-color-border-light)}.jd-modal-head b{font-size:15px}.jd-modal-close{margin-left:auto!important;width:32px!important;min-width:32px!important;height:32px!important;padding:0!important;border:0!important;background:transparent!important}
.jd-modal-body{padding:18px;display:grid;gap:14px;font-size:13px;color:var(--jd-color-text-2)}.jd-modal-actions{height:60px;padding:0 18px;display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--jd-color-border-light)}
.jd-form{display:grid;gap:12px}.jd-form label{display:grid;gap:6px;font-size:12px;color:#344054;font-weight:600}.jd-form .help{font-size:11px;color:#98a2b3;font-weight:400;line-height:1.5}.jd-danger-note{padding:10px 12px;border-radius:6px;background:#fef0f0;color:#b42318;border:1px solid #fecdca;font-size:12px;line-height:1.6}.jd-warning-note{padding:10px 12px;border-radius:6px;background:#fff7e6;color:#9a6700;border:1px solid #fde3a7;font-size:12px;line-height:1.6}
.jd-action-menu{position:fixed;z-index:51000;width:190px;background:#fff;border:1px solid var(--jd-color-border-light);border-radius:8px;box-shadow:var(--jd-shadow-popup);padding:5px}.jd-action-menu button{width:100%!important;justify-content:flex-start!important;border:0!important;background:#fff!important;height:32px!important;min-height:32px!important;padding:0 10px!important}.jd-action-menu button:hover{background:#f5f7fa!important}.jd-action-menu button.danger{color:#c45656!important}.jd-action-menu .sep{height:1px;background:#ebeef5;margin:5px}
.jd-progress{height:8px;border-radius:4px;background:#ebeef5;overflow:hidden}.jd-progress i{display:block;height:100%;background:var(--jd-color-primary);width:0;transition:.25s}.jd-result{padding:12px;border-radius:8px;background:#f5f7fa}.jd-result.ok{background:#f0f9eb;color:#3b7a26}.jd-result.error{background:#fef0f0;color:#b42318}
.jd-action-state{display:inline-flex;align-items:center;gap:6px}.jd-action-state.locked{color:#9a6700}.jd-action-state.denied{color:#b42318}.jd-action-state.offline{color:#667085}
/* consistent responsive contract for web/admin/enterprise; Windows main client intentionally does not switch to mobile layout */
@media(max-width:900px){.admin-shell{grid-template-columns:1fr!important}.admin-side{width:auto!important;min-width:0!important}.admin-top{left:0!important}.ent-shell{grid-template-columns:1fr!important}.ent-side{width:auto!important;min-width:0!important}}
/* V4.32 eliminate legacy version-specific component visual drift */
[class*="jd-"]{--jd-legacy-normalized:1}

html:has(body.jds-remote-page),body.jds-remote-page{overflow:hidden!important;width:100vw!important;height:100vh!important}.jds-remote-window{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important}

.jd-settings-layout{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;min-height:430px}.jd-settings-nav{display:grid;align-content:start;gap:4px;border-right:1px solid #ebeef5;padding-right:14px}.jd-settings-nav button{width:100%!important;justify-content:flex-start!important;border-color:transparent!important;background:transparent!important}.jd-settings-nav button.active{background:#fff4cc!important;color:#8a6200!important}.jd-settings-content{min-width:0}.jd-settings-content h2{font-size:15px;margin:0 0 14px}.jd-settings-form{display:grid;gap:10px}.jd-settings-form>label{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:14px;font-size:12px;color:#344054}.jd-settings-actions{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid #ebeef5}.jd-settings-actions span{font-size:11px;color:#98a2b3}.jd-capability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.jd-capability-grid>div{border:1px solid #ebeef5;border-radius:8px;padding:12px;display:grid;gap:6px;font-size:12px}.jd-capability-grid .ok{color:#3b7a26}.jd-capability-grid .warn{color:#b7791f}.jd-state-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.jd-state-card{min-height:92px;border:1px solid #ebeef5;border-radius:8px;padding:12px;display:grid;align-content:center;gap:6px}.jd-state-card b{font-size:13px}.jd-state-card span{font-size:11px;color:#667085}.jd-state-card.error{background:#fef0f0}.jd-state-card.denied{background:#f5f7fa}

/* V4.32 standardized line-icon geometry */
.jd-menu-svg,.navico svg,.nav-sym svg,.jdesk-admin-menu-icon svg,.ent-nav .ico svg,.menu-icon svg,.icon svg{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;display:block!important;stroke-width:1.8!important;flex:0 0 16px!important}
