*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f0f;--surface:#1a1a1a;--surface2:#252525;--border:#333;--text:#f0f0f0;--text-muted:#888;--radius:12px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,system-ui,sans-serif}.modal-overlay{-webkit-backdrop-filter:blur(15px);z-index:1000;background:#0006;justify-content:center;align-items:center;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#1a1a1acc;border:1px solid #ffffff1a;border-radius:24px;flex-direction:column;flex-shrink:0;gap:16px;width:100%;max-width:480px;margin:auto;padding:40px;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;display:flex;box-shadow:0 20px 40px #0006,inset 0 1px 1px #ffffff1a}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.modal{border-radius:20px;gap:12px;max-width:100%;padding:32px 24px}}.modal label{color:var(--text-muted);margin-left:4px;font-size:.85rem;font-weight:500}.modal input{color:var(--text);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;outline:none;width:100%;padding:14px 18px;font-size:1.1rem;transition:all .2s}.modal input:focus{background:#ffffff14;border-color:#3498db;box-shadow:0 0 0 4px #3498db33}.btn-connect{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:14px;margin-top:12px;padding:16px;font-size:1.1rem;font-weight:700;transition:all .2s;box-shadow:0 4px 15px #3498db4d}.btn-connect:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3498db66}.btn-connect:active{transform:translateY(0)}.error{color:#ff6b6b;text-align:center;background:#ff6b6b1a;border-radius:12px;padding:12px;font-size:.9rem}.status-bar{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 20px;padding-top:calc(10px + env(safe-area-inset-top));padding-left:calc(20px + env(safe-area-inset-left));z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.status-left{align-items:center;gap:12px;display:flex}.brand-container{align-items:center;gap:4px;display:flex}.brand-logo{color:#fff;letter-spacing:.5px;background:linear-gradient(135deg,#a29bfe,#6c5ce7);border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:800}.brand-name{color:var(--text);letter-spacing:-.2px;font-size:.85rem;font-weight:700}.status-divider{background:var(--border);width:1px;height:16px;margin:0 4px}.scene-name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:.9rem;overflow:hidden}.status-right{align-items:center;gap:8px;display:flex}.badge{letter-spacing:.05em;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.7rem;font-weight:700;display:flex}.badge.live{color:#2ecc71;background:#2ecc7126}.badge.offline{color:var(--text-muted);background:#ffffff0f}.badge.recording{color:#e74c3c;background:#e74c3c26}.badge.idle{color:var(--text-muted);background:#ffffff0f}.badge.demo{color:#f1c40f;background:#f1c40f26}.btn-disconnect,.btn-fullscreen{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;padding:6px 8px;transition:all .2s;display:flex}.btn-disconnect:hover{color:#e74c3c;border-color:#e74c3c}.btn-fullscreen:hover{color:#3498db;border-color:#3498db}.obs-status-pill{border:1px solid var(--border);border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.7rem;font-weight:700;transition:all .3s;display:flex}.obs-status-pill.connected{color:#2ecc71;background:#2ecc711a;border-color:#2ecc714d}.obs-status-pill.disconnected{color:#e74c3c;background:#e74c3c1a;border-color:#e74c3c4d;animation:2s infinite pulse-red}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.6}}.obs-offline-notice{border-radius:var(--radius);text-align:center;color:#e74c3c;background:#e74c3c1a;border:1px dashed #e74c3c66;margin:10px 0;padding:24px;font-weight:500}.mixer-offline{margin-top:20px;padding:40px}.deck-container{flex-direction:column;gap:28px;max-width:900px;margin:0 auto;padding:20px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:12px;font-size:.75rem;font-weight:600}.deck-btn{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:10px;min-height:100px;padding:16px 8px;transition:all .15s;display:flex;position:relative}.deck-btn:hover:not(:disabled){border-color:var(--btn-color);background:color-mix(in srgb, var(--btn-color) 10%, var(--surface));box-shadow:0 4px 20px color-mix(in srgb, var(--btn-color) 25%, transparent);transform:translateY(-2px)}.deck-btn:active:not(:disabled){transform:translateY(0)}.deck-btn.active{border-color:var(--btn-color);background:color-mix(in srgb, var(--btn-color) 15%, var(--surface))}.deck-btn:disabled{opacity:.6;cursor:not-allowed}.btn-icon{color:var(--btn-color);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.btn-label{text-align:center;color:var(--text);word-break:break-word;font-size:.72rem;font-weight:500;line-height:1.3}.active-dot{background:var(--btn-color);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;position:absolute;top:8px;right:8px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.spinner{border:3px solid var(--border);border-top-color:var(--btn-color,#3498db);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.main-content{flex:1;padding-right:70px;transition:padding-right .3s;overflow-y:auto}.tabs-hidden .main-content{padding-right:0}.side-bar{background:var(--surface);border-left:1px solid var(--border);-webkit-backdrop-filter:blur(10px);z-index:200;-webkit-overflow-scrolling:touch;width:65px;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;transition:transform .3s ease-in-out;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.side-bar.hidden{transform:translate(100%)}.tab-item{width:100%;height:80px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:all .2s;display:flex}.tab-item span{text-transform:uppercase;font-size:.6rem;font-weight:600}.tab-item.active{color:#3498db;background:#3498db0d}.tab-toggle{border:none;border-bottom:1px solid var(--border);width:100%;height:44px;color:var(--text-muted);cursor:pointer;padding-top:env(safe-area-inset-top);min-height:calc(44px + env(safe-area-inset-top));background:0 0;justify-content:center;align-items:center;display:flex;color:#fff!important}.tab-toggle svg{flex-shrink:0}.side-show-btn{background:var(--surface);border:1px solid var(--border);width:32px;height:60px;color:var(--text-muted);cursor:pointer;z-index:201;border-right:none;border-radius:12px 0 0 12px;justify-content:center;align-items:center;animation:.3s ease-out slideInRight;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%);box-shadow:-2px 0 10px #00000080;color:#fff!important}.side-show-btn svg{margin-right:calc(env(safe-area-inset-right) / 2);flex-shrink:0}@keyframes slideInRight{0%{opacity:0;transform:translate(20px,-50%)}to{opacity:1;transform:translateY(-50%)}}.broadcast-manager{max-width:600px;margin:0 auto;padding:20px}.manager-header{background:var(--surface2);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:24px;padding:20px}.preset-form{gap:10px;margin-top:10px;display:flex}.preset-form input,.preset-form select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;flex:1;padding:10px}.btn-add{color:#fff;cursor:pointer;background:#3498db;border:none;border-radius:8px;justify-content:center;align-items:center;width:44px;display:flex}.preset-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px;transition:border-color .2s;display:flex}.preset-card:hover{border-color:#3498db}.preset-info{flex-direction:column;gap:4px;display:flex}.preset-date{color:var(--text-muted);font-size:.65rem}.preset-title{font-size:1rem;font-weight:600}.preset-scene{color:#3498db;font-size:.75rem}.preset-actions{gap:8px;display:flex}.btn-apply,.btn-delete{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.btn-apply{color:#2ecc71;border-color:#2ecc714d}.btn-apply:hover{background:#2ecc711a}.btn-delete{color:#e74c3c;border-color:#e74c3c4d}.btn-delete:hover{background:#e74c3c1a}.empty-state{text-align:center;color:var(--text-muted);border:2px dashed var(--border);border-radius:var(--radius);padding:40px}.profile-dropdown{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:10px;padding:12px;font-size:1rem}.profile-hint{color:var(--text-muted);font-size:.7rem;font-style:italic}.shortcut-manager{max-width:800px;margin:0 auto;padding:20px}.shortcut-form-modern{flex-direction:column;gap:16px;margin-top:15px;display:flex}.input-group{flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;font-size:.75rem;font-weight:600;display:flex}.input-group input,.input-group select{color:var(--text);background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;outline:none;padding:12px 16px;font-size:.95rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.input-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:18px;padding-right:40px}.step-config select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:35px}.input-group input:focus,.input-group select:focus{background:#ffffff12;border-color:#3498db;box-shadow:0 0 0 4px #3498db26}.input-group select option,.step-config select option{color:#fff;background:#1a1a1a;padding:10px}.form-row-modern{gap:16px;display:flex}.flex-1{flex:1}.flex-2{flex:2}.icon-input-wrapper{align-items:center;display:flex;position:relative}.icon-input-wrapper input{width:100%;padding-right:50px}.mini-preview-modern{object-fit:contain;background:var(--surface2);border:1px solid #ffffff1a;border-radius:8px;width:34px;height:34px;padding:4px;position:absolute;right:8px}.form-actions-modern{gap:12px;margin-top:8px;display:flex}.btn-save-modern{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6c5ce7,#a29bfe);border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:.95rem;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 15px #6c5ce74d}.btn-save-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6c5ce766}.btn-cancel-modern{color:var(--text);border:1px solid var(--border);cursor:pointer;background:#ffffff0d;border-radius:12px;align-items:center;gap:8px;padding:0 20px;transition:all .2s;display:flex}.btn-cancel-modern:hover{background:#ffffff1a}.step-builder-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;margin:10px 0;font-size:.8rem;font-weight:700;display:flex}.macro-steps-builder{background:#0003;border:1px solid #ffffff0d;border-radius:14px;padding:16px}.step-adders-modern{flex-wrap:wrap;gap:8px;margin:15px 0;display:flex}.step-adders-modern button{color:var(--text);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:30px;align-items:center;gap:8px;padding:8px 14px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.step-adders-modern button:hover{background:#ffffff1a;border-color:#3498db;transform:translateY(-2px)}.step-adders-modern button:active{transform:translateY(0)}.step-type-badge{color:#3498db;text-transform:uppercase;background:#3498db26;border-radius:4px;margin-right:10px;padding:2px 8px;font-size:.65rem;font-weight:800}@media (width<=480px){.form-row-modern{flex-direction:column}}.shortcut-form{flex-direction:column;gap:12px;margin-top:10px;display:flex}.form-row{gap:10px;display:flex}.form-row select{width:150px}.btn-add-full{color:#fff;cursor:pointer;background:#9b59b6;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;font-weight:600;transition:opacity .2s;display:flex}.shortcuts-grid{border:1px solid var(--border);background:#0003;border-radius:20px;margin-top:2rem;padding:1.5rem}.deck-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1.5rem;display:grid}.shortcut-card-wrapper{background:var(--surface2);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:12px;transition:all .2s;display:flex}.shortcut-card-wrapper:active{cursor:grabbing}.shortcut-card-wrapper.dragging{opacity:.4;border:2px dashed #3498db;transform:scale(.95)}.shortcut-card-wrapper:hover{background:#252525;border-color:#444}.card-actions-row{border-top:1px solid #ffffff0d;justify-content:center;gap:4px;width:100%;padding-top:8px;display:flex}.mini-action{cursor:pointer;color:#fff;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.mini-action:hover:not(:disabled){filter:brightness(1.2);transform:translateY(-2px)}.mini-action:disabled{opacity:.2}.mini-action.move{background:#37474f}.mini-action.edit{background:#2980b9}.mini-action.delete{background:#c0392b}.deck-btn.editing{outline-offset:3px;outline:2px solid #3498db}.btn-custom-img{object-fit:contain;border-radius:6px;width:40px;height:40px}.btn-custom-img-mini{object-fit:contain;width:24px;height:24px}.mini-preview{object-fit:contain;border:1px solid var(--border);background:#ffffff0d;border-radius:8px;width:40px;height:40px;padding:4px}@media (width<=480px){.deck-grid{grid-template-columns:repeat(3,1fr);gap:10px}.deck-btn{min-height:88px;padding:12px 6px}.preset-form{flex-direction:column}.btn-add{width:100%;padding:10px}}.status-center{flex:1;justify-content:center;display:flex}.pc-metrics{background:var(--surface2);border:1px solid var(--border);border-radius:20px;gap:15px;padding:4px 12px;display:flex}.metric{color:var(--text-muted);align-items:center;gap:6px;font-size:.7rem;font-weight:600;display:flex}.metric span.critical{color:#e74c3c;animation:1s infinite flash}@keyframes flash{50%{opacity:.5}}.step-row{background:#ffffff08;border:1px solid #ffffff0d;border-radius:12px;align-items:center;gap:15px;margin-bottom:10px;padding:12px 16px;transition:all .2s;display:flex}.step-row:hover{background:#ffffff0f;border-color:#ffffff1a}.step-reorder{flex-direction:column;gap:2px;display:flex}.step-reorder button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:color .2s;display:flex}.step-reorder button:hover:not(:disabled){color:#3498db}.step-reorder button:disabled{opacity:.2}.step-config{flex:1;align-items:center;gap:12px;display:flex}.step-type-badge{text-align:center;min-width:80px;color:var(--text-muted);text-transform:uppercase;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px;font-size:.65rem;font-weight:800}.step-row:has(.step-type-badge:contains("scene")){border-left:3px solid #3498db}.step-row:has(.step-type-badge:contains("sound")){border-left:3px solid #f1c40f}.step-row:has(.step-type-badge:contains("shortcut")){border-left:3px solid #9b59b6}.step-row:has(.step-type-badge:contains("delay")){border-left:3px solid #e67e22}.step-config select,.step-config input{color:var(--text);background:#0003;border:1px solid #ffffff1a;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:.85rem}.step-config select:focus,.step-config input:focus{border-color:#3498db}.delay-input{color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.btn-remove-step{color:#e74c3c;cursor:pointer;background:#e74c3c1a;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-remove-step:hover{color:#fff;background:#e74c3c;transform:scale(1.1)}.volume-mixer{max-width:600px;margin:0 auto;padding:20px}.mixer-grid{flex-direction:column;gap:15px;display:flex}.mixer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.mixer-info{justify-content:space-between;margin-bottom:12px;display:flex}.mixer-name{font-size:.9rem;font-weight:600}.mixer-value{color:#3498db;font-family:monospace;font-size:.8rem}.mixer-controls{align-items:center;gap:15px;display:flex}.volume-slider{background:var(--surface2);appearance:none;border-radius:10px;outline:none;flex:1;height:6px}.volume-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#3498db;border-radius:50%;width:18px;height:18px;box-shadow:0 0 10px #3498db66}.btn-mute{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.btn-mute.muted{color:#e74c3c;background:#e74c3c26;border-color:#e74c3c}.source-manager{max-width:800px;margin:0 auto;padding:20px}.sources-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:15px;display:grid}.source-card{background:var(--surface);border-radius:var(--radius);cursor:pointer;color:var(--text);border:3px solid #000;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:110px;padding:20px 10px;transition:all .2s;display:flex}.source-card.visible{background:#2ecc710d;border-color:#2ecc71;box-shadow:0 0 15px #2ecc711a}.source-card.hidden{opacity:.6;border-color:#000}.source-card:hover{transform:translateY(-3px)}.source-card-icon{color:var(--text-muted)}.source-card.visible .source-card-icon{color:#2ecc71}.source-card-label{text-align:center;word-break:break-word;font-size:.8rem;font-weight:600}.macro-manager{max-width:700px;margin:0 auto;padding:20px}.macro-form{flex-direction:column;gap:20px;display:flex}.macro-name-input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:12px;font-size:1rem}.macro-steps-builder{background:var(--bg);border-radius:8px;flex-direction:column;gap:10px;padding:15px;display:flex}.step-row{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:10px;padding:8px 12px;display:flex}.step-number{color:var(--text-muted);width:20px;font-size:.7rem}.step-config{flex:1;gap:10px;display:flex}.step-config select,.step-config input{background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:6px;font-size:.85rem}.delay-input{align-items:center;gap:5px;display:flex}.delay-input input{width:80px}.step-adders{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.step-adders button{background:var(--surface2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:5px;padding:10px;font-size:.7rem;transition:all .2s;display:flex}.step-adders button:hover{color:#a29bfe;border-color:#a29bfe}.btn-save-macro{color:#000;cursor:pointer;background:#a29bfe;border:none;border-radius:8px;padding:14px;font-weight:700}.macro-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px;display:grid}.macro-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:16px;display:flex}.macro-title{margin-bottom:2px;font-size:1rem}.macro-summary{color:var(--text-muted);font-size:.75rem}.macro-actions{gap:8px;display:flex}.btn-play-macro{color:#000;cursor:pointer;background:#a29bfe;border:none;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.btn-edit-macro,.btn-delete-macro{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}
