:root{
  --bg:#f5f7fb;--surface:#fff;--surface-soft:#f8fafc;--line:#e7ebf2;--line-strong:#dbe2ec;
  --text:#172033;--muted:#78869a;--primary:#2563eb;--primary-2:#1d4ed8;--primary-soft:#eff6ff;
  --success:#059669;--success-soft:#ecfdf5;--danger:#dc2626;--danger-soft:#fff1f2;--warning:#d97706;
  --shadow:0 12px 34px rgba(15,23,42,.055);--shadow-lg:0 20px 54px rgba(15,23,42,.08);
  --radius:16px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei UI","PingFang SC","Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
a{color:inherit}

/* ===== Admin shell ===== */
.layout{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:18px 14px 14px;display:flex;flex-direction:column;z-index:10}
.brand{display:flex;gap:11px;align-items:center;padding:4px 7px 19px;border-bottom:1px solid #f0f2f6;margin-bottom:12px}
.brand-logo{width:40px;height:40px;border-radius:12px;box-shadow:0 9px 20px rgba(37,99,235,.2)}
.brand b{display:block;font-size:14px;line-height:1.25;white-space:nowrap}.brand small{display:block;margin-top:4px;color:#98a3b3;font-size:10px}
.sidebar nav{display:grid;gap:5px}
.sidebar nav a{position:relative;height:42px;border-radius:10px;padding:0 12px;display:flex;align-items:center;text-decoration:none;color:#536174;font-size:12px;font-weight:750;transition:.16s ease}
.sidebar nav a:before{content:"";width:6px;height:6px;border-radius:99px;background:#cbd5e1;margin-right:10px;transition:.16s ease}
.sidebar nav a:hover{background:#f5f8ff;color:#1d4ed8}.sidebar nav a:hover:before{background:#60a5fa}
.sidebar nav a.active{background:linear-gradient(90deg,#eef5ff,#f7faff);color:#1d4ed8;box-shadow:inset 0 0 0 1px #dbeafe}
.sidebar nav a.active:before{width:7px;height:7px;background:#2563eb;box-shadow:0 0 0 4px #dbeafe}
.userbox{margin-top:auto;border-top:1px solid var(--line);padding:14px 8px 1px;font-size:11px;color:#475569;display:flex;justify-content:space-between;align-items:center}.userbox a{color:#e11d48;text-decoration:none;font-weight:700}
main{width:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden}
header{height:72px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:14px;position:sticky;top:0;z-index:8}
header h1{font-size:18px;margin:0;letter-spacing:-.2px}header span{color:#98a3b3;font-size:10px}
.content{width:100%;max-width:none;min-width:0;margin:0;padding:22px 24px 38px;flex:1;display:block}
.content>*{max-width:none}

/* ===== Common ===== */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 19px}.card:after{content:"";position:absolute;right:-18px;top:-24px;width:78px;height:78px;border-radius:50%;background:#f3f7ff}.card span{position:relative;z-index:1;font-size:11px;color:var(--muted);font-weight:700}.card strong{position:relative;z-index:1;display:block;font-size:29px;margin-top:7px;letter-spacing:-.8px}
.panel,.wide-panel{margin-top:15px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;width:100%;min-width:0;display:block;align-self:stretch}
.panel-head{min-height:52px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);font-weight:800;font-size:12px;flex-wrap:wrap}.panel-head .btn{display:inline-flex;align-items:center;text-decoration:none}
.table-wrap{overflow:auto;width:100%;max-width:100%}.table-wrap::-webkit-scrollbar{height:9px;width:9px}.table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px;border:2px solid #fff}
table{width:100%;border-collapse:collapse;font-size:11px;min-width:100%}th{background:#fafbfc;color:#7c8898;text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-weight:800;white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid #f0f2f5;vertical-align:middle}tbody tr:hover{background:#fbfdff}
.badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;border-radius:999px;background:#f1f5f9;color:#5f6d7e;font-size:9px;font-weight:850;line-height:1}.badge.ok{background:var(--success-soft);color:#047857}.badge.bad{background:var(--danger-soft);color:#be123c}.badge.blue{background:#eff6ff;color:#1d4ed8}
.btn{height:34px;padding:0 11px;border-radius:9px;border:1px solid #dce3ec;background:#fff;color:#425166;cursor:pointer;font-size:10px;font-weight:750;transition:.15s ease;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.btn:hover{background:#f8fafc;border-color:#cbd5e1}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 5px 12px rgba(37,99,235,.16)}.btn.primary:hover{background:var(--primary-2)}.btn.danger{background:#fff;border-color:#fecdd3;color:#be123c}.btn.danger:hover{background:#fff1f2}.btn.ghost-danger{border-color:transparent;color:#be123c;background:transparent}.btn.small{height:30px;padding:0 9px}
.field{height:36px;border:1px solid #dbe2eb;border-radius:9px;padding:0 10px;outline:none;background:#fff;color:#334155;transition:.15s}.field:focus,.mini-number:focus{border-color:#8eb5ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.filters{display:flex;gap:8px;align-items:center;padding:12px 15px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.pager{padding:12px 15px;color:#8290a3;font-size:10px;border-top:1px solid #f1f3f6}.pager a{text-decoration:none;color:#2563eb;font-weight:750;margin-left:8px}
.subline{display:block;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.mono{font-family:Consolas,"SFMono-Regular",monospace;word-break:break-all}.empty-cell{text-align:center!important;color:var(--muted);padding:34px!important}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.admin-flash{margin:0 0 14px;padding:11px 13px;border:1px solid #bbf7d0;background:#f0fdf4;color:#047857;border-radius:11px;font-size:11px;font-weight:750;box-shadow:0 7px 18px rgba(5,150,105,.05)}.admin-flash.error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}

/* ===== User management ===== */
.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.page-toolbar .searchbox{display:flex;align-items:center;gap:8px;flex:1;max-width:470px}.page-toolbar .searchbox .field{flex:1;height:40px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.025)}
.page-note{font-size:10px;color:#8491a3}.page-note b{color:#334155}
.user-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:14px}
.summary-chip{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 15px;display:flex;align-items:center;gap:11px;box-shadow:0 6px 18px rgba(15,23,42,.025)}
.summary-icon{width:34px;height:34px;border-radius:10px;background:#f0f5ff;color:#2563eb;display:grid;place-items:center;font-size:13px;font-weight:900}.summary-chip:nth-child(2) .summary-icon{background:#ecfdf5;color:#059669}.summary-chip:nth-child(3) .summary-icon{background:#f5f3ff;color:#7c3aed}.summary-chip:nth-child(4) .summary-icon{background:#fff7ed;color:#d97706}
.summary-chip small{display:block;color:#8a97a8;font-size:9px}.summary-chip b{display:block;margin-top:2px;font-size:17px;letter-spacing:-.4px}
.users-shell{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;width:100%}
.users-shell-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line)}.users-shell-head b{font-size:12px}.users-shell-head span{color:#8b98a9;font-size:9px}
.user-list{display:grid}
.user-card{display:grid;grid-template-columns:minmax(230px,1.2fr) minmax(150px,.72fr) minmax(300px,1.25fr) minmax(145px,.62fr) minmax(240px,1.05fr);gap:18px;align-items:center;padding:17px;border-bottom:1px solid #edf0f4;transition:.15s ease}.user-card:last-child{border-bottom:0}.user-card:hover{background:#fbfdff}
.user-main{display:flex;align-items:center;gap:12px;min-width:0}.user-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:linear-gradient(145deg,#eaf2ff,#dce9ff);display:grid;place-items:center;color:#1d4ed8;font-size:15px;font-weight:900;border:1px solid #d7e5ff}.user-main-info{min-width:0}.user-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.user-name b{font-size:13px}.user-email{margin-top:4px;color:#8895a7;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta{margin-top:6px;color:#a0aaba;font-size:9px}
.user-state{display:grid;gap:6px;justify-items:start}.user-state-label{font-size:9px;color:#94a0af}
.quota-boxes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quota-box{background:#f8fafc;border:1px solid #e8edf3;border-radius:11px;padding:10px 11px;min-width:0}.quota-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.quota-title{font-size:9px;color:#7f8b9b;font-weight:800}.quota-value{margin-top:4px;font-size:15px;font-weight:900;letter-spacing:-.3px}.quota-value a{text-decoration:none;color:#1d4ed8}.quota-sub{margin-top:3px;color:#9aa5b4;font-size:8px}
.sync-stat small,.time-stat small{display:block;color:#8e9bab;font-size:9px}.sync-stat b,.time-stat b{display:block;margin-top:4px;font-size:12px}.time-stat b{font-size:10px}.time-stat .last{margin-top:5px;color:#68778b;font-size:9px}
.manage-box{border-left:1px solid #edf0f4;padding-left:17px}.quota-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quota-field{display:grid;gap:4px}.quota-field span{font-size:8px;color:#8794a6;font-weight:750}.mini-number{width:100%;height:32px;border:1px solid #dbe2eb;border-radius:8px;padding:0 8px;outline:none;background:#fff;color:#334155}.manage-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}.hint-inline{font-size:8px;color:#94a3b8;margin-top:6px}.users-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line);font-size:10px;color:#8b98a9}

/* ===== Log page ===== */
.log-layout{display:grid;gap:14px;width:100%;min-width:0}
.log-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:100%}
.log-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:0 6px 18px rgba(15,23,42,.03)}
.log-card small{display:block;font-size:9px;color:#8e9bab}.log-card b{display:block;margin-top:6px;font-size:20px;letter-spacing:-.4px}.log-card span{display:block;margin-top:4px;font-size:9px;color:#94a3b8}
.log-panel .panel-head-title{display:grid;gap:4px}.log-panel .panel-head-title small{font-size:10px;color:#95a2b3;font-weight:600}
.log-table{min-width:1280px;table-layout:fixed}.log-table th:nth-child(1){width:170px}.log-table th:nth-child(2){width:110px}.log-table th:nth-child(3){width:280px}.log-table th:nth-child(4){width:90px}.log-table th:nth-child(5){width:80px}.log-table th:nth-child(6){width:130px}.log-table th:nth-child(7){width:auto}
.log-table td{vertical-align:top}.log-detail{white-space:normal;word-break:break-word;line-height:1.6;color:#425166}.log-device{color:#1e293b;font-weight:600}.log-muted{font-size:9px;color:#94a3b8}
.log-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;background:#fcfdff}.log-toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.log-toolbar-note{font-size:10px;color:#8b98a9}

/* ===== Auth ===== */
.login-card{width:min(400px,92vw);margin:90px auto;background:#fff;padding:28px 26px;border-radius:18px;box-shadow:var(--shadow-lg);border:1px solid #ecf0f6;text-align:center}.login-card h1{margin:8px 0 8px;font-size:24px}.login-card p{margin:0 0 16px;color:#8895a7;font-size:11px}.form-group{margin:0 0 12px;text-align:left}.form-group label{display:block;font-size:10px;color:#6b7b91;margin-bottom:5px;font-weight:800}.form-group input{width:100%;height:40px;border:1px solid #dbe2eb;border-radius:10px;padding:0 12px}.form-actions{margin-top:14px}.form-actions button{width:100%;height:40px;border:0;border-radius:10px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer}.alert{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:9px;padding:9px 10px;font-size:11px;margin-bottom:12px}
.auth-page{min-height:100vh;background:#edf3fb}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr)}
.auth-hero{position:relative;overflow:hidden;padding:42px clamp(38px,6vw,92px);display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 14% 6%,rgba(56,189,248,.36),transparent 28%),radial-gradient(circle at 85% 80%,rgba(59,130,246,.30),transparent 26%),linear-gradient(145deg,#061a38 0%,#0b2c5d 48%,#0d47a1 100%)}
.auth-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,black,transparent 88%)}
.auth-brand,.auth-copy,.download-card,.auth-foot{position:relative;z-index:1}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand img{width:48px;height:48px;border-radius:14px;box-shadow:0 14px 30px rgba(0,0,0,.22)}.auth-brand b{display:block;font-size:20px;letter-spacing:.2px}.auth-brand span{display:block;margin-top:3px;font-size:11px;color:#bfdbfe}.auth-copy{margin:auto 0;max-width:690px;padding:70px 0 48px}.eyebrow{display:inline-flex;padding:7px 10px;border:1px solid rgba(191,219,254,.28);background:rgba(255,255,255,.08);border-radius:999px;color:#dbeafe;font-size:10px;font-weight:800;letter-spacing:1.1px}.auth-copy h1{font-size:clamp(38px,4.3vw,64px);line-height:1.12;margin:20px 0 18px;letter-spacing:-2px}.auth-copy p{max-width:640px;color:#c9dcf8;font-size:15px;line-height:1.9;margin:0}.auth-points{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.auth-points span{padding:8px 11px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.09);font-size:11px;color:#e8f2ff}
.download-card{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;text-decoration:none;color:#fff;background:rgba(255,255,255,.09);border:1px solid rgba(191,219,254,.25);border-radius:16px;padding:14px 16px;backdrop-filter:blur(12px);max-width:560px;transition:.18s ease}.download-card:hover{transform:translateY(-2px);background:rgba(255,255,255,.13);border-color:rgba(191,219,254,.4)}.download-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#0b4eb4;font-size:23px;font-weight:900}.download-card b{display:block;font-size:13px}.download-card small{display:block;color:#bfdbfe;margin-top:4px;font-size:10px}.download-card em{font-style:normal;padding:7px 11px;border-radius:9px;background:#fff;color:#0b4eb4;font-size:11px;font-weight:900}.auth-foot{margin-top:24px;color:#8eb8ee;font-size:10px}
.auth-panel{display:grid;place-items:center;padding:44px;background:linear-gradient(145deg,#f8fbff,#eef4fb)}.login-card-v2{width:min(450px,100%);padding:34px 36px;border-radius:20px;box-shadow:0 25px 80px rgba(15,44,86,.14);border:1px solid #e4ebf5}.login-title>span{display:block;color:#2563eb;font-size:10px;font-weight:900;letter-spacing:.8px}.login-title h2{margin:7px 0 5px;font-size:27px;letter-spacing:-.6px}.login-title p{text-align:left;margin:0 0 24px;font-size:11px}.login-card-v2 .form-group{margin-bottom:14px}.login-card-v2 .form-group label{font-size:11px}.login-card-v2 .form-group input{height:44px;border-radius:10px;background:#fbfdff;border-color:#dce5f0;transition:.15s}.login-card-v2 .form-group input:focus{border-color:#7aa7ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.auth-submit{height:45px!important;margin-top:3px;font-weight:800}.login-note{margin-top:17px;padding-top:16px;border-top:1px solid #edf1f6;color:#8a99ac;font-size:10px;line-height:1.6}.mobile-brand,.mobile-download{display:none}

@media(max-width:1320px){
  .user-card{grid-template-columns:minmax(220px,1fr) minmax(140px,.65fr) minmax(280px,1.2fr) minmax(220px,.85fr)}
  .sync-stat{display:none}
  .log-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1080px){
  .layout{grid-template-columns:190px minmax(0,1fr)}.content{padding:18px}.cards,.user-summary{grid-template-columns:1fr 1fr}
  .user-card{grid-template-columns:1fr 1fr;align-items:start}.user-main{grid-column:1/2}.user-state{grid-column:2/3}.quota-boxes{grid-column:1/3}.time-stat{grid-column:1/2}.manage-box{grid-column:2/3;border-left:0;padding-left:0}
  .log-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .layout{display:block}.sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px}.brand{margin:0;padding:2px 4px 12px}.sidebar nav{grid-template-columns:repeat(4,1fr);gap:5px}.sidebar nav a{justify-content:center;padding:0 5px;height:36px;font-size:10px}.sidebar nav a:before{display:none}.userbox{display:none}header{position:relative;height:auto;padding:15px 16px;align-items:flex-start;flex-direction:column;gap:3px}.content{padding:14px}.cards,.user-summary,.log-summary{grid-template-columns:1fr 1fr}.page-toolbar{align-items:stretch;flex-direction:column}.page-toolbar .searchbox{max-width:none}.user-card{grid-template-columns:1fr;gap:12px;padding:15px}.user-main,.user-state,.quota-boxes,.time-stat,.manage-box{grid-column:1}.quota-boxes{grid-template-columns:1fr 1fr}.manage-box{padding-top:12px;border-top:1px solid var(--line)}.users-footer{align-items:flex-start;flex-direction:column}
  .auth-shell{grid-template-columns:1fr}.auth-hero{display:none}.auth-panel{min-height:100vh;padding:24px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px}.mobile-brand img{width:42px;height:42px;border-radius:12px}.mobile-brand b{font-size:17px}.mobile-download{display:block;text-align:center;margin-top:12px;color:#2563eb;text-decoration:none;font-size:11px;font-weight:700}.login-card-v2{padding:28px}
}
@media(max-width:560px){
  .cards,.user-summary,.log-summary{grid-template-columns:1fr}
  .quota-boxes,.quota-form{grid-template-columns:1fr}
  .log-toolbar{align-items:flex-start}
}

/* ===== v3.0.1 usability polish ===== */
.btn:disabled,.btn[disabled]{opacity:.46;cursor:not-allowed;box-shadow:none;filter:saturate(.5)}
.btn:disabled:hover,.btn[disabled]:hover{background:inherit;border-color:inherit}
.login-card-v2 .auth-submit{width:100%;font-size:12px}
.auth-alert{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:11px 12px;border-radius:11px;border:1px solid #fecaca;background:#fff7f7;color:#9f1239;text-align:left}
.auth-alert-badge{width:23px;height:23px;flex:0 0 23px;border-radius:8px;display:grid;place-items:center;background:#fee2e2;color:#be123c;font-size:12px;font-weight:950}
.auth-alert b{display:block;font-size:11px}.auth-alert p{margin:3px 0 0!important;color:#b42345!important;font-size:10px!important;line-height:1.55}

/* Standalone registration / reset / logout pages */
.simple-auth-page{min-height:100vh;background:radial-gradient(circle at 50% -15%,#fff 0,#f5f8fd 35%,#edf3fb 100%)}
.simple-auth-shell{min-height:100vh;display:flex;flex-direction:column}
.simple-auth-topbar{position:relative;top:auto;height:72px;flex:0 0 72px;padding:0 clamp(20px,4vw,54px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.88);backdrop-filter:blur(15px);border-bottom:1px solid #e7edf5;box-shadow:0 5px 24px rgba(15,23,42,.025);z-index:2}
.simple-auth-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text)}
.simple-auth-brand img{width:39px;height:39px;border-radius:11px;box-shadow:0 7px 20px rgba(37,99,235,.18)}
.simple-auth-brand b{display:block;font-size:15px}.simple-auth-brand small{display:block;margin-top:2px;color:#95a1b1;font-size:9px;font-weight:600}
.simple-auth-main{width:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 20px 28px}
.modern-auth-card{margin:0;width:min(650px,calc(100vw - 36px));padding:30px 32px 26px;text-align:left;border-radius:20px;border:1px solid #e4eaf2;box-shadow:0 25px 70px rgba(15,44,86,.10);background:rgba(255,255,255,.97)}
.auth-card-heading{text-align:center;margin-bottom:21px}.auth-card-heading h1{font-size:25px;margin:7px 0 7px;letter-spacing:-.5px}.auth-card-heading p{max-width:500px;margin:0 auto;color:#8b98aa;font-size:10px;line-height:1.75}
.auth-kicker{font-size:9px;font-weight:900;letter-spacing:1.3px;color:#2563eb}
.auth-form-grid{display:grid;grid-template-columns:1fr;gap:12px}.auth-form-grid.two{grid-template-columns:1fr 1fr}.auth-form-grid .form-group{margin:0}
.modern-auth-card .form-group{margin-bottom:13px}.modern-auth-card .form-group label{font-size:10px}.modern-auth-card .form-group input{height:43px;border-radius:10px;background:#fbfdff;outline:none;transition:.15s}.modern-auth-card .form-group input:focus{border-color:#8eb5ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) 144px;gap:10px;align-items:end}.auth-code-row .form-group{margin-bottom:13px}.auth-code-btn{height:43px;margin-bottom:13px;font-size:10px}
.auth-info-strip{display:flex;gap:12px;align-items:flex-start;margin:3px 0 14px;padding:11px 12px;border:1px solid #dbeafe;background:#f5f9ff;border-radius:10px;font-size:10px}.auth-info-strip b{white-space:nowrap;color:#1d4ed8}.auth-info-strip span{color:#6f7e92;line-height:1.55}
.modern-auth-card .auth-submit{width:100%;font-size:12px;margin-top:2px}.modern-auth-links{margin:14px 0 0;padding-top:14px;border-top:1px solid #edf1f6}.modern-auth-links a{font-size:10px;font-weight:750}
.simple-auth-foot{margin:17px 0 0;color:#9aa6b6;font-size:9px;letter-spacing:.2px}
.logout-card-modern{margin:0;width:min(430px,calc(100vw - 36px));padding:34px 32px;text-align:center}.logout-card-modern h1{font-size:23px;margin:12px 0 8px}.logout-card-modern>p{font-size:11px;line-height:1.8;margin:0 auto 22px;max-width:340px}.logout-icon{width:52px;height:52px;border-radius:16px;margin:0 auto;display:grid;place-items:center;background:#eef5ff;color:#2563eb;font-size:24px;font-weight:900}.logout-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.logout-actions .btn{height:40px;text-decoration:none}

/* User list: keep the list readable; edit details in a centered modal. */
.user-card.user-card-clean{grid-template-columns:minmax(245px,1.05fr) minmax(200px,.78fr) minmax(330px,1.25fr) 175px;gap:16px}
.user-card-clean .manage-box-clean{border-left:1px solid #edf0f4;padding-left:16px;display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.membership-badge.free{background:#f1f5f9;color:#64748b}.membership-badge.vip{background:#fff7ed;color:#c26805}.membership-badge.svip{background:#f5f3ff;color:#6d28d9}
.user-card-empty{padding:44px 20px;text-align:center;color:#94a3b8;font-size:11px}
.pager-links{display:flex;gap:8px}.pager-links a{padding:5px 8px;text-decoration:none;color:#64748b;border-radius:7px}.pager-links a:hover{background:#f1f5f9}.pager-links a.disabled{opacity:.35;pointer-events:none}

.admin-modal-layer[hidden]{display:none!important}.admin-modal-layer{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.42);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;overflow:auto}
html.modal-open,html.modal-open body{overflow:hidden}
.admin-modal{width:min(860px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 40px));background:#fff;border:1px solid #e3e9f1;border-radius:19px;box-shadow:0 28px 90px rgba(15,23,42,.24);display:flex;flex-direction:column;overflow:hidden}
.admin-modal-head{min-height:76px;padding:16px 20px;border-bottom:1px solid #edf0f4;display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(180deg,#fff,#fbfdff)}
.admin-modal-head h2{margin:3px 0 2px;font-size:18px}.admin-modal-head p{margin:0;color:#8b98aa;font-size:9px}.modal-kicker{font-size:8px;font-weight:900;letter-spacing:1.2px;color:#2563eb}
.modal-close{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:9px;background:#f5f7fb;color:#64748b;font-size:22px;line-height:1;cursor:pointer}.modal-close:hover{background:#eef2f7;color:#0f172a}
.admin-modal-body{overflow:auto;padding:4px 20px 20px;overscroll-behavior:contain}.admin-modal-foot{min-height:58px;padding:11px 20px;border-top:1px solid #edf0f4;background:#fcfdff;display:flex;align-items:center;justify-content:flex-end;gap:8px}
.modal-section{padding:17px 0;border-bottom:1px solid #eef1f5}.modal-section:last-of-type{border-bottom:0}.modal-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:5px}.modal-section-title b{font-size:11px}.modal-section-title span{color:#8e9aab;font-size:9px;text-align:right}
.admin-form-grid{display:grid;gap:11px}.admin-form-grid.two{grid-template-columns:1fr 1fr}.admin-form-grid.three{grid-template-columns:repeat(3,1fr)}.admin-form-grid.four{grid-template-columns:repeat(4,1fr)}
.admin-modal .v3-field{margin:9px 0 0}.admin-modal .v3-field>span{font-size:9px}.admin-modal .v3-field input,.admin-modal .v3-field select{height:38px;padding:0 10px}.admin-modal .v3-field small{font-size:8px}
.modal-danger{margin-top:17px;padding:13px 14px;border-radius:11px;border:1px solid #fee2e2;background:#fffafa;display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-danger b{display:block;font-size:10px;color:#9f1239}.modal-danger span{display:block;margin-top:3px;color:#a77882;font-size:8px}.modal-danger>div:last-child{display:flex;gap:7px;align-items:center;flex:0 0 auto}

@media(max-width:1320px){
  .user-card.user-card-clean{grid-template-columns:minmax(220px,1fr) minmax(180px,.75fr) minmax(300px,1.2fr) 160px}
}
@media(max-width:1080px){
  .user-card.user-card-clean{grid-template-columns:1fr 1fr}.user-card-clean .user-main{grid-column:1}.user-card-clean .user-state{grid-column:2}.user-card-clean .quota-boxes{grid-column:1/3}.user-card-clean .manage-box-clean{grid-column:1/3;border-left:0;padding:0;justify-content:flex-start}
  .admin-form-grid.four{grid-template-columns:1fr 1fr}.admin-form-grid.three{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .simple-auth-topbar{height:64px;flex-basis:64px;padding:0 16px}.simple-auth-brand img{width:35px;height:35px}.simple-auth-brand small{display:none}.simple-auth-main{justify-content:flex-start;padding-top:24px}.modern-auth-card{padding:24px 20px}.auth-form-grid.two,.auth-code-row{grid-template-columns:1fr}.auth-code-btn{margin:-3px 0 13px;width:100%}.logout-card-modern{padding:30px 22px}
  .user-card.user-card-clean{grid-template-columns:1fr}.user-card-clean .user-main,.user-card-clean .user-state,.user-card-clean .quota-boxes,.user-card-clean .manage-box-clean{grid-column:1}.user-card-clean .manage-box-clean{padding-top:12px;border-top:1px solid #edf0f4}.admin-form-grid.two,.admin-form-grid.three,.admin-form-grid.four{grid-template-columns:1fr}.admin-modal{max-height:calc(100vh - 20px);width:calc(100vw - 20px)}.admin-modal-layer{padding:10px}.modal-danger{align-items:flex-start;flex-direction:column}.modal-danger>div:last-child{width:100%}.modal-danger .btn{flex:1}.modal-section-title{align-items:flex-start;flex-direction:column;gap:4px}.modal-section-title span{text-align:left}
}
.simple-auth-shell{overflow:auto}.simple-auth-main{overflow:visible;min-width:0}
