*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#090b11;--surface:#101622;--surface-2:#131c2b;--border:#223046;--text:#e8edf8;--muted:#91a0b8;--accent:#a855f7;--accent-hover:#9333ea;--success:#22c55e;--error:#ef4444;--warning:#f59e0b;--shadow-soft:0 12px 34px rgba(0,0,0,0.38);--shadow-lift:0 20px 46px rgba(0,0,0,0.42)}body{background:radial-gradient(900px 450px at 90% -10%,rgba(139,92,246,.16),transparent 60%),radial-gradient(1100px 500px at -10% 0,rgba(109,40,217,.14),transparent 62%),var(--bg);color:var(--text);font-family:Plus Jakarta Sans,Satoshi,Avenir Next,Segoe UI,sans-serif;line-height:1.6;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;outline:none;font-family:inherit}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:12px;font-size:.875rem;font-weight:600;transition:all .18s ease}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 18px rgba(139,92,246,.35)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-outline{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-outline:hover{border-color:#3a547a;background:#182336}.btn:disabled{cursor:not-allowed;opacity:.65}.btn-outline:disabled{background:#101828;color:#64748b;border-color:#1d2a3d}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{opacity:.85}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-soft)}.particles-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.85),transparent 22%,transparent 78%,rgba(0,0,0,.85)),linear-gradient(180deg,rgba(0,0,0,.85),transparent 22%,transparent 78%,rgba(0,0,0,.85))}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid transparent}.badge-running{background:#0f2f28;color:#43d6b4;border-color:#1f6f61}.badge-restarting{background:#372a12;color:#facc15;border-color:#6b4b17}.badge-stopped{background:#182132;color:#90a0bb;border-color:#2b3d5d}.badge-provisioning{background:#122742;color:#60a5fa;border-color:#23456f}.badge-error{background:#3a1219;color:#fda4af;border-color:#6b2631}input,select,textarea{background:#0d1421;border:1px solid var(--border);border-radius:12px;color:var(--text);font-family:inherit;font-size:.875rem;padding:.62rem .82rem;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:#a78bfa;box-shadow:0 0 0 4px rgba(167,139,250,.18)}label{display:block;font-size:.8125rem;color:var(--muted);margin-bottom:.25rem}.container{max-width:1100px;margin:0 auto;padding:0 1.5rem}.page{padding:2rem 0 4rem}.dashboard-shell{flex:1 1;display:flex;min-height:0;overflow:hidden}.dashboard-sidebar{width:268px;flex-shrink:0;border-right:1px solid var(--border);background:rgba(12,18,30,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:visible;transition:width .26s ease;z-index:10}.dashboard-sidebar-inner{min-height:100%;padding:1rem .95rem;display:flex;flex-direction:column;gap:.9rem;overflow-y:auto}.brand-title{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;font-weight:700;font-size:1.05rem;padding:.1rem .7rem}.brand-dot{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#7c3aed,#a78bfa);box-shadow:0 6px 16px rgba(139,92,246,.3)}.dash-nav{display:grid;grid-gap:.36rem;gap:.36rem}.dash-nav-link{display:flex;align-items:center;gap:.65rem;padding:.52rem .7rem;border-radius:9px;font-size:.875rem;text-decoration:none;color:#7a94b8;background:transparent;font-weight:500;border:1px solid transparent;transition:color .15s ease,background .15s ease,border-color .15s ease}.dash-nav-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.7;transition:opacity .15s ease}.dash-nav-label{white-space:nowrap;transition:opacity .2s ease,width .2s ease,margin .2s ease}.dash-nav-link:hover{color:#c8daf0;background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.06);text-decoration:none}.dash-nav-link:hover .dash-nav-icon{opacity:1}.dash-nav-link.active{color:#ddd6fe;background:rgba(109,40,217,.18);border-color:rgba(139,92,246,.4);font-weight:600}.dash-nav-link.active .dash-nav-icon{opacity:1}.sidebar-toggle{position:absolute;top:50%;right:-12px;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:1px solid #2d4669;background:#131f30;color:#7a94b8;display:flex;align-items:center;justify-content:center;z-index:30;box-shadow:0 2px 8px rgba(0,0,0,.4);transition:background .15s ease,color .15s ease}.sidebar-toggle:hover{background:#1a2d44;color:#c8daf0}.dashboard-sidebar.collapsed{width:92px}.dashboard-sidebar.collapsed .brand-name{opacity:0;width:0;margin:0;overflow:hidden}.dashboard-sidebar.collapsed .brand-title{justify-content:center;padding-left:0;padding-right:0}.dashboard-sidebar.collapsed .dash-nav-label{opacity:0;width:0;margin:0;overflow:hidden}.dashboard-sidebar.collapsed .dash-nav-link{justify-content:center;gap:0;padding-left:.52rem;padding-right:.52rem}.dashboard-sidebar.collapsed .dash-nav-icon{opacity:.65}.dashboard-sidebar.collapsed .account-email{opacity:0;width:0;overflow:hidden}.account-section{margin-top:auto;border-top:1px solid rgba(255,255,255,.06);padding-top:.85rem}.account-trigger{display:flex;align-items:center;gap:.6rem;width:100%;background:transparent;border:1px solid transparent;border-radius:9px;padding:.45rem .6rem;cursor:pointer;transition:background .15s ease,border-color .15s ease;text-align:left}.account-trigger:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}.account-avatar,.account-avatar-fallback{border-radius:50%;flex-shrink:0}.account-avatar-fallback{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:#ddd6fe;background:rgba(109,40,217,.25);border:1px solid rgba(139,92,246,.45)}.account-email{font-size:.78rem;color:#7a94b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease,width .2s ease}.account-menu{margin-top:.5rem;padding:0 .1rem}.account-menu,.account-popover{display:grid;grid-gap:.4rem;gap:.4rem}.account-popover{position:fixed;z-index:100;min-width:180px;background:#0e1b2b;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.6rem;box-shadow:0 8px 32px rgba(0,0,0,.5);transform:translateY(-100%);animation:popoverIn .14s ease}.account-popover-email{font-size:.75rem;color:var(--muted);padding:.2rem .4rem .5rem;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:.1rem;word-break:break-all}@keyframes popoverIn{0%{opacity:0;transform:translateY(-100%) scale(.97)}to{opacity:1;transform:translateY(-100%) scale(1)}}h1,h2,h3{line-height:1.2}.tg-steps li::marker{color:#8c8f9e}.tg-steps li{padding-left:.35rem;margin-bottom:20px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(148,163,184,.25);border-top-color:rgba(226,232,240,.9);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.modal-backdrop{animation:modalFadeIn .14s ease-out}.modal-backdrop.closing{animation:modalFadeOut .12s ease-in forwards}.card[data-modal=panel]{animation:modalPopIn .16s cubic-bezier(.2,.9,.2,1.2);transform-origin:center}.card[data-modal=panel][data-state=closing]{animation:modalPopOut .12s ease-in forwards}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalPopIn{0%{opacity:0;transform:scale(.94)}70%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes modalPopOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@media (max-width:980px){.dashboard-shell{display:block}.dashboard-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border);background:rgba(12,18,30,.96)}.sidebar-toggle{display:none}.dashboard-sidebar-inner{position:static;min-height:auto;display:flex;flex-direction:column;gap:.5rem}}