:root{--bg:#07080c;--bg-2:#0b0d13;--panel:rgba(255,255,255,.038);--panel-2:rgba(255,255,255,.055);--border:rgba(255,255,255,.075);--border-2:rgba(255,255,255,.12);--text:#eef2f7;--muted:#8b95a8;--muted-2:#5b6474;--accent:#2ee6c0;--accent-2:#4d8cff;--danger:#ff5d6c;--r:16px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{background:radial-gradient(900px 500px at 80% -10%,rgba(77,140,255,.13),transparent 60%),radial-gradient(700px 420px at -10% 0%,rgba(46,230,192,.12),transparent 62%),var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit}.app{max-width:1080px;margin:0 auto;padding:20px 16px 56px}.hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.hdr-l{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2ee6c038,#4d8cff38);border:1px solid rgba(46,230,192,.28);color:var(--accent);box-shadow:0 8px 22px -12px #2ee6c0cc}.hdr h1{margin:0;font-size:17px;font-weight:700;letter-spacing:.1px}.hdr p{margin:2px 0 0;font-size:11.5px;color:var(--muted-2);letter-spacing:.3px}.hdr-r{display:flex;align-items:center;gap:8px}.pill{font-size:11.5px;padding:6px 11px;border-radius:9px;background:var(--panel);border:1px solid var(--border);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pill.domain{color:var(--accent);border-color:#2ee6c040;background:#2ee6c012}.hide-xs{display:none}.ghost,.primary,.danger-btn,.mini,.iconbtn{border-radius:10px;border:1px solid var(--border);background:var(--panel);color:#cfd6e4;cursor:pointer;transition:.15s ease;display:inline-flex;align-items:center;gap:6px}.ghost{padding:8px 13px;font-size:12.5px}.ghost:hover{background:var(--panel-2);border-color:var(--border-2);color:#fff}.ghost.sm{padding:7px 11px;font-size:12px}.primary{padding:11px 18px;font-size:13.5px;font-weight:700;width:100%;justify-content:center;background:linear-gradient(100deg,#2ee6c0,#4d8cff);color:#03110e;border:none;box-shadow:0 12px 26px -14px #2ee6c0cc}.primary:hover{filter:brightness(1.05)}.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.danger-btn{padding:11px 18px;font-size:13.5px;font-weight:700;background:#ff5d6c21;border-color:#ff5d6c59;color:#ff8b96}.danger-btn:hover{background:#ff5d6c33}.mini{padding:4px 9px;font-size:11px;border-radius:7px;background:#ffffff0d;border-color:#ffffff14;color:var(--muted)}.mini:hover{color:var(--accent);border-color:#2ee6c059;background:#2ee6c014}.iconbtn{width:34px;height:34px;justify-content:center;padding:0;color:var(--muted);flex:0 0 auto}.iconbtn:hover{color:#fff;background:var(--panel-2);border-color:var(--border-2)}.iconbtn.danger:hover{color:#ff8b96;border-color:#ff5d6c66;background:#ff5d6c1a}.mobile-toggle{display:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.stat{background:linear-gradient(180deg,#ffffff0e,#ffffff05);border:1px solid var(--border);border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:6px}.stat span{font-size:11.5px;color:var(--muted-2)}.stat strong{font-size:22px;font-weight:750;letter-spacing:-.5px;background:linear-gradient(100deg,#fff,#a9c2e0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat strong.tiny{font-size:14px;font-weight:650;-webkit-text-fill-color:var(--muted)}.stat-hint{display:none}.panel{background:linear-gradient(180deg,#ffffff0b,#ffffff04);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:16px;box-shadow:0 24px 60px -40px #000}.panel-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-hd h2{margin:0;font-size:14.5px;font-weight:700;letter-spacing:.1px}.hint{font-size:11.5px;color:var(--muted-2)}.drop{border:1.5px dashed rgba(255,255,255,.14);border-radius:15px;padding:28px 18px;text-align:center;cursor:pointer;background:#ffffff05;transition:.18s ease}.drop:hover,.drop.drag{border-color:#2ee6c080;background:#2ee6c00d}.drop.uploading{cursor:default;border-style:solid;border-color:#2ee6c059}.drop-ic{width:46px;height:46px;border-radius:14px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;background:#2ee6c01a;border:1px solid rgba(46,230,192,.24);color:var(--accent)}.drop-title{margin:0 0 5px;font-size:14px;font-weight:650}.drop-sub{margin:0;font-size:11.5px;color:var(--muted-2)}.progress-wrap{max-width:420px;margin:0 auto}.progress-top{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:9px}.progress-top strong{color:var(--accent)}.progress-bar{height:6px;border-radius:99px;background:#ffffff14;overflow:hidden;margin-bottom:10px}.progress-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2ee6c0,#4d8cff);transition:width .2s ease}.row-fields{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}.field label{font-size:11.5px;color:var(--muted);letter-spacing:.2px}.field label span{color:var(--muted-2);font-weight:400;margin-left:5px}.input{width:100%;padding:11px 13px;border-radius:10px;font-size:13.5px;background:#fff1;border:1px solid rgba(255,255,255,.11);color:var(--text);outline:none;transition:.15s ease}.input::placeholder{color:#454e5e}.input:focus{border-color:#2ee6c073;background:#2ee6c00d;box-shadow:0 0 0 3px #2ee6c014}textarea.input{resize:vertical;line-height:1.6}.input-suffix{display:flex;align-items:center;gap:0;position:relative}.input-suffix .input{padding-right:auto}.input-suffix em{position:absolute;right:12px;font-style:normal;font-size:12px;color:var(--muted-2);pointer-events:none;font-family:ui-monospace,Menlo,monospace;max-width:45%;overflow:hidden;white-space:nowrap}.list{display:flex;flex-direction:column;gap:9px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:14px;background:#ffffff07;border:1px solid rgba(255,255,255,.055);transition:.15s ease}.row:hover{background:#ffffff0b;border-color:#ffffff17}.row.off{opacity:.6}.row-main{display:flex;align-items:center;gap:13px;min-width:0;flex:1}.row-icon{width:48px;height:48px;border-radius:13px;flex:0 0 auto;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#2ee6c0d9,#4d8cffd9);color:#03110e;font-weight:800;font-size:19px;box-shadow:0 8px 20px -12px #000000e6,0 0 0 1px #ffffff14}.row-icon img{width:100%;height:100%;object-fit:cover;background:#fff}.row-info{min-width:0;flex:1}.row-title{display:flex;align-items:center;gap:8px}.row-title h3{margin:0;font-size:14.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag{font-size:10px;padding:2px 7px;border-radius:6px;font-weight:600}.tag.off{color:#ff8b96;background:#ff5d6c1f;border:1px solid rgba(255,93,108,.28)}.row-meta{display:flex;gap:10px;margin-top:5px;font-size:12px;color:#7d8798;flex-wrap:wrap}.row-url{display:flex;align-items:center;gap:6px;margin-top:7px;flex-wrap:wrap}.row-url code{font-size:11.5px;color:var(--accent);font-family:ui-monospace,Menlo,monospace;background:#2ee6c012;padding:3px 8px;border-radius:6px;border:1px solid rgba(46,230,192,.16);max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.switch{position:relative;display:inline-block;flex:0 0 auto;margin-left:2px;cursor:pointer}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{display:block;width:38px;height:21px;border-radius:99px;background:#ffffff1a;border:1px solid var(--border);transition:.18s ease;position:relative}.switch span:after{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#8b95a8;transition:.18s ease}.switch input:checked+span{background:#2ee6c03d;border-color:#2ee6c066}.switch input:checked+span:after{left:19px;background:var(--accent);box-shadow:0 0 10px #2ee6c0b3}.empty{text-align:center;padding:40px 16px}.empty-ic{width:56px;height:56px;border-radius:16px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px dashed rgba(255,255,255,.14);color:var(--muted-2)}.empty p{margin:0 0 6px;font-size:13.5px;color:var(--muted)}.empty span{font-size:11.5px;color:var(--muted-2)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#030407b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px;animation:fade .18s ease both}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:520px;max-height:88vh;overflow:auto;background:linear-gradient(180deg,#12151d,#0c0e14);border:1px solid var(--border-2);border-radius:18px;padding:18px;box-shadow:0 40px 90px -30px #000;animation:pop .22s cubic-bezier(.22,1,.36,1) both}.modal.narrow{max-width:400px}@keyframes pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.modal-hd h3{margin:0;font-size:14.5px;font-weight:700}.modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}.modal-actions .primary{width:auto;min-width:110px}.del-text{margin:0;font-size:13px;line-height:1.7;color:var(--muted)}.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qr-item{background:#ffffff08;border:1px solid var(--border);border-radius:14px;padding:14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.qr-item img{width:100%;max-width:140px;aspect-ratio:1;background:#fff;border-radius:10px;padding:7px}.qr-item strong{font-size:12.5px}.qr-item p{margin:0;font-size:11px;color:var(--muted-2)}.link-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.link-row{display:flex;align-items:center;gap:8px;background:#ffffff07;border:1px solid var(--border);border-radius:10px;padding:9px 11px}.link-row span{font-size:11px;color:var(--muted-2);flex:0 0 auto}.link-row code{flex:1;font-size:11px;color:#a9b6c8;font-family:ui-monospace,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:90;padding:11px 18px;border-radius:12px;font-size:12.5px;background:#12161ef5;border:1px solid rgba(46,230,192,.35);color:#d6f7ef;box-shadow:0 18px 40px -16px #000;animation:toastIn .22s ease both;max-width:90vw;text-align:center}.toast.err{border-color:#ff5d6c66;color:#ffb3ba}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.topbar-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent);background-size:200% 100%;animation:slide 1.1s linear infinite}@keyframes slide{0%{background-position:0 0}to{background-position:200% 0}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}.login-glow{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(110px);background:radial-gradient(circle,rgba(46,230,192,.22),rgba(77,140,255,.16) 45%,transparent 70%);pointer-events:none}.login-card{position:relative;width:100%;max-width:360px;background:linear-gradient(180deg,#ffffff0f,#ffffff06);border:1px solid var(--border-2);border-radius:20px;padding:30px 26px;box-shadow:0 40px 90px -40px #000;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-logo{width:48px;height:48px;border-radius:15px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2ee6c033,#4d8cff33);border:1px solid rgba(46,230,192,.28);color:var(--accent)}.login-card h1{margin:0 0 6px;font-size:18px;text-align:center;font-weight:750;letter-spacing:.2px}.login-sub{margin:0 0 22px;text-align:center;font-size:12px;color:var(--muted-2)}.login-card .input{margin-bottom:12px}.check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-bottom:16px;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{accent-color:#2ee6c0;width:14px;height:14px}.err{font-size:12px;color:#ff8b96;margin-bottom:12px;text-align:center}.boot{min-height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .8s linear infinite;display:block}@keyframes spin{to{transform:rotate(360deg)}}.foot{text-align:center;font-size:11px;color:#3d4553;margin-top:8px;letter-spacing:.3px}@media (min-width:560px){.hide-xs{display:inline}.row-fields{grid-template-columns:1fr 1fr}.stat-hint{display:flex}.stats{grid-template-columns:repeat(4,1fr)}}@media (min-width:820px){.app{padding:32px 28px 64px}.panel{padding:22px}.drop{padding:36px 20px}}@media (max-width:680px){.row{flex-wrap:wrap}.row-actions{width:100%;justify-content:flex-end;border-top:1px solid rgba(255,255,255,.05);padding-top:10px;margin-top:2px}.mobile-toggle{display:inline-flex}.pill.domain{display:none}.qr-grid{grid-template-columns:1fr}}.tabs{display:flex;gap:8px;margin:-8px 0 18px}.tab{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:11px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;background:var(--panel);border:1px solid var(--border);transition:.15s ease}.tab:hover{color:#fff;background:var(--panel-2)}.tab.on{color:#03110e;background:linear-gradient(100deg,#2ee6c0,#4d8cff);border-color:transparent;box-shadow:0 10px 24px -14px #2ee6c0e6}.pill.who{color:#cfd6e4}.pill.who.admin{color:var(--accent);border-color:#2ee6c040;background:#2ee6c012}.stat strong .quota{font-size:13px;font-weight:600;color:var(--muted-2);-webkit-text-fill-color:var(--muted-2);margin-left:2px}.limit-bar{margin:-6px 0 16px;padding:11px 14px;border-radius:12px;font-size:12.5px;color:#ffcf8a;background:#ffb45014;border:1px solid rgba(255,180,80,.25)}.panel-actions{display:flex;align-items:center;gap:8px}.primary.sm{width:auto;padding:8px 14px;font-size:12.5px;border-radius:10px}.panel-note{margin:-4px 0 16px;font-size:11.5px;line-height:1.7;color:var(--muted-2)}.panel-disabled{opacity:.85}.drop.off{cursor:not-allowed;border-color:#ff5d6c47;background:#ff5d6c0a}.drop.off .drop-ic{background:#ff5d6c1a;border-color:#ff5d6c3d;color:#ff8b96}.input:disabled{opacity:.5;cursor:not-allowed}.ulist{display:flex;flex-direction:column;gap:9px}.urow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:14px;background:#ffffff07;border:1px solid rgba(255,255,255,.055);transition:.15s ease}.urow:hover{background:#ffffff0b;border-color:#ffffff17}.urow.off{opacity:.62}.urow-main{display:flex;align-items:center;gap:13px;min-width:0;flex:1}.uauth{width:44px;height:44px;border-radius:12px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#4d8cffd9,#8c5adcd9);color:#fff;font-weight:800;font-size:17px}.uauth.admin{background:linear-gradient(140deg,#2ee6c0e6,#4d8cffe6);color:#03110e}.uinfo{min-width:0;flex:1}.utitle{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.utitle h3{margin:0;font-size:14px;font-weight:650}.umeta{display:flex;gap:12px;margin-top:6px;font-size:11.5px;color:#7d8798;flex-wrap:wrap}.umeta .fp-on{color:#6ee7c0}.umeta .fp-off{color:#d3a45c}.tag.admin{color:#03110e;background:#2ee6c0cc;border:1px solid transparent}.tag.owner{color:#9db4d6;background:#4d8cff1f;border:1px solid rgba(77,140,255,.24)}.tag.warn{color:#ffcf8a;background:#ffb4501f;border:1px solid rgba(255,180,80,.28)}.urow-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.ghost.xs{padding:6px 9px;font-size:11.5px;border-radius:8px}.ghost.xs:disabled{opacity:.4;cursor:not-allowed}.quick-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:11px}.mini.on{color:#03110e;background:linear-gradient(100deg,#2ee6c0,#4d8cff);border-color:transparent;font-weight:700}.login-tip{margin:14px 0 0;text-align:center;font-size:11px;color:var(--muted-2)}@media (max-width:680px){.urow{flex-wrap:wrap}.urow-actions{width:100%;justify-content:flex-end;border-top:1px solid rgba(255,255,255,.05);padding-top:10px}.panel-actions{gap:6px}}
