*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:#08080c;-webkit-font-smoothing:antialiased}#root{height:100vh}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #08080c;--surface: #0e0e14;--surface2: #141420;--surface3: #1a1a28;--border: #1e1e2e;--border-hi: #2e2e44;--gold: #fcb040;--gold-dim: #a07828;--gold-glow: rgba(252, 176, 64, .15);--teal: #28b4bc;--teal-dim: #1a7880;--teal-glow: rgba(40, 180, 188, .12);--green: #48c048;--green-dim: #2a7a2a;--green-glow: rgba(72, 192, 72, .1);--red: #e04848;--red-dim: #8a2828;--red-glow: rgba(224, 72, 72, .12);--yellow: #d4c840;--yellow-dim: #8a8428;--yellow-glow: rgba(212, 200, 64, .1);--frame: #b8ad88;--frame-dim: #6a6348;--text: #f0ead4;--text-dim: #d0d0dc;--text-muted: #6a6a80;--sidebar-w: 220px;--sidebar-collapsed-w: 52px;--radius: 4px;--radius-lg: 8px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding-bottom:20px;transition:width .3s var(--ease-out);position:relative}.sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,var(--gold-dim) 0%,var(--teal-dim) 30%,var(--green-dim) 60%,var(--red-dim) 100%);opacity:.5}.sidebar-collapsed{width:var(--sidebar-collapsed-w);padding-bottom:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 16px;border-bottom:1px solid var(--border);gap:6px;flex-shrink:0}.sidebar-logo{flex:1;min-width:0}.logo-moog-svg{display:block;color:var(--text);filter:drop-shadow(0 0 12px rgba(240,234,212,.15));margin-bottom:2px}.logo-text{font-size:7.5px;font-weight:800;letter-spacing:4px;color:var(--gold-dim);text-transform:uppercase;margin-top:5px;white-space:nowrap}.sidebar-toggle{background:none;border:none;color:var(--text-muted);font-size:11px;padding:4px 6px;cursor:pointer;flex-shrink:0;transition:color .3s,transform .3s var(--ease-spring);font-family:inherit;line-height:1}.sidebar-toggle:hover{color:var(--teal);transform:scale(1.2)}.sidebar-section-label{font-size:8px;font-weight:800;letter-spacing:4px;color:var(--text-muted);text-transform:uppercase;padding:20px 18px 8px}.sidebar-divider{height:1px;background:linear-gradient(90deg,transparent,var(--border-hi),transparent);margin:8px 16px}.sidebar-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 18px;background:none;border:none;border-left:2px solid transparent;color:var(--text-dim);font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;text-align:left;transition:all .25s var(--ease-out);white-space:nowrap;position:relative}.sidebar-item:hover{background:var(--surface2);color:var(--text);padding-left:20px}.sidebar-item.active{color:var(--gold);border-left-color:var(--gold);background:var(--gold-glow);font-weight:600}.sidebar-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);box-shadow:0 0 12px var(--gold),0 0 24px #fcb0404d;border-radius:0 2px 2px 0}.sidebar-icon{width:20px;text-align:center;flex-shrink:0;font-size:14px}.badge{margin-left:auto;background:linear-gradient(135deg,var(--gold),#e5a038);color:#000;font-size:9px;font-weight:800;border-radius:10px;padding:2px 8px;min-width:18px;text-align:center;font-family:inherit;box-shadow:0 0 8px #fcb0404d}.sidebar-icons{display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px}.sidebar-icon-btn{background:none;border:none;color:var(--text-muted);font-size:17px;width:42px;height:42px;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all .25s var(--ease-out);font-family:inherit}.sidebar-icon-btn:hover{background:var(--surface2);color:var(--text);transform:scale(1.1)}.sidebar-icon-btn.active{color:var(--gold)}.badge-dot{position:absolute;top:6px;right:6px;width:6px;height:6px;background:var(--gold);border-radius:50%;box-shadow:0 0 6px var(--gold);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:56px;background:linear-gradient(180deg,var(--surface),var(--bg));border-bottom:1px solid var(--border);flex-shrink:0;gap:12px;position:relative}.topbar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--yellow-dim) 0%,var(--gold) 15%,var(--teal) 40%,var(--green) 60%,var(--red) 85%,var(--red-dim) 100%);opacity:.4}.topbar-left{display:flex;align-items:baseline;gap:12px}.topbar-moog-svg{color:var(--text);filter:drop-shadow(0 0 10px rgba(240,234,212,.12));flex-shrink:0}.topbar-title{font-size:9px;letter-spacing:4px;color:var(--frame-dim);font-weight:700;text-transform:uppercase;white-space:nowrap}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:13px;padding:8px 16px;width:240px;outline:none;transition:border-color .3s,box-shadow .3s,background .3s}.search-input:focus{border-color:var(--teal-dim);box-shadow:0 0 0 3px var(--teal-glow),0 0 16px var(--teal-glow);background:var(--surface2)}.search-input::placeholder{color:var(--text-muted)}.content{flex:1;overflow-y:auto;padding:32px 28px}.section-title{font-size:10px;letter-spacing:5px;color:var(--frame-dim);margin-bottom:24px;font-weight:800;text-transform:uppercase}.patch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.patch-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;text-align:left;transition:all .35s var(--ease-out);font-family:inherit;color:var(--text);position:relative;overflow:hidden}.patch-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal-dim),var(--gold-dim));opacity:0;transition:opacity .35s}.patch-card:hover{border-color:var(--border-hi);background:var(--surface2);transform:translateY(-2px);box-shadow:0 8px 24px #0006,0 0 0 1px var(--border-hi)}.patch-card:hover:before{opacity:1}.patch-card.selected{border-color:var(--gold);background:var(--gold-glow);box-shadow:0 0 0 1px var(--gold),0 4px 24px #fcb0401a}.patch-card.selected:before{opacity:1;background:var(--gold)}.patch-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.patch-name{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.3px}.patch-desc{font-size:12px;color:var(--text-dim);line-height:1.6;margin-bottom:14px}.patch-tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:9px;padding:3px 8px;border-radius:3px;background:transparent;border:1px solid var(--border-hi);color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;font-weight:600;transition:all .2s}.tag-category{border-color:var(--gold-dim);color:var(--gold);background:var(--gold-glow)}.tag-accent{border-color:var(--teal-dim);color:var(--teal);background:var(--teal-glow)}.star-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:0;line-height:1;transition:all .3s var(--ease-spring)}.star-btn:hover{transform:scale(1.25);color:var(--gold);filter:drop-shadow(0 0 6px rgba(252,176,64,.4))}.star-btn.star-active{color:var(--gold);filter:drop-shadow(0 0 4px rgba(252,176,64,.3))}.rating-stars{-webkit-user-select:none;user-select:none}.rating-star{color:var(--text-muted);transition:color .15s,transform .1s}.rating-star-filled{color:var(--gold)}.rating-star-user{color:var(--gold);filter:drop-shadow(0 0 3px rgba(252,176,64,.4))}.rating-star:hover{color:var(--gold)}.rating-count{color:var(--text-muted);margin-left:2px}.detail-rating{display:flex;align-items:center;gap:10px;margin-top:8px}.rating-login-hint{font-size:11px;color:var(--text-muted);font-style:italic}.patch-card-rating{margin:4px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:var(--text-muted);gap:14px}.empty-icon{font-size:48px;opacity:.15}.patch-detail{max-width:100%}.detail-header{margin-bottom:28px}.back-btn{background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:12px;letter-spacing:.5px;padding:0;cursor:pointer;margin-bottom:20px;display:inline-flex;align-items:center;gap:6px;transition:all .25s var(--ease-out)}.back-btn:hover{color:var(--teal);transform:translate(-3px)}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.detail-title{font-size:32px;font-weight:800;color:var(--text);letter-spacing:-1px;line-height:1.1}.detail-description{font-size:14px;color:var(--text-dim);line-height:1.7}.panel-container{margin-bottom:28px;border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;border:1px solid var(--border);width:100%;box-shadow:0 4px 24px #0000004d,inset 0 1px #ffffff08}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;transition:border-color .3s;position:relative;overflow:hidden}.settings-section:hover{border-color:var(--border-hi)}.settings-section h3{font-size:8px;letter-spacing:4px;color:var(--teal);text-transform:uppercase;margin-bottom:14px;font-weight:800;font-family:inherit}.settings-section:nth-child(1) h3,.settings-section:nth-child(2) h3{color:var(--teal)}.settings-section:nth-child(3) h3{color:var(--text-dim)}.settings-section:nth-child(4) h3{color:var(--green)}.settings-section:nth-child(5) h3{color:var(--gold)}.settings-section:nth-child(6) h3{color:var(--text-dim)}.settings-section:nth-child(7) h3{color:var(--yellow)}.settings-section:nth-child(8) h3{color:var(--red)}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:12px}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-muted);font-size:11px}.detail-value{color:var(--text);font-weight:600}.knob-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.knob-readout{display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .2s var(--ease-spring)}.knob-readout:hover{transform:scale(1.08)}.knob-ring{width:48px;height:48px;border-radius:50%;background:conic-gradient(var(--teal) 0% calc(var(--pct) * 1%),#1a1a28 calc(var(--pct) * 1%) 100%);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 12px #28b4bc26;transition:box-shadow .3s}.knob-readout:hover .knob-ring{box-shadow:0 0 20px #28b4bc4d}.knob-ring:before{content:"";position:absolute;inset:6px;background:var(--surface2);border-radius:50%}.knob-inner{position:relative;z-index:1;font-size:9px;color:var(--text);font-weight:700}.knob-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;font-weight:600}.cable-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:11px;border-bottom:1px solid var(--border)}.cable-row:last-child{border-bottom:none}.cable-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.topbar-right{display:flex;align-items:center;gap:10px}.photo-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);padding:7px 11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease-out);line-height:1}.photo-btn:hover{border-color:var(--teal-dim);color:var(--teal);background:var(--teal-glow);box-shadow:0 0 12px var(--teal-glow);transform:translateY(-1px)}.photo-btn svg{display:block}.user-tag{font-size:8px;font-weight:800;letter-spacing:2px;color:var(--teal);background:var(--teal-glow);border:1px solid var(--teal-dim);border-radius:3px;padding:3px 8px;margin-left:12px;vertical-align:middle}.tag-user{border-color:var(--teal-dim);color:var(--teal);background:var(--teal-glow)}.btn-delete{background:none;border:1px solid var(--red-dim);border-radius:var(--radius);color:var(--red);font-family:inherit;font-size:11px;font-weight:700;padding:5px 14px;cursor:pointer;transition:all .25s}.btn-delete:hover{background:var(--red-glow);border-color:var(--red);box-shadow:0 0 12px var(--red-glow)}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--surface);border:1px solid var(--border-hi);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:28px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #00000080,0 0 0 1px var(--border);animation:modal-in .3s var(--ease-out)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-upload{max-width:520px}.modal-preview{max-width:800px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.3px}.modal-close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0 4px;line-height:1;transition:all .2s}.modal-close:hover{color:var(--red);transform:scale(1.1)}.modal-desc{font-size:12px;color:var(--text-dim);line-height:1.65;margin-bottom:18px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.edit-label{display:block;font-size:8px;font-weight:800;letter-spacing:3px;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.edit-field{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:13px;padding:9px 14px;outline:none;transition:border-color .3s,box-shadow .3s}.edit-field:focus{border-color:var(--teal-dim);box-shadow:0 0 0 3px var(--teal-glow)}.edit-select{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:13px;padding:9px 14px;outline:none;cursor:pointer;transition:border-color .3s,box-shadow .3s}.edit-select:focus{border-color:var(--teal-dim);box-shadow:0 0 0 3px var(--teal-glow)}.edit-textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:13px;padding:9px 14px;outline:none;resize:vertical;min-height:48px;transition:border-color .3s,box-shadow .3s}.edit-textarea:focus{border-color:var(--teal-dim);box-shadow:0 0 0 3px var(--teal-glow)}.btn-gold{background:linear-gradient(135deg,var(--gold),#e5a038);color:#000;border:none;border-radius:var(--radius);font-family:inherit;font-size:13px;font-weight:800;padding:9px 24px;cursor:pointer;transition:all .25s var(--ease-out);display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px #fcb04033}.btn-gold:hover{background:linear-gradient(135deg,#ffc050,var(--gold));box-shadow:0 4px 16px #fcb04059;transform:translateY(-1px)}.btn-gold:disabled{opacity:.5;cursor:wait;transform:none;box-shadow:none}.btn-teal{background:linear-gradient(135deg,var(--teal),#1a9aa0);color:#000;border:none;border-radius:var(--radius);font-family:inherit;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:all .2s ease}.btn-teal:hover{background:linear-gradient(135deg,#30c8d0,var(--teal));box-shadow:0 4px 16px #28b4bc59;transform:translateY(-1px)}.btn-teal:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}.btn-teal-approved{display:inline-block;background:#28b46426;color:#4ade80;border:1px solid rgba(40,180,100,.3);border-radius:var(--radius);font-family:inherit;font-weight:700;font-size:11px;letter-spacing:.3px}.btn-muted{background:none;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:13px;font-weight:600;padding:9px 24px;cursor:pointer;transition:all .25s}.btn-muted:hover{border-color:var(--border-hi);color:var(--text-dim)}.upload-zone{border:2px dashed var(--border-hi);border-radius:var(--radius-lg);padding:52px 24px;display:flex;flex-direction:column;align-items:center;gap:16px;cursor:pointer;transition:all .3s var(--ease-out);color:var(--text-muted);text-align:center}.upload-zone:hover,.upload-zone-active{border-color:var(--teal);background:var(--teal-glow);color:var(--teal);box-shadow:inset 0 0 32px var(--teal-glow)}.upload-zone-text{font-size:14px;font-weight:600;line-height:1.6}.upload-zone-sub{font-size:11px;color:var(--text-muted)}.upload-preview-wrap{position:relative;margin-bottom:4px}.upload-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.upload-preview-thumb{position:relative}.upload-preview{width:100%;height:140px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg)}.upload-preview-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#000000bf;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s}.upload-preview-remove:hover{background:#e04848e6}.upload-add-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:140px;border-radius:var(--radius);border:1px dashed var(--border-hi);background:none;color:var(--text-muted);font-family:inherit;font-size:11px;cursor:pointer;transition:all .2s}.upload-add-more:hover{border-color:var(--teal);color:var(--teal)}.upload-hint{margin-top:8px;font-size:11px;color:var(--text-muted);text-align:center}.upload-change{display:block;margin-top:8px;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:11px;cursor:pointer;text-decoration:underline;padding:0}.upload-change:hover{color:var(--teal)}.qr-toggle{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:12px;cursor:pointer;padding:6px 0;width:100%;transition:color .2s}.qr-toggle:hover{color:var(--teal)}.qr-section{display:flex;flex-direction:column;align-items:center;gap:14px;padding:20px 0}.qr-code{border-radius:var(--radius-lg);background:#fff;padding:0;display:block}.qr-instructions{font-size:12px;color:var(--text-dim);text-align:center;line-height:1.6}.qr-url{font-size:11px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:7px 14px;font-family:monospace;-webkit-user-select:all;user-select:all;text-align:center}.qr-fallback{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0}.upload-error{margin-top:12px;padding:10px 14px;background:var(--red-glow);border:1px solid var(--red-dim);border-radius:var(--radius);color:var(--red);font-size:12px;line-height:1.5}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.confidence-badge{font-size:11px;font-weight:700;padding:6px 14px;border-radius:var(--radius);margin-bottom:16px}.confidence-high{background:var(--green-glow);border:1px solid var(--green-dim);color:var(--green)}.confidence-medium{background:var(--gold-glow);border:1px solid var(--gold-dim);color:var(--gold)}.confidence-low{background:var(--red-glow);border:1px solid var(--red-dim);color:var(--red)}.preview-panel{margin:16px 0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto;overflow-y:hidden;box-shadow:0 4px 16px #0000004d}.preview-fields{margin-bottom:8px}.preview-field{margin-bottom:12px}.preview-field-row{display:flex;gap:12px}.preview-settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:4px}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--teal-dim)}.patch-editor{padding:20px 28px 32px;max-width:100%}.editor-header{margin-bottom:20px}.editor-title{font-size:22px;font-weight:800;color:var(--gold);margin:0 0 6px;letter-spacing:1px;text-shadow:0 0 20px rgba(252,176,64,.2)}.editor-hint{font-size:11px;color:var(--text-muted);margin:0}.editor-panel-wrap{position:relative;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:24px;box-shadow:0 4px 24px #0000004d,inset 0 1px #ffffff08}.editor-hitarea{cursor:pointer;transition:opacity .15s}.editor-hitarea:hover{fill:#28b4bc1a}.editor-hitarea-knob{cursor:ns-resize}.editor-hitarea-knob:hover{fill:#28b4bc26}.editor-hitarea-click:hover{fill:#28b4bc1f}body.editor-dragging{cursor:ns-resize!important;user-select:none;-webkit-user-select:none}body.editor-dragging *{cursor:ns-resize!important}.editor-fields{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}.editor-field-row{display:flex;gap:14px}.editor-field-row .edit-label:first-child{flex:2}.editor-field-row .edit-label:last-child{flex:1}.editor-actions{display:flex;justify-content:flex-end;gap:10px}.sidebar-create{border:1px dashed var(--border-hi)!important;opacity:.7;transition:all .25s var(--ease-out)!important}.sidebar-create:hover{border-color:var(--teal)!important;opacity:1;color:var(--teal)!important}.editor-hitarea-jack{cursor:pointer}.editor-hitarea-jack:hover{fill:#fcb04026}.editor-hitarea-jack-active{cursor:crosshair}.editor-hitarea-jack-active:hover{fill:#28b4bc33}.editor-cables{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:20px}.editor-cables-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.editor-cables-title{font-size:8px;font-weight:800;letter-spacing:3px;color:var(--teal);text-transform:uppercase}.editor-cables-count{background:var(--teal-glow);border:1px solid var(--teal-dim);color:var(--teal);font-size:9px;font-weight:800;border-radius:10px;padding:1px 7px}.editor-cable-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:11px}.editor-cable-row:last-child{border-bottom:none}.editor-cable-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.editor-cable-arrow{color:var(--text-muted)}.editor-cable-remove{margin-left:auto;background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:0 4px;line-height:1;transition:color .2s}.editor-cable-remove:hover{color:var(--red)}.sidebar-spacer{flex:1;min-height:20px}.sidebar-auth{padding:12px 16px 4px;border-top:1px solid var(--border)}.sidebar-signin{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:var(--surface2);border:1px solid var(--border-hi);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .25s var(--ease-out)}.sidebar-signin:hover{background:var(--surface3);border-color:var(--gold-dim);box-shadow:0 2px 12px #fcb0401a;transform:translateY(-1px)}.sidebar-signin svg{flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sidebar-avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-hi);flex-shrink:0}.sidebar-username{font-size:11px;font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-signout{background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:10px;cursor:pointer;padding:2px 0;transition:color .2s}.sidebar-signout:hover{color:var(--red)}.sidebar-create-btn{border:1px dashed var(--border-hi)!important;opacity:.8;transition:all .25s var(--ease-out)!important}.sidebar-create-btn:hover{border-color:var(--teal)!important;opacity:1;color:var(--teal)!important;background:var(--teal-glow)!important}.sidebar-account{padding:.25rem 0}.sidebar-user-info{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem}.sidebar-user-details{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.sidebar-display-name{background:none;border:none;color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;padding:0;display:flex;align-items:center;gap:.35rem;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-display-name:hover{color:var(--gold)}.sidebar-edit-icon{font-size:.7rem;opacity:0;transition:opacity .2s}.sidebar-display-name:hover .sidebar-edit-icon{opacity:.7}.sidebar-email{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-edit-name{display:flex}.sidebar-name-input{width:100%;padding:.2rem .4rem;background:var(--surface);border:1px solid var(--gold);border-radius:var(--radius);color:var(--text);font-size:.85rem;font-weight:600;outline:none}.sidebar-account .sidebar-signout{display:block;margin:.25rem .75rem .5rem;padding:.3rem .6rem;background:none;border:1px solid var(--border-hi);border-radius:var(--radius);color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:all .2s;width:calc(100% - 1.5rem);text-align:center}.sidebar-account .sidebar-signout:hover{color:var(--red);border-color:var(--red-dim);background:var(--red-glow)}.sidebar-legal{padding:.5rem .75rem;text-align:center;font-size:.7rem}.sidebar-legal button{background:none;border:none;color:var(--text-muted);font-size:.7rem;cursor:pointer;padding:0;transition:color .2s}.sidebar-legal button:hover,.sidebar-legal a:hover{color:var(--text-dim);text-decoration:underline}.sidebar-legal a{color:var(--text-muted);font-size:.7rem;text-decoration:none;transition:color .2s}.sidebar-legal-sep{color:var(--text-muted);margin:0 .35rem}.legal-page{max-width:720px;margin:0 auto;padding:2rem 1.5rem 4rem;color:var(--text-dim);line-height:1.7}.legal-page h1{font-size:1.6rem;color:var(--text);margin-bottom:.25rem;font-weight:700}.legal-page h2{font-size:1.1rem;color:var(--gold);margin:1.75rem 0 .5rem;font-weight:600}.legal-page h3{font-size:.95rem;color:var(--text);margin:1rem 0 .4rem;font-weight:600}.legal-page p{margin-bottom:.75rem;font-size:.88rem}.legal-page ul{margin:.5rem 0 1rem 1.5rem;font-size:.88rem}.legal-page li{margin-bottom:.35rem}.legal-page a{color:var(--teal);text-decoration:none}.legal-page a:hover{text-decoration:underline}.legal-page strong{color:var(--text)}.legal-updated{color:var(--text-muted);font-size:.8rem;margin-bottom:1.25rem}.legal-back{background:none;border:1px solid var(--border-hi);border-radius:var(--radius);color:var(--text-dim);padding:.4rem .8rem;font-size:.8rem;cursor:pointer;margin-bottom:1.5rem;transition:all .2s}.legal-back:hover{border-color:var(--teal-dim);color:var(--teal);background:var(--teal-glow)}.nickname-overlay{position:fixed;inset:0;z-index:9999;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.nickname-modal{background:var(--surface2);border:1px solid var(--border-hi);border-radius:var(--radius-lg);padding:2rem;width:90%;max-width:380px;display:flex;flex-direction:column;gap:.75rem;animation:slideUp .3s ease}.nickname-title{font-size:1.2rem;color:var(--gold);font-weight:700;letter-spacing:.02em}.nickname-desc{font-size:.85rem;color:var(--text-dim);line-height:1.5}.nickname-input{padding:.65rem .75rem;background:var(--surface);border:1px solid var(--border-hi);border-radius:var(--radius);color:var(--text);font-size:1rem;outline:none;transition:border-color .2s}.nickname-input:focus{border-color:var(--gold)}.nickname-error{color:var(--red);font-size:.8rem}.nickname-submit{padding:.6rem 1.2rem;background:var(--gold);color:var(--bg);border:none;border-radius:var(--radius);font-weight:700;font-size:.95rem;cursor:pointer;transition:all .2s;margin-top:.25rem}.nickname-submit:hover:not(:disabled){background:#ffc050;transform:translateY(-1px)}.nickname-submit:disabled{opacity:.5;cursor:not-allowed}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
