:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#18304b;background:#f4f7fb;font-size:14px}*{box-sizing:border-box}body{margin:0}.hidden{display:none!important}button,input,select{font:inherit}button,select{cursor:pointer}button{border:1px solid #dce4ee;background:white;border-radius:9px;padding:9px 14px;color:#37506e}button:hover{background:#edf4ff;border-color:#95b7ed}input,select{border:1px solid #dce4ee;border-radius:8px;padding:10px 12px;background:white;color:#18304b}input:focus,button:focus-visible,select:focus{outline:2px solid #619bf4;outline-offset:2px}h1{font-size:28px;margin:6px 0 10px;letter-spacing:-.7px}h2{font-size:17px;margin:0}.muted{color:#7a8ba2;font-size:13px}.eyebrow{font-size:10px;letter-spacing:2px;color:#6387b0;font-weight:700}.brand-icon{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#3979ed;color:white;font-size:21px;font-weight:700}.brand{display:flex;gap:12px;align-items:center;line-height:1.7}.brand small{display:block;color:#8fa5c2;font-size:11px;font-weight:400}aside{width:226px;position:fixed;inset:0 auto 0 0;background:#142941;color:#fff;padding:34px 24px}.nav-label{font-size:11px;color:#7892b2;margin-top:50px}nav{display:grid;gap:10px}nav button{border:0;text-align:left;background:transparent;color:#a7bad2;padding:14px 12px}nav button.selected{background:#284a72;color:white}nav button:hover{background:#223e5f}.aside-foot{position:absolute;bottom:32px;font-size:12px;color:#b3c3d8;line-height:2}.aside-foot small{color:#718ba9}.live-dot{display:inline-block;width:7px;height:7px;background:#51cfab;border-radius:50%;margin-right:6px}main{margin-left:226px;padding:36px 40px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:20px}.controls{display:flex;align-items:center;gap:8px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi,article{background:white;border:1px solid #e3eaf2;border-radius:14px;padding:24px}.kpi strong{display:block;font-size:31px;margin:14px 0 8px;letter-spacing:-1px}.kpi span{color:#6b809c;font-size:13px}.kpi small{font-size:12px;color:#8a9bb0}.kpi:first-child{background:#2d6de1;border-color:#2d6de1;color:white}.kpi:first-child span,.kpi:first-child small{color:#c9dbff}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-bottom:22px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}.section-title>span{font-size:11px;color:#8293a9}article{min-width:0;margin-bottom:22px}.grid article{margin:0}.bar-row{margin:17px 0}.bar-label{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px}.track{height:7px;background:#eef3f9;border-radius:8px;overflow:hidden}.fill{height:100%;border-radius:8px;background:#4b85eb}.trend{display:flex;align-items:flex-end;gap:5px;height:202px;padding-top:20px;overflow:auto}.day{flex:1;min-width:9px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:8px}.day-bar{width:70%;max-width:35px;background:linear-gradient(#548ff1,#bed5fc);border-radius:5px 5px 0 0;min-height:2px}.day small{font-size:9px;color:#8c9bb0;white-space:nowrap}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#8a9aaf;font-weight:500;font-size:12px;background:#f7f9fc}td,th{padding:15px 12px;border-bottom:1px solid #edf1f6}td small{display:block;color:#899bb1;margin-top:5px}tr.user-row{cursor:pointer}tr.user-row:hover,tbody tr:hover{background:#f8faff}.badge{display:inline-block;padding:4px 8px;border-radius:5px;font-size:11px;background:#eff3f8;color:#6e8095;white-space:nowrap}.badge.COMPLETED{color:#25866d;background:#e9f7f1}.badge.RUNNING,.badge.QUEUED{color:#387bda;background:#ebf3ff}.badge.FAILED{color:#bc5862;background:#fff0f1}.name-cell{max-width:380px;line-height:1.6;word-break:break-word}.empty{padding:35px;text-align:center;color:#92a1b4}.error{background:#fff0ef;color:#a34343;padding:14px;border-radius:8px;margin-bottom:15px}footer{font-size:11px;color:#91a0b4;margin:24px 0}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 10% 15%,#dae8ff,transparent 55%),#f4f7fb}.login-card{width:420px;padding:45px;background:white;border:1px solid #e2e9f3;border-radius:22px;box-shadow:0 25px 80px #25466b12}.login-card h1{line-height:1.5;margin:18px 0}.login-card form{margin-top:30px}.login-card label{display:block;margin:17px 0;color:#657b97;font-size:12px}.login-card input{display:block;width:100%;margin-top:8px;padding:12px}.primary{background:#3376e7;color:white;border:0;width:100%;padding:13px}.primary:hover{background:#2462c7}.login-card #login-error{color:#b94a56;font-size:12px}dialog{border:1px solid #dde6f1;border-radius:16px;padding:28px;width:min(1100px,94vw);max-height:85vh;color:#18304b}dialog::backdrop{background:#132d4c77}.detail-metrics{display:flex;gap:25px;padding:20px;background:#f4f8fd;border-radius:10px;margin-bottom:20px}.detail-metrics strong{font-size:23px;display:block;margin-bottom:7px}.detail-metrics small{color:#7f91a8}@media(max-width:1050px){aside{width:190px;padding:30px 16px}main{margin-left:190px;padding:25px 20px}.grid{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}header{flex-wrap:wrap}}@media(max-width:650px){aside{position:static;width:100%;padding:15px}.brand{display:none}.nav-label,.aside-foot{display:none}nav{display:flex;overflow:auto;gap:4px}nav button{white-space:nowrap;font-size:12px;padding:10px}main{margin:0;padding:20px 12px}h1{font-size:24px}.kpi,article{padding:16px}.controls{flex-wrap:wrap}.section-title{flex-wrap:wrap}.login-card{width:92vw}.detail-metrics{flex-wrap:wrap}}

.trend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:22px}.trend-grid article{margin:0}.trend-grid .section-title{flex-wrap:wrap}.recent-user{display:flex;justify-content:space-between;width:100%;border:0;border-bottom:1px solid #edf1f6;border-radius:0;text-align:left;padding:12px 0;font-size:12px}.recent-user small{display:block;color:#8a9bb0;margin-top:6px}.recent-user>span:last-child{text-align:right;color:#71869f}#active-trend .day-bar{background:linear-gradient(#3aa993,#bce6d9)}@media(max-width:1100px){.trend-grid{grid-template-columns:1fr}}

.day-value{font-size:10px;font-weight:600;color:#53779f;min-height:12px}.day-bar{flex-shrink:0}
