:root{color-scheme:dark;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:#e9ebee;background:#111315;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a,input{transition:background .18s,transform .18s,border-color .18s}button{background:#252b32;color:#e9ebee;border:1px solid #363d46;border-radius:10px;padding:11px 17px;cursor:pointer}button:hover{background:#343e4c;transform:translateY(-1px)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:wait}a:hover{color:#b3c8ed}:focus-visible{outline:2px solid #99b9e9;outline-offset:3px}[hidden]{display:none!important}.shell{max-width:1440px;margin:auto;padding:0 40px}header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2a2d31}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600}.brand img{width:30px;height:30px}.brand span{font-size:12px;font-weight:400;color:#8a949f;border-left:1px solid #41454b;padding-left:15px}nav{display:flex;align-items:center;gap:24px;font-size:13px}small{color:#a3b3c7;font-size:12px}.heading{display:flex;align-items:center;justify-content:space-between;margin:42px 0 28px}h1{font-size:34px;letter-spacing:-1px;margin:8px 0 12px;font-weight:600}p{color:#929ba7;font-size:13px;line-height:1.7;margin:8px 0}h2{font-size:18px;margin:0;font-weight:600}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stats article{padding:24px;background:#1c2026;border-radius:16px}.stats strong{display:block;font-size:34px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:16px 0}.stats span{font-size:12px;color:#87929f}.panel{margin-top:24px;border-radius:18px;background:#191c21;padding:26px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-head p{margin-bottom:0}.note{font-size:12px;margin:18px 0 0;color:#818c99}.legend{font-size:11px;color:#9ca8b8;display:flex;align-items:center;gap:8px}.legend i{width:8px;height:8px;background:#91afd6;border-radius:2px}.legend i:last-child{background:#414c60}.chart{display:flex;align-items:flex-end;gap:12px;min-height:192px;margin-top:20px;overflow-x:auto;padding-top:26px}.day{flex:1;min-width:34px;text-align:center}.bars{height:130px;display:flex;justify-content:center;align-items:flex-end;gap:4px;border-bottom:1px solid #353b45}.bar{width:18px;min-height:2px;background:#91afd6;border-radius:3px 3px 0 0}.bar.in{background:#414c60}.day small{display:block;font-size:10px;margin-top:10px;color:#8b97a5}.table-wrap{overflow:auto;margin-top:20px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:17px 14px;border-bottom:1px solid #2b3038}th{font-weight:400;color:#8e9aaa}td:first-child{font-weight:500}tbody tr:hover{background:#222831}.role{font-size:10px;color:#b4c9e7;margin-left:8px}.error{color:#ef9c9c}.login{max-width:420px;margin:75px auto;background:#1c2026;border:1px solid #303641;border-radius:22px;padding:36px}.login h1{font-size:28px}.login label{display:block;font-size:12px;margin:22px 0 8px;color:#a8b2bf}input{background:#12161c;border:1px solid #343e4a;color:#e9ebee;border-radius:9px;padding:12px 14px;min-width:0}.login input{width:100%}.primary{background:#304e77;border-color:#42638f;width:100%;margin-top:8px}.primary:hover{background:#3d608f}#adminError,#loadError{color:#ef9c9c;min-height:20px}footer{display:flex;justify-content:space-between;color:#737e8c;font-size:11px;padding:28px 0;margin-top:30px;border-top:1px solid #292d33}@media(max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{padding:0 22px}.section-head{align-items:flex-start;flex-wrap:wrap}.legend{display:none}}@media(max-width:480px){.shell{padding:0 16px}header{height:80px}.brand{font-size:16px}.brand span{display:none}nav{gap:10px}nav button{padding:9px}.heading{margin-top:28px}h1{font-size:28px}.stats{gap:10px}.stats article{padding:18px 14px}.stats strong{font-size:27px}.panel{padding:20px 15px}.login{padding:26px;margin:45px auto}footer{display:block}footer span{display:block;margin-top:10px}#search{width:100%}}

.codes-form{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:22px}.codes-form label{font-size:12px;color:#a3b3c7;display:grid;gap:8px}.codes-form input{width:140px}#codesError{color:#ef9c9c}#newCodesBox{margin-top:18px;color:#adb9c8;font-size:12px}#newCodes{display:block;width:100%;margin:10px 0;background:#12161c;color:#e9ebee;border:1px solid #343e4a;border-radius:9px;padding:12px;font:13px monospace;resize:vertical}
