:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#172033;background:#f5f7ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.page{min-height:100vh;display:grid;place-content:center;padding:32px 16px;background:radial-gradient(circle at 10% 20%,#dbe4ff,transparent 35%),radial-gradient(circle at 90% 85%,#eadcff,transparent 40%),#f8f9ff;position:relative;overflow:hidden}.orb{position:fixed;border-radius:50%;filter:blur(2px);opacity:.55}.orb.one{width:260px;height:260px;background:#7c6df2;right:-100px;top:-100px}.orb.two{width:200px;height:200px;background:#4fd1b2;left:-80px;bottom:-90px}.card{width:min(100vw - 32px,480px);background:#ffffffdc;backdrop-filter:blur(18px);padding:28px;border:1px solid #fff;border-radius:28px;box-shadow:0 28px 80px #39407424;position:relative}.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.brand h1{font-size:24px;margin:0 0 5px}.brand p{margin:0;color:#75809a;font-size:14px}.logo{width:50px;height:50px;display:grid;place-items:center;color:#fff;font-size:30px;font-weight:800;border-radius:16px;background:linear-gradient(135deg,#625bf6,#9b62ee);box-shadow:0 8px 22px #6e62ef55}.account-box{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.account-box label,.panel label{font-size:13px;font-weight:700;color:#536078}.account-box small{color:#8490a8}.account-box select,input,textarea{width:100%;border:1px solid #dfe4f0;background:#fff;border-radius:11px;padding:12px;outline:none}.account-box select:focus,input:focus,textarea:focus{border-color:#6b63ed;box-shadow:0 0 0 3px #6b63ed18}.drop{border:1.5px dashed #aeb5d3;border-radius:20px;padding:26px 18px;text-align:center;background:#fafaff}.scan-icon{width:64px;height:64px;display:grid;place-items:center;margin:auto;background:#ecebff;color:#655cf1;border-radius:20px;font-size:36px}.drop h2{font-size:18px;margin:16px 0 6px}.drop p{font-size:13px;color:#818ba2;margin:0 0 20px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}button{border:1px solid #dce1ed;background:#fff;color:#424c62;border-radius:11px;padding:11px 15px;font-weight:700}.primary{border:0;background:linear-gradient(135deg,#615bf1,#8b63ed);color:#fff;box-shadow:0 8px 18px #685dea35}video{width:100%;max-height:360px;background:#10131b;border-radius:18px;margin-top:14px}.ghost{width:100%;margin-top:8px}.result{padding:13px;margin-top:14px;border-radius:11px;background:#edf2ff;color:#3d58a8}.result.success{background:#e5f9ef;color:#18764d}.result.error{background:#fff0f0;color:#b23a3a}.result.wait{background:#fff8df;color:#806315}.notice{margin-top:18px;padding:14px;background:#f3f5fa;border-radius:13px}.notice b{font-size:13px}.notice p{font-size:12px;color:#778198;line-height:1.6;margin:4px 0 0}.admin-link{text-align:center;color:#8a91a3;text-decoration:none;font-size:12px;margin-top:18px;z-index:2}.admin-body{background:#f3f5fb;min-height:100vh}.dashboard{max-width:1120px;margin:auto;padding:34px 20px}.dashboard header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.dashboard header h1{margin:4px 0 0}.dashboard header a{color:#655dea;text-decoration:none}.eyebrow{font-size:11px;letter-spacing:2px;color:#7169ea;font-weight:800}.panel{background:#fff;border:1px solid #e8ebf3;border-radius:18px;padding:20px;box-shadow:0 8px 30px #4050800c}.login{max-width:420px;margin:70px auto}.login input{margin:10px 0}.login button{width:100%}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.stats div{background:linear-gradient(135deg,#625cf0,#8765e9);padding:20px;border-radius:17px;color:#fff}.stats b{font-size:28px;display:block}.stats span{font-size:13px;opacity:.8}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.panel h2{font-size:17px;margin:0 0 16px}.panel label{display:block;margin-bottom:12px}.panel label input,.panel label textarea{margin-top:6px}.panel textarea{min-height:90px;resize:vertical}.inline{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}.row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f6;padding:12px 0}.row:first-of-type{margin-top:12px}.row span,.request>div:first-child{display:flex;flex-direction:column;gap:4px}.row small,.request small{color:#8a93a7}.panel-head{display:flex;justify-content:space-between}.request{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid #edf0f6}.request code{display:block;max-width:600px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#788198}.badge{padding:6px 10px;border-radius:20px;font-size:12px;background:#fff3ca;color:#856617}.badge.approved{background:#dff7e9;color:#157448}.badge.rejected{background:#ffe4e4;color:#a93232}.request-actions{display:flex;gap:6px}.approve{background:#198c5c;color:#fff;border:0}.empty{color:#929bad;text-align:center;padding:20px}@media(max-width:700px){.grid{grid-template-columns:1fr}.inline{grid-template-columns:1fr}.request{grid-template-columns:1fr auto}.request-actions{grid-column:1/-1}.card{padding:20px}.dashboard{padding:22px 12px}.dashboard header{align-items:flex-start}.actions{grid-template-columns:1fr}}

.status-line{font-size:13px;color:#536078;background:#f0f2fa;border:1px solid #e3e7f2;border-radius:11px;padding:11px 13px;line-height:1.5}
.qr-text{width:100%;min-height:74px;border:1px solid #dfe4f0;background:#fff;border-radius:11px;padding:12px;outline:none;resize:vertical;margin-top:12px;font-size:13px;color:#3a4460}
.qr-text:focus{border-color:#6b63ed;box-shadow:0 0 0 3px #6b63ed18}
.submit-btn{width:100%;margin-top:10px}
.session-box{margin-top:14px;padding:13px;background:#eef7ff;border-radius:11px}
.session-box b{font-size:13px;color:#2c5f8a;display:block;margin-bottom:4px}
.session-box .qr-text{margin-top:6px;min-height:64px;background:#fff}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
.ok{color:#157448;font-weight:700}.bad{color:#a93232;font-weight:700}.err{color:#b23a3a}
.request code.session{display:block;max-width:600px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#2c6b9e}
.request small.err{color:#b23a3a}
@media(max-width:700px){.row-actions{grid-column:1/-1}}
[hidden]{display:none!important}
.qr-modal{position:fixed;inset:0;background:#1b22409c;display:grid;place-items:center;z-index:50;padding:20px}
.qr-box{background:#fff;border-radius:20px;padding:24px;max-width:340px;width:100%;text-align:center;box-shadow:0 24px 70px #20224d40}
.qr-box h2{margin:0 0 6px}
.qr-hint{font-size:13px;color:#818ba2;margin:0 0 14px}
.qr-box img{width:220px;height:220px;border:1px solid #e6e9f3;border-radius:14px;background:#fff}
.qr-box .status-line{margin:14px 0}
.qr-box button{width:100%}