:root{--nav-width: 64px;--panel-width: 420px}.app-container{display:flex;height:100vh;width:100vw;background:var(--bg-primary);overflow:hidden;position:relative}.side-nav{width:var(--nav-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:20px 0;z-index:100;flex-shrink:0}.nav-brand{font-size:24px;margin-bottom:40px;cursor:pointer}.nav-links{flex:1;display:flex;flex-direction:column;gap:24px}.nav-item{font-size:20px;padding:10px;border-radius:12px;cursor:pointer;transition:all .2s;opacity:.5;text-decoration:none;color:inherit}.nav-item:hover,.nav-item.active{background:#ffffff0d;opacity:1;color:var(--accent)}.nav-footer{margin-top:auto}.main-content{flex:1;display:flex;flex-direction:column;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden;background:var(--bg-primary)}.panel-open .main-content{margin-right:0}.top-bar{height:60px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--bg-primary)}.page-title{font-size:16px;font-weight:600;color:var(--text-primary)}.viewport{flex:1;overflow-y:auto;padding:12px}.control-panel{width:var(--panel-width);height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translate(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);position:absolute;right:0;top:0;z-index:200;box-shadow:-10px 0 30px #00000080}.control-panel.open{transform:translate(0);position:relative}.panel-header{height:60px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.header-info{display:flex;align-items:center;gap:10px}.active-vm-id{font-weight:600;font-size:14px}.btn-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px}.btn-close:hover{background:#ffffff0d;color:var(--accent)}.panel-body{flex:1;overflow:hidden}.panel-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);text-align:center;opacity:.3}.hint-icon{font-size:48px;margin-bottom:16px}@media (max-width: 1024px){:root{--nav-width: 0px;--panel-width: 100vw}.side-nav,.top-bar{display:none}.main-content{transition:transform .3s ease}.panel-open .main-content{transform:translate(-20%);opacity:.5}.control-panel{position:fixed;width:100vw;height:100vh;box-shadow:none;background:#000}.panel-header{background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.btn-close{font-size:24px;padding:10px}}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-card: #16213e;--accent: #e94560;--accent-hover: #ff6b6b;--text-primary: #ffffff;--text-secondary: #888888;--success: #00ff00;--border: rgba(255, 255, 255, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}button{cursor:pointer;border:none;font-family:inherit}.btn{padding:10px 20px;background:var(--accent);color:#fff;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s ease}.btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{background:#ffffff1a;border:1px solid var(--border)}.btn-secondary:hover{background:#fff3}.btn-icon{padding:8px 12px;background:#ffffff1a;border:1px solid var(--border);border-radius:8px;color:#fff;font-size:14px;display:flex;align-items:center;gap:6px}.btn-icon:hover{background:#fff3}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .3s ease}.slide-enter-from,.slide-leave-to{opacity:0;transform:translateY(-20px)}
