:root{--c-bg:#030a1a;--c-bg2:#060f24;--c-accent:#1a6bff;--c-accent2:#00d4ff;--c-text:#e8f4ff;--c-muted:#7a9ec0;--c-border:rgba(26,107,255,.25);--c-glass:rgba(6,15,36,.7);--radius-md:12px;--radius-lg:20px;--radius-pill:50px;}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--c-bg);color:var(--c-text);min-height:100vh;overflow-x:hidden;}
a{text-decoration:none;color:inherit;}button{font-family:inherit;cursor:pointer;}
#space-canvas{position:fixed;inset:0;pointer-events:none;z-index:0;}
.grid-overlay{position:fixed;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(26,107,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(26,107,255,.04) 1px,transparent 1px);background-size:60px 60px;}
.shell,.admin-shell,.login-shell{position:relative;z-index:10;}
.shell,.admin-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:1.5rem 1.5rem 4rem;}
header{width:100%;max-width:1400px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:.65rem 1.25rem;background:var(--c-glass);border:.5px solid var(--c-border);border-radius:var(--radius-pill);backdrop-filter:blur(14px);margin-bottom:2.5rem;animation:fadeDown .5s ease both;}
.header-brand{font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--c-accent2);text-transform:uppercase;white-space:nowrap;}
.header-center{display:flex;align-items:center;gap:12px;}
.header-status{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--c-muted);}
.dot-live{width:7px;height:7px;border-radius:50%;background:#00ff88;box-shadow:0 0 8px #00ff88;animation:pulse-dot 2s ease infinite;}
.header-right{display:flex;align-items:center;gap:14px;}
.header-clock{font-size:12px;color:var(--c-muted);font-variant-numeric:tabular-nums;white-space:nowrap;}
.header-back{font-size:13px;color:var(--c-muted);transition:color .2s;}.header-back:hover{color:var(--c-text);}
.user-pill{position:relative;display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;background:rgba(26,107,255,.12);border:.5px solid rgba(26,107,255,.3);border-radius:var(--radius-pill);cursor:pointer;transition:background .2s;}
.user-pill:hover{background:rgba(26,107,255,.22);}
.user-avatar{width:26px;height:26px;border-radius:50%;background:var(--c-accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;}
.user-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;}
.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#080f26;border:.5px solid var(--c-border);border-radius:var(--radius-md);min-width:160px;z-index:200;overflow:hidden;display:none;box-shadow:0 10px 40px rgba(0,0,0,.6);}
.user-pill:hover .user-dropdown,.user-pill:focus-within .user-dropdown{display:block;}
.user-dropdown a,.user-dropdown button{display:block;width:100%;padding:10px 16px;background:none;border:none;text-align:left;font-size:13px;color:var(--c-muted);transition:background .2s,color .2s;}
.user-dropdown a:hover,.user-dropdown button:hover{background:rgba(26,107,255,.15);color:var(--c-text);}
.logo-section{display:flex;flex-direction:column;align-items:center;margin-bottom:3rem;animation:fadeUp .7s .1s ease both;}
.logo-ring{position:relative;width:130px;height:130px;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;}
.logo-ring::before,.logo-ring::after{content:'';position:absolute;inset:0;border-radius:50%;border:1.5px solid transparent;}
.logo-ring::before{border-top-color:var(--c-accent);border-right-color:var(--c-accent2);animation:spin-ring 6s linear infinite;}
.logo-ring::after{inset:8px;border-bottom-color:rgba(0,212,255,.5);border-left-color:rgba(26,107,255,.5);animation:spin-ring 10s linear infinite reverse;}
.logo-inner{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#0d2a5c,#030a1a);border:1.5px solid rgba(26,107,255,.4);display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px rgba(26,107,255,.35),inset 0 0 30px rgba(26,107,255,.12);position:relative;z-index:2;}
.logo-text{font-size:17px;font-weight:700;letter-spacing:.08em;color:#fff;text-shadow:0 0 20px rgba(0,212,255,.8);}
.title-main{font-size:clamp(1.3rem,3.5vw,2rem);font-weight:300;letter-spacing:.2em;color:var(--c-text);text-transform:uppercase;text-align:center;}
.title-sub{font-size:12px;letter-spacing:.3em;color:var(--c-muted);margin-top:6px;text-transform:uppercase;text-align:center;}
.apps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:2rem;width:100%;max-width:1400px;justify-items:center;animation:fadeUp .7s .2s ease both;}
@media(max-width:479px){.apps-grid{grid-template-columns:repeat(2,minmax(130px,160px));gap:1.4rem;justify-content:center;}}
@media(min-width:480px) and (max-width:767px){.apps-grid{grid-template-columns:repeat(3,minmax(140px,170px));justify-content:center;}}
@media(min-width:768px) and (max-width:1199px){.apps-grid{grid-template-columns:repeat(4,minmax(150px,180px));justify-content:center;}}
@media(min-width:1200px) and (max-width:1599px){.apps-grid{grid-template-columns:repeat(5,minmax(155px,185px));justify-content:center;}}
@media(min-width:1600px){.apps-grid{grid-template-columns:repeat(auto-fill,minmax(160px,190px));}}
.sphere-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;cursor:pointer;width:100%;max-width:180px;}
.sphere-orbit-container{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center;--col:#1a6bff;}
.orbit-ring{position:absolute;border-radius:50%;border:1px solid transparent;pointer-events:none;}
.orbit-ring-1{width:130px;height:130px;animation:orbit1 5s linear infinite;border-top-color:color-mix(in srgb,var(--col) 55%,transparent);border-right-color:color-mix(in srgb,var(--col) 18%,transparent);}
.orbit-ring-2{width:116px;height:116px;animation:orbit1 8s linear infinite reverse;border-bottom-color:color-mix(in srgb,var(--col) 35%,transparent);border-left-color:color-mix(in srgb,var(--col) 12%,transparent);}
.moon{position:absolute;width:130px;height:130px;border-radius:50%;pointer-events:none;}
.moon::before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;top:50%;left:-3.5px;transform:translateY(-50%);background:var(--col);box-shadow:0 0 8px 3px color-mix(in srgb,var(--col) 70%,transparent);}
.moon-1{animation:orbit1 4s linear infinite;}
.moon-2{width:116px;height:116px;animation:orbit1 6.5s linear infinite reverse;}
.moon-2::before{width:5px;height:5px;left:-2.5px;opacity:.7;}
.sphere{position:relative;width:110px;height:110px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s;z-index:2;}
.sphere-glass{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 33% 30%,rgba(255,255,255,.16),rgba(255,255,255,.02) 60%);border:1.5px solid rgba(255,255,255,.13);transition:border-color .3s;}
.sphere::before{content:'';position:absolute;width:48%;height:26%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.24),transparent);top:13%;left:16%;transform:rotate(-20deg);pointer-events:none;}
.sphere-icon{font-size:34px;position:relative;z-index:2;filter:drop-shadow(0 0 6px rgba(255,255,255,.4));transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
.sphere-badge{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;background:#ff4444;border:1.5px solid var(--c-bg);font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;z-index:3;}
.sphere-label{font-size:12px;font-weight:500;letter-spacing:.07em;color:var(--c-muted);text-align:center;transition:color .3s;text-transform:uppercase;max-width:130px;word-break:break-word;line-height:1.3;}
.sphere-wrap:hover .sphere{transform:scale(1.08);}
.sphere-wrap:hover .sphere-icon{transform:scale(1.15);}
.sphere-wrap:hover .sphere-glass{border-color:rgba(255,255,255,.3);}
.sphere-wrap:hover .sphere-label{color:var(--c-text);}
.sphere-wrap:hover .orbit-ring-1{animation-duration:2.5s;}
.sphere-wrap:hover .orbit-ring-2{animation-duration:4s;}
.sphere-wrap:hover .moon-1{animation-duration:2s;}
.sphere-wrap:hover .moon-2{animation-duration:3.2s;}
.sphere-wrap:active .sphere{transform:scale(.95);}
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(3,10,26,.85);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
.modal-backdrop.open{opacity:1;pointer-events:all;}
.modal{background:linear-gradient(145deg,#080f26,#060c1e);border:.5px solid var(--c-border);border-radius:var(--radius-lg);padding:2.5rem 2rem 2rem;width:min(92vw,400px);position:relative;transform:translateY(20px) scale(.96);transition:transform .3s;box-shadow:0 0 60px rgba(26,107,255,.25);}
.modal-backdrop.open .modal{transform:translateY(0) scale(1);}
.modal-icon{font-size:46px;text-align:center;margin-bottom:1rem;}
.modal-title{font-size:1.1rem;font-weight:600;text-align:center;margin-bottom:.4rem;}
.modal-desc{font-size:13px;text-align:center;color:var(--c-muted);line-height:1.6;margin-bottom:1.5rem;}
.modal-btn{display:block;width:100%;padding:.75rem;border-radius:var(--radius-md);border:none;font-size:14px;font-weight:600;letter-spacing:.05em;color:#fff;transition:filter .2s,transform .15s;}
.modal-btn:hover{filter:brightness(1.15);transform:translateY(-1px);}
.modal-btn:active{transform:scale(.97);}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--c-muted);font-size:22px;line-height:1;transition:color .2s;}
.modal-close:hover{color:var(--c-text);}
.login-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;gap:2rem;}
.login-logo{text-align:center;}
.login-card{width:min(92vw,400px);background:rgba(6,15,36,.85);border:.5px solid var(--c-border);border-radius:var(--radius-lg);padding:2rem 1.75rem;backdrop-filter:blur(16px);box-shadow:0 0 60px rgba(26,107,255,.15);animation:fadeUp .6s ease both;}
.login-card-title{font-size:1.1rem;font-weight:600;text-align:center;margin-bottom:1.5rem;letter-spacing:.08em;}
.form-group{margin-bottom:1rem;}
.form-label{display:block;font-size:12px;color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}
.form-input{width:100%;padding:.65rem .9rem;background:rgba(255,255,255,.05);border:.5px solid rgba(26,107,255,.3);border-radius:var(--radius-md);color:var(--c-text);font-size:14px;transition:border-color .2s,box-shadow .2s;outline:none;}
.form-input:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(26,107,255,.15);}
select.form-input option{background:#080f26;color:var(--c-text);}
.input-pw-wrap{position:relative;}.input-pw-wrap .form-input{padding-right:42px;}
.pw-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:16px;color:var(--c-muted);padding:4px;line-height:1;}
.login-error{font-size:13px;color:#ff5555;min-height:18px;margin-bottom:.5rem;text-align:center;}
.login-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#1a6bff99,#1a6bff);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;transition:filter .2s,transform .15s;margin-top:.5rem;}
.login-btn:hover{filter:brightness(1.15);transform:translateY(-1px);}.login-btn:active{transform:scale(.97);}
.login-hint{text-align:center;margin-top:1rem;}
.admin-shell{align-items:stretch;}.admin-shell header{max-width:none;}
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;width:100%;max-width:1400px;margin-bottom:2rem;animation:fadeUp .5s .05s ease both;}
.stat-card{background:rgba(6,15,36,.8);border:.5px solid var(--c-border);border-radius:var(--radius-md);padding:1.1rem 1.25rem;text-align:center;}
.stat-card-val{font-size:2rem;font-weight:300;color:var(--c-accent2);}
.stat-card-label{font-size:11px;color:var(--c-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:4px;}
.admin-section{width:100%;max-width:1400px;background:rgba(6,15,36,.8);border:.5px solid var(--c-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;animation:fadeUp .5s .1s ease both;}
.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.2rem;flex-wrap:wrap;gap:10px;}
.admin-section-title{font-size:1rem;font-weight:600;letter-spacing:.06em;}
.admin-btn{padding:.45rem 1rem;border-radius:var(--radius-md);border:none;font-size:13px;font-weight:600;transition:filter .2s,transform .15s;color:#fff;}
.admin-btn:hover{filter:brightness(1.15);}.admin-btn:active{transform:scale(.97);}
.admin-btn-primary{background:linear-gradient(135deg,#1a6bff99,#1a6bff);}
.admin-btn-danger{background:linear-gradient(135deg,#ff444499,#ff4444);}
.admin-btn-warning{background:linear-gradient(135deg,#ff880099,#ff8800);}
.admin-btn-sm{padding:.3rem .7rem;font-size:12px;}
.admin-table-wrap{overflow-x:auto;border-radius:var(--radius-md);}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:500px;}
.admin-table th{padding:.65rem 1rem;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--c-muted);border-bottom:.5px solid var(--c-border);}
.admin-table td{padding:.75rem 1rem;border-bottom:.5px solid rgba(26,107,255,.1);vertical-align:middle;}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table tr:hover td{background:rgba(26,107,255,.06);}
.badge{display:inline-block;padding:3px 10px;border-radius:50px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;}
.badge-admin{background:rgba(26,107,255,.2);color:#6aaaff;border:.5px solid rgba(26,107,255,.35);}
.badge-user{background:rgba(0,200,100,.15);color:#50e0a0;border:.5px solid rgba(0,200,100,.3);}
.badge-active{background:rgba(0,255,136,.12);color:#00ff88;border:.5px solid rgba(0,255,136,.25);}
.badge-inactive{background:rgba(255,68,68,.12);color:#ff7070;border:.5px solid rgba(255,68,68,.25);}
.toggle{position:relative;display:inline-block;width:38px;height:21px;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;inset:0;border-radius:21px;background:rgba(255,255,255,.12);cursor:pointer;transition:background .25s;}
.toggle-slider::before{content:'';position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;bottom:3px;left:3px;transition:transform .25s;}
.toggle input:checked+.toggle-slider{background:var(--c-accent);}
.toggle input:checked+.toggle-slider::before{transform:translateX(17px);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:480px){.form-row{grid-template-columns:1fr;}}
.color-preview{display:inline-block;width:20px;height:20px;border-radius:50%;vertical-align:middle;margin-right:6px;border:1px solid rgba(255,255,255,.2);}
footer{margin-top:4rem;text-align:center;font-size:11px;color:rgba(122,158,192,.4);letter-spacing:.1em;text-transform:uppercase;}
@keyframes fadeDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes spin-ring{to{transform:rotate(360deg)}}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes orbit1{to{transform:rotate(360deg)}}
@media(max-width:479px){.sphere-orbit-container{width:120px;height:120px;}.sphere{width:92px;height:92px;}.sphere-icon{font-size:28px;}.orbit-ring-1,.moon{width:112px;height:112px;}.orbit-ring-2,.moon-2{width:100px;height:100px;}}
@media(min-width:1600px){.sphere-orbit-container{width:160px;height:160px;}.sphere{width:126px;height:126px;}.sphere-icon{font-size:40px;}.orbit-ring-1,.moon{width:150px;height:150px;}.orbit-ring-2,.moon-2{width:134px;height:134px;}.moon::before{width:9px;height:9px;left:-4.5px;}}