:root{--blue:#2468d8;--ink:#182333;--muted:#667085;--line:#e5eaf1;--bg:#f4f7fb}
.table-wrap thead th,.log-table-wrap thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line)}.user-table{width:100%;min-width:760px;table-layout:fixed}.user-table col:nth-child(1){width:18%}.user-table col:nth-child(2){width:25%}.user-table col:nth-child(3){width:16%}.user-table col:nth-child(4){width:16%}.user-table col:nth-child(5){width:25%}.user-table th,.user-table td{padding-left:18px!important;padding-right:18px!important}.user-table th:last-child,.user-table td:last-child{text-align:right}.user-table td:last-child{padding-right:12px!important}.feedback-dialog{width:min(360px,calc(100% - 32px))}
.admin-tabs{display:flex;gap:28px;margin:25px 0 0;border-bottom:1px solid var(--line)}.admin-tabs a{padding:0 3px 11px;color:var(--muted);border-bottom:2px solid transparent;text-decoration:none;font-size:15px}.admin-tabs a.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.admin-tabs+.admin-panel{margin-top:20px}
.table-wrap,.log-table-wrap{max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:8px}.table-wrap table,.log-table-wrap table{min-width:760px}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:15px;margin-top:16px;color:var(--muted);font-size:13px}.pagination label{margin-right:auto}.pagination select{height:30px;margin-left:7px;padding:0 7px;border:1px solid #cfd7e4;border-radius:5px;background:#fff;color:var(--ink)}.pagination a{color:var(--blue);text-decoration:none;cursor:pointer}.pagination a.disabled{color:#aeb8c7;cursor:default}
.log-table-wrap{max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:8px}.log-table{width:100%;min-width:760px;border-collapse:collapse;font-size:13px;table-layout:fixed}.log-table th,.log-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-table th{color:var(--muted);background:#f8fafc}.log-table th:nth-child(1){width:22%}.log-table th:nth-child(2){width:14%}.log-table th:nth-child(3){width:26%}.log-table th:nth-child(4){width:22%}.log-table th:nth-child(5){width:16%}.log-detail-button{padding:0;color:var(--blue);background:none;border:0;font-size:13px;cursor:pointer}.more-logs{display:flex;justify-content:center;align-items:center;min-height:52px;color:var(--muted);font-size:13px}.log-dialog dl{margin:19px 0 0}.log-dialog dt{margin-top:14px;color:var(--muted);font-size:13px}.log-dialog dd{margin:5px 0 0;padding:10px;color:var(--ink);background:#f7f9fc;border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6}
.vip-password-link{margin:12px 0 0;font-size:13px}.vip-password-link a{color:#9c671d;text-decoration:none}
.login-tabs{display:flex;gap:22px;margin:22px 0 2px;border-bottom:1px solid var(--line)}.login-tab{padding:0 1px 10px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;font-size:14px;cursor:pointer}.login-tab.active{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.password-link{margin:10px 0 -2px;text-align:right}.password-link button{height:auto!important;width:auto!important;margin:0!important;padding:0!important;color:var(--blue)!important;background:transparent!important;font-size:13px!important;font-weight:400!important}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading h2{margin-bottom:18px}.small-button.secondary{color:#35547d;background:#fff;border:1px solid #b7c7dc}.person-dialog{width:min(420px,calc(100% - 32px));padding:0;border:0;border-radius:14px;box-shadow:0 20px 55px rgba(31,65,114,.25)}.person-dialog::backdrop{background:rgba(20,35,56,.38)}.person-dialog form{padding:28px}.person-dialog h2{margin:0;font-size:20px}.dialog-description{margin:9px 0 20px;color:var(--muted);font-size:14px;line-height:1.6}.person-dialog label{display:block;margin:15px 0 7px;font-size:14px;font-weight:600}.person-dialog input{width:100%;height:40px;padding:0 10px;border:1px solid #cfd7e4;border-radius:6px;font-size:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.dialog-actions .small-button{margin:0}
.phone-hint{min-height:20px;margin:7px 0 -5px;font-size:13px}.phone-hint.checking{color:var(--muted)}.phone-hint.allowed{color:#16803b}.phone-hint.denied{color:#c93636}.vip-countdown{margin:14px 0 0;color:#7a8492;font-size:13px}.vip-countdown strong{display:inline-block;min-width:1.25em;color:#df7b12;font-size:16px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:"Microsoft YaHei","PingFang SC",sans-serif}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef5ff,#f7f9fc 55%,#eef2f8)}.login-card{width:min(420px,100%);padding:42px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 55px rgba(31,65,114,.12)}.brand-mark{display:grid;place-items:center;width:48px;height:48px;color:#fff;background:var(--blue);border-radius:13px;font-size:23px;font-weight:700}.eyebrow{margin:20px 0 7px;color:var(--blue);font-size:13px;font-weight:700;letter-spacing:.08em}h1{margin:0;font-size:30px}.intro{color:var(--muted);line-height:1.7}.login-card label{display:block;margin:26px 0 8px;font-size:14px;font-weight:600}.login-card input{width:100%;height:46px;padding:0 14px;border:1px solid #cfd7e4;border-radius:8px;font-size:16px;outline:none}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,104,216,.12)}.login-card button{width:100%;height:46px;margin-top:16px;color:#fff;background:var(--blue);border:0;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer}.form-error{margin:14px 0 0;color:#c93636;font-size:14px}.notice{margin:24px 0 0;color:#98a2b3;font-size:12px}.topbar{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100% - 1120px)/2));color:#fff;background:#174f9f}.topbar>div,.topbar form{display:flex;align-items:center;gap:18px}.topbar>div span{color:#cfe0fb;font-size:13px}.topbar form{font-size:14px}.link-button{padding:0;color:#fff;background:none;border:0;cursor:pointer}.admin-link{color:#fff;text-decoration:none}.content{max-width:1120px;margin:0 auto;padding:54px 24px 80px}.content>.eyebrow{margin-top:0}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}.material-card{position:relative;z-index:1;padding:26px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(30,55,90,.06)}.tag{display:inline-block;padding:4px 9px;color:#35547d;background:#edf3fb;border-radius:5px;font-size:12px}.material-card h2{margin:17px 0 10px;font-size:21px}.material-card p{min-height:70px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.actions{display:flex;gap:14px;margin-top:22px}.actions a{padding:8px 14px;color:var(--blue);border:1px solid #a9c5ef;border-radius:7px;text-decoration:none;font-size:14px}.watermark{position:fixed;z-index:3;inset:-12%;display:grid;grid-template-columns:repeat(4,1fr);gap:110px 70px;align-content:start;overflow:hidden;pointer-events:none;opacity:.075;transform:rotate(-20deg)}.watermark span{width:260px;color:#526b8e;font-size:13px;white-space:nowrap}.admin-content{max-width:1280px}.admin-panel{margin-top:28px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px}.admin-panel h2{margin:0 0 18px;font-size:18px}.user-create{display:flex;gap:10px;margin-bottom:16px}.user-create input,.row-form input{height:34px;padding:0 9px;border:1px solid #cfd7e4;border-radius:6px;font-size:13px}.user-create button,.small-button{height:34px;padding:0 12px;color:#fff;background:var(--blue);border:0;border-radius:6px;cursor:pointer}.small-button{height:28px;margin-right:5px;font-size:12px}.small-button.danger{color:#a61d24;background:#fff1f0;border:1px solid #ffccc7}.admin-message{padding:9px 11px;color:#2468d8;background:#eff6ff;border-radius:6px;font-size:13px}.table-wrap{overflow:auto}.admin-panel table{width:100%;border-collapse:collapse;font-size:13px}.admin-panel th,.admin-panel td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.admin-panel th{color:var(--muted);background:#f8fafc}.row-form,.inline-form{display:inline}@media(max-width:850px){.cards{grid-template-columns:1fr}.material-card p{min-height:0}.topbar{padding:0 18px}.watermark{grid-template-columns:repeat(2,1fr)}.user-create{flex-wrap:wrap}}
.vip-page{min-height:100vh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 0,#fff5d9 0,#f2f7ff 48%,#e5efff 100%)}.vip-card{position:relative;z-index:2;width:min(470px,calc(100% - 40px));padding:52px 34px;text-align:center;background:rgba(255,255,255,.88);border:1px solid #f7d68a;border-radius:24px;box-shadow:0 24px 70px rgba(57,91,160,.18);animation:vip-pop .65s cubic-bezier(.18,.89,.32,1.28)}.vip-crown{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 20px;color:#fff;background:linear-gradient(135deg,#f5b625,#ff7e42);border-radius:50%;font-size:35px;box-shadow:0 8px 20px rgba(255,157,44,.34);animation:vip-shine 1.8s ease-in-out infinite}.vip-card h1{font-size:34px}.vip-title{margin:9px 0 14px;color:#df7b12;font-size:20px;font-weight:700}.vip-enter{display:inline-block;margin-top:19px;padding:12px 24px;color:#fff;background:linear-gradient(135deg,#f2a21a,#ee6c37);border-radius:9px;text-decoration:none;font-weight:700;box-shadow:0 7px 16px rgba(235,123,34,.25)}.confetti{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-24px;width:9px;height:17px;background:#f5bb28;animation:confetti-fall 3.4s linear infinite}.confetti i:nth-child(3n){background:#ef6f6c}.confetti i:nth-child(3n+1){background:#4d95ea}.confetti i:nth-child(5n){background:#8dcd8a}.confetti i:nth-child(4n){width:12px;height:8px;border-radius:50%}.confetti i:nth-child(1){left:2%;animation-delay:-.2s}.confetti i:nth-child(2){left:7%;animation-delay:-2s}.confetti i:nth-child(3){left:12%;animation-delay:-1s}.confetti i:nth-child(4){left:17%;animation-delay:-2.5s}.confetti i:nth-child(5){left:22%;animation-delay:-.8s}.confetti i:nth-child(6){left:27%;animation-delay:-1.6s}.confetti i:nth-child(7){left:32%;animation-delay:-2.2s}.confetti i:nth-child(8){left:37%;animation-delay:-.4s}.confetti i:nth-child(9){left:42%;animation-delay:-1.3s}.confetti i:nth-child(10){left:47%;animation-delay:-2.8s}.confetti i:nth-child(11){left:52%;animation-delay:-.7s}.confetti i:nth-child(12){left:57%;animation-delay:-1.9s}.confetti i:nth-child(13){left:62%;animation-delay:-2.3s}.confetti i:nth-child(14){left:67%;animation-delay:-.5s}.confetti i:nth-child(15){left:72%;animation-delay:-1.1s}.confetti i:nth-child(16){left:77%;animation-delay:-2.6s}.confetti i:nth-child(17){left:82%;animation-delay:-.9s}.confetti i:nth-child(18){left:87%;animation-delay:-1.7s}.confetti i:nth-child(19){left:92%;animation-delay:-2.1s}.confetti i:nth-child(n+20){left:calc((var(--i, 1) * 4%) + 1%)}@keyframes vip-pop{from{transform:scale(.72);opacity:0}to{transform:scale(1);opacity:1}}@keyframes vip-shine{50%{transform:rotate(13deg) scale(1.08)}}@keyframes confetti-fall{to{transform:translateY(112vh) rotate(620deg);opacity:.3}}
