@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.audio-patch-container{color:var(--color-text);flex-direction:column;gap:20px;font-family:inherit;display:flex}.print-header-only{display:none}.config-card{background:var(--color-bg-2,#ffffff05);border:1px solid var(--color-border);border-radius:var(--radius-lg,12px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;box-shadow:0 4px 24px #0003}.config-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:10px;display:flex}.config-title{color:var(--color-text-dim);align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.signal-flow-visualizer{border-radius:var(--radius-md,8px);background:#00000026;flex-direction:column;gap:12px;margin-bottom:16px;padding:12px;display:flex}.flow-node{border-radius:var(--radius-sm,6px);align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.flow-node.console{background:#4f8ef726;border:1px solid #4f8ef74d;font-weight:600}.flow-node.stagebox{background:#f59e0b14;border:1px solid #f59e0b33}.flow-node.slot-card{background:#a855f714;border:1px solid #a855f740}.tree-port-badge{color:#4f8ef7;background:#4f8ef726;border:1px solid #4f8ef74d;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.audio-setup-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.stagebox-item-card{border:1px solid var(--color-border);border-radius:var(--radius-md,8px);background:#ffffff08;flex-direction:column;gap:8px;padding:12px;display:flex;position:relative}.stagebox-item-card:hover{background:#ffffff0d;border-color:#ffffff26}.stagebox-remove-btn{color:var(--color-text-muted);position:absolute;top:8px;right:8px}.stagebox-remove-btn:hover{color:var(--color-error,#ef4444)}.patchplan-table-container{background:var(--color-bg-2,#ffffff05);border:1px solid var(--color-border);border-radius:var(--radius-lg,12px);overflow-x:auto;box-shadow:0 4px 24px #0003}.patchplan-table{border-collapse:collapse;width:100%;min-width:800px;font-size:13px}.patchplan-table th{text-align:left;color:var(--color-text-dim);border-bottom:2px solid var(--color-border);background:#0000004d;padding:12px;font-weight:600}.patchplan-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:8px 10px}.patch-row-item{transition:background-color .2s}.patch-row-item:hover{background:#ffffff05}.patch-row-item.dragging{box-shadow:0 4px 12px #0000004d;background:#ffffff14!important}.table-input,.table-select{border:1px solid var(--color-border);width:100%;color:var(--color-text);border-radius:var(--radius-sm,6px);box-sizing:border-box;background:#0003;padding:6px 10px;font-size:13px;transition:border-color .2s,box-shadow .2s}.table-input:focus,.table-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow);background:#0000004d;outline:none}.input-source-badge{white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.input-source-badge.local,.table-select.local{font-weight:600;color:#4f8ef7!important;background:#4f8ef71f!important;border:1px solid #4f8ef74d!important}.input-source-badge.stagebox,.table-select.stagebox{font-weight:600;color:#f59e0b!important;background:#f59e0b1f!important;border:1px solid #f59e0b4d!important}.input-source-badge.custom,.table-select.custom{font-weight:600;color:#a855f7!important;background:#a855f71f!important;border:1px solid #a855f74d!important}.table-select option{color:#fff!important;background-color:#1a202c!important}.mic-suggestions-popover{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.mic-suggestion-badge{color:var(--color-primary);cursor:pointer;background:#4f8ef71f;border:1px solid #4f8ef74d;border-radius:4px;padding:2px 6px;font-size:10px;transition:background .2s,border-color .2s}.mic-suggestion-badge:hover{background:#4f8ef740;border-color:#4f8ef799}.phantom-toggle{cursor:pointer;border:1px solid var(--color-border);background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;width:38px;height:24px;transition:background-color .2s,border-color .2s;display:flex;position:relative}.phantom-toggle.active{background:#ef44442e;border-color:#ef444480}.phantom-toggle:after{content:"+48V";color:var(--color-text-muted);font-size:8px;font-weight:800}.phantom-toggle.active:after{color:#f55;text-shadow:0 0 8px #ef444499}.phantom-toggle:before{content:"";background:#555;border-radius:50%;width:18px;height:18px;transition:transform .2s,background-color .2s;position:absolute;top:2px;left:2px}.phantom-toggle.active:before{background:#f55;transform:translate(14px)}.drag-handle{cursor:grab;color:var(--color-text-muted);border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:background-color .2s,color .2s;display:inline-flex}.drag-handle:hover{color:var(--color-text);background:#ffffff0d}.summary-prep-box{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px;display:grid}.prep-card{border:1px solid var(--color-border);border-radius:var(--radius-md,8px);background:#0000001f;padding:16px}.prep-title{color:var(--color-text-dim);border-bottom:1px solid #ffffff0d;margin-bottom:12px;padding-bottom:6px;font-size:13px;font-weight:600}.prep-list{flex-direction:column;gap:6px;font-size:12px;display:flex}.prep-list-item{justify-content:space-between;align-items:center;display:flex}.prep-item-count{color:var(--color-primary);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.visual-patching-board{margin-top:10px}.port-dropzone{transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.port-dropzone.valid-target{animation:2s ease-in-out infinite pulse-border}@keyframes pulse-border{0%{border-color:#4f8ef766;box-shadow:0 0 #4f8ef71a}50%{border-color:#4f8ef7e6;box-shadow:0 0 8px 2px #4f8ef733}to{border-color:#4f8ef766;box-shadow:0 0 #4f8ef71a}}.stagebox-patch-tile{-webkit-user-select:none;user-select:none;transition:transform .2s,box-shadow .2s,border-color .2s}.stagebox-patch-tile:hover{border-color:var(--color-primary-hover)!important;box-shadow:0 6px 12px -2px #00000040,0 3px 6px -3px #00000026!important}.stagebox-patch-tile select.table-select{background:var(--color-bg-2)!important;border:1px solid var(--color-border)!important;border-radius:4px!important}.draggable-stagebox-wrapper:active .stagebox-patch-tile{transform:scale(1.02);cursor:grabbing!important;border-color:var(--color-primary)!important;box-shadow:0 10px 20px -5px #0000004d,0 8px 16px -8px #0003!important}.patchplan-setup-workspace{grid-template-columns:320px 1fr;align-items:start;gap:20px;margin-top:16px;display:grid}.setup-controls-panel{background:var(--color-surface,#1e293b80);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;border-radius:12px;flex-direction:column;gap:18px;max-height:calc(100vh - 140px);padding:18px;display:flex;position:sticky;top:80px;overflow-y:auto;box-shadow:0 10px 25px -5px #0000004d,0 8px 10px -6px #0000004d}.setup-controls-panel::-webkit-scrollbar{width:6px}.setup-controls-panel::-webkit-scrollbar-track{background:0 0}.setup-controls-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.setup-controls-panel::-webkit-scrollbar-thumb:hover{background:#fff3}.patchplan-canvas-panel{flex-direction:column;gap:20px;min-width:0;display:flex}@media (width<=1024px){.patchplan-setup-workspace{grid-template-columns:1fr}.setup-controls-panel{max-height:none;position:static}}.audio-patch-tabs{border-bottom:1px solid var(--color-border);gap:8px;margin-bottom:20px;padding-bottom:10px;display:flex}.tab-btn{color:var(--color-text-muted);cursor:pointer;background:#ffffff0d;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-weight:600;transition:all .2s;display:flex}.tab-btn:hover{color:var(--color-text);background:#ffffff1a}.tab-btn.active{background:var(--color-primary);color:#fff}.floating-device-menu{background:var(--color-surface,#1e293b);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;padding:12px;box-shadow:0 10px 25px -5px #0006,0 8px 10px -6px #0006}.menu-item-btn{text-align:left;width:100%;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 12px;font-size:13px;transition:all .15s}.menu-item-btn:hover{color:var(--color-text);background:#ffffff0f}.compact-device-card{-webkit-user-select:none;user-select:none;transition:all .2s}.compact-device-card:hover{box-shadow:0 2px 8px #4f8ef71a;border-color:var(--color-primary-hover)!important;background:#ffffff0a!important}.console-block{-webkit-user-select:none;user-select:none;transition:all .2s}.console-block:hover{border-color:var(--color-primary-hover)!important;background:#4f8ef726!important;box-shadow:0 4px 14px #4f8ef733!important}.compact-drag-handle-tile{transition:background .15s}.compact-drag-handle-tile:hover{background:#4f8ef726!important}.badge-connected{color:var(--color-primary);background:#4f8ef726;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}@media print{body{color:#000!important;background:#fff!important}.sidebar,.mobile-header,.mobile-bottom-nav,.page-header,.config-card,.audio-patch-tabs,.setup-controls-panel,.patchplan-setup-workspace,.fixture-actions,.drag-handle,.patchplan-table th:last-child,td:last-child,.modal-overlay,.app-layout>nav,.app-layout>header,button,.universe-tabs-row{display:none!important}.app-layout{margin:0!important;padding:0!important;display:block!important}.app-main{background:#fff!important;margin:0!important;padding:0!important}.patchplan-table-container{box-shadow:none!important;background:0 0!important;border:none!important;overflow:visible!important}.patchplan-table{color:#000!important;width:100%!important;min-width:100%!important}.patchplan-table th{color:#000!important;background:#e2e8f0!important;border-bottom:2px solid #000!important;padding:8px!important;font-size:11px!important}.patchplan-table td{color:#000!important;border-bottom:1px solid #cbd5e1!important;padding:6px 8px!important;font-size:11px!important}.table-input,.table-select{appearance:none;color:#000!important;background:0 0!important;border:none!important;padding:0!important;font-size:11px!important}.phantom-toggle{background:0 0!important;border:1px solid #000!important}.phantom-toggle:before{display:none!important}.phantom-toggle.active{background:#fee2e2!important}.phantom-toggle.active:after{color:#000!important}.mic-suggestions-popover{display:none!important}.print-header-only{border-bottom:2px solid #000;margin-bottom:20px;padding-bottom:10px;display:block!important}.print-header-only h1{margin:0 0 6px;font-size:20px}.print-header-only p{color:#475569;margin:0;font-size:12px}.summary-prep-box{page-break-inside:avoid}.prep-card{background:0 0!important;border:1px solid #cbd5e1!important}.row-unoccupied{display:none!important}}.device-select-card{border:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;transition:all .2s;display:flex}.device-select-card:hover{border-color:var(--color-primary-hover);background:#ffffff12;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.device-select-card.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);background:#4f8ef71a}.device-select-card.incompatible:hover{border-color:var(--color-border);box-shadow:none;background:#ffffff08;transform:none}.device-select-card .card-icon{background:#ffffff0a;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;display:flex}.device-select-card.active .card-icon{color:var(--color-primary);background:#4f8ef733}.device-select-card .card-info{flex-direction:column;min-width:0;display:flex}.device-select-card .device-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.device-select-card .device-desc{color:var(--color-text-muted);margin-top:1px;font-size:11px}.visual-flowchart-canvas{border:1px solid var(--color-border);background-color:#0b0f19;background-image:radial-gradient(#ffffff14 1px,#0000 1px);background-size:20px 20px;border-radius:12px;width:100%;min-height:550px;padding:20px;position:relative;overflow:auto}.flowchart-node-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:2;background:#0f172aa6;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;width:265px;height:135px;transition:border-color .2s,box-shadow .2s;display:flex;position:absolute;box-shadow:0 4px 20px #0006}.flowchart-node-card:hover{border-color:#ffffff26;box-shadow:0 8px 30px #00000080}.flowchart-node-card.console-node{background:#3b82f60d;border-color:#3b82f666}.flowchart-node-card.stagebox-node{border-color:#f973164d}.flowchart-node-card.multicore-node{border-color:#10b9814d}.flowchart-card-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.flowchart-card-header .header-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.flowchart-card-header .card-icon{flex-shrink:0;font-size:16px}.flowchart-card-header .device-name{color:#f1f5f9;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.flowchart-card-header .device-type-label{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.5px;font-size:8px;font-weight:700}.flowchart-card-body{flex-direction:column;flex:1;justify-content:center;gap:6px;padding:10px 12px;display:flex}.flowchart-select-group{flex-direction:column;gap:3px;display:flex}.flowchart-select-group label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.3px;font-size:9px;font-weight:600}.flowchart-select{color:#f8fafc;cursor:pointer;background:#0000004d;border:1px solid #ffffff14;border-radius:6px;outline:none;width:100%;padding:4px 8px;font-size:11px}.flowchart-select:focus{border-color:var(--color-primary)}.flowchart-port-dot{z-index:10;background:#334155;border:2px solid #0b0f19;border-radius:50%;width:10px;height:10px;transition:background-color .2s,box-shadow .2s;position:absolute}.flowchart-port-dot.input{top:50%;left:-5px;transform:translateY(-50%)}.flowchart-port-dot.output{top:50%;right:-5px;transform:translateY(-50%)}.multicore-channel-badge{color:#10b981;background:#10b98126;border:1px solid #10b98140;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block}:root{--color-bg:#0f1117;--color-bg-2:#161b27;--color-bg-3:#1e2533;--color-surface:#1a2035;--color-border:#ffffff14;--color-border-hover:#ffffff26;--color-primary:#4f8ef7;--color-primary-dark:#3b7af5;--color-primary-glow:#4f8ef733;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--color-danger:#dc2626;--color-text:#e2e8f0;--color-text-muted:#64748b;--color-text-dim:#94a3b8;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--transition:.2s ease;--sidebar-width:240px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::-webkit-scrollbar-corner{background:0 0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}a{color:var(--color-primary);transition:opacity var(--transition);text-decoration:none}a:hover{opacity:.8}img{max-width:100%}button{font-family:var(--font);cursor:pointer;background:0 0;border:none}input,textarea,select{font-family:var(--font)}.app-loading{height:100vh;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--radius-sm);transition:all var(--transition);white-space:nowrap;align-items:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 4px 12px var(--color-primary-glow);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-3);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-surface)}.btn-ghost{color:var(--color-text-dim);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-bg-3);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger-ghost{color:var(--color-error);border-color:#0000}.btn-danger-ghost:hover:not(:disabled){border-color:var(--color-error);background:#ef44441a}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-full{justify-content:center;width:100%}.btn-lg{padding:12px 24px;font-size:16px}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--color-text-dim);font-size:13px;font-weight:500}.form-group input,.form-group textarea,.form-group select{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);transition:border-color var(--transition), box-shadow var(--transition);outline:none;padding:10px 14px;font-size:14px}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.form-group input::placeholder{color:var(--color-text-muted)}.form-checkbox{flex-direction:row;align-items:flex-start;gap:10px}.form-checkbox input{width:16px;height:16px;accent-color:var(--color-primary);margin-top:2px}.form-checkbox label{font-size:13px;line-height:1.5}.error-message{border-radius:var(--radius-sm);color:var(--color-error);background:#ef44441a;border:1px solid #ef44444d;padding:10px 14px;font-size:13px}.success-message{border-radius:var(--radius-sm);color:var(--color-success);background:#22c55e1a;border:1px solid #22c55e4d;padding:10px 14px;font-size:13px}.auth-page{background:radial-gradient(ellipse at top left, #4f8ef714 0%, transparent 60%), var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-container{flex-direction:column;gap:24px;width:100%;max-width:400px;display:flex}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.auth-logo{color:var(--color-text);align-items:center;gap:8px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.logo-icon{font-size:24px}.logo-text{color:var(--color-text)}.logo-badge-beta{text-transform:uppercase;background:var(--color-warning);color:#0f1117;letter-spacing:.05em;border-radius:4px;align-items:center;margin-left:6px;padding:2px 5px;font-size:9px;font-weight:800;line-height:1;display:inline-flex}.auth-title{font-size:26px;font-weight:700}.auth-subtitle{color:var(--color-text-muted);font-size:14px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:28px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-links{text-align:center;color:var(--color-text-muted);justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.auth-footer{color:var(--color-text-muted);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.confirm-email-box{text-align:center;flex-direction:column;gap:14px;display:flex}.confirm-email-icon{font-size:48px}.confirm-email-box p{color:var(--color-text-dim);font-size:14px;line-height:1.6}.link-btn{color:var(--color-primary);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{opacity:.8}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-bg-2);border-right:1px solid var(--color-border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid var(--color-border);padding:20px 16px}.sidebar-logo{color:var(--color-text);align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.sidebar-nav{scrollbar-width:thin;scrollbar-color:#ffffff1a transparent;flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#fff3}.sidebar-footer{border-top:1px solid var(--color-border);flex-direction:column;gap:2px;padding:12px 8px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--color-text-dim);transition:all var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-bg-3);color:var(--color-text)}.nav-item-admin{color:var(--color-warning)}.nav-item-admin:hover{color:var(--color-warning);background:#f59e0b1a}.nav-avatar{object-fit:cover;border-radius:50%;width:24px;height:24px}.nav-item-signout:hover{color:var(--color-error)}.app-main{margin-left:var(--sidebar-width);flex:1;min-height:100vh;padding:32px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.page-header-left{align-items:center;gap:12px;display:flex}.page-header-actions{align-items:center;gap:8px;display:flex}.page-title{font-size:26px;font-weight:700}.page-subtitle{color:var(--color-text-dim);margin-top:4px;font-size:14px}.page-loading{justify-content:center;align-items:center;height:60vh;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.project-card-link{text-decoration:none;display:block}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition);cursor:pointer;padding:20px}.project-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.project-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.project-card-icon{font-size:28px}.project-card-title{margin-bottom:6px;font-size:16px;font-weight:600}.project-card-meta{color:var(--color-text-muted);font-size:12px}.project-card-desc{color:var(--color-text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.role-badge{border-radius:99px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.role-owner{color:var(--color-primary);background:#4f8ef726}.role-editor{color:var(--color-success);background:#22c55e26}.role-viewer{color:var(--color-text-dim);background:#64748b26}.skeleton-card{background:linear-gradient(90deg, var(--color-surface) 25%, var(--color-bg-3) 50%, var(--color-surface) 75%);border-radius:var(--radius-lg);background-size:200% 100%;height:140px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 24px;display:flex}.empty-state h2{color:var(--color-text);font-size:20px}.empty-state-icon{opacity:.3}.realtime-indicator{color:var(--color-success);align-items:center;gap:6px;margin-bottom:24px;font-size:12px;display:inline-flex}.realtime-dot{background:var(--color-success);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.project-workspace{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:60vh;padding:24px}.project-placeholder{height:40vh;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:15px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:90vh;display:flex;overflow:hidden}.modal-large{max-width:600px}.modal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:18px;font-weight:600}.modal-close{color:var(--color-text-muted);border-radius:var(--radius-sm);padding:4px}.modal-close:hover{color:var(--color-text);background:var(--color-bg-3)}.modal-form,.modal-body{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.modal-actions{flex-shrink:0;justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.project-type-selector{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px;display:grid}.project-type-card{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;cursor:pointer;transition:all var(--transition);flex-direction:column;align-items:flex-start;padding:16px;display:flex}.project-type-card:hover{border-color:var(--color-primary);background:var(--color-primary-glow)}.project-type-card.active{border-color:var(--color-primary);background:var(--color-primary-glow);box-shadow:0 0 0 2px var(--color-primary)}.project-type-card strong{color:var(--color-text);margin-top:8px;margin-bottom:4px;font-size:14px}.project-type-card span{color:var(--color-text-muted);font-size:11px;line-height:1.4}.file-upload-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition);background:var(--color-bg-3);margin-top:6px;padding:32px 20px}.file-upload-dropzone:hover,.file-upload-dropzone.drag-active{border-color:var(--color-primary);background:var(--color-primary-glow)}.upload-prompt{flex-direction:column;align-items:center;gap:8px;display:flex}.upload-icon{color:var(--color-text-muted)}.upload-prompt p{color:var(--color-text-dim);margin:0;font-size:13px}.upload-prompt span{color:var(--color-primary);font-weight:600;text-decoration:underline}.upload-success{flex-direction:column;align-items:center;gap:6px;display:flex}.success-icon{color:var(--color-success)}.upload-success strong{color:var(--color-text);font-size:14px}.not-in-db{font-style:italic!important}.share-section{flex-direction:column;gap:10px;display:flex}.share-section h3{color:var(--color-text-dim);font-size:14px;font-weight:600}.role-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.role-option{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-3);text-align:left;cursor:pointer;transition:all var(--transition);flex-direction:column;gap:4px;padding:12px;display:flex}.role-option strong{color:var(--color-text);font-size:13px}.role-option span{color:var(--color-text-muted);font-size:12px}.role-option:hover{border-color:var(--color-border-hover)}.role-option.active{border-color:var(--color-primary);background:var(--color-primary-glow)}.invite-link-box{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 12px;display:flex}.invite-link-text{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.invite-input-row{gap:8px;display:flex}.invite-input-row input{flex:1}.members-list{flex-direction:column;gap:8px;display:flex}.member-item{background:var(--color-bg-3);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.member-info{align-items:center;gap:10px;display:flex}.member-nickname{font-size:14px;font-weight:500}.invite-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.invite-container{text-align:center;flex-direction:column;align-items:center;gap:24px;width:100%;max-width:480px;display:flex}.invite-header{align-items:center;gap:8px;font-size:20px;font-weight:700;display:flex}.invite-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;align-items:center;gap:16px;width:100%;padding:32px;display:flex}.invite-icon{font-size:48px}.invite-card h1{font-size:22px;font-weight:700}.invite-notice{border-radius:var(--radius-sm);color:var(--color-warning);background:#f59e0b1a;border:1px solid #f59e0b4d;padding:10px 14px;font-size:13px}.invite-status{flex-direction:column;align-items:center;gap:16px;padding:40px;display:flex}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.text-muted{color:var(--color-text-muted)}.settings-container{flex-direction:column;gap:24px;max-width:640px;display:flex}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:16px;padding:24px;display:flex}.settings-section-title{align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.settings-section-desc{color:var(--color-text-muted);font-size:13px;line-height:1.6}.settings-section-danger{border-color:#dc26264d}.settings-section-danger .settings-section-title{color:var(--color-error)}.avatar-upload-area{align-items:center;gap:16px;display:flex}.avatar-preview{display:inline-block;position:relative}.avatar-img{object-fit:cover;border-radius:50%;width:80px;height:80px}.avatar-placeholder{background:var(--color-primary-glow);border:2px solid var(--color-primary);width:80px;height:80px;color:var(--color-primary);border-radius:50%;justify-content:center;align-items:center;font-size:28px;font-weight:700;display:flex}.avatar-upload-btn{background:var(--color-primary);color:#fff;width:26px;height:26px;transition:background var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;right:0}.avatar-upload-btn:hover{background:var(--color-primary-dark)}.hidden{display:none}.delete-confirm-box{border-radius:var(--radius-md);background:#dc26260d;border:1px solid #dc262633;flex-direction:column;gap:12px;padding:16px;display:flex}.delete-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:20px 24px;display:flex}.stat-icon{color:var(--color-primary)}.stat-value{font-size:28px;font-weight:700}.stat-label{color:var(--color-text-muted);font-size:13px}.admin-section{margin-bottom:32px}.admin-section-title{align-items:center;gap:10px;margin-bottom:16px;font-size:18px;font-weight:600;display:flex}.badge{border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600}.badge-new{color:var(--color-primary);background:#4f8ef726}.admin-device-list{flex-direction:column;gap:12px;display:flex}.admin-device-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.admin-device-info{flex:1}.admin-device-name{margin-bottom:4px;font-size:15px;font-weight:600}.admin-device-meta{color:var(--color-text-muted);margin-bottom:8px;font-size:12px}.admin-device-json{color:var(--color-text-muted);background:var(--color-bg-3);border-radius:var(--radius-sm);max-height:120px;padding:8px;font-size:11px;overflow:auto}.admin-device-actions{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.admin-tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:24px;display:flex}.admin-tab{color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:11px 20px;font-size:14px;font-weight:500;display:inline-flex}.admin-tab:hover{color:var(--color-text);background:var(--color-bg-3)}.admin-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.admin-tab-count{background:var(--color-bg-2);border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700}.admin-tab.active .admin-tab-count{background:var(--color-primary);color:#fff}.admin-cat-filter{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.cat-filter-btn{border:1px solid var(--color-border);background:var(--color-bg-3);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);border-radius:99px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:500;display:inline-flex}.cat-filter-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.cat-filter-btn.active{background:var(--color-primary-glow);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.cat-filter-count{background:var(--color-bg-2);border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700}.cat-filter-btn.active .cat-filter-count{background:var(--color-primary);color:#fff}.user-management-table{flex-direction:column;gap:2px;display:flex}.user-table-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);grid-template-columns:2fr 1.2fr 1fr;padding:8px 16px;font-size:11px;font-weight:700;display:grid}.user-table-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:background var(--transition);grid-template-columns:2fr 1.2fr 1fr;align-items:center;gap:8px;padding:12px 16px;font-size:13px;display:grid}.user-table-row:hover{background:var(--color-bg-3)}.user-row-me{border-color:var(--color-primary);background:var(--color-primary-glow)}.user-cell-name{align-items:center;gap:10px;min-width:0;display:flex}.user-avatar-sm{background:var(--color-primary-glow);border:1px solid var(--color-primary);width:36px;height:36px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;overflow:hidden}.user-avatar-sm img{object-fit:cover;width:100%;height:100%}.user-nickname{align-items:center;gap:6px;font-weight:600;display:flex}.user-me-badge{background:var(--color-primary);color:#fff;border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700}.user-cell-date{color:var(--color-text-muted);font-size:12px}.role-pill{border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.role-pill-admin{color:#a855f7;background:#a855f71f}.role-pill-user{background:var(--color-bg-3);color:var(--color-text-muted);border:1px solid var(--color-border)}@media (width<=768px){.user-table-header{display:none!important}}.user-row-expanded-details{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:0 0 var(--radius-md) var(--radius-md);text-align:left;border-top:none;flex-direction:column;gap:12px;margin-top:-3px;margin-bottom:8px;padding:16px 20px;font-size:13px;display:flex}.user-row-expanded-details .detail-item{border-bottom:1px dashed var(--color-border);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.user-row-expanded-details .detail-item:last-child{border-bottom:none;padding-bottom:0}.user-row-expanded-details .detail-label{color:var(--color-text-muted);font-weight:500}.user-row-expanded-details .detail-value{color:var(--color-text);font-weight:600}.user-row-expanded-details .detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:8px;display:flex}@media (width>=769px){.mobile-only{display:none!important}}@media (width>=1025px){.mobile-tablet-only{display:none!important}}.legal-page{background:var(--color-bg);min-height:100vh;padding:48px 24px}.legal-container{flex-direction:column;gap:28px;max-width:720px;margin:0 auto;display:flex}.legal-back{color:var(--color-text-muted);font-size:14px}.legal-back:hover{color:var(--color-text)}.legal-container h1{font-size:32px;font-weight:700}.legal-updated{color:var(--color-text-muted);font-size:13px}.legal-container section{flex-direction:column;gap:10px;display:flex}.legal-container h2{font-size:18px;font-weight:600}.legal-container p,.legal-container li{color:var(--color-text-dim);font-size:14px;line-height:1.7}.legal-container ul{flex-direction:column;gap:6px;padding-left:20px;display:flex}.gap-4{gap:16px}.grid{display:grid}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.project-meta-edit{flex-direction:column;gap:4px;min-width:0;display:flex}.meta-display-title,.meta-display-desc{border-radius:var(--radius-sm);transition:background var(--transition);align-items:center;gap:8px;margin:-2px -4px;padding:2px 4px;display:inline-flex}.meta-editable{cursor:pointer}.meta-editable:hover{background:var(--color-bg-3)}.meta-edit-icon{color:var(--color-text-muted);opacity:0;transition:opacity var(--transition);flex-shrink:0}.meta-editable:hover .meta-edit-icon{opacity:1}.project-description-text{color:var(--color-text-dim);max-width:600px;font-size:13px;line-height:1.5}.project-description-placeholder{color:var(--color-text-muted);font-size:12px;font-style:italic}.meta-edit-row{align-items:center;gap:8px;display:flex}.meta-input{background:var(--color-bg-3);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font);box-shadow:0 0 0 3px var(--color-primary-glow);transition:border-color var(--transition);outline:none}.meta-input-title{width:420px;max-width:100%;padding:4px 10px;font-size:22px;font-weight:700}.meta-input-desc{resize:vertical;width:420px;max-width:100%;padding:8px 10px;font-size:13px;line-height:1.5}select,.inline-select,.form-group select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border:1px solid var(--color-border);border-radius:var(--radius-sm);appearance:auto;outline:none;padding:8px 12px;background:var(--color-bg-3)!important;color:var(--color-text)!important}select:focus,.inline-select:focus,.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-glow)}select option{background:var(--color-bg-2);color:var(--color-text)}.universe-tab-wrap{border-radius:var(--radius-md);align-items:center;gap:0;display:flex;overflow:hidden}.universe-tab-wrap .universe-tab{border-radius:0}.universe-tab-wrap:first-child .universe-tab{border-radius:var(--radius-md) 0 0 var(--radius-md)}.universe-delete-btn{border-radius:0 var(--radius-md) var(--radius-md) 0;width:28px;height:100%;min-height:36px;color:var(--color-error);cursor:pointer;transition:all var(--transition);background:#ef444426;border:1px solid #ef44444d;border-left:none;justify-content:center;align-items:center;font-size:12px;display:flex}.universe-delete-btn:hover{background:#ef44444d}.picker-empty{text-align:center;color:var(--color-text-muted);flex-direction:column;gap:10px;padding:24px;display:flex}.picker-empty-hint{font-size:13px;line-height:1.6}.picker-empty-hint strong{color:var(--color-text)}.manual-link{color:var(--color-primary);background:var(--color-primary-glow);transition:opacity var(--transition);border-radius:99px;align-items:center;gap:4px;margin-left:4px;padding:2px 8px;font-size:12px;text-decoration:none;display:inline-flex}.manual-link:hover{opacity:.8}.manual-link-full{color:var(--color-primary);align-items:center;gap:6px;margin-top:12px;font-size:13px;display:inline-flex}.empty-state-card{background:var(--color-bg-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:24px}.empty-state-card .empty-hint{color:var(--color-text-muted);font-size:13px;line-height:1.6}.modes-editor-header{color:var(--color-text-muted);text-transform:uppercase;grid-template-columns:1fr 120px 36px;gap:8px;padding:0 2px;font-size:11px;font-weight:600;display:grid}.landing-layout{background-color:var(--color-bg);min-height:100vh;color:var(--color-text);flex-direction:column;display:flex;position:relative;overflow-x:hidden}.landing-glow{filter:blur(140px);z-index:0;pointer-events:none;border-radius:50%;position:absolute}.glow-1{background:#4f8ef726;width:400px;height:400px;top:-100px;left:-100px}.glow-2{background:#aa3bff1a;width:500px;height:500px;bottom:10%;right:-200px}.landing-header{z-index:10;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:24px 8%;display:flex;position:relative}.landing-logo{align-items:center;gap:10px;display:flex}.landing-logo .logo-icon{font-size:24px}.landing-logo .logo-text{letter-spacing:-.5px;font-size:20px;font-weight:700}.landing-nav{align-items:center;gap:24px;display:flex}.landing-nav-link{color:var(--color-text-dim);transition:color var(--transition);font-size:14px;font-weight:500}.landing-nav-link:hover{color:var(--color-text)}.landing-hero{z-index:10;text-align:center;flex-direction:column;align-items:center;max-width:800px;margin:0 auto;padding:80px 8% 60px;display:flex;position:relative}.hero-title{letter-spacing:-1.5px;margin-bottom:20px;font-size:52px;font-weight:800;line-height:1.15}.text-gradient{background:linear-gradient(135deg, var(--color-primary) 0%, #aa3bff 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-subtitle{color:var(--color-text-dim);margin-bottom:32px;font-size:18px;line-height:1.6}.hero-actions{justify-content:center;gap:16px;display:flex}.landing-section{z-index:10;width:100%;max-width:1200px;margin:0 auto;padding:80px 8%;position:relative}.landing-section.bg-alt{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:#ffffff04;max-width:100%;margin:0}.section-title{text-align:center;margin-bottom:12px;font-size:32px;font-weight:700}.section-subtitle{color:var(--color-text-muted);text-align:center;max-width:600px;margin:0 auto 50px;font-size:16px}.features-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;display:grid}.landing-feature-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:transform var(--transition), border-color var(--transition);text-align:left;padding:32px 24px}.landing-feature-card:hover{border-color:var(--color-primary-dark);transform:translateY(-4px)}.feature-icon-wrap{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:20px;display:flex}.icon-primary{color:var(--color-primary);background:#4f8ef71a}.icon-success{color:var(--color-success);background:#22c55e1a}.icon-warning{color:var(--color-warning);background:#f59e0b1a}.icon-danger{color:var(--color-error);background:#dc26261a}.icon-purple{color:#a855f7;background:#a855f71a}.landing-feature-card.coming-soon{opacity:.85;border-style:dashed;position:relative;overflow:hidden}.landing-feature-card.coming-soon:hover{opacity:1;border-color:var(--color-warning)}.coming-soon-badge{color:var(--color-warning);text-transform:uppercase;letter-spacing:.5px;background:#f59e0b26;border-radius:99px;padding:4px 10px;font-size:10px;font-weight:700;position:absolute;top:16px;right:16px}.landing-feature-card h3{color:var(--color-text);margin-bottom:12px;font-size:18px;font-weight:600}.landing-feature-card p{color:var(--color-text-dim);font-size:14px;line-height:1.6}.tools-preview-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:1000px;margin:0 auto;display:grid}.tool-preview-card{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition);align-items:center;gap:16px;padding:20px 24px;text-decoration:none;display:flex}.tool-preview-card:hover{border-color:var(--color-primary);background:var(--color-surface)}.tool-preview-card .tool-icon{color:var(--color-primary);flex-shrink:0}.tool-preview-card .tool-text{text-align:left;flex:1}.tool-preview-card h4{color:var(--color-text);margin-bottom:4px;font-size:15px;font-weight:600}.tool-preview-card p{color:var(--color-text-muted);font-size:12px;line-height:1.4}.tool-preview-card .arrow-hover{color:var(--color-text-muted);opacity:0;transition:all var(--transition);transform:translate(-4px)}.tool-preview-card:hover .arrow-hover{color:var(--color-primary);opacity:1;transform:translate(0)}.trust-section{text-align:center;max-width:800px;margin:0 auto;padding-bottom:100px}.trust-content{border:1px solid var(--color-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#1a203599 0%,#161b2799 100%);padding:40px 32px}.trust-icon{color:var(--color-success);margin-bottom:16px;margin-inline:auto}.trust-content h3{margin-bottom:12px;font-size:20px;font-weight:600}.trust-content p{color:var(--color-text-dim);max-width:600px;margin:0 auto;font-size:14px;line-height:1.6}.landing-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);justify-content:space-between;align-items:center;margin-top:auto;padding:30px 8%;font-size:13px;display:flex}.footer-links{align-items:center;gap:12px;display:flex}.footer-links a{color:var(--color-text-muted)}.footer-links a:hover{color:var(--color-text)}.footer-links .bullet{color:var(--color-border)}@media (width<=768px){.hero-title{letter-spacing:-1px;font-size:32px;line-height:1.25}.hero-subtitle{margin-bottom:24px;font-size:15px}.landing-header{text-align:center;flex-direction:column;gap:12px;padding:16px}.landing-nav{flex-wrap:wrap;justify-content:center;gap:12px}.landing-nav div{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.landing-hero{padding:40px 16px 32px}.hero-actions{flex-direction:column;gap:10px;width:100%;max-width:320px;margin:0 auto}.hero-actions .btn{text-align:center;justify-content:center;width:100%}.landing-section{padding:40px 16px}.section-title{font-size:24px}.section-subtitle{margin-bottom:32px;font-size:14px}.features-grid{gap:16px}.landing-feature-card{padding:24px 20px}.tools-preview-grid{gap:12px}.tool-preview-card{padding:16px}.trust-section{padding-bottom:60px}.trust-content{padding:24px 16px}.landing-footer{text-align:center;flex-direction:column;gap:12px;padding:24px 16px}}.mobile-header,.mobile-bottom-nav,.sidebar-close-btn{display:none}.sidebar-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;background:#00000080;position:fixed;inset:0}@media (width<=768px){.mobile-header{background:var(--color-bg-2);border-bottom:1px solid var(--color-border);z-index:90;height:56px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-menu-toggle{border-radius:var(--radius-sm);background:var(--color-bg-3);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text);justify-content:center;align-items:center;display:flex}.mobile-logo{color:var(--color-text);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.sidebar{box-shadow:var(--shadow-lg);z-index:101;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-header{justify-content:space-between;align-items:center;display:flex}.sidebar-close-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.sidebar-close-btn:hover{color:var(--color-text);background:var(--color-bg-3)}.app-main{width:100%;overflow-x:hidden;margin-left:0!important;padding:72px 12px 80px!important}.mobile-bottom-nav{background:var(--color-bg-2);border-top:1px solid var(--color-border);z-index:90;height:64px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0003}.bottom-nav-item{height:100%;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:500;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-item:hover{color:var(--color-text)}.modal-overlay{padding:12px}.modal{max-height:95vh}.modal-header,.modal-form,.modal-body{padding:16px}.modal-actions{flex-direction:column-reverse;gap:8px}.modal-actions .btn{justify-content:center;width:100%}.page-header{flex-direction:column;align-items:stretch;gap:16px}.page-header-left{flex-direction:column;align-items:stretch;width:100%}.page-header-actions{gap:8px;width:100%;display:flex}.page-header-actions .btn{flex:1;justify-content:center}.meta-input-title,.meta-input-desc{width:100%!important}.meta-edit-row{width:100%}.universe-tabs-row{flex-direction:column;align-items:stretch;gap:8px}.universe-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;padding-bottom:4px;overflow-x:auto;flex-wrap:nowrap!important}.universe-tabs::-webkit-scrollbar{display:none}.universe-tab{white-space:nowrap;flex-shrink:0}.fixture-list{-webkit-overflow-scrolling:touch;flex-direction:column;gap:6px;width:100%;display:flex;overflow-x:auto}.fixture-row,.fixture-header{min-width:760px}}.device-trigger-card{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);transition:all var(--transition);justify-content:space-between;align-items:center;min-height:64px;padding:12px 16px;display:flex}.device-trigger-card.empty{background:#ffffff03;border-style:dashed}.device-trigger-card:hover:not(.disabled){border-color:var(--color-border-hover);background:var(--color-bg-3)}.device-trigger-card.selected:hover:not(.disabled){border-color:var(--color-primary);box-shadow:0 4px 16px var(--color-primary-glow)}.device-trigger-icon{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-muted);transition:all var(--transition);background:#ffffff08;flex-shrink:0;justify-content:center;align-items:center;display:flex}.device-trigger-card.selected .device-trigger-icon{background:var(--color-primary-glow);color:var(--color-primary)}.device-trigger-info{flex-direction:column;flex-grow:1;gap:2px;min-width:0;display:flex}.device-trigger-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.device-trigger-meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.device-trigger-badge{background:#ffffff0d;border-radius:4px;padding:1px 6px;font-size:10px}.job-filters-container{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:16px;margin-bottom:28px;padding:20px;display:flex;position:relative;overflow:hidden}.job-filters-container:after{content:"";background:radial-gradient(circle, var(--color-primary-glow) 0%, transparent 70%);z-index:0;pointer-events:none;width:150px;height:150px;position:absolute;top:0;right:0}.job-type-tabs{border-bottom:1px solid var(--color-border);z-index:1;flex-wrap:wrap;gap:8px;padding-bottom:12px;display:flex}.job-type-tab-btn{border-radius:var(--radius-sm);color:var(--color-text-dim);transition:all var(--transition);border:1px solid #0000;padding:8px 16px;font-size:13px;font-weight:600}.job-type-tab-btn:hover{background:var(--color-bg-3);color:var(--color-text)}.job-type-tab-btn.active{background:var(--color-primary-glow);color:var(--color-primary);border-color:#4f8ef74d}.job-type-tab-btn.tab-permanent.active{color:#60a5fa;background:#4f8ef726;border-color:#60a5fa4d}.job-type-tab-btn.tab-freelancer-search.active{color:#e879f9;background:#d946ef26;border-color:#e879f94d}.job-type-tab-btn.tab-freelancer-offer.active{color:#34d399;background:#10b98126;border-color:#34d3994d}.job-search-grid{z-index:1;grid-template-columns:2fr 1fr 1fr;gap:16px;display:grid}@media (width<=768px){.job-search-grid{grid-template-columns:1fr}}.input-with-icon-wrapper{width:100%;position:relative}.input-inner-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-with-icon{width:100%;padding-left:36px!important}.job-skills-filter{z-index:1;flex-direction:column;gap:8px;display:flex}.skills-filter-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.skills-filter-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.skills-filter-btn{background:var(--color-bg-3);border:1px solid var(--color-border);color:var(--color-text-dim);transition:all var(--transition);border-radius:99px;align-items:center;padding:5px 12px;font-size:12px;display:inline-flex}.skills-filter-btn:hover{border-color:var(--color-border-hover);color:var(--color-text);background:var(--color-surface)}.skills-filter-btn.active{background:var(--color-primary-glow);color:var(--color-primary);border-color:var(--color-primary);box-shadow:0 0 8px #4f8ef726}.skills-filter-clear{color:var(--color-error);cursor:pointer;background:0 0;border:none;margin-left:8px;font-size:12px;font-weight:500;text-decoration:underline}.job-toggle-options{z-index:1;flex-wrap:wrap;gap:20px;display:flex}.checkbox-toggle-label{color:var(--color-text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.checkbox-toggle-label input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;width:15px;height:15px}.job-listings-grid{flex-direction:column;gap:16px;display:flex}.job-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition);cursor:pointer;flex-direction:column;gap:12px;padding:20px;display:flex;position:relative}.job-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.job-card.job-badge-permanent{border-left:4px solid var(--color-primary)}.job-card.job-badge-freelancer-search{border-left:4px solid #d946ef}.job-card.job-badge-freelancer-offer{border-left:4px solid #10b981}.job-card.expired{opacity:.65;border-left-color:var(--color-text-muted)!important}.job-card.expired:hover{opacity:.85}.job-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.job-card-title{color:var(--color-text);font-size:18px;font-weight:700;line-height:1.3}.job-type-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700}.job-type-badge.permanent_job{color:var(--color-primary);background:#4f8ef71f}.job-type-badge.freelancer_search{color:#d946ef;background:#d946ef1f}.job-type-badge.freelancer_offer{color:#10b981;background:#10b9811f}.job-status-badge{border-radius:4px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.expired-badge{color:var(--color-error);background:#ef444426}.expiring-soon-badge{color:var(--color-warning);background:#f59e0b26}.job-card-meta-row{color:var(--color-text-dim);flex-wrap:wrap;gap:16px;font-size:12px;display:flex}.job-meta-item{align-items:center;gap:5px;display:inline-flex}.job-card-skills{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.job-skill-tag{background:var(--color-bg-3);border:1px solid var(--color-border);color:var(--color-text-dim);border-radius:4px;padding:2px 8px;font-size:11px}.job-card-description{color:var(--color-text-dim);font-size:13.5px;line-height:1.6}.description-text{white-space:pre-line;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.job-card:not(.expanded) .description-text{-webkit-line-clamp:3}.job-card.expanded .description-text{-webkit-line-clamp:unset}.job-card-footer{border-top:1px solid #ffffff08;justify-content:flex-end;margin-top:4px;padding-top:8px;display:flex}.expand-indicator{color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;transition:opacity var(--transition);font-size:11px;font-weight:600}.job-card:hover .expand-indicator{opacity:.8}.expanded-details-container{flex-direction:column;gap:12px;display:flex}.expanded-details-divider{background:var(--color-border);height:1px;margin-top:14px}.detail-section-label{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;margin-bottom:6px;font-size:11.5px;font-weight:700}.contact-info-box{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;box-shadow:inset 0 2px 4px #00000026}.poster-info-box{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;display:flex}.poster-avatar{object-fit:cover;border:1.5px solid var(--color-border-hover);border-radius:50%;width:32px;height:32px}.poster-avatar-placeholder{background:var(--color-bg-3);width:32px;height:32px;color:var(--color-text-muted);border:1.5px solid var(--color-border);border-radius:50%;justify-content:center;align-items:center;display:flex}.job-card-actions{gap:6px;display:flex}.job-action-btn{background:var(--color-bg-3);border:1px solid var(--color-border);color:var(--color-text-muted);width:28px;height:28px;transition:all var(--transition);border-radius:6px;justify-content:center;align-items:center;display:flex}.job-action-btn:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-hover)}.job-action-btn.edit:hover{color:var(--color-primary);border-color:var(--color-primary-glow);box-shadow:0 0 6px var(--color-primary-glow)}.job-action-btn.delete:hover{color:var(--color-error);background:#ef444414;border-color:#ef444433}.job-type-select-card{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-dim);transition:all var(--transition);cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 10px;display:flex}.job-type-select-card:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-hover)}.job-type-select-card.active.permanent{color:var(--color-primary);border-color:var(--color-primary);box-shadow:0 0 10px var(--color-primary-glow);background:#4f8ef71f}.job-type-select-card.active.search{color:#e879f9;background:#d946ef1f;border-color:#d946ef;box-shadow:0 0 10px #d946ef33}.job-type-select-card.active.offer{color:#34d399;background:#10b9811f;border-color:#10b981;box-shadow:0 0 10px #10b98133}.job-type-select-card strong{font-size:12.5px}.modal-skills-checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:4px;display:grid}.modal-skill-checkbox-btn{background:var(--color-bg-3);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-dim);text-align:left;transition:all var(--transition);border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.modal-skill-checkbox-btn:hover{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-hover)}.modal-skill-checkbox-btn.active{background:var(--color-primary-glow);color:var(--color-primary);border-color:var(--color-primary)}.checkbox-box{border:1.5px solid var(--color-border-hover);width:14px;height:14px;transition:all var(--transition);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-skill-checkbox-btn.active .checkbox-box{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.create-project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-primary)!important;background:#4f8ef714!important}.show-more-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-primary)!important;background:var(--color-bg-3)!important}.job-search-grid label{color:var(--color-text-muted)!important;text-transform:uppercase!important;letter-spacing:.05em!important;align-items:center!important;gap:6px!important;margin-bottom:8px!important;font-size:11px!important;font-weight:700!important;display:flex!important}.my-listings-header-card{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:20px;margin-bottom:28px;padding:24px;display:flex}.my-listings-info-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.info-icon-badge{color:var(--color-primary);border-radius:var(--radius-md);background:#4f8ef71a;justify-content:center;align-items:center;padding:10px;display:flex}.my-listings-title{color:var(--color-text);margin:0 0 4px;font-size:18px;font-weight:700}.my-listings-subtitle{color:var(--color-text-muted);margin:0;font-size:13px}.back-to-all-btn{border:1px solid var(--color-border);color:var(--color-text-dim);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background:0 0;padding:8px 16px;font-size:13px;font-weight:600}.back-to-all-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-glow)}.my-listings-tabs{border-bottom:1px solid var(--color-border);gap:12px;padding-bottom:1px;display:flex}.my-listings-tab{color:var(--color-text-dim);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.my-listings-tab:hover{color:var(--color-text)}.my-listings-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.count-badge{border-radius:99px;padding:2px 6px;font-size:11px;font-weight:700}.count-badge.active-badge{color:var(--color-primary);background:#4f8ef726}.count-badge.expired-badge{color:#f87171;background:#ef444426}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);opacity:.6;padding:12px 16px 4px;font-size:10px;font-weight:700}.nav-item.active{background:var(--color-primary-glow);color:var(--color-primary)}.universe-tabs-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.universe-tabs{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.universe-tab{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-3);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}.universe-tab:hover{color:var(--color-text);border-color:var(--color-text-muted)}.universe-tab.active{background:var(--color-primary-glow);border-color:var(--color-primary);color:var(--color-primary)}.universe-tab-add{color:var(--color-text-muted);border-style:dashed}.universe-count{background:var(--color-bg-2);border-radius:99px;padding:1px 6px;font-size:11px}.picker-footer{border-top:1px solid var(--color-border);background:var(--color-bg-3);border-radius:0 0 var(--radius-xl) var(--radius-xl);padding:12px 24px 20px}.quick-create-form{flex-direction:column;gap:10px;display:flex}.quick-create-title{color:var(--color-text-dim);justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.quick-modes-list{flex-direction:column;gap:6px;display:flex}.fixture-row{grid-template-columns:24px 120px 1.8fr 140px 1.2fr 72px!important}.drag-handle{color:var(--color-text-muted);cursor:grab;opacity:.4;transition:opacity var(--transition);align-items:center;display:flex}.drag-handle:hover{opacity:1}.drag-handle:active{cursor:grabbing}.addr-edit-group{align-items:center;gap:4px;display:flex}.addr-input{text-align:center!important;width:52px!important;font-family:var(--font-mono)!important;border-radius:var(--radius-sm)!important;border:1px solid var(--color-border)!important;background:var(--color-bg-2)!important;color:var(--color-text)!important;padding:4px 6px!important;font-size:13px!important}.addr-input.addr-manual{border-color:var(--color-warning)!important;color:var(--color-warning)!important}.addr-lock-btn{border:1px solid var(--color-border);background:var(--color-bg-2);width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.addr-lock-btn.locked{border-color:var(--color-warning);color:var(--color-warning);background:#f59e0b1a}.row-actions{justify-content:flex-end;gap:4px;display:flex}.row-blocked{background:#ef44440a!important;border-style:dashed!important}.blocked-label{color:var(--color-error);font-size:13px;font-weight:500}.fixture-db-layout{flex-direction:column;gap:32px;display:flex}.fixture-db-section{flex-direction:column;gap:12px;display:flex}.section-title{align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.section-desc{color:var(--color-text-muted);margin-top:-4px;font-size:13px}.section-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:99px;padding:3px 8px;font-size:10px;font-weight:700}.section-badge.global{background:var(--color-primary-glow);color:var(--color-primary)}.section-badge.mine{color:var(--color-success);background:#22c55e1a}.fixture-db-list{flex-direction:column;gap:6px;display:flex}.fixture-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-3);transition:border-color var(--transition);overflow:hidden}.fixture-card:hover{border-color:var(--color-primary)}.fixture-card-header{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.fixture-card-info{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.fixture-card-mfr{color:var(--color-text-muted);font-size:12px}.fixture-card-name{font-size:14px;font-weight:600}.fixture-card-modes-count{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:11px}.fixture-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.fixture-card-body{border-top:1px solid var(--color-border);padding:0 16px 16px}.fixture-card.expanded .fixture-card-header{border-bottom:1px solid var(--color-border)}.modes-table{border-collapse:collapse;width:100%;margin-top:12px;font-size:13px}.modes-table th{text-align:left;color:var(--color-text-muted);text-transform:uppercase;padding:4px 0;font-size:11px;font-weight:600}.modes-table td{border-top:1px solid var(--color-border);padding:6px 0}.submitted-badge{color:var(--color-success);font-size:11px}.empty-hint{color:var(--color-text-muted);padding:16px;font-size:13px}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=540px){.form-row{grid-template-columns:1fr}}.modes-editor{flex-direction:column;gap:8px;display:flex}.mode-editor-row{align-items:center;gap:8px;display:flex}.mode-name-input{flex:1}.btn-sm{padding:5px 10px!important;font-size:12px!important}.btn-icon{padding:7px!important}.project-status-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.save-indicator{border-radius:99px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;display:inline-flex}.save-indicator.saving{color:var(--color-warning);background:#f59e0b1a}.save-indicator.saved{color:var(--color-success);background:#22c55e1a}.online-indicator{color:var(--color-primary);background:var(--color-primary-glow);border-radius:99px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;display:inline-flex}.permission-badge{color:var(--color-text-muted);font-size:12px}.workspace{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);flex-direction:column;gap:0;min-height:70vh;display:flex;overflow:hidden}.workspace-tabs{border-bottom:1px solid var(--color-border);background:var(--color-bg-2);scrollbar-width:none;display:flex;overflow-x:auto}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tab{color:var(--color-text-muted);white-space:nowrap;transition:all var(--transition);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:14px 20px;font-size:13px;font-weight:500}.workspace-tab:hover{color:var(--color-text);background:var(--color-bg-3)}.workspace-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:0 0}.tab-short{display:none}@media (width<=768px){.tab-full{display:none}.tab-short{display:inline}}.workspace-content{flex:1;padding:24px}.tool-container{flex-direction:column;gap:24px;max-width:900px;display:flex}.tool-header{flex-direction:column;align-items:stretch;gap:6px;display:flex}.tool-title{font-size:20px;font-weight:700}.tool-desc{color:var(--color-text-dim);margin-top:4px;font-size:13px;line-height:1.5}.tool-header-actions{flex-shrink:0;gap:8px;display:flex}.mode-selector{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.mode-btn{border-radius:var(--radius-sm);color:var(--color-text-muted);transition:all var(--transition);cursor:pointer;background:0 0;border:none;padding:8px 18px;font-size:13px;font-weight:500}.mode-btn.active{background:var(--color-primary);color:#fff}.mode-btn:not(.active):hover{color:var(--color-text);background:var(--color-bg-2)}.result-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.result-card{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:4px;padding:16px 20px;display:flex}.result-card-primary{border-color:var(--color-primary);background:var(--color-primary-glow)}.result-card-ok{border-color:var(--color-success);background:#22c55e14}.result-card-warning{border-color:var(--color-warning);background:#f59e0b14}.result-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.result-value{color:var(--color-text);font-size:28px;font-weight:700;line-height:1}.result-unit{color:var(--color-text-muted);font-size:12px}.input-with-unit{align-items:center;display:flex}.input-with-unit input{border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important}.unit{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-muted);white-space:nowrap;border-left:none;padding:10px 12px;font-size:13px}.calc-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=1024px){.calc-grid{grid-template-columns:1fr}}.power-calc-balancer-grid{grid-template-columns:320px 1fr;align-items:start;gap:24px;display:grid}@media (width<=900px){.power-calc-balancer-grid{grid-template-columns:1fr}}.formula-box{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:16px;display:flex}.formula-title{color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:600}.formula-box code{color:var(--color-primary);font-size:13px;font-family:var(--font-mono)}.ref-table-container{flex-direction:column;gap:10px;display:flex}.ref-table-title{font-size:14px;font-weight:600}.ref-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.ref-row{border-bottom:1px solid var(--color-border);grid-template-columns:1fr 1fr 1fr;padding:9px 14px;font-size:13px;display:grid}.ref-row:last-child{border-bottom:none}.ref-header{background:var(--color-bg-3);color:var(--color-text-muted);text-transform:uppercase;font-size:11px;font-weight:600}.ref-row.highlighted{background:var(--color-primary-glow);color:var(--color-primary)}.dip-section{flex-direction:column;gap:16px;display:flex}.dip-result-label{color:var(--color-text-dim);font-size:13px;font-weight:600}.dip-switch-panel{flex-direction:column;gap:4px;display:flex}.dip-switch-numbers{gap:6px;padding-left:2px;display:flex}.dip-number{text-align:center;width:44px;color:var(--color-text-muted);font-size:11px}.dip-switches{gap:6px;display:flex}.dip-switch{border:1px solid var(--color-border);background:var(--color-bg-3);cursor:pointer;width:44px;height:80px;transition:all var(--transition);border-radius:8px;flex-direction:column;justify-content:space-between;align-items:center;padding:6px 0;display:flex;position:relative;overflow:hidden}.dip-switch.on{background:var(--color-primary);border-color:var(--color-primary)}.dip-switch.readonly{cursor:default}.dip-switch-inner{width:28px;height:44px;transition:all var(--transition);background:#ffffff14;border-radius:4px;position:relative}.dip-switch.on .dip-switch-inner{background:#fff3}.dip-toggle{background:#fff;border-radius:3px;width:100%;height:50%;transition:all .2s;position:absolute;bottom:0}.dip-switch.on .dip-toggle{bottom:50%}.dip-label{color:#fff9;font-size:10px;font-weight:700}.dip-switch.on .dip-label{color:#fff}.dip-binary-row{gap:6px;display:flex}.dip-bit{text-align:center;width:44px;font-size:14px;font-weight:700;font-family:var(--font-mono)}.dip-bit.on{color:var(--color-primary)}.dip-bit.off{color:var(--color-text-muted)}.dip-addr-result{background:var(--color-bg-3);border-radius:var(--radius-md);border:1px solid var(--color-border);align-items:center;gap:12px;padding:16px 20px;display:flex}.dip-addr-label{color:var(--color-text-dim);font-size:14px}.dip-addr-value{color:var(--color-primary);font-size:32px;font-weight:800}.dip-addr-value.invalid{color:var(--color-error)}.dip-legend{flex-direction:column;gap:6px;display:flex}.legend-row{color:var(--color-text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.dip-switch-demo{border:1px solid var(--color-border);border-radius:4px;width:16px;height:28px;display:inline-block}.dip-switch-demo.on{background:var(--color-primary);border-color:var(--color-primary)}.dip-switch-demo.off{background:var(--color-bg-3)}.color-preview-bar{border-radius:var(--radius-lg);align-items:flex-end;height:80px;padding:10px 16px;transition:background .3s;display:flex}.color-preview-hex{color:#ffffffe6;font-size:13px;font-weight:700;font-family:var(--font-mono);background:#0000004d;border-radius:4px;padding:3px 8px}.color-input-section{flex-direction:column;gap:12px;display:flex}.hex-input-row{align-items:center;gap:8px;display:flex}.color-native-picker{cursor:pointer;border-radius:var(--radius-sm)!important;border:1px solid var(--color-border)!important;background:0 0!important;width:44px!important;height:44px!important;padding:2px!important}.color-sliders{flex-direction:column;gap:12px;display:flex}.slider-row{align-items:center;gap:10px;display:flex}.color-slider{appearance:none;cursor:pointer;touch-action:none;border-radius:3px;flex:1;height:6px}.color-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px}.slider-r{accent-color:#ef4444}.slider-g{accent-color:#22c55e}.slider-b{accent-color:#3b82f6}.channel-input{text-align:center;flex-shrink:0;width:60px!important}.color-outputs{flex-direction:column;gap:12px;display:flex}.color-outputs-title{font-size:14px;font-weight:600}.color-output-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.color-output-card{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:14px;display:flex}.color-output-header{justify-content:space-between;align-items:center;display:flex}.color-output-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.copy-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px}.copy-btn:hover{background:var(--color-bg-2);color:var(--color-text)}.color-output-value{font-size:14px;font-weight:600;font-family:var(--font-mono)}.channel-bars{flex-direction:column;gap:5px;display:flex}.channel-bar-row{align-items:center;gap:6px;display:flex}.channel-bar-label{width:14px;font-size:11px;font-weight:700}.channel-bar-track{background:var(--color-bg-2);border-radius:3px;flex:1;height:6px;overflow:hidden}.channel-bar-fill{border-radius:3px;height:100%;transition:width .2s}.channel-bar-val{width:28px;color:var(--color-text-muted);text-align:right;font-size:11px;font-family:var(--font-mono)}.projection-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.projection-grid{grid-template-columns:1fr}}.projection-results{flex-direction:column;gap:16px;display:flex}.projection-placeholder{text-align:center;color:var(--color-text-muted);background:var(--color-bg-3);border-radius:var(--radius-lg);border:1px dashed var(--color-border);padding:40px}.lumen-alert{border-radius:var(--radius-md);align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.lumen-alert-ok{color:var(--color-success);background:#22c55e1a;border:1px solid #22c55e4d}.lumen-alert-warn{color:var(--color-warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.projection-summary{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.projection-summary h3{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:13px;font-weight:600}.summary-grid{grid-template-columns:1fr 1fr;gap:6px;font-size:13px;display:grid}.result-card-lumen .result-value{font-size:24px}.dmx-summary{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:20px;padding:14px 20px;display:flex}.dmx-summary-item{flex-direction:column;gap:2px;display:flex}.dmx-summary-label{color:var(--color-text-muted);text-transform:uppercase;font-size:11px;font-weight:600}.dmx-summary-value{font-size:22px;font-weight:700}.dmx-summary-value.value-error{color:var(--color-error)}.dmx-overflow-warn{color:var(--color-warning);border-radius:var(--radius-sm);background:#f59e0b1a;border:1px solid #f59e0b4d;padding:6px 10px;font-size:13px}.fixture-list{flex-direction:column;gap:6px;display:flex}.fixture-row{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);grid-template-columns:90px 1fr 160px 60px 1fr 36px;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:grid}.fixture-header{color:var(--color-text-muted);text-transform:uppercase;background:0 0;border-color:#0000;padding:4px 12px;font-size:11px;font-weight:600}.fixture-row.row-overflow{border-color:var(--color-error);background:#ef44440d}@media (width<=800px){.fixture-header{display:none}.fixture-row{flex-direction:column;align-items:stretch;gap:12px;padding:16px;display:flex;position:relative}.fixture-row>.drag-handle{width:auto;position:absolute;top:16px;right:16px}.addr-cell{border-bottom:1px solid var(--color-border);margin-right:24px;padding-bottom:8px;font-size:14px}.device-cell{gap:8px}.mode-cell{justify-content:space-between}.row-actions{border-top:1px solid var(--color-border);justify-content:flex-end;margin-top:4px;padding-top:8px;display:flex}}.addr-cell{font-family:var(--font-mono);align-items:center;gap:4px;font-size:12px;display:flex}.addr-start{color:var(--color-primary);font-weight:700}.addr-sep{color:var(--color-text-muted)}.addr-end{font-weight:600}.addr-error{color:var(--color-error)}.device-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.device-mfr{color:var(--color-text-muted);font-size:11px}.device-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.device-manual-inputs{flex-direction:column;gap:4px;display:flex}.mode-cell{align-items:center;gap:6px;display:flex}.ch-badge{background:var(--color-primary-glow);color:var(--color-primary);white-space:nowrap;border-radius:99px;padding:2px 6px;font-size:10px;font-weight:600}.ch-badge-blocked{color:var(--color-warning)!important;background:#f59e0b26!important}.inline-input{background:var(--color-bg-2)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-sm)!important;color:var(--color-text)!important;font-size:12px!important;font-family:var(--font)!important;outline:none!important;width:100%!important;padding:5px 8px!important}.inline-input:focus{border-color:var(--color-primary)!important}.inline-input-sm{width:80px!important}.inline-input-xs{text-align:center!important;width:52px!important}.inline-select{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:12px;font-family:var(--font);outline:none;flex:1;min-width:0;padding:5px 8px}.inline-select:focus{border-color:var(--color-primary)}.fixture-actions{flex-wrap:wrap;gap:8px;display:flex}.fixture-picker-list{flex-direction:column;gap:6px;display:flex}.fixture-picker-item{text-align:left;background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--transition);color:var(--color-text);flex-direction:column;gap:6px;padding:12px 16px;display:flex}.fixture-picker-item:hover{border-color:var(--color-primary);background:var(--color-primary-glow)}.fixture-picker-name{color:var(--color-text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.fixture-picker-mfr{color:var(--color-text-muted);font-size:12px;font-weight:400}.fixture-picker-modes{flex-wrap:wrap;gap:6px;display:flex}.mode-chip{background:var(--color-bg-2);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:99px;padding:2px 8px;font-size:11px}.community-badge{color:var(--color-warning);background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:500}.cat-tabs-bar{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:6px;margin-bottom:20px;padding-bottom:0;display:flex}.cat-tab{color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 18px;font-size:13px;font-weight:500;display:inline-flex}.cat-tab:hover{color:var(--color-text);background:var(--color-bg-3)}.cat-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--color-primary-glow)}.cat-count{background:var(--color-bg-2);border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700}.cat-tab.active .cat-count{background:var(--color-primary);color:#fff}.fixture-db-section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.fixture-db-controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.search-input-wrap{align-items:center;display:flex;position:relative}.search-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;left:10px}.search-input-inline{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-3);color:var(--color-text);width:220px;font-size:13px;font-family:var(--font);transition:border-color var(--transition);outline:none;padding:7px 10px 7px 32px}.search-input-inline:focus{border-color:var(--color-primary)}.section-title-count{color:var(--color-text-muted);font-size:12px;font-weight:400}.manufacturer-groups{flex-direction:column;gap:6px;display:flex}.manufacturer-group{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-3);overflow:hidden}.manufacturer-group-header{cursor:pointer;text-align:left;width:100%;transition:background var(--transition);color:var(--color-text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.manufacturer-group-header:hover{background:var(--color-bg-2)}.manufacturer-group-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.manufacturer-name{font-size:14px;font-weight:700}.manufacturer-device-count{color:var(--color-text-muted);font-size:12px}.manufacturer-cats{flex-wrap:wrap;gap:5px;display:flex}.manufacturer-device-list{flex-direction:column;gap:1px;display:flex}.manufacturer-device-list .fixture-card{border-top:none;border-left:none;border-right:none;border-bottom:1px solid var(--color-border);border-radius:0}.manufacturer-device-list .fixture-card:last-child{border-bottom:none}.manufacturer-device-list .fixture-card:hover{border-color:inherit}.device-cat-pill{white-space:nowrap;border-radius:99px;flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.cat-fixture{background:var(--color-primary-glow);color:var(--color-primary)}.cat-projector{color:#a855f7;background:#a855f71f}.cat-lens{color:var(--color-success);background:#22c55e1a}.cat-screen{color:var(--color-warning);background:#f59e0b1a}.device-details-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px;display:grid}.detail-item{flex-direction:column;gap:2px;display:flex}.detail-label{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;font-size:11px;font-weight:600}.detail-value{font-size:14px;font-weight:600}.cat-picker{flex-wrap:wrap;gap:8px;display:flex}.cat-pick-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-3);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.cat-pick-btn:hover{border-color:var(--color-primary);color:var(--color-text)}.cat-pick-btn.active{background:var(--color-primary-glow);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.fixture-card-meta-label{color:var(--color-text-muted);white-space:nowrap;margin-left:auto;font-size:11px}.fixture-list-scroll-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}@media (width<=768px){.workspace-content{padding:12px!important}.dip-switch-panel{-webkit-overflow-scrolling:touch;max-width:100%;padding-bottom:16px;overflow-x:auto}.dip-switches,.dip-switch-numbers{min-width:450px}.fixture-list-scroll-wrapper{border-radius:var(--radius-sm)}.fixture-list{width:max-content;min-width:768px}.tool-desc{display:none!important}.tool-header{gap:8px!important;margin-bottom:12px!important}.tool-title{font-size:18px!important}.dmx-summary{grid-template-columns:repeat(2,1fr)!important;gap:12px!important;padding:12px 14px!important;display:grid!important}.dmx-summary-item{flex-direction:column!important;align-items:flex-start!important;gap:2px!important}.dmx-summary-value{font-size:18px!important}.dmx-summary-label{font-size:9px!important}.fixture-actions{grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important;display:grid!important}.fixture-actions button{padding:8px 12px!important;font-size:12px!important}.fixture-actions button:last-child{grid-column:span 2!important}.picker-footer{flex-shrink:0;padding:10px 16px 14px!important}@media (width<=600px){.dip-switches,.dip-switch-numbers,.dip-binary-row{min-width:unset!important;justify-content:center!important;gap:4px!important}.dip-switch{width:28px!important;height:64px!important;padding:4px 0!important}.dip-number,.dip-bit{width:28px!important}.dip-switch-inner{width:18px!important;height:32px!important}.dip-bit{font-size:11px!important}.dip-number{font-size:9px!important}.dip-addr-value{font-size:24px!important}}}.phases-grid{grid-template-columns:1fr;gap:16px;display:grid}.phases-grid.three-phase{grid-template-columns:repeat(3,1fr)}.power-totals-grid{grid-template-columns:1fr;gap:16px;display:grid}.power-totals-grid.three-phase{grid-template-columns:1fr 1fr}@media (width<=1024px){.phases-grid.three-phase{grid-template-columns:1fr 1fr}}@media (width<=768px){.phases-grid.three-phase,.power-totals-grid.three-phase{grid-template-columns:1fr}.power-totals-grid{z-index:50;position:sticky;bottom:64px;box-shadow:0 -4px 16px #0000001a}}.picker-category-item{text-align:left;background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--color-text);transition:all var(--transition);justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.picker-category-item:hover{border-color:var(--color-primary);background:var(--color-primary-glow)}.relation-editor-container{border-top:1px dashed var(--color-border);margin-top:16px;padding-top:16px}.relation-editor-title{color:var(--color-text);letter-spacing:.02em;margin-bottom:10px;font-size:13px;font-weight:600}.relation-editor-layout{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.relation-editor-layout{grid-template-columns:1fr}}.relation-dropzone{border-radius:var(--radius-md);min-height:120px;transition:all var(--transition);background:#ffffff05;border:2px dashed #ffffff26;flex-direction:column;gap:8px;padding:12px;display:flex}.relation-dropzone:hover{border-color:var(--color-primary);background:#ffffff0a}.relation-column-label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:700}.relation-tags-list{flex-wrap:wrap;flex:1;align-content:flex-start;gap:6px;display:flex}.relation-placeholder{color:var(--color-text-muted);text-align:center;margin:auto;padding:10px;font-size:12px;font-style:italic}.relation-badge-active{background:var(--color-primary-glow);color:var(--color-primary);border:1px solid rgba(var(--color-primary-rgb), .2);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:3px 8px;font-size:12px;font-weight:600;animation:.2s ease-out fadeIn;display:inline-flex}.relation-badge-remove-btn{color:var(--color-primary);cursor:pointer;opacity:.6;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;line-height:1;transition:opacity .2s;display:flex}.relation-badge-remove-btn:hover{opacity:1}.relation-pool{background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;max-height:220px;padding:12px;display:flex}.relation-pool-items{flex-direction:column;flex:1;gap:6px;padding-right:4px;display:flex;overflow-y:auto}.relation-pool-items::-webkit-scrollbar{width:4px}.relation-pool-items::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.relation-pool-item{background:var(--color-bg-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:grab;-webkit-user-select:none;user-select:none;transition:all var(--transition);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.relation-pool-item:hover{border-color:var(--color-primary);background:var(--color-primary-glow);transform:translate(2px)}.relation-pool-item:active{cursor:grabbing}.grip-indicator{color:var(--color-text-muted);font-size:11px;font-weight:700}.sub-tabs-bar{flex-wrap:wrap;gap:8px;margin-top:-10px;margin-bottom:20px;display:flex}.sub-tab-btn{background:var(--color-bg-2);border:1px solid var(--color-border);color:var(--color-text-dim);cursor:pointer;transition:all var(--transition);border-radius:99px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex}.sub-tab-btn:hover{border-color:var(--color-primary);color:var(--color-text);background:var(--color-bg-3)}.sub-tab-btn.active{background:var(--color-primary-glow);border-color:var(--color-primary);color:var(--color-primary)}
