:root{--brand:#7654a9;--brand-dark:#62418f;--brand-soft:#f2ebfa;--brand-tint:#f6f1ff;--text:#2f263b;--text-2:#746d7d;--text-3:#a095ae;--line:#e9e1f5;--ground:#f7f5fb;--danger:#e0503c;--ok:#2f9e63}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--ground);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,select,textarea{font:inherit;color:inherit}.layout{height:100vh;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex:0 0 210px;width:210px;display:flex}.logo{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:18px 16px;display:flex}.logo-mark{color:#fff;background:linear-gradient(135deg,#8e6cc0,#7654a9);border-radius:9px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.logo-text b{font-size:14px;display:block}.logo-text span{color:var(--text-3);font-size:11px}.nav{flex:1;padding:10px 8px;overflow-y:auto}.nav-group{color:var(--text-3);letter-spacing:.5px;padding:12px 10px 6px;font-size:11px;font-weight:700}.nav-item{width:100%;color:var(--text-2);text-align:left;border-radius:9px;align-items:center;gap:9px;padding:9px 12px;font-size:13px;display:flex}.nav-item:hover{background:var(--brand-tint);color:var(--brand)}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:700}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:#fff;flex:0 0 54px;justify-content:space-between;align-items:center;height:54px;padding:0 20px;display:flex}.topbar h1{margin:0;font-size:15px}.content{flex:1;padding:20px;overflow-y:auto}.card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px}.card+.card{margin-top:16px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ops-cell{white-space:nowrap}.ops-cell .btn+.btn{margin-left:8px}tbody tr.row-on{background:#f6f1ff}.card-head h2{margin:0;font-size:14px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{background:var(--brand);color:#fff;border-radius:8px;align-items:center;gap:5px;height:32px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{background:var(--brand-dark)}.btn.ghost{color:var(--text-2);border:1px solid var(--line);background:#fff}.btn.ghost:hover{color:var(--brand);border-color:var(--brand)}.btn.danger{color:var(--danger);background:#fff;border:1px solid #f3d3cc}.btn.danger:hover{background:#fdf1ef}.btn.sm{border-radius:6px;height:26px;padding:0 9px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.input,.select,.textarea{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;min-width:120px;height:32px;padding:0 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand)}.textarea{resize:vertical;width:100%;height:auto;min-height:70px;padding:8px 10px}.combo{position:relative}.combo-input{align-items:center;gap:4px;display:flex}.combo-input .input{flex:1;min-width:0}.combo-arrow{border:1px solid var(--line);width:26px;height:32px;color:var(--text-3);cursor:pointer;background:#fff;border-radius:8px;flex:none;font-size:11px;line-height:1}.combo-arrow:hover{border-color:var(--brand);color:var(--brand)}.combo-menu{z-index:20;border:1px solid var(--line);background:#fff;border-radius:10px;max-height:220px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 28px -12px #140c2359}.combo-item{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:7px;padding:7px 10px;font-size:13px;overflow:hidden}.combo-item:hover{background:var(--brand-tint)}.combo-item.on{background:var(--brand-tint);font-weight:600}.combo-item.new{color:var(--brand);border-top:1px solid var(--line);margin-top:4px;padding-top:8px;font-weight:600}.combo-item.disabled{color:var(--text-3);cursor:default;font-size:12px}.combo-item.disabled:hover{background:0 0}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #f2ecfb;padding:10px 8px}th{color:var(--text-3);white-space:nowrap;font-size:12px;font-weight:600}tbody tr:hover{background:#fcfaff}.thumb{object-fit:cover;background:var(--brand-tint);border-radius:8px;width:44px;height:44px}.avatar{object-fit:cover;background:var(--brand-tint);border-radius:50%;width:34px;height:34px}.muted{color:var(--text-3);font-size:12px}.tag{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.tag.on{color:var(--ok);background:#e9f7ef}.tag.busy{color:#8b8497;background:#f1eff5}.tag.off{color:var(--text-3);background:#f4f2f7}.tag.warn{color:#c9812f;background:#fdf3e6}.tag.info{background:var(--brand-soft);color:var(--brand)}.pager{color:var(--text-2);justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:16px}.stat-label{color:var(--text-3);font-size:12px}.stat-value{color:var(--brand);margin-top:6px;font-size:22px;font-weight:700}.modal-mask{z-index:50;background:#1e162d6b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:100%;max-width:620px;max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px -20px #140c2366}.modal.modal-wide{max-width:860px}.modal.modal-xl{max-width:min(1180px,96vw)}.slot-row{grid-template-columns:42px 1fr 118px 132px 96px 34px;align-items:center;gap:8px;margin-bottom:6px;display:grid}.slot-row .slot-no{color:var(--text-3);text-align:center;font-size:12px}.slot-block{border:1px solid var(--line);background:#fcfbff;border-radius:10px;margin-bottom:10px;padding:10px 12px}.slot-block-head{align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.slot-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.modal-head{border-bottom:1px solid var(--line);background:#fff;border-radius:14px 14px 0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.modal-head h3{margin:0;font-size:15px}.modal-body{padding:18px 20px}.modal-foot{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex;position:sticky;bottom:0}.form{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--text-2);font-size:12px;font-weight:600}.field .hint{color:var(--text-3);font-size:11px}.readonly-box{border:1px dashed var(--line);background:#fafafa;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:32px;padding:6px 10px;font-size:13px;display:flex}.readonly-box .sep{color:var(--text-3)}.opt-row{grid-template-columns:1fr 110px 90px 30px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.picker{border:1px solid var(--border,#e6e0ee);background:#fbf9fd;border-radius:10px;padding:10px}.picker-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.picker-head .input{flex:1}.picker-list{border:1px solid var(--border,#eee6f5);background:#fff;border-radius:8px;max-height:220px;padding:4px;overflow:auto}.picker-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.picker-item input[type=checkbox]{margin:0}.picker-name{font-weight:600}.empty{text-align:center;color:var(--text-3);padding:40px 0;font-size:13px}.error-banner{color:var(--danger);background:#fdf1ef;border:1px solid #f3d3cc;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:13px}.login-page{background:linear-gradient(135deg,#f6f1ff 0%,#eef4ff 100%);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;gap:8px;width:340px;padding:26px 24px 20px;display:flex;box-shadow:0 18px 40px #7654a91f}.login-logo{align-items:center;gap:10px;margin-bottom:12px;display:flex}.login-logo b{font-size:15px;display:block}.login-logo span{color:var(--text-3);font-size:12px}.login-label{color:var(--text-2);margin-top:6px;font-size:12px;font-weight:600}.login-btn{border-radius:9px;width:100%;height:38px;margin-top:16px}.login-err{color:var(--danger);background:#fdf1ef;border:1px solid #f3d3cc;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:12px}.login-tip{text-align:center;color:var(--text-3);margin-top:8px;font-size:11px}.topbar-right{align-items:center;gap:10px;display:flex}.user-chip{color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:4px 10px;font-size:12px}.upload-field{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.upload-box{background:var(--brand-tint);cursor:pointer;border:1px dashed #cfc3e2;border-radius:10px;flex:none;place-items:center;transition:border-color .15s,background .15s;display:grid;position:relative;overflow:hidden}.upload-box.thumb{width:84px;height:84px}.upload-box.avatar{border-radius:50%;width:72px;height:72px}.upload-box.wide{width:160px;height:90px}.upload-box:hover,.upload-box.dragging{border-color:var(--brand);background:#efe7fb}.upload-preview{object-fit:cover;width:100%;height:100%;display:block}.upload-placeholder{color:var(--text-3);text-align:center;padding:0 6px;font-size:11px}.upload-mask{color:#fff;background:#2f263b8c;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.upload-meta{flex-direction:column;flex:1;gap:8px;min-width:200px;display:flex}.upload-actions{gap:8px;display:flex}.upload-err{color:var(--danger);font-size:11px}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tab{color:var(--text-2);cursor:pointer;background:#fff;border:1px solid #e3d9f1;border-radius:999px;padding:7px 16px;font-size:13px;transition:all .15s}.tab:hover{border-color:var(--brand);color:var(--brand)}.tab.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.wb-stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.wb-stat{background:#fff;border:1px solid #ece8f3;border-radius:14px;padding:14px 16px}.wb-stat b{color:#5b3f92;margin-top:4px;font-size:24px;display:block}.wb-stat span{color:#8a8399;font-size:12px}.wb-stat.warn b{color:#d9822b}.wb-stat.good b{color:#1f9d61}.wb-howto{color:#6b6280;background:#faf7ff;border:1px dashed #d9cdf0;border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:13px;line-height:1.9}.wb-howto b{color:#5b3f92}.wb-badge{color:#fff;text-align:center;background:#ef4b6e;border-radius:9px;min-width:18px;margin-left:6px;padding:0 6px;font-size:11px;line-height:18px;display:inline-block}.game-picker{flex-wrap:wrap;gap:8px;display:flex}.game-opt{border:1px solid var(--line);color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.game-opt input{display:none}.game-opt.on{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-dark);font-weight:700}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 18px;display:grid}.detail-grid .k{color:#8a8399;font-size:12px}.detail-grid .v{color:#2f263b;font-size:14px;font-weight:600}.money-box{background:#f7f4ff;border:1px solid #e4dbf5;border-radius:12px;margin:14px 0;padding:14px 16px}.money-box .row{justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.money-box .row.big{color:#5b3f92;font-size:17px;font-weight:800}.timeline{border-left:2px solid #e6e0f2;margin-top:8px;padding-left:14px}.timeline .item{color:#4a4258;padding:6px 0 10px;font-size:13px;position:relative}.timeline .item:before{content:"";background:#9b7bd4;border-radius:50%;width:8px;height:8px;position:absolute;top:12px;left:-20px}.timeline .item .t{color:#9a93a8;margin-left:8px;font-size:12px}.picker-list{border:1px solid #ece8f3;border-radius:12px;max-height:320px;overflow:auto}.picker-item{cursor:pointer;border-bottom:1px solid #f3f0f8;align-items:center;gap:10px;padding:10px 12px;display:flex}.picker-item:last-child{border-bottom:0}.picker-item:hover{background:#faf7ff}.picker-item.on{background:#f1eaff}.picker-item.disabled{opacity:.45;cursor:not-allowed;background:#fbfafc}.rate-cell{justify-content:flex-end;align-items:center;gap:4px;width:96px;display:flex}.rate-input{text-align:right;padding:4px 6px;width:72px!important}.picker-item.disabled:hover{background:#fbfafc}.picker-item.disabled.on{background:#f1eaff}.picker-item img,.picker-item .ph{object-fit:cover;background:#eee;border-radius:50%;width:34px;height:34px}.img-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.img-row img{object-fit:cover;border:1px solid #ece8f3;border-radius:10px;width:84px;height:84px}.tree{border:1px solid #f1ecfa;border-radius:12px;overflow:hidden}.tree-row{border-bottom:1px solid #f3f0f8;align-items:center;gap:8px;padding:9px 12px;font-size:13px;display:flex}.tree-row:last-child{border-bottom:0}.tree-row .name{flex:1;align-items:center;gap:7px;min-width:0;display:flex}.tree-row .col{color:#6b6280;flex:none;width:118px}.tree-row .ops{text-align:right;white-space:nowrap;flex:none;width:300px}.cfg-tip{border:1px solid var(--line,#2c2450);background:#4da3ff14;border-radius:10px;margin:0 16px 12px;padding:10px 12px;font-size:13px;line-height:1.7}.cfg-cur{opacity:.75;font-size:12px}.cfg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.cfg-item{border:1px solid var(--line);background:#fdfcff;border-radius:10px;flex-direction:column;gap:10px;min-width:0;padding:12px 14px;display:flex}.cfg-item.is-wide{grid-column:1/-1}.cfg-item-head{justify-content:space-between;align-items:center;gap:10px;min-height:26px;display:flex}.cfg-item-title{color:var(--text);min-width:0;font-size:13px;font-weight:600}.cfg-item-value{min-width:0}.cfg-item-value .input,.cfg-item-value .select{width:100%}.cfg-item-value .switch-label .switch+b{margin-left:0}.cfg-item-hint{color:var(--text-2);border-top:1px dashed var(--line);padding-top:8px;font-size:12px;line-height:1.6}@media (width<=900px){.cfg-grid{grid-template-columns:minmax(0,1fr)}}.cfg-input-wrap{display:block;position:relative}.cfg-input-wrap .input{box-sizing:border-box;width:100%}.cfg-input-unit{color:var(--text-3,#8b83ab);pointer-events:none;font-size:12px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.cfg-mock-code{letter-spacing:2px;color:#ff9f43;font-family:monospace}.cfg-code-row{align-items:center;gap:10px;padding:4px 16px 14px;font-size:13px;display:flex}.cfg-code-row label{width:60px;color:var(--text-2,#b8b0d9)}.tree-row .ops .btn+.btn{margin-left:5px}.tree-row .ops .btn:disabled{opacity:.4;cursor:not-allowed}.tree-head{color:#8a8399;background:#faf7ff;font-size:12px;font-weight:600}.tree-head .name{padding-left:26px}.tree-row.group{background:#fdfbff}.tree-row.group:hover,.tree-row:not(.tree-head):hover{background:#faf7ff}.tree-tw{color:#7a6f92;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;width:18px;height:18px;font-size:12px;line-height:1}.tree-tw:hover{color:#5b3f92;background:#f1eaff}.tree-tw.placeholder{color:#cfc7e0;cursor:default}.tree-icon{object-fit:cover;border-radius:7px;flex:none;width:24px;height:24px}.tree-icon.empty-icon{background:#efeaf8;border:1px dashed #d9cdf0;display:inline-block}.tree-label{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tree-label.strong{color:#3d3350;font-size:14px}.tree-row .name .dot{background:#b9a7e0;border-radius:50%;flex:none;width:6px;height:6px}.tree-empty{color:#9a93a8;border-bottom:1px solid #f3f0f8;padding:10px 12px 12px 46px;font-size:12px}.svc-tree .tree-row .ops{width:380px}.tree-row .c-n{color:#6b6280;flex:none;width:180px}.tree-row .c-p{color:#7654a9;flex:none;width:150px;font-weight:600}.tree-row .c-s{flex:none;width:70px}.tree-row.svc{background:#fff;font-size:12.5px}.tree-row.svc:hover{background:#fcfaff}.tree-row.orphan{background:#fffdf7}.svc-thumb{object-fit:cover;background:var(--brand-tint);border-radius:8px;flex:none;width:32px;height:32px}.svc-thumb.empty{background:#f4f1fa;border:1px dashed #e2d9f3;display:inline-block}.svc-title{align-items:baseline;gap:8px;min-width:0;display:flex}.svc-title .svc-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.perm-block{border-top:1px solid #f1ecfa;margin-top:16px;padding-top:14px}.perm-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.perm-head b{color:#3d3350;font-size:14px}.perm-head .muted{font-size:12px}.perm-tree{border:1px solid #f1ecfa;border-radius:12px;overflow:hidden}.perm-group+.perm-group{border-top:1px solid #f3f0f8}.perm-group-row.perm-root{border-bottom:1px solid #f3f0f8}.perm-group-row{cursor:pointer;color:#3d3350;background:#fdfbff;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:600;display:flex}.perm-group-row:hover{background:#faf7ff}.perm-group-name{flex:1}.perm-count{font-size:12px;font-weight:400}.perm-leaves{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 12px;padding:4px 12px 12px 34px;display:grid}.perm-leaf{color:#5b5368;cursor:pointer;align-items:center;gap:7px;font-size:13px;display:flex}.perm-leaf:hover{color:#3d3350}.perm-tree input[type=checkbox]{accent-color:#7b5cc4;cursor:pointer;flex:none;width:15px;height:15px}.confirm-text{color:#3d3350;white-space:pre-wrap;word-break:break-word;margin:0;font-size:14px;line-height:1.7}.stat-row{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.stat-card{background:#fff;border:1px solid #ece8f3;border-radius:12px;flex-direction:column;flex:150px;gap:4px;padding:14px 16px;display:flex}.stat-card .stat-num{color:#3d3350;font-size:26px;font-weight:700;line-height:1.1}.stat-card .stat-label{color:#8a8399;font-size:12px}.stat-card.ok .stat-num{color:#1f9d55}.stat-card.bad .stat-num{color:#c0392b}.detail-grid{flex-wrap:wrap;gap:0 18px;display:flex}.detail-item{border-bottom:1px solid #f4f1f9;flex-direction:column;flex:220px;gap:3px;padding:7px 0;display:flex}.detail-item.full{flex:100%}.detail-item label{color:#8a8399;font-size:12px}.detail-item span{color:#3d3350;word-break:break-all;font-size:13px}.detail-item .mono{font-family:Consolas,Courier New,monospace;font-size:12px}td.mono,.mono{font-family:Consolas,Courier New,monospace}.detail-item .small{color:#6b6280;font-size:12px}.json-block{color:#3d3350;white-space:pre-wrap;word-break:break-all;background:#faf8fd;border:1px solid #ece8f3;border-radius:8px;max-height:320px;margin:0;padding:10px 12px;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6;overflow:auto}.media-cell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.media-thumb{object-fit:cover;background:var(--brand-tint);cursor:zoom-in;border:1px solid #ece8f3;border-radius:8px;width:44px;height:44px;transition:transform .12s,box-shadow .12s}.media-thumb:hover{transform:scale(1.06);box-shadow:0 3px 10px #5a3c8c38}.media-more{color:#6b6280;cursor:pointer;background:#faf8fd;border:1px dashed #d9d2e8;border-radius:8px;min-width:34px;height:44px;font-size:12px}.media-more:hover{border-color:var(--brand);color:var(--brand)}.media-video{color:#6b6280;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ece8f3;border-radius:8px;height:44px;padding:0 10px;font-size:12px}.media-video:hover{border-color:var(--brand);color:var(--brand)}.lightbox{z-index:200;background:#100a1cd1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox-inner{flex-direction:column;align-items:center;gap:10px;max-width:min(1100px,94vw);max-height:92vh;display:flex;position:relative}.lightbox-bar{color:#efe9f8;justify-content:space-between;align-items:center;gap:16px;width:100%;font-size:12px;display:flex}.lightbox-actions{gap:8px;display:flex}.lightbox-actions .btn.ghost{color:#fff;background:#ffffff1a;border-color:#ffffff4d}.lightbox-actions .btn.ghost:hover{background:#fff3}.lightbox-media{background:#000;border-radius:12px;max-width:min(1100px,94vw);max-height:82vh;display:block}img.lightbox-media{object-fit:contain}.lightbox-nav{color:#fff;cursor:pointer;background:#ffffff24;border:1px solid #ffffff59;border-radius:50%;width:42px;height:42px;font-size:22px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#ffffff47}.lightbox-nav.prev{left:-56px}.lightbox-nav.next{right:-56px}@media (width<=760px){.lightbox-nav.prev{left:4px}.lightbox-nav.next{right:4px}}.switch-label{cursor:pointer;color:var(--text-2);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.switch{background:#ddd6e8;border-radius:9px;flex:none;width:34px;height:18px;transition:background .18s;display:inline-block;position:relative}.switch.on{background:var(--brand)}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-knob{pointer-events:none;background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #140a2840}.switch.on .switch-knob{transform:translate(16px)}.picker-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.picker-foot .pager{margin:0}.picker-all{align-items:center;margin-bottom:10px;display:flex}.mnav-btn,.nav-mask{display:none}.wx-sidebar body{font-size:13px}.wx-sidebar .mnav-btn{background:var(--brand-tint);width:32px;height:32px;color:var(--brand);border-radius:8px;flex:none;justify-content:center;align-items:center;margin-right:8px;font-size:16px;display:inline-flex}.wx-sidebar .layout{position:relative}.wx-sidebar .sidebar{z-index:60;flex:none;width:232px;transition:transform .18s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:8px 0 24px #140c231f}.wx-sidebar .layout.nav-open .sidebar{transform:translate(0)}.wx-sidebar .layout.nav-open .nav-mask{z-index:55;background:#140c2359;display:block;position:absolute;inset:0}.wx-sidebar .topbar{flex-wrap:wrap;flex:none;gap:6px;height:auto;padding:8px 10px}.wx-sidebar .topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:14px;overflow:hidden}.wx-sidebar .topbar-right{flex-wrap:wrap;justify-content:flex-end;gap:6px}.wx-sidebar .topbar-right>.muted{display:none}.wx-sidebar .user-chip{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.wx-sidebar .topbar-right .btn.sm{height:28px;padding:0 10px;font-size:12px}.wx-sidebar .content{padding:10px}.wx-sidebar .card{border-radius:10px;padding:10px}.wx-sidebar .card+.card{margin-top:10px}.wx-sidebar .card-head{gap:8px;margin-bottom:10px}.wx-sidebar .card-head h2{font-size:13px}.wx-sidebar .card,.wx-sidebar .content>div{overflow-x:auto}.wx-sidebar table{min-width:100%;font-size:12px}.wx-sidebar th,.wx-sidebar td{white-space:nowrap;padding:7px 6px}.wx-sidebar th{font-size:11px}.wx-sidebar .ops-cell .btn{height:26px;padding:0 8px;font-size:12px}.wx-sidebar .ops-cell .btn+.btn{margin-left:4px}.wx-sidebar .toolbar{gap:6px}.wx-sidebar .toolbar>*{flex:auto;min-width:0}.wx-sidebar .toolbar input:not([type=checkbox]):not([type=radio]),.wx-sidebar .toolbar select{width:100%;min-width:0}.wx-sidebar .toolbar .btn{flex:none}.wx-sidebar .stats,.wx-sidebar .stat-row,.wx-sidebar .wb-stats,.wx-sidebar .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.wx-sidebar .stat-card{padding:10px}.wx-sidebar .stat-card .stat-num,.wx-sidebar .stat-value{font-size:20px}.wx-sidebar .modal{max-height:92vh;padding:14px;max-width:96vw!important}.wx-sidebar .modal.modal-wide,.wx-sidebar .modal.modal-xl{max-width:96vw!important}.wx-sidebar .form-grid,.wx-sidebar .grid-2{grid-template-columns:minmax(0,1fr)!important}.wx-sidebar .slot-row{grid-template-columns:1fr 1fr;gap:6px}.wx-sidebar .slot-row .slot-no{display:none}.wx-sidebar .tree-row .ops{flex-wrap:wrap;width:auto}.wx-sidebar .rate-cell{width:auto}.wx-sidebar .rate-input{width:64px!important}.wx-sidebar .pager{flex-wrap:wrap;gap:6px}@media (width<=380px){.wx-sidebar .stats,.wx-sidebar .stat-row,.wx-sidebar .wb-stats,.wx-sidebar .detail-grid{grid-template-columns:minmax(0,1fr)}.wx-sidebar .user-chip{display:none}}
