:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#18372f;background:#f3f6f4;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #ced9d2;border-radius:7px;padding:9px 14px;background:white;color:#234d3f}button:hover{background:#e4eee8}button.primary{background:#176e50;color:white;border-color:#176e50}button:disabled{opacity:.5;cursor:wait}input,select,textarea{width:100%;border:1px solid #cdd9d2;border-radius:7px;padding:10px 12px;background:#fff;outline-color:#20845f}textarea{min-height:100px;resize:vertical}label{display:block;font-size:13px;margin:13px 0 6px;color:#4c675d}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-1px}h2{font-size:18px}small,.muted{color:#72847b}a{color:#176e50}aside{width:232px;background:#102e25;color:#bacfc4;position:fixed;inset:0 auto 0 0;padding:28px 16px;display:flex;flex-direction:column}.brand{color:#f5faf6;font-size:22px;font-weight:650;margin:0 12px 35px}.brand span{background:#b8d5bb;color:#143d2c;border-radius:9px;padding:7px;margin-right:8px}.brand small{display:block;font-size:10px;letter-spacing:3px;margin:16px 0 0 2px;color:#8dac9e}nav{display:grid;gap:5px}nav button{border:0;background:none;color:#afc6b9;text-align:left;padding:12px 17px}nav button.active{background:#234a3b;color:#fff}nav button:hover{background:#1d4133}aside footer{margin-top:auto;padding:20px 12px;color:#a4bcaf;font-size:12px}.shell{margin-left:232px}.top{height:75px;border-bottom:1px solid #dce5df;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px}.top .tag{margin-right:12px}main{padding:33px 38px;max-width:1600px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.heading p{margin:9px 0 0;color:#75877d}.notice{background:#e7efe7;border:1px solid #d4e1d4;padding:13px 17px;border-radius:8px;margin-bottom:24px;color:#4b6555;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.card{background:#fff;border:1px solid #dde5df;border-radius:12px;padding:24px}.card .number{font-size:30px;font-weight:600;margin:18px 0 8px;letter-spacing:-1px}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:22px}.panel{background:white;border:1px solid #dce5df;border-radius:12px;overflow:auto;margin-bottom:20px}.panel h2{padding:21px 22px;margin:0;border-bottom:1px solid #edf1ed}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#809084;font-weight:500;padding:14px 18px;background:#fafcfa;white-space:nowrap}td{padding:16px 18px;border-top:1px solid #edf1ed;max-width:400px;word-break:break-word}td button{padding:5px 10px;margin:2px}.tag{display:inline-block;padding:4px 8px;background:#e8f1eb;color:#39805d;font-size:11px;border-radius:5px}.tag.warn{background:#fff2da;color:#a07125}.tag.bad{background:#fbe8e4;color:#ad5d4e}.empty{text-align:center;color:#809085;padding:45px}.actions{display:flex;gap:9px;flex-wrap:wrap}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#f6f8f5}.hero{background:#123c2d;color:#fff;padding:12vh 10%;display:flex;flex-direction:column;justify-content:center}.hero .word{font-size:50px;line-height:1.35;letter-spacing:-2px}.hero p{color:#a9c5b4;line-height:2;max-width:390px}.hero .line{height:1px;background:#3a6050;margin:30px 0}.login-form{max-width:430px;width:100%;margin:auto;padding:40px}.login-form button{width:100%;margin-top:22px}.login-form h1{margin-bottom:10px}.login-form .switch{background:none;border:0;margin-top:7px;font-size:13px}#toast{position:fixed;top:20px;right:28px;background:#164c36;color:white;padding:14px 22px;border-radius:8px;z-index:100;box-shadow:0 10px 35px #18392a26;display:none;max-width:550px}dialog{border:0;border-radius:12px;padding:28px;width:min(540px,94vw);color:#234534;box-shadow:0 20px 100px #06221140}dialog::backdrop{background:#102d2466}dialog h2{margin-bottom:10px}dialog .actions{margin-top:23px;justify-content:flex-end}pre{white-space:pre-wrap;word-break:break-word;background:#102e25;color:#bad8c8;padding:20px;border-radius:8px;line-height:1.7;font-size:12px}code{font-family:monospace}.guide{line-height:2;color:#5b7666}.plan{display:flex;flex-direction:column;gap:15px}.plan b{font-size:29px}.plan button{margin-top:auto}.error{color:#ae473b;padding:10px 0;line-height:1.6}.link-button{border:0;background:none;padding:0;color:#176e50}.steps{display:flex;flex-direction:column;gap:17px}.step{display:flex;gap:13px;align-items:flex-start}.step i{font-style:normal;background:#edf3ee;border-radius:50%;padding:6px 11px;color:#1e7050}.step p{margin:4px 0;color:#758779;font-size:12px}.usage-path{font-family:monospace;color:#507562;font-size:12px}.chart{display:flex;height:170px;gap:12px;align-items:flex-end;margin:20px 0 0;border-bottom:1px solid #e5ede6}.chart .bar{flex:1;background:#2c7959;border-radius:4px 4px 0 0;min-height:2px;position:relative}.chart .bar span{position:absolute;bottom:-22px;left:0;width:100%;text-align:center;font-size:10px;color:#809184}.wrap{overflow-wrap:anywhere}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}main{padding:25px 20px}.top{padding:0 20px}}@media(max-width:720px){aside{position:static;width:100%;padding:16px}.brand{margin:0 0 15px}.brand small,aside footer{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap}.shell{margin:0}.login{grid-template-columns:1fr}.hero{display:none}.stats{gap:10px}.card{padding:17px}.heading{align-items:flex-start}h1{font-size:23px}.top{height:62px}main{padding:24px 12px}}

.logo-brand{margin:0 10px 30px;min-width:0}
.logo-brand img{display:block;width:180px;max-width:100%;height:auto;object-fit:contain;background:transparent;border:0;border-radius:0;padding:0}
.logo-brand small{margin:14px 0 0;font-size:9px;letter-spacing:2.6px}
.login-logo{margin:0 0 42px}
.login-logo img{width:290px;max-width:100%;height:auto}
.mobile-login-logo{display:none}
@media(max-width:720px){.logo-brand{margin:0 0 18px}.logo-brand img{width:160px}.mobile-login-logo{display:block;width:210px;max-width:80%;height:auto;margin-bottom:32px}}

/* Yanxi blue-violet glass theme */
:root{color:#17234b;background:#f5f6ff}body{background:radial-gradient(circle at 78% -15%,#dfe4ff 0,#f8f9ff 38%,#f4f7ff 100%)}aside{background:linear-gradient(155deg,#111b4a 0%,#24226b 48%,#321d70 100%);color:#c8d1f3;box-shadow:12px 0 40px #1e235c26;overflow:hidden}aside:before{content:"";position:absolute;width:280px;height:280px;right:-150px;top:8%;border-radius:50%;background:#816cff55;filter:blur(55px);pointer-events:none}.logo-brand,.logo-brand small{position:relative;z-index:1}.logo-brand small{color:#aebaf0}.logo-brand img{filter:drop-shadow(0 7px 14px #03063255)}nav{position:relative;z-index:1;gap:7px}nav button{position:relative;overflow:hidden;border:1px solid transparent;color:#bbc6ee;border-radius:12px;background:#ffffff08;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .24s ease,background .24s ease,box-shadow .24s ease,color .24s ease}nav button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#ffffff1c,transparent 45%,#8d7eff18);opacity:0;transition:opacity .24s ease}nav button:hover{transform:translateX(4px);color:#fff;background:#ffffff18;border-color:#ffffff26;box-shadow:0 8px 24px #080b392b}nav button:hover:before{opacity:1}nav button.active{color:#fff;background:linear-gradient(105deg,#5579f0aa,#925de4aa);border-color:#b3c0ff55;box-shadow:0 0 0 1px #c4cdff1e,0 8px 28px #17145666;animation:yanxi-breathe 3.2s ease-in-out infinite}nav button.active:after{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 4px 4px 0;background:#b9c9ff;box-shadow:0 0 13px #b9c9ff}nav button:active{transform:translateX(2px) scale(.98)}@keyframes yanxi-breathe{0%,100%{box-shadow:0 0 0 1px #c4cdff1e,0 8px 28px #17145666}50%{box-shadow:0 0 0 1px #d7deff4d,0 0 22px #738cff66,0 10px 32px #1714565c}}aside footer{position:relative;z-index:1;color:#9ca9df}.shell{background:transparent}.top{background:#fffffff0;border-color:#dce2ff;box-shadow:0 4px 25px #414b9b0c}.card,.panel{border-color:#e0e3fa;box-shadow:0 8px 28px #3b3e9410}.card{background:#ffffffea}.panel{background:#ffffffed}.notice{background:linear-gradient(110deg,#eef0ff,#f7efff);border-color:#dde0ff;color:#555d91}.tag{background:#edf0ff;color:#5668b7}.tag.warn{background:#fff4e1;color:#9c7423}.tag.bad{background:#ffebee;color:#aa565e}button{border-color:#dce0fa;color:#4355a0}button:hover{background:#f0f1ff}button.primary{border-color:#5d71ec;background:linear-gradient(105deg,#4e73ee,#854fdb);box-shadow:0 7px 18px #5f64d633}a{color:#5968c5}.chart .bar{background:linear-gradient(180deg,#8b5be8,#477ef0)}
@media(max-width:720px){aside{box-shadow:0 8px 30px #29206133}nav button{background:#ffffff10}}

/* Keep the shortcut menu usable when the viewport is short or navigation grows. */
aside{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#a9b8ff66 transparent}aside::-webkit-scrollbar{width:6px}aside::-webkit-scrollbar-thumb{background:#a9b8ff66;border-radius:8px}aside nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:3px;scrollbar-width:thin;scrollbar-color:#a9b8ff55 transparent}aside nav::-webkit-scrollbar{width:5px}aside nav::-webkit-scrollbar-thumb{background:#a9b8ff55;border-radius:8px}
@media(max-height:640px) and (min-width:721px){aside{padding-top:16px;padding-bottom:12px}.logo-brand{margin-bottom:16px}.logo-brand img{max-height:42px}.logo-brand small{margin-top:8px}nav button{padding-top:8px;padding-bottom:8px}aside footer{padding-top:12px;padding-bottom:4px}}
@media(max-width:720px){aside{position:relative;max-height:42vh;overflow-y:auto}aside nav{display:flex;flex-direction:column;overflow-y:visible;overflow-x:hidden;max-height:none}nav button{flex:0 0 auto;text-align:left}.shell{min-height:58vh}}

/* Refined modern sidebar interaction: calm hover, clear active pill, tactile press. */
aside nav button{isolation:isolate;display:flex;align-items:center;gap:2px;min-height:43px;padding:11px 16px;color:#b9c4ec;background:transparent;border:1px solid transparent;box-shadow:none;transform:none;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s cubic-bezier(.2,.8,.2,1)}
aside nav button:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(100deg,#ffffff1a,#8d7eff16);opacity:0;transform:translateX(-8px);transition:opacity .2s ease,transform .2s ease}
aside nav button:hover{transform:translateX(3px);background:#ffffff0d;border-color:#ffffff14;box-shadow:0 5px 16px #10104422}
aside nav button:hover:before{opacity:1;transform:translateX(0)}
aside nav button.active{transform:translateX(3px);background:linear-gradient(100deg,#647cf0c9,#885edfba);border-color:#bdc9ff52;box-shadow:0 7px 18px #17145438;animation:none}
aside nav button.active:after{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;background:#dce3ff;box-shadow:0 0 10px #dce3ff99}
aside nav button:active{transform:translateX(3px) scale(.975);transition-duration:.08s}
aside nav button:focus-visible{outline:2px solid #c9d2ff;outline-offset:2px;background:#ffffff18}
aside nav button::first-letter{font-size:16px;color:#d7ddff}
@media(prefers-reduced-motion:reduce){aside nav button,aside nav button:before{transition:none!important}}
/* Login visual refresh */
.login{background:linear-gradient(135deg,#eef2ff 0%,#f8f5ff 52%,#edf7ff 100%);position:relative;overflow:hidden}
.login:before{content:"";position:absolute;width:55vw;height:55vw;left:-18vw;top:-20vw;background:#6677f044;filter:blur(70px);border-radius:50%}
.login-form{position:relative;background:#ffffffc9;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid #ffffffd9;border-radius:24px;box-shadow:0 24px 70px #4b4fa526}
.hero{background:linear-gradient(145deg,#17245b,#37206f 58%,#214b9a);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:420px;height:420px;right:-150px;top:-120px;border-radius:50%;background:#6c72ff66;filter:blur(30px)}
@media(max-width:720px){.login{padding:28px 16px}.login-form{padding:30px 24px;border-radius:22px;box-shadow:0 18px 50px #4b4fa526}.mobile-login-logo{width:230px;margin:0 auto 28px}.login-form h1{font-size:27px}}
