:root{color-scheme:light;--violet:#6d47dc;--violet-dark:#5234b1;--ink:#202333;--muted:#727789;--line:#e6e8f0;--surface:#f5f6fa;--red:#c5394e;--green:#24745a;font-family:Inter,"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--surface)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:var(--violet);text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:3px solid #b9a5f4;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:1.7rem;font-weight:650;letter-spacing:-.03em;margin-bottom:8px}h2{font-size:1.25rem;font-weight:650}h3{font-size:1rem;font-weight:600}.muted{color:var(--muted);font-size:.9rem;line-height:1.7}.boot{display:grid;place-items:center;height:100vh;color:var(--muted)}
.primary,.secondary,.danger{border-radius:8px;padding:10px 18px;font-size:.9rem;font-weight:550;white-space:nowrap;min-height:42px}.primary{background:var(--violet);color:white;box-shadow:0 3px 7px #6d47dc1b}.primary:hover{background:var(--violet-dark)}.secondary{background:white;border:1px solid var(--line);color:var(--ink)}.secondary:hover{background:#f6f3fd}.danger{background:#fff0f2;color:var(--red)}.text-button{color:var(--muted);background:none;font-size:.875rem;padding:8px}.icon-button{background:none;color:var(--muted);font-size:1.4rem;padding:4px 10px;line-height:1.3}.error{color:var(--red);font-size:.875rem;line-height:1.6}.error:empty{display:none}label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:550;margin-bottom:19px}input,select,textarea{width:100%;padding:11px 13px;border:1px solid #dce0ea;border-radius:7px;color:var(--ink);background:#fff;font-size:.9rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px #6d47dc12}textarea{min-height:115px;resize:vertical;line-height:1.7}.checkbox-label{flex-direction:row;align-items:center;font-weight:400}.checkbox-label input{width:17px;height:17px;accent-color:var(--violet)}.field-help{color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.login-screen{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:#fff}.login-brand{background:#25194d;color:white;padding:64px 12%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand>img{width:68px;margin-bottom:25px}.login-brand h1{font-size:2rem}.login-brand p{color:#c5b9e2}.login-decoration{margin-top:70px;max-width:280px}.login-decoration span{font-size:9rem;font-weight:750;letter-spacing:-.08em;color:#bba2ff}.login-decoration div{height:14px;background:#7b59c4;border-radius:7px;margin-top:16px}.login-decoration div:last-child{width:65%;opacity:.55}.login-card{align-self:center;justify-self:center;width:min(370px,80%);padding:50px 0}.eyebrow{color:var(--violet);font-size:.8rem;font-weight:650;letter-spacing:.13em;margin-bottom:18px}.login-card h2{font-size:1.55rem;margin-bottom:12px}.login-card .muted{margin-bottom:33px}.login-card .primary{width:100%;margin-top:5px}.login-foot{margin-top:27px;color:#969cad;font-size:.8rem;text-align:center}
.shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:31px 18px;z-index:20}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);padding:0 10px 30px;font-size:1.35rem;font-weight:700}.brand img{width:43px;height:43px}.brand-sub{display:block;font-size:.8rem;font-weight:400;letter-spacing:.05em;color:var(--muted);margin-top:3px}.nav-caption{font-size:.75rem;color:#9297a6;margin:12px 14px 14px}nav{display:flex;flex-direction:column;gap:6px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:8px;background:none;color:#666b7d;font-size:.9rem;text-align:left;width:100%}.nav-item:hover{background:#f7f5fd}.nav-item.active{background:#eee8fc;color:var(--violet);font-weight:600}.nav-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:23px 12px 0;color:#9a9dac;font-size:.75rem;line-height:1.9}.server-label{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.8rem}.server-dot{width:6px;height:6px;background:var(--green);border-radius:50%}.workspace{margin-left:230px;width:calc(100% - 230px);min-width:0}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:#ffffffeb;font-size:.875rem}.breadcrumb{color:#8a8fa0}.breadcrumb-separator{margin:0 14px;color:#bbc0ce}.user-actions{display:flex;align-items:center;gap:10px;font-size:.85rem}.user-avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#eee8fc;color:var(--violet);font-size:.8rem;font-weight:700}#mobile-menu{display:none}main{padding:34px 36px;max-width:1600px;margin:auto;min-height:calc(100vh - 128px)}footer{font-size:.75rem;color:#969bac;padding:0 36px 25px;display:flex;justify-content:space-between}.page-head{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:27px}.page-head p{margin-bottom:0}.head-actions{display:flex;gap:10px;flex-wrap:wrap}.panel{border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.panel-head{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{font-size:1rem;margin:0}.panel-body{padding:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}.stat{padding:24px;border:1px solid var(--line);border-radius:11px;background:#fff;position:relative}.stat-label{font-size:.875rem;color:var(--muted)}.stat-number{font-size:2rem;font-weight:650;letter-spacing:-.03em;margin-top:12px}.stat-icon{position:absolute;right:22px;top:23px;width:35px;height:35px;border-radius:9px;background:#f2edfd;color:var(--violet);display:grid;place-items:center}.stat-icon svg{width:18px;height:18px}.dashboard-columns{display:grid;grid-template-columns:1fr 1.8fr;gap:24px}.release-info{display:flex;gap:16px;align-items:center;padding-bottom:22px}.release-info img{width:50px}.release-info strong{font-size:1.3rem;display:block;margin:0 0 5px}.release-notes{white-space:pre-wrap;font-size:.875rem;line-height:1.8;color:var(--muted)}.meta-row{font-size:.85rem;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;margin-top:17px}.activity-list{list-style:none;padding:0;margin:0;max-height:450px;overflow:auto}.activity-item{padding:16px 24px;border-bottom:1px solid #f0f1f6;display:flex;justify-content:space-between;gap:15px}.activity-item:last-child{border:0}.activity-event{font-size:.875rem;font-weight:550;margin-bottom:6px}.activity-detail{font-size:.8rem;color:var(--muted);word-break:break-word}.activity-time{font-size:.75rem;color:#9297a6;white-space:nowrap;line-height:1.7}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--line)}.toolbar input{max-width:300px}.toolbar select{width:145px}.toolbar .result-count{margin-left:auto;font-size:.8rem;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;font-size:.8rem;color:var(--muted);font-weight:500;background:#fafbfe;padding:14px 24px;white-space:nowrap}td{padding:18px 24px;border-top:1px solid #edf0f5;vertical-align:middle}tr:hover td{background:#fdfcff}.row-title{display:block;font-weight:550;color:var(--ink);margin-bottom:6px;max-width:300px;overflow-wrap:anywhere}.row-secondary{font-size:.75rem;color:var(--muted);line-height:1.7;max-width:320px;overflow-wrap:anywhere}.code{font-family:ui-monospace,Consolas,monospace;white-space:nowrap;font-size:.85rem;letter-spacing:.02em}.tag{display:inline-flex;align-items:center;padding:4px 9px;border-radius:5px;font-size:.75rem;font-weight:500;white-space:nowrap;background:#f0f1f5;color:#727789}.tag.active,.tag.success{color:#24745a;background:#e9f6ef}.tag.unused,.tag.info{color:#6850aa;background:#f0ebfa}.tag.disabled,.tag.expired,.tag.warning{color:#b46d28;background:#fff4e5}.tag.disabled{color:#9a5968;background:#faedf0}.row-actions{display:flex;gap:13px;align-items:center;white-space:nowrap}.row-actions button{background:none;color:var(--violet);font-size:.8rem;padding:5px 0}.row-actions button.danger-link{color:var(--red)}.empty{padding:70px 24px;text-align:center;color:var(--muted);font-size:.9rem}.empty svg{width:35px;height:35px;color:#a8adc0;margin-bottom:16px}.empty h3{color:#676d7f;margin-bottom:8px}.empty p{font-size:.85rem;margin-bottom:0}.pagination{padding:17px 24px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.pagination div{display:flex;gap:8px}.pagination button{min-height:34px;padding:5px 12px;font-size:.8rem}.settings-panel{max-width:580px}.settings-panel .primary{margin-top:5px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:13px 23px;background:#242336;color:white;border-radius:9px;box-shadow:0 8px 35px #0002;z-index:100;font-size:.875rem;max-width:90vw}
dialog{width:min(620px,calc(100vw - 32px));border:1px solid var(--line);border-radius:13px;padding:0;color:var(--ink);box-shadow:0 30px 100px #1d16403d;max-height:90vh}dialog::backdrop{background:#1114286b;backdrop-filter:blur(2px)}dialog form{padding:25px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.modal-head h2{margin:0;font-size:1.2rem}.modal-head button{font-size:1.7rem}#modal-body{max-height:62vh;overflow:auto;padding:1px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.code-output{white-space:pre;overflow:auto;max-height:330px;padding:18px;background:#f8f7fc;border-radius:8px;font-size:.875rem;line-height:1.9;font-family:Consolas,monospace}.output-actions{display:flex;gap:10px;margin-top:16px}.device-card{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:12px}.device-card .code{white-space:normal;word-break:break-all;font-size:.75rem;color:var(--muted);display:block;margin:8px 0}.device-card p{margin:0;font-size:.8rem;color:var(--muted);line-height:1.8}
@media(min-width:1700px){main{padding-top:45px}}@media(max-width:1150px){.sidebar{width:200px}.workspace{margin-left:200px;width:calc(100% - 200px)}main{padding:28px 24px}.topbar{padding:0 24px}.stats{gap:12px}.stat{padding:20px}.stat-icon{display:none}.dashboard-columns{grid-template-columns:1fr}td,th{padding:16px 18px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:230px;box-shadow:10px 0 40px #0002;transition:transform .2s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0;width:100%}.topbar{height:64px;padding:0 16px;gap:8px}#mobile-menu{display:block}.user-avatar{display:none}.user-actions{margin-left:auto}.user-actions>span:not(.user-avatar){display:none}.breadcrumb{display:none}.breadcrumb-separator{display:none}main{padding:24px 16px}.page-head{align-items:flex-start;flex-direction:column;gap:18px}h1{font-size:1.45rem}.stats{grid-template-columns:1fr 1fr}.stat{padding:18px}.stat-number{font-size:1.65rem}.stat-label{font-size:.8rem}.panel-head,.panel-body,.toolbar{padding:18px}.toolbar input{max-width:none;flex:1;min-width:170px}.toolbar .result-count{width:100%;margin:0}.head-actions{width:100%}.head-actions button{flex:1}.form-grid{grid-template-columns:1fr}.login-screen{display:flex;flex-direction:column;min-height:100vh}.login-brand{padding:30px 25px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}.login-brand>img{width:42px;margin:0}.login-brand h1{font-size:1.15rem;margin:0}.login-brand>p,.login-decoration{display:none}.login-card{width:min(370px,calc(100% - 48px));margin:auto;padding:45px 0}.activity-item{padding:15px 18px}.activity-time{white-space:normal;min-width:75px}.pagination{padding:16px}.code{font-size:.8rem}footer{padding:0 18px 20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
