.search-field span{font-size:12px;color:#e6eef8b3}:root{--bg: #071022;--topbar-height: 88px;--mini-player-height: 64px;--accent: #4A16E6;--neon: #00C7D9;--muted: #8A99A8;--starfield-image: none;--nebula-a: #071022;--nebula-b: #4a16e6;--nebula-c: #00c7d9;--bg-filter: brightness(1) contrast(1) saturate(1);--bg-overlay-opacity: .32}*{box-sizing:border-box}html,body,#root{height:100%}.body,body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;color:#e6eef8}body{background-image:var(--starfield-image),radial-gradient(ellipse at 10% 10%,#1e243899,#080c16f2 40%,#030409);background-size:cover,cover;background-position:center center,10% 10%;background-repeat:no-repeat,no-repeat;background-attachment:fixed;color:#e6eef8}.topbar{display:flex;flex-direction:column;gap:12px;padding:16px 24px;background:transparent;position:fixed;top:0;left:0;right:0;z-index:200;min-height:var(--topbar-height)}.logo{font-weight:800;letter-spacing:1px;font-size:20px;transition:color .3s ease,transform .3s ease,text-shadow .3s ease}.logo-focused{color:var(--neon);text-shadow:0 0 14px rgba(0,243,255,.45);transform:translateY(-2px)}.subbar{display:flex;align-items:center;gap:16px;justify-content:space-between}.search-input{display:flex;align-items:center;padding:8px;border-radius:14px;background:#ffffff08;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(230,238,248,.06);transition:border-color .22s ease,box-shadow .22s ease}.search-input input{min-width:420px;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:#e6eef8;font-weight:600;flex:1}.search-input input::placeholder{color:#e6eef899}.search-input .search-icon{width:20px;height:20px;margin-right:10px;flex:0 0 auto;color:#e6eef8;opacity:.9}.search-input .search-icon circle,.search-input .search-icon line{stroke:currentColor}.nav{display:flex;gap:10px;align-items:center}.nav-item{padding:8px 14px;border-radius:14px;background:#ffffff08;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.04);font-weight:600;color:#dce8ff;cursor:pointer;transition:border-color .2s ease,color .2s ease,box-shadow .2s ease}.nav-item.is-active{border-color:#00f3ff66;color:#fff;box-shadow:0 0 18px #00f3ff2e}.nav-item.setting{background:linear-gradient(90deg,#5e2bff1f,#00f3ff0f)}.ui-fade{transition:opacity .36s cubic-bezier(.2,.9,.2,1),transform .36s cubic-bezier(.2,.9,.2,1);will-change:opacity,transform}.ui-fade.is-dimmed{opacity:0;transform:translateY(-8px);pointer-events:none}.ghost-btn{padding:8px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;color:#e6eef8;font-weight:600;cursor:pointer;transition:color .26s cubic-bezier(.2,.9,.2,1),border-color .26s cubic-bezier(.2,.9,.2,1)}.ghost-btn:hover{color:var(--neon);border-color:#00c7d947}.primary-btn{padding:8px 18px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--nebula-b),var(--nebula-c));color:#030409;font-weight:700;cursor:pointer;transition:transform .22s cubic-bezier(.2,.9,.2,1),box-shadow .22s cubic-bezier(.2,.9,.2,1)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #4a16e62e}.link-btn{background:none;border:none;color:var(--neon);font-weight:600;cursor:pointer}.link-btn.is-warning{color:#fb7185}.module-panel{min-height:60vh;padding:28px;border-radius:18px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;gap:24px}.module-header{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap}.module-eyebrow{font-size:12px;letter-spacing:.2em;color:#e6eef8b3;margin:0 0 6px}.module-title{margin:0;font-size:28px;letter-spacing:.05em}.module-copy{margin:6px 0 0;font-size:14px;color:#e6eef8b8}.module-actions{display:flex;align-items:center;gap:12px}.favorites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.favorite-card{padding:18px;border-radius:16px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;gap:12px}.favorite-card header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#e6eef8b3}.favorite-card h3{margin:0;font-size:18px}.favorite-card p{margin:0;color:#e6eef8bf}.favorite-card.is-pending{border-color:#fb71854d;box-shadow:0 0 12px #fb718526}.favorite-source{font-size:12px;color:#e6eef8a6}.favorite-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#e6eef88c}.module-empty{padding:40px;border-radius:16px;text-align:center;color:#e6eef899;background:#ffffff05;border:1px dashed rgba(255,255,255,.08)}.module-empty.small{padding:24px}.module-error{padding:12px 16px;border-radius:12px;background:#fb71851a;border:1px solid rgba(251,113,133,.4);color:#feb2b2}.search-module-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.search-field{flex:1;display:flex;flex-direction:column;gap:6px;font-size:12px;color:#e6eef8b3}.search-field input{padding:10px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;color:#e6eef8}.search-status{font-size:12px;color:#e6eef8a6}.search-results{display:flex;flex-direction:column;gap:12px}.search-card{padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.05);background:#ffffff05;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.search-title{margin:0;font-size:18px;font-weight:600}.search-sub{margin:4px 0 0;font-size:13px;color:#e6eef8bf}.search-meta{margin:4px 0 0;font-size:12px;color:#e6eef88c}.search-actions{display:flex;gap:10px}.search-galaxy-wrap{min-height:60vh;border-radius:18px;padding:24px;position:relative;background:transparent;border:none}.search-planets{display:flex;flex-wrap:wrap;gap:32px;justify-content:flex-start}.search-planet{display:flex;flex-direction:column;align-items:center;gap:14px;flex:0 0 auto}.search-planet-visual{--planet-ring-size: 16px;--planet-ring-opacity: .22;--planet-ring-color: rgba(200,220,232,.26);--planet-ring-style: solid;--planet-orbit-speed: 36s;--planet-core-shine: .36;border:none;border-radius:50%;background-size:cover;background-position:center;cursor:pointer;position:relative;box-shadow:0 18px 48px #0000008c,inset 0 -10px 18px #ffffff08;transition:transform .32s cubic-bezier(.2,.9,.18,1),box-shadow .32s cubic-bezier(.2,.9,.18,1),filter .32s cubic-bezier(.2,.9,.18,1);isolation:isolate}.search-planet.is-dimmed{opacity:.06;transform:scale(.9);transition:opacity .22s ease,transform .22s ease,filter .22s ease;pointer-events:none;filter:blur(1.5px) saturate(.6) brightness(.7);z-index:10}.search-planet:not(.is-dimmed){transition:transform .22s ease,box-shadow .22s ease;z-index:20}.search-planet-visual:after{content:"";position:absolute;inset:calc(var(--planet-ring-size) * -1);border-radius:50%;border:1.5px var(--planet-ring-style) var(--planet-ring-color);opacity:var(--planet-ring-opacity);box-shadow:0 0 18px var(--planet-ring-color);animation:planet-ring-spin var(--planet-orbit-speed) linear infinite;pointer-events:none}.search-planet-visual:before{content:"";position:absolute;top:18%;right:18%;bottom:18%;left:18%;border-radius:50%;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.45),transparent 60%);opacity:var(--planet-core-shine);mix-blend-mode:screen;filter:blur(.6px);pointer-events:none}.search-planet-visual:hover{transform:scale(1.06);box-shadow:0 28px 64px #0000009e,inset 0 -12px 20px #ffffff0f;filter:brightness(1.03) saturate(1.08)}.search-planet-visual.is-fav{box-shadow:0 24px 64px #00c7d924,inset 0 -14px 22px #ffffff1a}.search-planet-visual.is-fav:after{opacity:calc(var(--planet-ring-opacity) + .24)}.search-planet-meta{text-align:center;max-width:220px}.search-planet-title{margin:0;font-weight:700}.search-planet-sub{margin:4px 0;font-size:13px;color:#e6eef8b3}.search-planet-stats{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:6px 0;font-size:11px;color:#e6eef8cc}.search-planet-stats span{padding:2px 8px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.08)}.search-planet-actions{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#e6eef88c}.search-state{position:absolute;top:16px;left:24px;color:#e6eef8bf;font-size:14px}.search-error{color:#feb2b2}.search-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:480}.search-overlay-inner{display:flex;align-items:center;gap:20px;background:transparent;padding:0;border-radius:0}.overlay-planet{width:320px;height:320px;border-radius:50%;background-size:cover;background-position:center}.search-overlay .overlay-planet{animation:none}.overlay-meta h3{margin:0;font-size:20px}.overlay-meta p{margin:6px 0 0;color:#e6eef8bf}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.view-stack{position:relative}.view-panel{transition:opacity .3s ease;opacity:1}.view-panel.fade-in{opacity:1}.view-panel.fade-out{opacity:0;pointer-events:none}.content{padding:calc(16px + var(--topbar-height)) 16px calc(16px + var(--mini-player-height))}.hero{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:12px}.search{background:#ffffff08;padding:10px 14px;border-radius:8px}.uploader{display:flex;flex-direction:column;gap:6px}.upload-label{font-size:12px;color:var(--muted)}.planet-wrap{min-height:60vh;position:relative}.galaxy-wrap{height:70vh}.galaxy-canvas{position:relative;width:100%;height:100%;border-radius:12px;overflow:visible}.flat-galaxy-container{z-index:10}.planet-card{background:linear-gradient(180deg,#ffffff05,#ffffff03);border-radius:12px;padding:12px;cursor:pointer;transition:transform .18s;overflow:hidden}.planet-card:hover{transform:scale(1.03)}.planet-canvas{height:160px}.planet-meta{margin-top:8px}.planet-title{font-weight:600}.planet-sub{font-size:13px;color:var(--muted)}.loading-sentinel{padding:20px;text-align:center;color:var(--muted)}.loading-sentinel.empty-state{color:#e6eef899}.loading-sentinel.empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:360;pointer-events:none;font-size:16px}.mini-player{position:fixed;left:12px;right:12px;bottom:12px;padding:12px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:600;min-height:var(--mini-player-height);border-radius:14px;display:flex;align-items:center;gap:12px;color:#e6eef8}.mini-player .mp-left{flex:0 0 72px;display:flex;align-items:center;justify-content:center}.mini-player .mini-planet{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#0b4f9b);box-shadow:0 10px 40px #02061799,inset 0 -8px 14px #ffffff0a}.mini-player .mp-center{flex:1;display:flex;flex-direction:column;gap:6px}.mini-player .mp-top{display:flex;align-items:center;justify-content:space-between}.mp-info{display:flex;flex-direction:column}.mp-title{font-weight:700;font-size:14px;color:#fff}.mp-artist{font-size:12px;color:#e6eef8b3;margin-top:2px}.mp-times{font-size:12px;color:#e6eef8d9}.mp-progress{height:18px;display:flex;align-items:center}.mp-range{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:#ffffff14;border-radius:999px;outline:none}.mp-range::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,#ffffff2e,#ffffff14)}.mp-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0009;cursor:pointer;margin-top:-3px}.mp-range::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0009;cursor:pointer}.mp-right{flex:0 0 64px;display:flex;align-items:center;justify-content:center}.mp-play-btn{width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#19212b,#0b1220);color:#e6eef8;box-shadow:0 6px 18px #02061799;font-size:16px;cursor:pointer}.mp-play-btn:active{transform:scale(.98)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center}html,body,#root,.app-root{-ms-overflow-style:none;scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,.app-root::-webkit-scrollbar{display:none;width:0;height:0}.modal-inner{background:#071428;padding:20px;border-radius:10px;min-width:320px}@media (max-width: 640px){.planet-canvas{height:120px}}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(180deg,#03060ceb,#020408fa),linear-gradient(rgba(0,0,0,var(--bg-overlay-opacity,.32)),rgba(0,0,0,var(--bg-overlay-opacity,.32)));background-size:cover,cover;background-position:center center,center center;background-repeat:no-repeat,no-repeat;filter:contrast(1.03) saturate(.95);will-change:background-position;animation:nebula-move 120s linear infinite;pointer-events:none}@keyframes planet-ring-spin{0%{transform:rotate(0) scale(.98)}to{transform:rotate(360deg) scale(1.02)}}@keyframes nebula-move{0%{background-position:center center,center center}to{background-position:center center,center center}}.auth-card,.module-panel,.module-header,.userpanel-header{transition:box-shadow .36s cubic-bezier(.2,.9,.2,1),transform .36s cubic-bezier(.2,.9,.2,1),background .36s cubic-bezier(.2,.9,.2,1)}.auth-input,.userpanel-input,.search-input input{transition:border-color .28s cubic-bezier(.2,.9,.2,1),box-shadow .28s cubic-bezier(.2,.9,.2,1)}.auth-input:focus,.userpanel-input:focus,.search-input input:focus{box-shadow:0 6px 30px #00c7d914;border-color:#00c7d973}.galaxy-canvas canvas{box-shadow:0 10px 40px #02061799 inset}.flat-galaxy-container{position:relative;overflow:visible;height:70vh;border-radius:12px;z-index:180;pointer-events:auto}.flat-galaxy{position:relative;width:99999px;height:99999px;will-change:transform;cursor:grab;z-index:180}.planet-2d{position:absolute;border-radius:50%;background-size:cover;background-position:center;transition:transform .18s,opacity .2s;pointer-events:auto}.planet-2d:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 10px 18px #0206178c inset,0 6px 12px #00000073}.app-root.lyrics-active .planet-2d,.app-root.lyrics-active .search-planet-visual,.app-root.lyrics-active .search-planets,.app-root.lyrics-active .search-planet{opacity:0!important;transform:translateY(4px) scale(.965)!important;filter:blur(4px) saturate(.55) brightness(.78)!important;pointer-events:none!important;transition:opacity .38s cubic-bezier(.22,.9,.18,1),transform .38s cubic-bezier(.22,.9,.18,1),filter .38s cubic-bezier(.22,.9,.18,1)}.app-root.lyrics-active .planet-2d.selected-visual{opacity:1!important;transform:translate(-50%,-50%) scale(1)!important;filter:none!important;pointer-events:auto!important}.app-root.lyrics-active .overlay-planet,.app-root.lyrics-active .planet-2d.external-selected{opacity:1!important;transform:none!important;filter:none!important;pointer-events:auto!important}.app-root .flat-galaxy{transition:transform .36s cubic-bezier(.16,.84,.44,1),opacity .36s cubic-bezier(.16,.84,.44,1)}.app-root.lyrics-active .flat-galaxy{transform:translateY(-12px) scale(.995);opacity:.06}.overlay-planet{transition:transform .38s cubic-bezier(.22,.9,.18,1),opacity .38s cubic-bezier(.22,.9,.18,1),box-shadow .38s cubic-bezier(.22,.9,.18,1),filter .38s cubic-bezier(.22,.9,.18,1);will-change:transform,opacity,box-shadow,filter}.app-root.lyrics-active .overlay-planet{transform:scale(1.05);opacity:.92;filter:saturate(1.08) drop-shadow(0 0 14px rgba(0,199,217,.25))}.lyrics-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:560;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#0204088c,#020408e0);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);pointer-events:auto;opacity:1;transition:opacity .38s cubic-bezier(.22,.9,.18,1),backdrop-filter .38s cubic-bezier(.22,.9,.18,1)}.lyrics-page.closing{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.lyrics-page-inner{width:90%;max-width:900px;max-height:70vh;background:transparent;border:none;border-radius:0;overflow:hidden;display:flex;flex-direction:column;padding:0;transform:translateY(8px) scale(.975);opacity:0;transition:transform .42s cubic-bezier(.22,.9,.18,1),opacity .42s cubic-bezier(.22,.9,.18,1);will-change:transform,opacity}.lyrics-page .lyrics-page-inner{opacity:1;transform:translateY(0) scale(1)}.lyrics-header{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;flex-direction:column;text-align:center;align-items:center}.lyrics-title{font-size:20px;font-weight:800}.lyrics-artist{font-size:13px;color:#e6eef8b3;margin-top:6px}.lyrics-scroll{padding:16px 22px;overflow:auto;display:flex;flex-direction:column;gap:12px;flex:1;scrollbar-width:none}.lyrics-scroll::-webkit-scrollbar{display:none}.lyrics-scroll{position:relative}.lyric-line{font-size:15px;color:#e6eef8c7;line-height:1.8;opacity:.55;transition:color .3s cubic-bezier(.22,.9,.18,1),transform .3s cubic-bezier(.22,.9,.18,1),opacity .3s cubic-bezier(.22,.9,.18,1),font-size .3s cubic-bezier(.22,.9,.18,1),text-shadow .3s cubic-bezier(.22,.9,.18,1);text-align:center;word-wrap:break-word;margin-left:0;margin-right:0}.lyric-line.current{color:var(--neon);font-weight:800;transform:scale(1.16);opacity:1;font-size:18px;text-shadow:0 0 12px rgba(0,199,217,.35)}.lyric-empty{color:#e6eef899;text-align:center;padding:40px}@media (max-width: 900px){:root{--topbar-height: 72px;--mini-player-height: 72px}.topbar{padding:12px 16px;gap:8px}.subbar{flex-wrap:wrap;gap:10px}.search-input input{min-width:200px}.content{padding:calc(12px + var(--topbar-height)) 12px calc(12px + var(--mini-player-height));min-height:calc(100vh - var(--topbar-height) - var(--mini-player-height));overflow-y:auto}.view-stack{min-height:calc(100vh - var(--topbar-height) - var(--mini-player-height) - 24px)}.flat-galaxy-container{height:60vh}.overlay-planet{width:260px;height:260px}.lyrics-page-inner{width:94%;max-height:64vh}.lyric-line{font-size:14px}.lyric-line.current{font-size:17px}.search-planet-visual{width:120px;height:120px}.nav-item{padding:10px 14px;font-size:13px}.ghost-btn,.primary-btn{padding:10px 16px}.mp-play-btn{width:44px;height:44px;font-size:18px}.mp-range{height:8px}.mp-range::-webkit-slider-thumb{width:16px;height:16px;margin-top:-4px}.mp-range::-moz-range-thumb{width:16px;height:16px}.lyrics-scroll{-webkit-overflow-scrolling:touch}.flat-galaxy-container,.flat-galaxy{touch-action:pan-y}}@media (max-width: 600px){:root{--topbar-height: 64px;--mini-player-height: 76px}.topbar{padding:10px 12px}.logo{font-size:18px}.nav{flex-wrap:wrap;gap:6px}.nav-item{padding:6px 10px;font-size:12px}.search-input{width:100%}.search-input input{min-width:0;width:100%}.content{padding:calc(10px + var(--topbar-height)) 10px calc(10px + var(--mini-player-height));min-height:calc(100vh - var(--topbar-height) - var(--mini-player-height));overflow-y:auto}.view-stack{min-height:calc(100vh - var(--topbar-height) - var(--mini-player-height) - 20px)}.flat-galaxy-container{height:54vh}.overlay-planet{width:220px;height:220px}.lyrics-page-inner{width:96%;max-height:60vh}.lyrics-header,.lyrics-scroll{padding:12px 14px}.lyric-line{font-size:13px}.lyric-line.current{font-size:16px}.mp-player{padding:8px 10px}.mp-title{font-size:12px}.mp-artist{font-size:11px}.mp-play-btn{width:48px;height:48px;font-size:20px}.ghost-btn,.primary-btn{padding:12px 16px}.mp-range{height:10px}.mp-range::-webkit-slider-thumb{width:18px;height:18px;margin-top:-4px}.mp-range::-moz-range-thumb{width:18px;height:18px}.lyrics-scroll{-webkit-overflow-scrolling:touch}.flat-galaxy-container,.flat-galaxy{touch-action:pan-y}}@keyframes lyrics-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes planet-select-glow{0%{filter:blur(0px) saturate(1)}50%{filter:blur(1.5px) saturate(1.15)}to{filter:none}}.planet-2d.selected-visual{animation:planet-select-glow .52s cubic-bezier(.22,.9,.18,1) both}.flat-galaxy.has-external-selected{pointer-events:none}.flat-galaxy.has-external-selected .planet-2d{opacity:0;transform:scale(.9);filter:blur(2px) saturate(.7);pointer-events:none}.flat-galaxy.has-external-selected .planet-2d.external-selected-overlay-ignored{opacity:1;pointer-events:auto}.floating-actions{position:fixed;left:140px;bottom:180px;display:flex;flex-direction:column;gap:10px;opacity:0;pointer-events:none;transform:none;transition:opacity .4s ease;z-index:320}.floating-actions.is-visible{opacity:1;pointer-events:auto}.floating-action-btn{display:flex;align-items:center;justify-content:flex-start;padding:12px 24px;border-radius:14px;border:none;background:transparent;color:#e6eef8;font-weight:700;font-size:18px;cursor:pointer;text-decoration:none;transition:color .16s ease,text-shadow .16s ease,transform .12s ease}.floating-action-btn:hover,.floating-action-btn:focus{color:#00f3ff;text-shadow:0 0 12px rgba(0,243,255,.55);transform:scale(1.03)}.floating-action-btn.is-active{color:#fbbf24;text-shadow:0 0 12px rgba(251,191,36,.6)}.floating-action-btn[aria-disabled=true]{opacity:.5;pointer-events:none}.floating-action-btn.is-pending{color:#fb7185;text-shadow:0 0 10px rgba(251,113,133,.35)}.planet-2d.is-pending{box-shadow:0 6px 20px #0009 inset,0 6px 18px #ff28280f}.planet-details-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:40}.planet-details{background:linear-gradient(180deg,#071428,#0a2236);padding:18px;border-radius:10px;min-width:300px;color:#e6eef8}.pd-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.pd-sub{font-size:13px;color:var(--muted)}.fav-btn{background:transparent;border:1px solid rgba(255,255,255,.06);padding:6px 10px;border-radius:6px;color:#ffd966;cursor:pointer}.pd-body{margin-top:12px}.pd-actions{display:flex;justify-content:flex-end;margin-top:12px}.retry-limit-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:9999;background:#0009}.retry-limit-modal-inner{padding:32px 48px;border-radius:20px;background:#0f1c2ed9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px #00000080}.retry-limit-content{font-size:16px;font-weight:600;color:#e6eef8;text-align:center;line-height:1.6}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#020408f2,#000000fa);color:#e6eef8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-overlay{animation:auth-overlay-in .32s cubic-bezier(.2,.9,.18,1) both}.auth-card{animation:auth-card-in .42s cubic-bezier(.2,.9,.18,1) both;transform-origin:center}@keyframes auth-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes auth-card-in{0%{opacity:0;transform:translateY(14px) scale(.985)}60%{opacity:1;transform:translateY(-6px) scale(1.003)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card{width:100%;max-width:400px;padding:40px;border-radius:24px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 25px 50px #00000080;z-index:10;display:flex;flex-direction:column;gap:24px}.auth-back-btn{position:absolute;top:24px;left:24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#e6eef8;padding:8px 16px;border-radius:8px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-label{font-size:12px;color:#e6eef8b3;margin-left:4px}.auth-input{padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#ffffff05;color:#e6eef8;font-size:14px;outline:none;transition:border-color .2s}.auth-input:focus{border-color:#00f3ff80}.auth-submit{margin-top:8px;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--nebula-b),var(--nebula-c));color:#030409;font-size:16px;font-weight:700;cursor:pointer;transition:transform .12s;box-shadow:0 4px 12px #5e2bff4d}.auth-submit[disabled]{opacity:.7;cursor:wait}.auth-link-btn{background:none;border:none;color:var(--neon);font-size:13px;font-weight:600;cursor:pointer;margin-left:8px;text-decoration:underline;text-underline-offset:4px}.userpanel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:linear-gradient(180deg,#0f1c2ebf,#020408e6);color:#e6eef8;display:flex;flex-direction:column}.userpanel-header{padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.userpanel-overlay{animation:userpanel-overlay-in .32s cubic-bezier(.2,.9,.18,1) both}.userpanel-overlay.closing{animation:userpanel-overlay-out .26s cubic-bezier(.22,.9,.18,1) both}.userpanel-inner{flex:1;display:flex;z-index:10;overflow:hidden;animation:userpanel-inner-in .42s cubic-bezier(.2,.9,.18,1) both;background:#ffffff08;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:18px;margin:28px}.userpanel-overlay.closing .userpanel-inner{animation:userpanel-inner-out .32s cubic-bezier(.22,.9,.18,1) both}@keyframes userpanel-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes userpanel-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes userpanel-inner-in{0%{opacity:0;transform:translateY(14px) scale(.985)}60%{opacity:1;transform:translateY(-6px) scale(1.003)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes userpanel-inner-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.995)}}.userpanel-btn{padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff05;color:#e6eef8;cursor:pointer}.userpanel-btn.negative{background:#fb718526;border-color:#fb71854d;color:#fb7185}.userpanel-sidebar{width:240px;border-right:1px solid rgba(255,255,255,.08);padding:24px 0;background:#ffffff03}.userpanel-tab{padding:12px 24px;cursor:pointer}.userpanel-tab.active{background:#00f3ff0f;border-left:3px solid var(--neon);color:var(--neon)}.tag-pill{padding:6px 12px;background:#5e2bff3d;border:1px solid rgba(94,43,255,.4);border-radius:20px;font-size:14px}.userpanel-input{padding:12px;border-radius:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff;outline:none}.userpanel-action{padding:10px 24px;border-radius:8px;background:var(--neon);color:#000;border:none;font-weight:700;cursor:pointer}.auth-card.centered{max-width:420px;text-align:center}.auth-title{margin:0;font-size:32px;font-weight:700;letter-spacing:1px}.auth-sub{margin-top:8px;color:#e6eef899;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-row{display:flex;flex-direction:column;gap:8px}.auth-footer{margin-top:8px;text-align:center}.auth-error{padding:10px;border-radius:8px;background:#fb71851a;border:1px solid rgba(251,113,133,.3);color:#fb7185;font-size:13px;text-align:center}.loading-spinner{width:30px;height:30px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.userpanel-inner{flex:1;display:flex;z-index:10;overflow:hidden}.userpanel-main{flex:1;padding:32px;overflow-y:auto}.userpanel-sidebar{width:240px;border-right:1px solid rgba(255,255,255,.08);padding:24px 0;background:transparent}.userpanel-header h2{margin:0}.userpanel-chip{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:700}.userpanel-actions{display:flex;gap:12px}.userpanel-header-left{display:flex;align-items:center;gap:16px}.userpanel-header-actions{display:flex;gap:12px}.loading-text{font-size:12px;opacity:.6}.userpanel-msg{color:var(--neon)}.user-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.user-card-header{display:flex;justify-content:space-between;align-items:center}.user-card-meta{display:flex;align-items:center;gap:12px}.user-card-username{font-size:18px;font-weight:700}.user-card-role{font-size:12px;padding:2px 8px;border-radius:4px}.user-card-actions{display:flex;gap:8px}.user-card-tags{padding-top:12px;border-top:1px solid rgba(255,255,255,.05);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tag-input{background:transparent;border:1px solid rgba(255,255,255,.2);color:#e6eef8;padding:4px 8px;border-radius:12px;width:80px;font-size:12px}.userpanel-btn.ban-true{background:#10b981;border:none;color:#061014}.userpanel-btn.ban-false{background:#fb7185;border:none;color:#fff}.role-admin{background:var(--nebula-b)}.role-user{background:#2d3748}
