:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#17213a;background:#f3f6fb}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 70% 20%,#455de0,transparent 30%),linear-gradient(135deg,#0d1839,#1a2e69)}.login-card{width:min(420px,100%);padding:38px;border-radius:18px;background:#fff;box-shadow:0 30px 80px #050b2544}.logo{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:#fff;background:linear-gradient(135deg,#8155ff,#3e65ef);font-size:26px;font-weight:900}.login h1{margin:18px 0 8px;font-size:25px}.login p{margin:0 0 25px;color:#7c859c}.login label,dialog label{display:block;margin:15px 0 7px;font-size:13px;font-weight:700}.login input,dialog input,dialog textarea{width:100%;padding:13px;border:1px solid #dfe4f0;border-radius:9px;outline:0}.login button,dialog button{width:100%;margin-top:22px;padding:13px;border:0;border-radius:9px;color:#fff;background:linear-gradient(100deg,#405bef,#7650ec);font-weight:700}.login small{display:block;margin-top:18px;color:#969eb0;line-height:1.5}.error{margin-top:12px;color:#d84855;font-size:12px}.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;color:#d7def8;background:#132353}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 24px}.brand span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;background:#6259f1;font-weight:900}.brand b{font-size:14px;letter-spacing:.8px}nav{display:flex;flex-direction:column;gap:7px}nav button{padding:13px 15px;border:0;border-radius:9px;color:#bec9ef;background:transparent;text-align:left}nav button.active,nav button:hover{color:#fff;background:#ffffff18}.aside-foot{margin-top:auto;padding:14px 10px}.aside-foot small{display:block;margin-bottom:12px;color:#8292c7}.aside-foot button{width:100%;padding:9px;border:1px solid #ffffff22;border-radius:7px;color:#d7def8;background:transparent}main{min-width:0}header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fff;border-bottom:1px solid #e8edf5}header h1{margin:0;font-size:21px}header p{margin:5px 0 0;color:#8790a5;font-size:11px}.admin{display:flex;align-items:center;gap:9px;font-size:13px}.admin i{width:31px;height:31px;border-radius:50%;background:linear-gradient(135deg,#8ed6ff,#5166e9)}.content{padding:25px 30px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.metric,.panel{padding:20px;border:1px solid #e5eaf3;border-radius:13px;background:#fff;box-shadow:0 6px 20px #26395a0c}.metric span{display:block;color:#7e879d;font-size:12px}.metric b{display:block;margin-top:12px;font-size:24px}.panel{margin-top:18px;overflow:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel h2{margin:0;font-size:16px}.panel-head button{padding:8px 13px;border:0;border-radius:7px;color:#4d55df;background:#eff0ff}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 12px;border-bottom:1px solid #edf0f5;text-align:left;font-size:12px}th{color:#778198;background:#f7f9fc}td code{font-size:10px;color:#68728b}.positive{color:#079d68}.negative{color:#df4d5a}.tag{padding:4px 8px;border-radius:12px;color:#17845f;background:#e8f8f1;font-size:10px}.action{padding:6px 10px;border:1px solid #cfd6f5;border-radius:6px;color:#4d55df;background:#fff}.empty{padding:50px;text-align:center;color:#929aad}dialog{width:min(430px,calc(100% - 30px));padding:0;border:0;border-radius:14px;box-shadow:0 25px 70px #101a3d44}dialog::backdrop{background:#10172c88}dialog form{padding:26px}dialog h2{margin-top:0}dialog textarea{min-height:85px;resize:vertical}dialog form>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary{color:#5c6680!important;background:#eef1f6!important}@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.app{display:block}aside{position:static;height:auto;padding:13px}.brand{padding-bottom:10px}aside nav{flex-direction:row;overflow:auto}nav button{white-space:nowrap}.aside-foot{display:none}header{height:auto;padding:17px}.content{padding:14px}.metrics{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric b{font-size:19px}}
