*{box-sizing:border-box}body,html{margin:0;padding:0;width:100%;height:100vh;overflow:hidden}:root{--accent:#22d3ee;--accent-2:#a78bfa;--text:#e5e7eb;--muted:#9ca3af;--card:hsla(0,0%,100%,0.08);--card-hover:hsla(0,0%,100%,0.12);--border:hsla(0,0%,100%,0.15);--shadow:0 10px 30px rgba(0,0,0,0.35)}.portal{color:#e5e7eb;background:radial-gradient(1200px 600px at 10% 10%,#0b1020 0,#0f172a 35%,#111827 100%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,Noto Sans SC,Helvetica Neue,Arial,sans-serif;overflow-x:hidden;height:100%}.container{width:1200px;margin:0 auto;padding:6rem 1.25rem 3rem;height:100%}.bg-anim:after,.bg-anim:before{content:"";position:fixed;inset:-20vmax;background:radial-gradient(40vmax 25vmax at 10% 15%,rgba(34,211,238,.12),transparent 60%),radial-gradient(35vmax 22vmax at 85% 20%,rgba(167,139,250,.1),transparent 62%),radial-gradient(30vmax 20vmax at 50% 90%,rgba(56,189,248,.1),transparent 65%);filter:blur(50px);transform:translateZ(0);animation:float 24s linear infinite;pointer-events:none;z-index:-1}.bg-anim:after{animation-duration:36s;animation-direction:reverse;opacity:.8}@keyframes float{0%{transform:translateZ(0) rotate(0deg)}50%{transform:translate3d(2%,-1%,0) rotate(1deg)}to{transform:translateZ(0) rotate(0deg)}}header{text-align:center;margin-bottom:2rem}.brand{display:inline-flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:999px;background:linear-gradient(90deg,rgba(34,211,238,.15),rgba(167,139,250,.15));border:1px solid var(--border);box-shadow:var(--shadow)}.brand svg{width:28px;height:28px;flex:none;filter:drop-shadow(0 2px 6px rgba(34,211,238,.35))}.title{font-size:clamp(24px,4vw,36px);font-weight:700;margin:1.25rem 0 .5rem;letter-spacing:.5px}.subtitle{color:var(--muted);font-size:clamp(14px,2.2vw,16px);margin-bottom:2rem}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid{grid-template-columns:1fr}}.card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem;backdrop-filter:saturate(160%) blur(8px);transition:transform .28s ease,background .28s ease,border-color .28s ease;box-shadow:var(--shadow)}.card:hover{transform:translateY(-4px);background:var(--card-hover);border-color:hsla(0,0%,100%,.25)}.card:after{content:"";position:absolute;inset:0;border-radius:16px;background:linear-gradient(120deg,rgba(34,211,238,.22),rgba(167,139,250,.18));opacity:0;pointer-events:none;transition:opacity .28s ease}.card:hover:after{opacity:.08}.card-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.card-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(34,211,238,.18),rgba(167,139,250,.16));border:1px solid var(--border)}.card-title{font-weight:600;font-size:16px}.card-desc{color:var(--muted);font-size:13px;margin:.25rem 0 .75rem}.card-actions{display:flex;gap:.5rem;align-items:center}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .85rem;border-radius:999px;text-decoration:none;color:var(--text);background:linear-gradient(90deg,rgba(34,211,238,.25),rgba(167,139,250,.25));border:1px solid var(--border);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(34,211,238,.25)}.link{color:var(--accent);text-decoration:none;font-size:13px}.link:hover{text-decoration:underline}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{width:min(880px,92vw);max-height:82vh;display:flex;flex-direction:column;background:linear-gradient(135deg,rgba(17,24,39,.9),rgba(15,23,42,.92));color:var(--text);border:1px solid var(--border);border-radius:16px;box-shadow:0 14px 44px rgba(0,0,0,.45);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-title{font-weight:600}.btn.close{width:32px;height:32px;display:grid;place-items:center;padding:0}.modal-body{padding:1rem 1.25rem 1.25rem;overflow-y:auto}.modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.search-input{width:280px;max-width:100%;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--border);background:hsla(0,0%,100%,.06);color:var(--text)}.search-input::-moz-placeholder{color:var(--muted)}.search-input::placeholder{color:var(--muted)}.modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.card.selectable{cursor:pointer;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,rgba(34,211,238,.08),rgba(167,139,250,.06));transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;min-height:120px}.card.selectable:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(34,211,238,.25);background:var(--card-hover);border-color:hsla(0,0%,100%,.25)}.card.selectable.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset,0 8px 24px rgba(34,211,238,.22)}.modal-footer{padding:.75rem 1.25rem 1rem;justify-content:space-between;border-top:1px solid var(--border)}.modal-footer,.pager{display:flex;align-items:center}.pager{gap:.5rem}.pager-info{color:var(--muted);font-size:13px}.pager-sizes select{margin:0 .25rem;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.15rem .35rem}.btn.primary{background:linear-gradient(90deg,rgba(34,211,238,.35),rgba(167,139,250,.35));border-color:var(--accent)}@media (max-width:640px){.modal-box{width:95vw;max-height:85vh}.modal-grid{grid-template-columns:1fr}}button{cursor:pointer}.empty{display:grid;place-items:center;gap:.35rem;color:var(--muted);border:1px dashed var(--border);border-radius:12px;padding:.75rem;margin-bottom:.75rem;background:hsla(0,0%,100%,.04)}.empty-icon{font-size:18px}.empty-text{font-size:13px}.modal-grid .link{word-break:break-all;white-space:normal}.login-view{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.login-card{width:min(480px,92vw);background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:1.25rem 1.25rem 1rem}.login-head{text-align:center}.login-title{font-weight:700;font-size:20px;margin-top:.5rem}.login-subtitle{color:var(--muted);font-size:13px;margin-top:.25rem}.login-body{display:grid;gap:.75rem;margin-top:1rem}.login-input{width:100%;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--border);background:hsla(0,0%,100%,.06);color:var(--text)}.login-btn{width:100%;justify-content:center}.login-error{color:#fca5a5;font-size:13px}