.admin{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.admin-nav{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:var(--sp-5) var(--sp-3) var(--sp-4);background:var(--c-glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-right:1px solid var(--c-line)}.admin-nav .brand{display:flex;align-items:center;gap:10px;padding:0 var(--sp-3) var(--sp-5);font-weight:750;font-size:17px;color:var(--c-text);text-decoration:none}.admin-nav .brand:hover .brand-mark{transform:rotate(-8deg) scale(1.08)}.admin-nav ul{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.admin-nav .nav-indicator{position:absolute;left:0;top:0;width:var(--ind-w, 0);height:var(--ind-h, 0);transform:translate(var(--ind-x, 0),var(--ind-y, 0));opacity:var(--ind-o, 0);border-radius:12px;background:var(--grad-brand);box-shadow:var(--sh-brand);transition:transform .48s var(--ease-out),width .48s var(--ease-out),height .48s var(--ease-out),opacity var(--t-med);pointer-events:none}.admin-nav a{position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;color:var(--c-muted);text-decoration:none;font-size:15px;font-weight:500;transition:color .28s var(--ease-out),background-color var(--t-fast)}.admin-nav a .icon{transition:transform var(--t-med) var(--ease-spring);flex:none}.admin-nav a:hover{color:var(--c-text);background:#1f6fff0f}.admin-nav a:hover .icon{transform:scale(1.12)}.admin-nav a.current{color:#fff;font-weight:600;background:transparent}.admin-nav .nav-foot{margin-top:auto;padding:var(--sp-3) 0 0;border-top:1px solid var(--c-line)}.admin-nav .nav-foot .btn{width:100%;justify-content:flex-start;padding-left:14px;margin:0;border-radius:12px}.admin-main{padding:var(--sp-6) var(--sp-6) var(--sp-7);min-width:0;max-width:1360px}.admin-main h1{font-size:26px;font-weight:800;letter-spacing:-.02em}.admin-main>section>p>.btn-link{text-decoration:none;font-weight:500}.toolbar{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;margin-bottom:var(--sp-4);padding:var(--sp-4);background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--sh-1)}.panel .toolbar{padding:0;background:none;border:0;box-shadow:none}.toolbar .field{min-width:150px}.toolbar .btn{margin:0}.table-wrap{background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-md);overflow-x:auto;margin-bottom:var(--sp-4);-webkit-overflow-scrolling:touch;box-shadow:var(--sh-1)}.table-wrap .data-table th,.table-wrap .data-table td{border-bottom:1px solid var(--c-line)}.table-wrap .data-table tr:last-child td{border-bottom:0}.data-table .btn{min-height:32px;padding:4px 12px;font-size:14px;margin:0}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);margin-bottom:var(--sp-5)}.tile{position:relative;overflow:hidden;background:var(--c-panel);border:1px solid var(--c-line);border-radius:var(--r-lg);padding:var(--sp-5);min-width:0;box-shadow:var(--sh-1);animation:rise-sm .56s var(--ease-out) both;transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.tile:nth-child(2){animation-delay:60ms}.tile:nth-child(3){animation-delay:.12s}.tile:nth-child(4){animation-delay:.18s}.tile:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.tile:after{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(47,128,255,.18),transparent 70%);transition:transform var(--t-slow) var(--ease-out)}.tile:hover:after{transform:scale(1.4)}.tile .stat-value{font-size:30px}.tile .stat-sub{margin-top:4px}.tile-icon{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;margin-bottom:var(--sp-3);color:var(--c-brand);background:var(--c-brand-soft)}.tile:nth-child(3) .tile-icon{color:var(--c-ok);background:var(--c-ok-soft)}.tile:nth-child(4) .tile-icon{color:#22c3ff;background:#22c3ff24}.tile-alert{border-color:var(--c-alert-line);background:linear-gradient(160deg,var(--c-panel) 30%,var(--c-alert-panel))}.tile-alert .tile-icon{color:#ff9a7a;background:#ff7a5924}.tile-alert .stat-value{color:#ff8a65}@keyframes rise-sm{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start}.grid-2>.panel{animation:rise-sm .56s var(--ease-out) .2s both}.panel h3{margin-bottom:var(--sp-3)}.icon.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.token-box{background:var(--c-token-panel);border:1px solid var(--c-token-line);border-radius:var(--r-md);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:0 10px 30px -14px #f2b20099;animation:pop-in var(--t-slow) var(--ease-spring) both}.token-box .token{font-family:var(--mono);font-size:32px;font-weight:700;letter-spacing:.08em;word-break:break-all;margin:var(--sp-2) 0}.token-box .code-area{width:100%;font-family:var(--mono);font-size:15px;line-height:1.7;resize:vertical;background:var(--c-panel)}.token-box .cardkey-plain{max-height:340px;overflow:auto;margin:var(--sp-3) 0;background:var(--c-panel)}.token-box .cardkey-plain td.mono{-webkit-user-select:all;user-select:all;letter-spacing:.04em}.cell-alert{margin-top:4px;color:var(--c-danger);font-weight:600;font-size:13px;line-height:1.5}.cell-hint{max-width:240px;margin-top:4px;font-size:12px;line-height:1.5;color:var(--c-muted)}.open-access{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4)}.open-access-text p{margin:0 0 var(--sp-1)}.open-access>.btn{flex-shrink:0;white-space:nowrap}@media(max-width:640px){.open-access{flex-direction:column;align-items:stretch}}.login-wrap{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);overflow:hidden;isolation:isolate}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.login-bg .blob-a{width:480px;height:480px;left:-120px;top:-120px;background:#1f6fff}.login-bg .blob-b{width:420px;height:420px;right:-100px;bottom:-120px;background:#12b8f5;animation-delay:-7s}.login-bg .blob-c{width:300px;height:300px;right:20%;top:10%;background:#3b3fff;animation-delay:-12s}.login-box{width:100%;max-width:400px;animation:rise-sm .7s var(--ease-out) both}.login-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:var(--sp-5)}.login-head h1{margin:var(--sp-3) 0 0;font-size:26px;font-weight:800}.brand-mark-lg{width:72px;height:72px;border-radius:18px;box-shadow:0 14px 34px -10px #1f6fff99;animation:pop-in .7s var(--ease-spring) .12s both}.login-card{padding:var(--sp-6) var(--sp-5);border-radius:var(--r-lg);box-shadow:var(--sh-3);background:#0b1322d9;border-color:#78aaff2e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-card .btn{margin:var(--sp-2) 0 0;min-height:46px}.field-inline{display:inline-flex;align-items:center;gap:var(--sp-2)}.tabs{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.row-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.row-actions .btn{margin:0}@media(max-width:900px){.admin{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.admin-nav{position:sticky;top:0;z-index:20;height:auto;flex-direction:row;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 12px;border-right:0;border-bottom:1px solid var(--c-line)}.admin-nav .brand{padding:0 4px;font-size:0;gap:0}.admin-nav .brand .brand-mark{width:26px;height:26px}.admin-nav ul{flex-direction:row;flex:1;overflow-x:auto;scrollbar-width:none}.admin-nav ul::-webkit-scrollbar{display:none}.admin-nav li{flex:none}.admin-nav a{padding:8px 12px;gap:6px;font-size:14px}.admin-nav .nav-foot{margin:0;padding:0;border:0}.admin-nav .nav-foot .btn{width:auto;padding:6px 10px;font-size:14px}.admin-main{padding:var(--sp-5) 16px var(--sp-6)}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,1fr)}}@media(max-width:520px){.tiles{gap:var(--sp-3)}.tile{padding:var(--sp-4)}.tile .stat-value{font-size:22px}.tile-icon{width:34px;height:34px;margin-bottom:var(--sp-2)}.token-box .token{font-size:24px}.admin-nav ul a span{display:none}.admin-nav ul a.current span{display:inline}}.token-list{list-style:none;margin:var(--sp-2) 0;padding:0}.token-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3)}
