:root{--gap: 1rem;--bg-light: #f9f9f9;--text-main: #333;--border-radius: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Microsoft YaHei,sans-serif;background-color:#f0f2f5;height:100vh;display:flex;justify-content:center;align-items:flex-start;overflow:hidden}.layout-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:30px 0;height:calc(100vh - 60px);width:100%;position:relative}.layout{display:flex;gap:var(--gap);align-items:flex-start;height:100%}.app-sidebar{width:100px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;align-items:center;padding:10px 0;background-color:var(--bg-light);border-radius:var(--border-radius);box-shadow:0 4px 12px #00000014;z-index:10}.app-sidebar::-webkit-scrollbar{display:none}.app-item{width:60px;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .2s,box-shadow .2s;position:relative}.app-item img{width:40px;height:40px;object-fit:cover;border-radius:4px;margin-bottom:4px}.app-item span{font-size:12px;text-align:center;color:var(--text-main)}.app-item:hover{transform:scale(1.1);box-shadow:0 4px 12px #0003}.app-status{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;font-size:8px;display:flex;align-items:center;justify-content:center;color:#fff;background-color:#ccc;transition:all .3s ease}.app-status.running{background-color:#4caf50;box-shadow:0 0 8px #4caf5099;animation:pulse 2s infinite}.app-item[data-app-type=client]{border:2px solid transparent;transition:all .3s ease}.app-item[data-app-type=client].running{border-color:#4caf50;background-color:#4caf501a}.app-item[data-app-type=client]:hover{border-color:#45a049;background-color:#4caf5026}.app-item[data-app-type=selected]{border:2px solid #2196F3;background-color:#2196f31a;transition:all .3s ease}.app-item[data-app-type=selected]:hover{border-color:#1976d2;background-color:#2196f326;transform:scale(1.05)}.app-item[data-app-type=selected] .app-status{background-color:#2196f3}.app-item[data-app-type=system]{opacity:.8}.app-item[data-app-type=system]:hover{opacity:1}@keyframes pulse{0%{box-shadow:0 0 #4caf50b3}70%{box-shadow:0 0 0 10px #4caf5000}to{box-shadow:0 0 #4caf5000}}.phone-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#ffffff4d,#ffffff26);border:1px solid rgba(255,255,255,.4);border-radius:20px;box-shadow:0 8px 24px #00000040;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#333;transition:transform .2s ease,box-shadow .2s ease}.phone-container:hover{transform:translateY(-4px);box-shadow:0 12px 28px #00000059}.phone-container p{text-align:center;margin-bottom:20px;font-weight:700;color:var(--text-main)}.qr-code{background-color:#fff;border:2px solid #999;display:flex;justify-content:center;align-items:center;font-size:14px;color:#555}canvas.video-canvas{width:100%;height:100%;border-radius:10px;display:none}.pairing-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#a3ccfa4d,#63a7f933);border:1px solid rgba(255,255,255,.4);border-radius:20px;box-shadow:0 8px 24px #00000040;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;padding:24px;color:#111;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.pairing-container p{font-size:18px;font-weight:500;color:#222;margin:0}.pairing-code{display:flex;justify-content:center;gap:16px}.pairing-code span{width:50px;height:50px;background:linear-gradient(145deg,#fff,#f0f0f0);border:1px solid rgba(0,0,0,.15);border-radius:12px;display:flex;justify-content:center;align-items:center;font-size:24px;font-weight:700;color:#111;box-shadow:0 4px 12px #0000001f;transition:transform .15s ease,box-shadow .15s ease}.pairing-code span:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000002e}.fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;display:none;justify-content:center;align-items:center;z-index:999}.fullscreen-overlay canvas{width:100%;height:100%;border-radius:0}.fullscreen-button{position:absolute;top:10px;left:10px;z-index:1000;padding:6px 12px;background-color:#fff3;color:#fff;border:none;border-radius:6px;cursor:pointer}.app-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;display:none;justify-content:center;align-items:center;z-index:1000}.app-dialog{background-color:#fff;border-radius:12px;padding:20px;width:80%;max-width:800px;max-height:80%;display:flex;flex-direction:column}.app-dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.app-dialog-title{font-size:18px;font-weight:700;color:var(--text-main)}.app-dialog-close{background:none;border:none;font-size:18px;cursor:pointer}.app-dialog-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,80px);gap:20px;justify-content:center;overflow-y:auto;padding:10px}.app-dialog-grid::-webkit-scrollbar{display:none}.app-dialog-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .2s,box-shadow .2s}.app-dialog-item img{width:60px;height:60px;border-radius:8px;margin-bottom:4px}.app-dialog-item span{font-size:12px;text-align:center}.app-dialog-item:hover{transform:scale(1.1);box-shadow:0 4px 12px #0003}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.alert-box{background:#fff;padding:20px 30px;border-radius:12px;box-shadow:0 4px 12px #0000004d;text-align:center;min-width:280px}.alert-box p{margin-bottom:20px;font-size:16px}.alert-box button{padding:8px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer}#phone-container-wrapper.fullscreen-wrapper{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center}.phone-container.fullscreen-mode{flex:1 1 100%;width:100%;height:100%;display:block}.phone-container.fullscreen-mode canvas,.phone-container.fullscreen-mode{border-radius:0!important}.phone-container.hidden{display:none}.qr-code-wrapper{padding:10px 16px;background-color:#fafafa;border-radius:12px;box-shadow:0 2px 6px #00000014}.qr-code-img{width:200px;height:200px;padding:8px}
