:root{--bg-color:#f3f4f6;--panel-bg:#fff;--border-color:#e5e7eb;--text-main:#1f2937;--text-muted:#6b7280;--primary-color:#3b82f6;--primary-hover:#2563eb;--radius:6px}body{color:var(--text-main);background-color:var(--bg-color);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;overflow:hidden}*{box-sizing:border-box}input,button,select,textarea{font-family:inherit}.tooltip-bubble{color:#f1f5f9;white-space:nowrap;pointer-events:none;z-index:99999;opacity:0;background:#1e2532;border-radius:6px;padding:4px 9px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:11px;line-height:1.5;transition:opacity .12s,transform .12s;position:fixed;transform:translate(-50%)translateY(-3px);box-shadow:0 3px 10px #00000038}.tooltip-bubble.is-visible{opacity:1;transform:translate(-50%)translateY(0)}.tooltip-bubble.is-above{transform:translate(-50%)translateY(calc(3px - 100%))}.tooltip-bubble.is-above.is-visible{transform:translate(-50%)translateY(-100%)}.tooltip-bubble:before{content:"";border:4px solid #0000;border-bottom-color:#1e2532;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.tooltip-bubble.is-above:before{border-top-color:#1e2532;border-bottom-color:#0000;top:auto;bottom:-8px}.editor-preview-fullscreen{z-index:9999;background:#000;display:flex;position:fixed;inset:0}.editor-preview-fullscreen>*{flex:1;min-width:0;min-height:0}.preview-exit-hint{color:#fff;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10000;background:#0000008c;border-radius:6px;padding:4px 10px;font-size:12px;position:fixed;top:16px;right:20px}.editor-layout{background-color:var(--bg-color);flex-direction:column;width:100vw;height:100vh;display:flex}.editor-main{flex:1;display:flex;overflow:hidden}.editor-center{flex-direction:column;flex:1;min-width:0;display:flex}.tb-panel{background:var(--panel-bg);border-bottom:1px solid var(--border-color);z-index:20;flex-shrink:0;align-items:center;gap:0;height:52px;padding:0 12px;display:flex;position:relative;box-shadow:0 1px 3px #0f172a0f}.tb-left{flex-shrink:0;align-items:center;gap:4px;display:flex}.tb-center{flex:1;justify-content:center;align-items:center;gap:4px;display:flex}.tb-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.tb-brand{flex-shrink:0;align-items:center;width:288px;display:flex}.tb-filename{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:text;flex:1;min-width:0;max-width:193px;font-size:12px;overflow:hidden}.tb-filename:hover{color:var(--text-main)}.tb-filename-wrap{flex:1;min-width:0;max-width:193px;position:relative;overflow:visible}.tb-filename-input{width:100%;color:var(--text-main);font-family:inherit;font-size:12px;line-height:inherit;white-space:nowrap;background:#3b82f62e;border:none;border-radius:6px;outline:none;margin:0;padding:1px 3px;display:block;overflow:hidden}.tb-rename-error{color:#ef4444;border-radius:var(--radius);white-space:nowrap;z-index:100;pointer-events:none;background:#fef2f2;border:1px solid #fecaca;padding:3px 8px;font-size:11px;position:absolute;top:calc(100% + 4px);left:0}.tb-logo-btn{color:var(--primary-color);letter-spacing:-.02em;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-right:4px;padding:0;font-size:15px;font-weight:700;transition:opacity .15s}.tb-logo-btn:hover{opacity:.75}.tb-save-status{color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-right:2px;font-size:11px}.tb-save-status.is-error{color:#ef4444}.tb-divider{background:var(--border-color);flex-shrink:0;width:1px;height:16px;margin:0 6px}.tb-btn{border:1px solid var(--border-color);width:58px;height:28px;color:var(--text-main);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border-radius:6px;padding:0;font-size:12px;transition:border-color .12s,background .12s}.tb-btn:hover:not(:disabled){border-color:var(--primary-color);background:#3b82f60a}.tb-btn:disabled{opacity:.35;cursor:not-allowed}.tb-btn.is-active{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f614}.tb-btn-sm{height:22px;padding:0 7px;font-size:11px}.tb-undo-btn{font-size:12px}.tb-playback{align-items:center;gap:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tb-pb-btn{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;outline:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:flex}.tb-pb-btn:hover{color:var(--primary-color);background:#3b82f612}.tb-pb-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:1px}.tb-pb-play{background:var(--primary-color);color:#fff;border-radius:50%;width:30px;height:30px;box-shadow:0 1px 4px #3b82f666}.tb-pb-play:hover{background:var(--primary-hover);color:#fff}.tb-pb-playing{color:#fff;background:#f59e0b;box-shadow:0 1px 4px #f59e0b66}.tb-pb-playing:hover{color:#fff;background:#d97706}.tb-time{font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;text-align:center;min-width:110px;font-size:12px}.tb-right-group{align-items:center;gap:4px;display:flex;position:absolute}.tb-panel-toggles-sep{background:var(--border-color);width:1px;height:16px;margin:0 4px}.tb-user-avatar{background:var(--primary-color);color:#fff;cursor:pointer;text-transform:uppercase;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:600;transition:opacity .15s;display:flex}.tb-user-avatar:hover{opacity:.85}.tb-user-avatar.is-on{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--primary-color)}.tb-user-dropdown{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:var(--radius);z-index:200;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 4px 16px #0000001a}.tb-user-dropdown-email{color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;text-overflow:ellipsis;padding:10px 14px;font-size:13px;overflow:hidden}.tb-user-dropdown-logout{width:100%;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;padding:9px 14px;font-size:13px;transition:background .12s,color .12s;display:block}.tb-user-dropdown-logout:hover{background:var(--bg-color);color:#ef4444}.tb-panel-toggles{align-items:center;gap:4px;display:flex;position:absolute;right:12px}.tb-panel-toggle-icon{cursor:pointer;width:26px;height:26px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:color .15s;display:flex}.tb-panel-toggle-icon.is-on{color:var(--primary-color)}.tb-panel-toggle-icon:hover{color:var(--text-main)}.tb-export-status{pointer-events:none;align-items:center;gap:6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tb-export-status .tb-btn{pointer-events:auto}.tb-rate-wrap{position:relative}.tb-rate-btn{justify-content:space-between;align-items:center;gap:4px;width:58px;padding:0 8px;display:flex}.tb-rate-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.tb-rate-chevron.is-open{transform:rotate(180deg)}.tb-rate-menu{background:var(--panel-bg);border:1px solid var(--border-color);z-index:200;border-radius:6px;flex-direction:column;gap:1px;width:58px;padding:3px;display:flex;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0f172a1a}.tb-rate-option{height:28px;color:var(--text-main);cursor:pointer;text-align:center;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:0 10px;font-size:12px;transition:background .1s,color .1s}.tb-rate-option:hover{color:var(--primary-color);background:#3b82f612}.tb-rate-option.is-active{color:var(--primary-color);background:#3b82f61a;font-weight:500}.tb-status{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:11px;overflow:hidden}.tb-status.is-error{color:#b91c1c}.tb-export-wrap{position:relative}.tb-export-btn{background:var(--panel-bg)}.tb-export-btn.is-open{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f60d}.tb-export-btn:disabled{opacity:.5}.tb-export-panel{background:var(--panel-bg);border:1px solid var(--border-color);z-index:200;border-radius:6px;flex-direction:column;gap:10px;width:280px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 6px 20px #0f172a1f}.tb-export-title{color:var(--text-main);font-size:13px;font-weight:600}.tb-export-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tb-export-label{color:var(--text-muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.tb-export-label input,.tb-export-label select{box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-color);width:100%;height:26px;color:var(--text-main);border-radius:6px;padding:0 6px;font-size:12px}.tb-export-label input:focus,.tb-export-label select:focus{border-color:var(--primary-color);outline:none}.tb-canvas-content{grid-template-columns:max-content auto;align-items:center;gap:10px 8px;width:fit-content;margin:0 auto;display:grid}.tb-canvas-content-full{grid-column:1/-1}.tb-canvas-controls{align-items:center;gap:5px;display:flex}.tb-canvas-swatches{justify-content:flex-end;gap:5px;display:flex}.tb-canvas-size-label{color:var(--text-muted);white-space:nowrap;font-size:12px}.tb-canvas-size-input{box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-color);width:56px;height:26px;color:var(--text-main);border-radius:6px;flex-shrink:0;padding:0 4px;font-size:12px}.tb-canvas-size-input:focus{border-color:var(--primary-color);outline:none}.tb-dropdown-wrap{flex-shrink:0;min-width:56px;position:relative}.tb-dropdown-btn{border:1px solid var(--border-color);background:var(--bg-color);width:100%;height:26px;color:var(--text-main);cursor:pointer;box-sizing:border-box;border-radius:6px;justify-content:space-between;align-items:center;gap:2px;padding:0 4px;font-size:12px;transition:border-color .12s;display:flex}.tb-dropdown-btn:hover,.tb-dropdown-btn.is-open{border-color:var(--primary-color)}.tb-dropdown-btn-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tb-dropdown-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.tb-dropdown-chevron.is-open{transform:rotate(180deg)}.tb-dropdown-menu{background:var(--panel-bg);border:1px solid var(--border-color);z-index:100;border-radius:6px;max-height:180px;padding:3px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.tb-dropdown-option{appearance:none;width:100%;height:24px;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 6px;font-size:12px;transition:background .1s,color .1s;display:block}.tb-dropdown-option:hover{color:var(--primary-color);background:#3b82f612}.tb-dropdown-option.is-active{color:var(--primary-color);background:#3b82f61a;font-weight:500}.tb-canvas-color-picker{box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-color);cursor:pointer;border-radius:6px;flex-shrink:0;width:56px;height:26px;padding:1px 2px}.tb-canvas-lock-btn{border:1px solid var(--border-color);background:var(--bg-color);width:24px;height:26px;color:var(--text-muted);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s;display:flex}.tb-canvas-lock-btn:hover,.tb-canvas-lock-btn.is-locked{color:var(--primary-color);border-color:var(--primary-color);background:#3b82f612}.tb-export-range-sep{color:var(--text-muted);flex-shrink:0;font-size:11px}.tb-export-range-badge{color:var(--primary-color);background:#3b82f61a;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.tb-export-actions{flex-direction:column;gap:6px;display:flex}.tb-export-action-row{gap:6px;display:flex}.tb-export-action-row .tb-export-action-btn{flex:1}.tb-export-action-btn{border:1px solid var(--border-color);background:var(--bg-color);height:28px;color:var(--text-main);cursor:pointer;border-radius:6px;font-size:12px;transition:border-color .12s,background .12s}.tb-export-action-btn:hover{border-color:var(--primary-color)}.tb-export-action-btn:disabled{opacity:.4;cursor:not-allowed}.tb-export-action-primary{border-color:var(--primary-color);background:var(--primary-color);color:#fff;font-weight:500}.tb-export-action-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.mp-materials-panel{background-color:var(--panel-bg);border-right:1px solid var(--border-color);flex-direction:column;width:280px;display:flex}.mp-panel-header{border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;height:40px;padding:0 16px;display:flex}.mp-panel-header h3{margin:0;font-size:16px;font-weight:600}.mp-panel-controls{border-bottom:1px solid var(--border-color);background-color:var(--bg-color);flex-shrink:0;align-items:center;gap:8px;height:40px;padding:0 16px;display:flex}.mp-dropdown-wrap{flex:1;min-width:0;position:relative}.mp-dropdown-btn{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--panel-bg);width:100%;height:28px;color:var(--text-main);cursor:pointer;box-sizing:border-box;justify-content:space-between;align-items:center;gap:4px;padding:0 8px;font-size:14px;transition:border-color .12s;display:flex}.mp-dropdown-btn:hover,.mp-dropdown-btn.is-open{border-color:var(--primary-color)}.mp-dropdown-btn-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.mp-dropdown-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.mp-dropdown-chevron.is-open{transform:rotate(180deg)}.mp-dropdown-menu{background:var(--panel-bg);border:1px solid var(--border-color);z-index:200;border-radius:6px;flex-direction:column;gap:3px;max-height:320px;padding:3px;display:flex;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 14px #0f172a1a}.mp-dropdown-option{appearance:none;width:100%;height:28px;color:var(--text-main);cursor:pointer;white-space:nowrap;text-align:left;box-sizing:border-box;background:0 0;border:none;border-radius:6px;margin:0;padding:0 10px;font-size:13px;line-height:28px;transition:background .1s,color .1s;display:block}.mp-dropdown-option:hover{color:var(--primary-color);background:#3b82f612}.mp-dropdown-option.is-active{color:var(--primary-color);background:#3b82f61a;font-weight:500}.mp-search-input{border:1px solid var(--border-color);border-radius:var(--radius);box-sizing:border-box;outline:none;flex:1;min-width:0;height:28px;padding:0 10px;font-size:14px}.mp-search-input:focus{border-color:var(--primary-color)}.mp-accordion-list{flex:1;overflow-y:auto}.mp-accordion-section{border-bottom:1px solid var(--border-color)}.mp-accordion-header{cursor:pointer;background-color:var(--panel-bg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 16px;transition:background-color .2s;display:flex}.mp-accordion-header:hover{background-color:var(--bg-color)}.mp-accordion-icon{color:var(--text-muted);justify-content:center;align-items:center;width:16px;height:16px;transition:transform .2s;display:flex}.mp-accordion-icon.mp-expanded{transform:rotate(90deg)}.mp-accordion-title{color:var(--text-main);font-size:14px;font-weight:600}.mp-materials-grid{background-color:var(--bg-color);grid-template-columns:repeat(2,1fr);gap:12px;padding:12px 16px;display:grid}.mp-material-item{border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;background-color:var(--panel-bg);flex-direction:column;align-items:center;gap:8px;padding:10px;transition:all .2s;display:flex}.mp-material-item:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 6px #0000000d}.mp-material-preview{border-radius:6px;justify-content:center;align-items:center;width:60px;height:60px;display:flex;overflow:hidden}.mp-material-name{text-align:center;color:var(--text-main);font-size:12px}.mp-empty-message{color:var(--text-muted);text-align:center;padding:20px;font-size:13px}.mp-shape-preview{background-color:var(--bg-color);color:var(--primary-color)}.mp-shape-icon{-webkit-user-select:none;user-select:none;font-size:24px;font-weight:700;line-height:1}.canvas-panel{background-color:var(--bg-color);background-image:radial-gradient(var(--border-color) 1px, transparent 1px);background-size:20px 20px;flex:1;padding:24px;display:flex;position:relative;overflow:hidden}.canvas-panel--preview{padding:54px 24px}.export-status-bar{z-index:10;pointer-events:none;background:#dce8ff;border:1px solid #b0ccf8;border-radius:8px;align-items:center;gap:8px;width:320px;height:24px;padding:0 12px;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.export-status-text{color:#3a5080;text-overflow:ellipsis;white-space:nowrap;text-align:center;flex:1;min-width:0;font-size:12px;overflow:hidden}.export-status-text.is-error{color:var(--error-color,#ef4444)}.export-progress-track{background:#a0bce8;border-radius:6px;flex-shrink:0;width:72px;height:4px;overflow:hidden}.export-progress-fill{background:var(--primary-color,#3b82f6);border-radius:6px;height:100%;transition:width .1s linear}.export-cancel-btn{pointer-events:auto;border:1px solid var(--border-color);color:var(--error-color,#ef4444);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:1px 7px;font-size:11px}.export-cancel-btn:hover{background:var(--hover-bg,#f1f5f9)}.canvas-wrapper{background-color:var(--panel-bg);border-radius:6px;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #00000014}.canvas-placeholder{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:18px}.pv-controls{background:var(--panel-bg);border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;z-index:100;border-radius:6px;align-items:center;gap:4px;padding:4px 8px;display:flex;position:absolute;top:5px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.pv-btn{width:28px;height:28px;color:var(--text-main);cursor:pointer;background:0 0;border:none;border-radius:6px;outline:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:flex}.pv-btn:hover{color:var(--primary-color);background:#3b82f612}.pv-play{background:var(--primary-color);color:#fff;border-radius:50%;box-shadow:0 1px 4px #3b82f666}.pv-play:hover{background:var(--primary-hover);color:#fff}.pv-playing{background:#f59e0b;box-shadow:0 1px 4px #f59e0b66}.pv-playing:hover{color:#fff;background:#d97706}.pv-divider{background:var(--border-color);flex-shrink:0;width:1px;height:16px;margin:0 2px}.pv-exit{background:var(--primary-color);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;outline:none;height:28px;padding:0 10px;font-size:12px;transition:background .12s}.pv-exit:hover{background:var(--primary-hover)}.pv-progress-wrap{cursor:pointer;align-items:center;gap:6px;padding:0 4px;display:flex}.pv-progress-track{background:var(--border-color);border-radius:2px;flex-shrink:0;width:140px;height:4px;overflow:hidden}.pv-progress-fill{background:var(--primary-color);border-radius:2px;height:100%;transition:width 50ms linear}.pv-time-label{color:var(--text-muted);white-space:nowrap;text-align:left;-webkit-user-select:none;user-select:none;min-width:68px;font-size:11px}.ip-inspector-panel{background-color:var(--panel-bg);border-left:1px solid var(--border-color);flex-direction:column;width:280px;display:flex}.ip-inspector-content{scrollbar-gutter:stable;flex:1;padding:12px 12px 12px 16px;overflow-y:auto}.ip-empty-state{text-align:center;color:var(--text-main);padding:40px 0;font-size:14px}.ip-empty-state .ip-hint{color:var(--text-muted);margin-top:8px;font-size:12px;display:block}.ip-property-group{margin-bottom:16px}.ip-property-group:not(:last-child){border-bottom:1px solid var(--border-color);margin-bottom:8px;padding-bottom:8px}.ip-group-title{color:var(--text-main);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:4px;margin:0 0 10px;font-size:14px;font-weight:600;display:flex}.ip-group-title:hover{color:var(--primary-color)}.ip-group-title.is-collapsed{margin-bottom:0}.ip-section-chevron{color:var(--text-muted);flex-shrink:0;align-items:center;transition:transform .2s;display:flex;transform:rotate(90deg)}.ip-section-chevron.is-collapsed{transform:rotate(0)}.ip-property-row{gap:12px;margin-bottom:8px;display:flex}.ip-property-field{flex-direction:column;flex:1;gap:6px;display:flex}.ip-property-field label{color:var(--text-muted);font-size:12px}.ip-input-group{width:100%;display:flex}.ip-input-group input{border:1px solid var(--border-color);border-radius:var(--radius);width:100%;color:var(--text-main);background-color:var(--panel-bg);outline:none;padding:6px 8px;font-size:13px;transition:border-color .2s}.ip-input-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary-color) 18%, transparent)}.ip-input-nospin[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ip-input-nospin[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ip-input-nospin[type=number]{appearance:textfield}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border-radius:var(--radius);border:none}input[type=color]::-moz-color-swatch{border-radius:var(--radius);border:none}.ip-custom-select-container{-webkit-user-select:none;user-select:none;position:relative}.ip-custom-select-trigger{background:var(--panel-bg);border:1px solid var(--border-color);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;height:24px;padding:0 8px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.ip-custom-select-trigger:hover,.ip-custom-select-trigger.ip-is-open{border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.ip-trigger-main{flex:1;justify-content:center;align-items:center;display:flex}.ip-preview-wrap{height:12px;color:var(--text-main);opacity:.8;flex:1;justify-content:center;align-items:center;padding:0 5px;display:flex}.ip-custom-select-trigger{padding:0 4px 0 8px}.ip-chevron-icon{color:var(--text-muted);flex-shrink:0;transition:transform .3s}.ip-custom-select-trigger.ip-is-open .ip-chevron-icon{transform:rotate(180deg)}.ip-custom-select-dropdown{background:var(--panel-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);z-index:100;border-radius:6px;width:100%;animation:.2s ease-out ip-dropdownFadeIn;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@keyframes ip-dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ip-custom-select-item{cursor:pointer;justify-content:center;align-items:center;height:32px;padding:0 8px;transition:background .15s;display:flex;position:relative}.ip-custom-select-item:hover{background:#3b82f614}.ip-custom-select-item.ip-is-selected{background:#3b82f60d}.ip-item-preview{height:12px;color:var(--text-main);opacity:.7;flex:1;justify-content:center;align-items:center;padding:0 10px 0 5px;display:flex}.ip-check-icon{color:var(--primary-color);flex-shrink:0;position:absolute;right:6px}.tl-panel{border-top:1px solid var(--border-color);background:var(--panel-bg);scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;scrollbar-gutter:stable;flex-direction:column;height:340px;display:flex;overflow:hidden auto}.tl-label{color:var(--text-main);white-space:nowrap;flex-shrink:0;font-size:11px}.tl-unit{color:var(--text-muted);font-size:11px}.tl-input-sm{border:1px solid var(--border-color);background:var(--bg-color);width:72px;height:22px;color:var(--text-main);border-radius:6px;padding:0 6px;font-size:12px}.tl-input-sm:focus,.tl-time-input:focus,.tl-dialog-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary-color) 18%, transparent);outline:none}.tl-dialog-input:focus{border-color:var(--primary-color)!important}.tl-input-nospin[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-input-nospin[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-input-nospin[type=number]{-moz-appearance:textfield}.tl-time-display{color:var(--text-main);white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:4px;flex-shrink:0;place-self:center end;padding:1px 3px;font-size:12px;transition:background .1s,color .1s}.tl-time-display:hover{background:var(--hover-bg,#0000000f);color:var(--text-main)}.tl-time-input{border:1px solid var(--primary-color);background:var(--bg-color);width:50px;height:18px;color:var(--text-main);font-variant-numeric:tabular-nums;text-align:right;box-sizing:border-box;border-radius:4px;outline:none;flex-shrink:0;padding:0 4px;font-size:12px}.tl-overall-row{box-sizing:border-box;background:var(--panel-bg);z-index:4;flex-shrink:0;grid-template-columns:62px 1fr 154px;align-items:center;column-gap:8px;height:32px;padding:4px 12px;display:grid;position:sticky;top:0}.tl-overall-label{color:var(--text-muted);white-space:nowrap;flex-shrink:0;width:62px;font-size:11px;font-weight:600}.tl-overall-track{border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;background:#eceef1;border-radius:4px;flex:1;min-width:0;height:20px;position:relative;overflow:hidden}.tl-row-ctrl{flex-shrink:0;justify-self:end;align-items:center;gap:4px;display:flex}.tl-overall-row .tl-row-ctrl{justify-content:flex-end;justify-self:stretch;gap:4px}.tl-row-divider{background:var(--border-color);flex-shrink:0;width:1px;height:12px}.tl-overall-thumbs-row{box-sizing:border-box;border-bottom:1px solid var(--border-color);background:var(--panel-bg);z-index:3;flex-shrink:0;grid-template-columns:62px 1fr 154px;align-items:center;column-gap:8px;height:32px;padding:4px 12px;display:grid;position:sticky;top:32px;overflow:visible}.tl-overall-minor-tick{pointer-events:none;background:#00000026;width:1px;height:4px;position:absolute;top:0}.tl-overall-tick{pointer-events:none;position:absolute;top:0;bottom:0}.tl-overall-tick-line{background:#00000038;width:1px;height:8px;position:absolute;top:0;left:0}.tl-overall-tick-label{white-space:nowrap;color:var(--text-muted);font-size:9px;line-height:1;position:absolute;top:1px;left:0;transform:translate(calc(-100% - 2px))}.tl-overall-playhead{background:var(--primary-color,#3b82f6);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.tl-overall-badge{pointer-events:none;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-main);background:var(--panel-bg);border:1px solid var(--border-color);z-index:10;border-radius:6px;padding:1px 5px;font-size:11px;position:absolute;bottom:calc(100% + 4px);transform:translate(-50%);box-shadow:0 2px 6px #0f172a26}.tl-overall-thumbs{border:1px solid var(--border-color);background:#eceef1;border-radius:4px;min-width:0;height:20px;position:relative;overflow:visible}.tl-dist-marker{cursor:pointer;z-index:1;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;overflow:visible}.tl-dist-marker.is-apply-flash:after{content:"";pointer-events:none;background:#22c55e38;border-radius:999px;width:16px;height:16px;animation:3s ease-out forwards tl-apply-dist-flash;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #22c55e8c,0 0 14px #22c55e73}.tl-dist-tri-flag{cursor:pointer;border-top:6px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;margin-left:-4px;position:absolute;bottom:100%;left:50%}.tl-dist-marker-count{color:#000000d9;pointer-events:none;font-size:7px;font-weight:700;line-height:1;position:absolute;bottom:0;left:3px}.tl-dist-marker-clip-count{color:#000000d9;pointer-events:none;font-size:7px;font-weight:700;line-height:1;position:absolute;top:0;left:3px}.tl-dist-playhead{background:var(--primary-color,#3b82f6);pointer-events:none;z-index:2;width:2px;position:absolute;top:0;bottom:0}.tl-dist-popup{z-index:9999;background:var(--panel-bg);border:1px solid var(--border-color);pointer-events:auto;border-radius:6px;min-width:80px;padding:5px 8px;position:fixed;transform:translate(-50%,calc(-100% - 6px));box-shadow:0 4px 12px #00000038}.tl-dist-popup-time{color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;margin-bottom:3px;padding-bottom:3px;font-size:9px}.tl-dist-popup-item{color:var(--text-main);cursor:pointer;white-space:nowrap;justify-content:space-between;align-items:center;gap:10px;padding:2px 0;font-size:11px;display:flex}.tl-dist-popup-item:hover{color:var(--primary-color,#3b82f6)}.tl-dist-popup-clip-count{color:var(--text-muted);flex-shrink:0;font-size:9px}.tl-dist-popup-clip-detail{color:var(--text-muted);pointer-events:none;align-items:center;gap:5px;padding:1px 0 1px 8px;font-size:10px;display:flex}.tl-dist-popup-clip-detail--clickable{pointer-events:auto;cursor:pointer}.tl-dist-popup-clip-detail--clickable:hover{color:var(--primary-color,#3b82f6)}.tl-dist-popup-clip-type{flex:1}.tl-dist-popup-clip-duration{font-variant-numeric:tabular-nums;flex-shrink:0}.tl-dist-count{justify-content:flex-end;justify-self:stretch;align-items:center;gap:4px;display:flex}.tl-dist-count .tl-btn{flex:1;justify-content:center;align-items:center;height:28px;padding:0;display:inline-flex}.tl-element-track-row{box-sizing:border-box;background:var(--panel-bg);z-index:2;flex-shrink:0;grid-template-columns:62px 1fr 154px;align-items:center;column-gap:8px;height:32px;padding:4px 12px;display:grid;position:sticky;top:64px}.tl-element-zoom-row{box-sizing:border-box;border-bottom:1px solid var(--border-color);background:var(--panel-bg);z-index:1;flex-shrink:0;grid-template-columns:62px 1fr 154px;align-items:center;column-gap:8px;height:32px;padding:4px 12px;display:grid;position:sticky;top:96px}.tl-zoom-row-all-actions{grid-column:2/-1;justify-content:flex-end;place-self:center stretch;align-items:center;gap:6px;min-height:20px;display:flex}.tl-element-zoom-row .tl-btn,.tl-element-zoom-row .tl-conflict-btn{justify-content:center;align-items:center;height:20px;margin:0;line-height:1;display:inline-flex}.tl-element-zoom-row .tl-btn{width:75px}.tl-overall-row .tl-input-sm,.tl-overall-thumbs-row .tl-btn{height:20px}.tl-zoom-row-right-btns{flex-shrink:0;align-self:center;align-items:center;gap:4px;width:154px;height:20px;margin-left:2px;display:flex}.tl-zoom-row-right-btns>div{flex:1;align-items:center;min-width:0;height:20px;display:flex;position:relative}.tl-zoom-row-right-btns>div>.tl-btn{width:100%}.tl-element-label{color:var(--text-muted);white-space:nowrap;flex-shrink:0;width:62px;font-size:11px;font-weight:600}.tl-element-name{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:62px;font-size:12px;font-weight:600;overflow:hidden}.tl-element-name-empty{color:var(--text-muted);font-weight:400}.tl-element-track{border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;background:repeating-linear-gradient(45deg,#94a3b82e,#94a3b82e 4px,#0000 4px 8px),#eceef1;border-radius:4px;grid-column:2;align-self:center;min-width:0;height:20px;position:relative;overflow:hidden}.tl-element-window{cursor:grab;font-variant-numeric:tabular-nums;color:var(--text-main);background:#22c55e38;border-left:1px solid #22c55e;border-right:1px solid #22c55e;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:0;bottom:0}.tl-element-window.is-dragging{cursor:grabbing}@keyframes tl-marching-ants{to{background-position:10px 0,100% 10px,-10px 100%,0 -10px}}.tl-element-window.is-selected:before{content:"";pointer-events:none;z-index:5;background-image:repeating-linear-gradient(90deg, var(--seg-color) 0, var(--seg-color) 5px, transparent 5px, transparent 10px), repeating-linear-gradient(180deg, var(--seg-color) 0, var(--seg-color) 5px, transparent 5px, transparent 10px), repeating-linear-gradient(90deg, var(--seg-color) 0, var(--seg-color) 5px, transparent 5px, transparent 10px), repeating-linear-gradient(180deg, var(--seg-color) 0, var(--seg-color) 5px, transparent 5px, transparent 10px);background-position:0 0,100% 0,0 100%,0 0;background-repeat:repeat-x,repeat-y,repeat-x,repeat-y;background-size:10px 2px,2px 10px,10px 2px,2px 10px;animation:.6s linear infinite tl-marching-ants;position:absolute;inset:0}.tl-element-handle-l,.tl-element-handle-r{cursor:ew-resize;background:#22c55e8c;width:6px;position:absolute;top:0;bottom:0}.tl-element-handle-l{left:0}.tl-element-handle-r{right:0}.tl-element-minor-tick{pointer-events:none;z-index:3;background:#00000026;width:1px;height:4px;position:absolute;bottom:0}.tl-element-ruler-tick{pointer-events:none;z-index:3;position:absolute;top:0;bottom:0}.tl-element-ruler-tick-line{background:#00000038;width:1px;height:8px;position:absolute;bottom:0;left:0}.tl-element-ruler-tick-label{white-space:nowrap;color:var(--text-muted);font-size:9px;line-height:1;position:absolute;bottom:1px;left:0;transform:translate(calc(-100% - 2px))}.tl-element-tick{color:var(--text-muted);pointer-events:none;font-variant-numeric:tabular-nums;font-size:9px;position:absolute;bottom:1px}.tl-element-tick-start{left:4px}.tl-element-tick-end{right:4px}.tl-element-playhead{background:var(--primary-color,#3b82f6);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.tl-placeholder{color:var(--text-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;font-size:12px;display:flex}.tl-placeholder-sm{flex:unset;justify-content:flex-start;padding:10px 0}.tl-body{flex-direction:column;flex-shrink:0;gap:0;padding:8px 12px;display:flex;overflow-x:hidden}.tl-btn{border:1px solid var(--border-color);background:var(--panel-bg);height:28px;color:var(--text-main);cursor:pointer;white-space:nowrap;border-radius:6px;padding:0 8px;font-size:11px;transition:border-color .15s,background .15s}.tl-btn:hover:not(:disabled){border-color:var(--primary-color)}.tl-btn:disabled{opacity:.6;cursor:not-allowed}.tl-btn.is-active{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f60f}.tl-btn-sm{height:22px;padding:0 6px;font-size:11px}.tl-conflict-btn{color:#b91c1c;cursor:pointer;white-space:nowrap;background:#fff1f2;border:1px solid #fca5a5;border-radius:6px;height:28px;padding:0 8px;font-size:11px}.tl-conflict-btn:hover{border-color:#ef4444}.tl-add-btn{border:1px solid var(--primary-color);background:var(--primary-color);color:#fff;cursor:pointer;white-space:nowrap;border-radius:6px;height:28px;padding:0 10px;font-size:11px;font-weight:500;transition:background .15s}.tl-add-btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.tl-add-wrap{position:relative}.tl-add-menu{background:var(--panel-bg);border:1px solid var(--border-color);z-index:100;border-radius:6px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:calc(-100% - 4px);right:0;box-shadow:0 4px 16px #0f172a1f}.tl-add-menu-tabs{border-bottom:1px solid var(--border-color);gap:0;margin:-2px -2px 0;display:flex}.tl-add-menu-tab{height:28px;color:var(--text-main);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:0;font-size:11px;transition:color .12s,border-color .12s}.tl-add-menu-tab.is-active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.tl-add-menu-tab:hover:not(.is-active){color:var(--text-main)}.tl-add-menu-grid{gap:4px;display:flex}.tl-add-menu-col{flex-direction:column;flex:1;gap:4px;display:flex}.tl-add-menu-item{border:1px solid var(--border-color);background:var(--bg-color);height:28px;color:var(--text-main);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:0 6px;font-size:11px;transition:border-color .12s,background .12s;display:flex}.tl-add-menu-item:hover{border-color:var(--primary-color);background:#3b82f60a}.tl-add-menu-template{background:#3b82f60a;border-style:dashed}.tl-add-menu-bio{color:#059669;background:#10b9810f;border-color:#10b98166}.tl-batch-panel{border:1px solid var(--border-color);background:var(--bg-color);border-radius:6px;flex-direction:column;flex-shrink:0;gap:6px;margin-bottom:8px;padding:8px;display:flex}.tl-batch-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.tl-batch-header-actions{gap:4px;display:flex}.tl-batch-fields{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.tl-apply-btn{border:1px solid var(--primary-color);height:22px;color:var(--primary-color);cursor:pointer;white-space:nowrap;background:#3b82f614;border-radius:6px;align-self:flex-end;padding:0 10px;font-size:11px}.tl-apply-btn:hover{background:#3b82f626}.tl-batch-clip-list{border:1px solid var(--border-color);border-radius:4px;max-height:144px;margin-bottom:0;overflow-y:auto}.tl-batch-clip-list::-webkit-scrollbar{width:4px}.tl-batch-clip-list::-webkit-scrollbar-track{background:0 0}.tl-batch-clip-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.tl-batch-clip-item{cursor:pointer;border-bottom:1px solid var(--border-color);align-items:center;gap:6px;padding:5px 8px;transition:background .1s;display:flex}.tl-batch-clip-item:last-child{border-bottom:none}.tl-batch-clip-item:hover{background:#3b82f60a}.tl-batch-clip-item.is-selected{background:#3b82f614}.tl-batch-select{border:1px solid var(--border-color);background:var(--bg-color);height:24px;color:var(--text-main);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;align-items:center;padding:0 6px;font-size:11px;transition:border-color .15s;display:flex}.tl-batch-select:hover{border-color:var(--primary-color)}.tl-batch-select-arrow{color:var(--text-muted);flex-shrink:0;margin-left:2px;display:block}.tl-batch-dropdown{z-index:300;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:4px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:hidden;box-shadow:0 4px 12px #0003}.tl-batch-option{cursor:pointer;color:var(--text-main);padding:4px 6px;font-size:11px;transition:background .1s}.tl-batch-option:hover{background:#3b82f614}.tl-batch-option.is-active{color:var(--primary-color);background:#3b82f60f}.tl-clip-list{flex-direction:column;gap:4px;display:flex}.tl-clip{border:1px solid var(--border-color);background:var(--panel-bg);border-radius:6px;transition:border-color .15s;overflow:hidden}.tl-clip:hover{border-color:var(--border-color)}.tl-clip.is-expanded{border-color:var(--primary-color)}.tl-clip.is-flash{animation:1.2s ease-out tlFlash}@keyframes tlFlash{0%{box-shadow:0 0 0 3px #3b82f659}to{box-shadow:0 0 #3b82f600}}.tl-clip.is-conflict{border-color:#fca5a5}.tl-clip.is-batch-selected{border-color:var(--primary-color);background:#3b82f605}.tl-clip.is-disabled{opacity:.55}.tl-clip-row{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:56px 1fr 148px;align-items:center;column-gap:8px;min-height:32px;padding:4px 5px;display:grid}.tl-clip-row:hover{background:#0f172a05}.tl-clip-label{align-items:center;gap:4px;min-width:0;display:flex}.tl-clip-ctrl{justify-content:flex-end;align-items:center;gap:6px;display:flex}.tl-clip-icon-group{align-items:center;gap:0;display:flex}.tl-type-dot{border-radius:50%;flex-shrink:0;width:4px;height:4px}.tl-type-move{background:#3b82f6}.tl-type-polylineMove{background:#6366f1}.tl-type-moveAlongPath{background:#06b6d4}.tl-type-fade{background:#8b5cf6}.tl-type-scale{background:#10b981}.tl-type-rotate{background:#f59e0b}.tl-type-shake{background:#ef4444}.tl-type-stateChange{background:#6b7280}.tl-clip-type-name{color:var(--text-main);white-space:nowrap;align-items:center;gap:3px;min-width:0;font-size:11px;font-weight:600;display:flex}.tl-conflict-tag{color:#b91c1c;background:#fee2e2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:9px;font-weight:700;display:inline-flex}.tl-clip-drag-handle{cursor:grab;width:18px;height:18px;color:var(--text-main);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.tl-clip-drag-handle:hover{color:var(--text-main)}.tl-clip-drag-handle:active{cursor:grabbing}.tl-clip.is-list-dragging{opacity:.35}.tl-clip.is-drop-target{border-top:2px solid #3b82f6}.tl-track-scroll{scrollbar-width:none;flex:1;min-width:0;overflow:auto hidden}.tl-track-scroll::-webkit-scrollbar{display:none}.tl-track{isolation:isolate;border:1px solid var(--border-color);cursor:pointer;-webkit-user-select:none;user-select:none;background:#eceef1;border-radius:999px;min-width:100%;height:14px;position:relative;overflow:hidden}.tl-track:hover{border-color:#9ca3af}.tl-track-playhead{pointer-events:none;z-index:2;background:#0f172a66;width:2px;margin-left:-.5px;position:absolute;top:0;bottom:0}.tl-track-guide{pointer-events:none;z-index:3;background:#ffffffe6;width:1px;position:absolute;top:0;bottom:0;box-shadow:0 0 0 1px #3b82f666}.tl-track-guide.is-cursor{animation:.35s ease-out tlSnapFlash}@keyframes tlSnapFlash{0%{opacity:1;box-shadow:0 0 0 2px #3b82f680}to{opacity:.4;box-shadow:0 0 #3b82f600}}.tl-track-fill{cursor:grab;border-radius:999px;justify-content:center;align-items:center;min-width:2px;display:flex;position:absolute;top:1px;bottom:1px;overflow:hidden}.tl-track-fill.is-dragging{cursor:grabbing}.tl-track-fill.is-snapped{box-shadow:inset 0 0 0 1px #ffffffb3}.tl-type-fill-move{background:#3b82f6a6}.tl-type-fill-polylineMove{background:#6366f1a6}.tl-type-fill-moveAlongPath{background:#06b6d4a6}.tl-type-fill-fade{background:#8b5cf6a6}.tl-type-fill-scale{background:#10b981a6}.tl-type-fill-rotate{background:#f59e0ba6}.tl-type-fill-shake{background:#ef4444a6}.tl-type-fill-stateChange{background:#6b7280a6}.tl-seg-time-editor{border:1px solid var(--border-color);background:var(--bg-color);border-radius:6px;flex-shrink:0;align-items:stretch;height:24px;margin-right:auto;font-size:11px;display:inline-flex;overflow:hidden}.tl-seg-time-editor-label{border-right:1px solid var(--border-color);color:var(--text-main);white-space:nowrap;background:var(--panel-bg);flex-shrink:0;align-items:center;padding:0 7px;display:flex}.tl-seg-time-input{text-align:center;width:35px;color:var(--text-main);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:11px}.tl-seg-time-input:focus{background:#3b82f614}.tl-seg-time-sep{color:var(--text-muted);flex-shrink:0;align-items:center;padding:0 1px;display:flex}.tl-seg-time-tilde{padding:0 5px}.tl-seg-time-sep-r{padding-left:1px;padding-right:6px}.tl-track-handle-l,.tl-track-handle-r{cursor:ew-resize;background:#0f172a33;width:6px;position:absolute;top:0;bottom:0}.tl-track-handle-l{border-right:1px solid #ffffffb3;left:0}.tl-track-handle-r{border-left:1px solid #ffffffb3;right:0}.tl-clip-dur{color:var(--text-main);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;min-width:44px;font-size:11px}.tl-clip-enable,.tl-clip-check{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.tl-clip-enable input,.tl-clip-check input{cursor:pointer;margin:0}.tl-clip-del{width:18px;height:18px;color:var(--text-main);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:10px;transition:background .12s,color .12s;display:flex}.tl-clip-del:hover{color:#b91c1c;background:#fee2e2}.tl-clip-arrow{width:18px;height:18px;color:var(--text-main);flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:inline-flex}.tl-clip-detail{border-top:1px solid var(--border-color);background:var(--bg-color);grid-template-columns:380px auto auto 128px minmax(420px,1fr) auto;align-items:stretch;min-width:max-content;display:grid}.tl-clip-detail-scroll{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;overflow:auto hidden}.tl-clip-detail-scroll::-webkit-scrollbar{height:4px}.tl-clip-detail-scroll::-webkit-scrollbar-track{background:0 0}.tl-clip-detail-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.tl-basic-section,.tl-easing-col,.tl-bezier-col,.tl-curve-col,.tl-kf-col,.tl-ops-col{flex-direction:column;min-width:0;display:flex}.tl-basic-section{border-right:1px solid var(--border-color)}.tl-kf-col{border-left:1px solid var(--border-color);contain:size layout;overflow:hidden}.tl-ops-col{border-left:1px solid var(--border-color)}.tl-easing-col,.tl-bezier-col,.tl-curve-col,.tl-kf-col,.tl-ops-col{gap:6px;padding:0 4px 8px}.tl-kf-col{padding:0 10px 8px}.tl-basic-section{flex-direction:row!important}.tl-time-subcol,.tl-params-subcol{flex-direction:column;align-items:center;min-width:0;display:flex}.tl-time-subcol{padding-left:4px;padding-right:4px}.tl-time-subcol-body{flex-direction:column;align-items:center;gap:6px;padding:8px 4px;display:flex}.tl-segment-time-warn{color:#ef4444;text-align:center;background:#ef444414;border:1px solid #ef444452;border-radius:4px;max-width:180px;padding:4px 6px;font-size:10px;line-height:1.3}.tl-time-subcol-body .tl-detail-label{white-space:nowrap;flex-direction:row;align-items:center;gap:6px}.tl-time-subcol-body .tl-detail-label .tl-input-sm{width:45px;min-width:unset;flex:none}.tl-time-subcol-body .tl-detail-label .tl-input-sm::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-time-subcol-body .tl-detail-label .tl-input-sm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-time-subcol-body .tl-detail-label .tl-input-sm[type=number]{-moz-appearance:textfield}.tl-params-subcol{flex:1}.tl-time-subcol .tl-col-header-centered,.tl-params-subcol .tl-col-header-centered{align-self:stretch;margin:0 8px}.tl-params-subcol-body{flex-direction:column;align-items:center;gap:6px;padding:8px 4px;display:flex}.tl-params-subcol-body input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-params-subcol-body input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-params-subcol-body input[type=number]{-moz-appearance:textfield}.tl-col-header-centered{color:var(--text-main);text-align:center;border-bottom:1px solid var(--border-color);flex-shrink:0;margin:0 10px;padding:8px 0 4px;font-size:11px}.tl-basic-grid{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:6px 20px;padding:8px 10px;display:grid}.tl-basic-grid .tl-detail-label,.tl-time-subcol-body .tl-detail-label{white-space:nowrap;flex-direction:row;align-items:center;gap:6px}.tl-basic-grid .tl-detail-label .tl-input-sm,.tl-time-subcol-body .tl-detail-label .tl-input-sm{width:45px;min-width:unset;flex:none}.tl-basic-grid .tl-detail-label .tl-input-sm::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-basic-grid .tl-detail-label .tl-input-sm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-time-subcol-body .tl-detail-label .tl-input-sm::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-time-subcol-body .tl-detail-label .tl-input-sm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-basic-grid .tl-detail-label .tl-input-sm[type=number],.tl-time-subcol-body .tl-detail-label .tl-input-sm[type=number]{-moz-appearance:textfield}.tl-type-row{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.tl-type-row .tl-detail-label{white-space:nowrap;flex-direction:row;align-items:center;gap:4px}.tl-type-row .tl-detail-label input{width:45px;min-width:unset;flex:none}.tl-time-actions{gap:4px;display:flex}.tl-col-header{color:var(--text-main);white-space:nowrap;border-bottom:1px solid var(--border-color);text-align:center;flex-shrink:0;padding:8px 0 4px;font-size:11px}.tl-easing-col{align-items:center}.tl-easing-col .tl-easing-btn{text-align:center;flex:none;width:54px}.tl-ops-col{align-items:center}.tl-ops-col .tl-btn{text-align:center;flex:none;width:48px}.tl-element-track-row .tl-row-ctrl{flex-shrink:0;place-self:center stretch;width:auto;height:20px}.tl-element-track-row .tl-row-ctrl>div{flex:1;align-items:center;min-width:0;height:20px;display:flex}.tl-element-track-row .tl-row-ctrl>div>.tl-btn,.tl-element-track-row .tl-row-ctrl>div>.tl-add-btn{justify-content:center;align-items:center;width:100%;margin:0;line-height:1;display:inline-flex}.tl-element-track-row .tl-row-ctrl .tl-btn,.tl-element-track-row .tl-row-ctrl .tl-add-btn,.tl-element-track-row .tl-row-ctrl .tl-conflict-btn{height:20px}.tl-bezier-col{align-items:center}.tl-bezier-col .tl-detail-label{flex-direction:row;align-items:center;gap:4px}.tl-bezier-col .tl-detail-label input{min-width:unset;flex:none;width:45px}.tl-bezier-col .tl-detail-label input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tl-bezier-col .tl-detail-label input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tl-bezier-col .tl-detail-label input[type=number]{-moz-appearance:textfield}.tl-curve-col{align-items:stretch}.tl-easing-preview-wrap.tl-easing-preview-lg{border:1px solid var(--border-color);background:var(--panel-bg);border-radius:6px;flex:1;width:100%;height:0;min-height:0;position:relative;overflow:hidden}.tl-easing-preview-wrap.tl-easing-preview-lg .tl-easing-svg{width:100%;height:100%;position:absolute;inset:0}.tl-kf-col .tl-keyframe-section{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;border:none;flex:1;width:100%;min-height:0;padding:0;overflow-y:auto}.tl-kf-col .tl-kf-row{grid-template-columns:45px 45px 45px auto}.tl-kf-col .tl-kf-row input{width:100%;min-width:0}.tl-detail-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.tl-detail-label{color:var(--text-main);flex-direction:column;gap:3px;font-size:11px;display:flex}.tl-detail-label input,.tl-detail-label select{border:1px solid var(--border-color);background:var(--panel-bg);height:22px;color:var(--text-main);border-radius:6px;min-width:70px;padding:0 5px;font-size:12px}.tl-detail-label input:focus,.tl-detail-label select:focus{border-color:var(--primary-color);outline:none}.tl-section-label{color:var(--text-muted);letter-spacing:0;text-transform:none;white-space:nowrap;font-size:11px;font-weight:400}.tl-easing-row{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.tl-easing-presets{flex:1;gap:3px;display:flex}.tl-easing-btn{border:1px solid var(--border-color);background:var(--panel-bg);height:22px;color:var(--text-main);cursor:pointer;white-space:nowrap;text-align:center;border-radius:6px;flex:1;padding:0 4px;font-size:11px;transition:border-color .12s,color .12s}.tl-easing-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.tl-easing-btn.is-active{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f60f;font-weight:600}.tl-easing-preview-wrap{border:1px solid var(--border-color);background:var(--panel-bg);border-radius:6px;flex-shrink:0;width:52px;height:32px;overflow:hidden}.tl-easing-svg{width:100%;height:100%;display:block}.tl-easing-base{fill:none;stroke:#64748b59;stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.tl-easing-curve{fill:none;stroke:var(--primary-color);stroke-width:1px;vector-effect:non-scaling-stroke}.tl-map-params{grid-template-columns:auto auto auto auto;justify-content:center;align-items:center;gap:4px 6px;padding:8px 10px;display:grid}.tl-map-params .tl-type-row{display:contents}.tl-map-params .tl-coord-label{white-space:nowrap;text-align:justify;text-align-last:justify;margin-right:8px;display:block}.tl-shake-lbl{text-align:justify;text-align-last:justify;width:3em;display:inline-block}.tl-map-btn-placeholder{visibility:hidden;flex-shrink:0;width:54px;height:22px;display:inline-block}.tl-payload-section{flex-direction:column;gap:6px;display:flex}.tl-payload-grid,.tl-grab-row{flex-wrap:wrap;gap:6px;display:flex}.tl-payload-grid .tl-detail-label input{width:72px;min-width:unset}.tl-coord-rows{flex-direction:column;gap:4px;display:flex}.tl-coord-row{align-items:flex-end;gap:6px;display:flex}.tl-coord-label{color:var(--text-muted);flex-shrink:0;min-width:3em;font-size:11px}.tl-coord-row .tl-detail-label input{width:72px;min-width:unset}.tl-coord-grab{margin-bottom:1px}.tl-keyframe-section{border:1px dashed var(--border-color);box-sizing:border-box;border-radius:6px;flex-direction:column;gap:4px;width:100%;padding:6px 8px;display:flex}.tl-kf-preset-row{align-items:center;gap:6px;display:flex}.tl-kf-preset-label{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.tl-kf-col-headers{margin-bottom:0}.tl-kf-col-header{color:var(--text-muted);text-align:center;white-space:nowrap;font-size:10px}.tl-kf-add-row{justify-content:center;margin-top:2px;display:flex}.tl-kf-empty{color:var(--text-main);font-size:11px}.tl-kf-row{grid-template-columns:64px 72px 72px auto;align-items:center;gap:4px;display:grid}.tl-kf-row-wide{grid-template-columns:64px 72px 72px auto}.tl-kf-row input{border:1px solid var(--border-color);background:var(--panel-bg);height:22px;color:var(--text-main);border-radius:6px;padding:0 5px;font-size:11px}.tl-kf-row input:focus{border-color:var(--primary-color);outline:none}.tl-kf-presets{gap:3px;display:flex}.tl-kf-preset-btn{border:1px solid var(--border-color);height:22px;color:var(--primary-color);cursor:pointer;white-space:nowrap;background:#3b82f60f;border-radius:6px;padding:0 6px;font-size:11px;transition:background .12s,border-color .12s}.tl-kf-preset-btn:hover{border-color:var(--primary-color);background:#3b82f624}.tl-kf-preset-btn.is-active{border-color:var(--primary-color);background:#3b82f62e;font-weight:600}.tl-kf-del{color:#be123c;cursor:pointer;white-space:nowrap;background:#fff1f2;border:1px solid #fca5a5;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:10px;display:flex}.tl-kf-del:hover{background:#fee2e2}.kf-editor{box-sizing:border-box;flex-direction:row;gap:8px;width:100%;padding:0;display:flex}.tl-kf-col .kf-editor{flex:1;min-height:0}.kf-editor-actions{flex-direction:column;flex-shrink:0;gap:6px;width:fit-content;min-width:0;display:flex}.kf-actions-presets{flex-direction:column;gap:4px;display:flex}.kf-actions-add{border-top:1px dashed var(--border-color);flex-direction:column;gap:4px;padding-top:6px;display:flex}.kf-editor-data{flex-direction:column;flex:1;gap:6px;min-width:0;min-height:0;display:flex}.kf-editor-add{border-left:1px dashed var(--border-color);flex-direction:column;flex-shrink:0;gap:4px;width:fit-content;padding-left:8px;display:flex}.kf-grid{flex:1;grid-template-rows:repeat(3,22px);align-content:start;align-items:center;gap:4px 6px;min-height:0;padding:2px;display:grid}.kf-grid-label{color:var(--text-main);text-align:right;white-space:nowrap;align-self:center;padding-right:2px;font-size:11px}.kf-grid-input{border:1px solid var(--border-color);background:var(--panel-bg);width:100%;min-width:0;height:22px;color:var(--text-main);text-align:center;box-sizing:border-box;border-radius:6px;padding:0 4px;font-size:11px}.kf-grid-input:focus{border-color:var(--primary-color);outline:none}.kf-grid-input.is-selected{border-color:var(--primary-color);background:#3b82f61f}.kf-grid-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.kf-grid-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.kf-grid-input[type=number]{-moz-appearance:textfield}.kf-preset-label{color:var(--text-muted);text-align:center;letter-spacing:1px;padding-bottom:2px;font-size:10px}.kf-preset-btn{border:1px solid var(--border-color);background:var(--panel-bg);width:100%;height:22px;color:var(--text-main);cursor:pointer;white-space:nowrap;text-align:center;box-sizing:border-box;border-radius:6px;padding:0 6px;font-size:11px;transition:background .12s,border-color .12s,color .12s}.kf-preset-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.kf-preset-btn.is-active{border-color:var(--primary-color);color:var(--primary-color);background:#3b82f60f;font-weight:600}.kf-preset-btn:disabled{opacity:.5;cursor:not-allowed}.kf-clear-btn:hover:not(:disabled){color:#be123c;background:#f871711a;border-color:#fca5a5}.kf-clear-btn:disabled{opacity:.5;cursor:not-allowed}.kf-track{cursor:copy;-webkit-user-select:none;user-select:none;height:28px;margin:-3px 6px 2px;position:relative}.kf-track-axis{background:#9ca3af;border-radius:1px;height:2px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.kf-track-playhead{background:var(--primary-color,#3b82f6);pointer-events:none;width:1px;position:absolute;top:0;bottom:0;transform:translate(-.5px)}.kf-track-playhead:before{content:"";background:var(--primary-color,#3b82f6);border-radius:50%;width:6px;height:6px;position:absolute;top:-2px;left:50%;transform:translate(-50%)}.kf-track-dot{border:2px solid var(--primary-color,#3b82f6);cursor:grab;z-index:2;background:#fff;border-radius:50%;width:12px;height:12px;margin:0;padding:0;transition:transform 80ms,border-color .12s,background .12s;position:absolute;top:50%;transform:translate(-50%,-50%)}.kf-track-dot:hover{background:#3b82f62e;transform:translate(-50%,-50%)scale(1.15)}.kf-track-dot.is-selected{background:var(--primary-color,#3b82f6);border-color:var(--primary-color,#3b82f6);transform:translate(-50%,-50%)scale(1.2);box-shadow:0 0 0 3px #3b82f62e}.kf-track-dot.is-dragging{cursor:grabbing;transform:translate(-50%,-50%)scale(1.3)}.kf-track-labels{color:var(--text-main);pointer-events:none;justify-content:space-between;font-size:9px;display:flex;position:absolute;bottom:-2px;left:0;right:0}.kf-empty{color:var(--text-main);text-align:center;padding:4px 0;font-size:11px}.kf-table{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow-y:auto}.kf-table-headers{color:var(--text-muted);background:var(--bg-color);z-index:1;align-items:center;gap:4px;padding:0 2px;font-size:10px;display:grid;position:sticky;top:0}.kf-table-headers>span{text-align:center}.kf-table-row{cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:2px;transition:background .1s;display:grid}.kf-table-row:hover{background:#3b82f60a}.kf-table-row.is-selected{background:#3b82f61f}.kf-table-row input{border:1px solid var(--border-color);background:var(--panel-bg);width:100%;min-width:0;height:22px;color:var(--text-main);box-sizing:border-box;border-radius:6px;padding:0 5px;font-size:11px}.kf-table-row input:focus{border-color:var(--primary-color);outline:none}.kf-row-del{color:#be123c;cursor:pointer;white-space:nowrap;background:#fff1f2;border:1px solid #fca5a5;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:10px;display:flex}.kf-row-del:hover{background:#fee2e2}.kf-add-btn{border:1px solid var(--border-color);background:var(--panel-bg);width:100%;height:24px;color:var(--text-main);cursor:pointer;white-space:nowrap;text-align:center;box-sizing:border-box;border-radius:6px;padding:0 4px;font-size:11px;transition:border-color .12s,background .12s}.kf-add-btn:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.kf-add-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes tl-apply-dist-flash{0%{opacity:1;transform:translate(-50%,-50%)scale(.85)}45%{opacity:1;transform:translate(-50%,-50%)scale(1.18)}to{opacity:0;transform:translate(-50%,-50%)scale(1.45)}}.auth-page{background:var(--bg-color);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-card{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:12px;width:360px;padding:40px 36px;box-shadow:0 4px 24px #00000014}.auth-logo{flex-direction:column;align-items:center;margin-bottom:28px;display:flex}.auth-logo-text{color:var(--primary-color);letter-spacing:-.5px;font-size:28px;font-weight:700}.auth-logo-sub{color:var(--text-muted);margin-top:4px;font-size:13px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field label{color:var(--text-main);font-size:13px;font-weight:500}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-wrap input{width:100%;padding-right:36px}.auth-eye{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:0;line-height:1;transition:color .12s;display:flex;position:absolute;right:10px}.auth-eye:hover{color:var(--text-main)}.auth-field input{border:1px solid var(--border-color);border-radius:var(--radius);height:38px;color:var(--text-main);background:var(--bg-color);outline:none;padding:0 12px;font-size:14px;transition:border-color .15s}.auth-field input:focus{border-color:var(--primary-color)}.auth-error{color:#ef4444;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;padding:8px 12px;font-size:13px}.auth-submit{background:var(--primary-color);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;height:40px;margin-top:4px;font-size:15px;font-weight:500;transition:background .15s}.auth-submit:hover:not(:disabled){background:var(--primary-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;color:var(--text-muted);margin-top:20px;font-size:13px}.auth-switch a{color:var(--primary-color);font-weight:500;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-strength{flex-direction:column;gap:5px;margin-top:2px;display:flex}.auth-strength-bar-wrap{background:var(--border-color);border-radius:2px;height:4px;overflow:hidden}.auth-strength-bar-fill{border-radius:2px;height:100%;transition:width .2s,background .2s}.auth-strength-hints{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.auth-strength-label{background:currentColor;border-radius:3px;flex-shrink:0;margin-left:auto;padding:2px 7px;font-size:12px;font-weight:500}.auth-strength-label span{color:#fff;position:relative}.auth-hint{border:1px solid var(--border-color);color:var(--text-muted);border-radius:3px;padding:2px 7px;font-size:12px}.auth-hint.is-ok{color:#16a34a;border-color:#16a34a}.auth-forgot{color:var(--text-muted);font-size:12px;text-decoration:none}.auth-forgot:hover{color:var(--primary-color);text-decoration:underline}.auth-sent{color:var(--text-main);padding:4px 0 8px;font-size:14px;line-height:1.6}.auth-sent strong{color:var(--primary-color)}.auth-sent-tip{color:var(--text-muted);margin-top:8px;font-size:13px}.auth-loading{color:var(--text-muted);background:var(--bg-color);justify-content:center;align-items:center;font-size:14px;display:flex;position:fixed;inset:0}.pem-hidden-canvas{pointer-events:none;z-index:-1;width:1920px;height:1080px;position:fixed;top:0;left:-9999px;overflow:hidden}.pem-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pem-modal{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:10px;width:260px;overflow:hidden;box-shadow:0 8px 32px #0000003d}.pem-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px 10px;display:flex}.pem-title{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:13px;font-weight:600;overflow:hidden}.pem-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:14px;line-height:1;transition:color .12s}.pem-close:hover{color:var(--text-main)}.pem-loading,.pem-error{text-align:center;color:var(--text-muted);padding:28px 16px;font-size:13px}.pem-error{color:#ef4444}.pem-body{padding:14px 16px 16px}.pem-modal .tb-canvas-size-label{color:var(--text-main);font-weight:500}.pem-progress{align-items:center;gap:8px;margin-top:4px;display:flex}.pem-progress-bar-wrap{background:var(--border-color);border-radius:4px;flex:1;min-width:0;height:14px;position:relative;overflow:hidden}.pem-progress-bar-fill{background:var(--primary-color);border-radius:4px;height:100%;transition:width .25s;position:absolute;top:0;left:0}.pem-progress-bar-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff61 50%,#0000 100%);animation:1.6s linear infinite pem-shimmer;position:absolute;inset:0}@keyframes pem-shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}.pem-progress-text{color:var(--text-main);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;min-width:30px;font-size:11px;font-weight:500}.pem-cancel{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef4444;border-radius:4px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:500;transition:background .12s,color .12s}.pem-cancel:hover{color:#fff;background:#ef4444}.pem-done{border:1px solid var(--primary-color);border-radius:var(--radius);color:var(--primary-color);cursor:pointer;background:0 0;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:500;transition:background .12s,color .12s}.pem-done:hover{background:var(--primary-color);color:#fff}.cpw-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cpw-modal{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:10px;width:280px;overflow:hidden;box-shadow:0 8px 32px #0000003d}.cpw-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px 10px;display:flex}.cpw-title{color:var(--text-main);font-size:13px;font-weight:600}.cpw-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;line-height:1;transition:color .12s}.cpw-close:hover{color:var(--text-main)}.cpw-form{flex-direction:column;gap:5px;padding:14px 16px 16px;display:flex}.cpw-label{color:var(--text-main);margin-top:4px;font-size:12px;font-weight:500}.cpw-label:first-child{margin-top:0}.cpw-input-wrap{align-items:center;display:flex;position:relative}.cpw-input-wrap .cpw-input{padding-right:30px}.cpw-eye{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:0;line-height:1;transition:color .12s;display:flex;position:absolute;right:6px}.cpw-eye:hover{color:var(--text-main)}.cpw-input{box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-color);width:100%;color:var(--text-main);outline:none;padding:6px 8px;font-size:13px;transition:border-color .12s}.cpw-input:focus{border-color:var(--primary-color)}.cpw-strength{flex-direction:column;gap:5px;margin-bottom:2px;display:flex}.cpw-strength-bar-wrap{background:var(--border-color);border-radius:2px;height:4px;overflow:hidden}.cpw-strength-bar-fill{border-radius:2px;height:100%;transition:width .2s,background .2s}.cpw-strength-hints{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.cpw-strength-label{background:currentColor;border-radius:3px;flex-shrink:0;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:500}.cpw-strength-label span{color:#fff;position:relative}.cpw-hint{border:1px solid var(--border-color);color:var(--text-muted);border-radius:3px;padding:1px 6px;font-size:11px}.cpw-hint.is-ok{color:#16a34a;border-color:#16a34a}.cpw-error{color:#ef4444;margin-top:2px;font-size:12px}.cpw-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.cpw-cancel-btn{border:1px solid var(--text-muted);border-radius:var(--radius);color:var(--text-main);cursor:pointer;background:0 0;padding:5px 14px;font-size:13px;transition:background .12s}.cpw-cancel-btn:hover{background:var(--bg-color)}.cpw-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.cpw-submit-btn{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius);color:#fff;cursor:pointer;padding:5px 14px;font-size:13px;transition:opacity .12s}.cpw-submit-btn:hover{opacity:.88}.cpw-submit-btn:disabled{opacity:.5;cursor:not-allowed}.cpw-done{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:28px 16px 24px;display:flex}.cpw-done p{color:var(--text-main);margin:0;font-size:13px}.cpw-done-btn{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius);color:#fff;cursor:pointer;padding:6px 20px;font-size:13px;transition:opacity .12s}.cpw-done-btn:hover{opacity:.88}.dac-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dac-modal{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:10px;width:300px;overflow:hidden;box-shadow:0 8px 32px #0000003d}.dac-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 14px 10px;display:flex}.dac-title{color:var(--text-main);font-size:13px;font-weight:600}.dac-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;line-height:1;transition:color .12s}.dac-close:hover{color:var(--text-main)}.dac-body{flex-direction:column;gap:6px;padding:14px 16px 16px;display:flex}.dac-desc{color:var(--text-muted);margin:0 0 4px;font-size:12px;line-height:1.5}.dac-label{color:var(--text-main);font-size:12px;font-weight:500}.dac-input-wrap{align-items:center;display:flex;position:relative}.dac-input-wrap .dac-input{padding-right:30px}.dac-eye{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:0;line-height:1;transition:color .12s;display:flex;position:absolute;right:6px}.dac-eye:hover{color:var(--text-main)}.dac-input{box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-color);width:100%;color:var(--text-main);outline:none;padding:6px 8px;font-size:13px;transition:border-color .12s}.dac-input:focus{border-color:var(--primary-color)}.dac-warning{border-radius:var(--radius);background:#fff8f0;border:1px solid #f97316;margin-bottom:2px;padding:10px 12px}.dac-warning-title{color:#c2410c;margin:0 0 6px;font-size:13px;font-weight:600}.dac-warning-text{color:#7c3502;margin:0;font-size:12px;line-height:1.6}.dac-warning-text strong{color:#c2410c}.dac-error{color:#ef4444;margin-top:2px;font-size:12px}.dac-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.dac-cancel-btn{border:1px solid var(--text-muted);border-radius:var(--radius);color:var(--text-main);cursor:pointer;background:0 0;padding:5px 14px;font-size:13px;transition:background .12s}.dac-cancel-btn:hover{background:var(--bg-color)}.dac-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.dac-next-btn{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius);color:#fff;cursor:pointer;padding:5px 14px;font-size:13px;transition:opacity .12s}.dac-next-btn:hover:not(:disabled){opacity:.88}.dac-next-btn:disabled{opacity:.4;cursor:not-allowed}.dac-danger-btn{border-radius:var(--radius);color:#fff;cursor:pointer;background:#ef4444;border:1px solid #ef4444;padding:5px 14px;font-size:13px;transition:opacity .12s}.dac-danger-btn:hover:not(:disabled){opacity:.88}.dac-danger-btn:disabled{opacity:.5;cursor:not-allowed}.projects-page{background:var(--bg-color);flex-direction:column;height:100vh;display:flex;overflow:hidden}.projects-header{background:var(--panel-bg);border-bottom:1px solid var(--border-color);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 12px 0 24px;display:flex;position:relative;box-shadow:0 1px 3px #0f172a0f}.projects-import-bar{pointer-events:none;height:3px;transition:opacity .35s;position:absolute;bottom:0;left:0;right:0}@keyframes import-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.projects-import-bar-fill{background:linear-gradient(90deg, var(--primary-color) 30%, color-mix(in srgb, var(--primary-color) 55%, white) 50%, var(--primary-color) 70%);background-size:200% 100%;border-radius:0 2px 2px 0;height:100%;transition:width .4s;animation:1.6s linear infinite import-shimmer}.projects-logo{color:var(--primary-color);letter-spacing:-.02em;font-size:15px;font-weight:700}.projects-user-wrap{flex-shrink:0;position:relative}.projects-user-avatar{background:var(--primary-color);color:#fff;cursor:pointer;text-transform:uppercase;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:600;transition:opacity .15s;display:flex}.projects-user-avatar:hover{opacity:.85}.projects-user-avatar.is-on{box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--primary-color)}.projects-user-dropdown{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:var(--radius);z-index:200;min-width:160px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001a}.projects-user-dropdown-email{color:var(--text-muted);border-bottom:1px solid var(--border-color);white-space:nowrap;text-overflow:ellipsis;padding:10px 14px;font-size:13px;overflow:hidden}.projects-user-dropdown-item{width:100%;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:none;padding:9px 14px;font-size:13px;transition:background .12s,color .12s;display:block}.projects-user-dropdown-item:hover{background:var(--bg-color);color:#ef4444}.projects-body{flex:1;display:flex;overflow:hidden}.projects-sidebar{background:var(--panel-bg);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:200px;display:flex;overflow:hidden}.projects-sidebar-nav{flex-direction:column;flex:1;gap:1px;min-height:0;padding:10px 8px 0;display:flex;overflow-y:auto}.projects-sidebar-group-wrap{position:relative}.projects-sidebar-item{width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;align-items:center;gap:6px;padding:7px 8px;font-size:13px;transition:background .12s;display:flex}.projects-sidebar-item:hover{background:var(--bg-color)}.projects-sidebar-item.is-active{background:color-mix(in srgb, var(--primary-color) 12%, transparent);color:var(--primary-color);font-weight:500}.projects-sidebar-icon{width:16px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:flex}.projects-sidebar-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.projects-sidebar-count{color:var(--text-muted);flex-shrink:0;font-size:11px}.projects-sidebar-count-gap{flex-shrink:0;width:18px}.projects-sidebar-actions{flex-shrink:0;align-items:center;gap:2px;display:none}.projects-sidebar-group-wrap:hover .projects-sidebar-actions{display:flex}.projects-sidebar-group-wrap:hover .projects-sidebar-count{display:none}.projects-sidebar-action-btn{cursor:pointer;width:18px;height:18px;color:var(--text-muted);border-radius:3px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.projects-sidebar-action-btn:hover{background:var(--border-color);color:var(--text-main)}.projects-sidebar-action-btn.is-danger:hover{color:#ef4444;background:#fee2e2}.projects-sidebar-action-btn.is-star.is-fav{color:#f59e0b}.projects-sidebar-action-btn.is-star.is-fav:hover{color:#d97706;background:#fef3c7}.projects-sidebar-group-wrap.is-fav .projects-sidebar-actions{display:flex}.projects-sidebar-group-wrap.is-fav:not(:hover) .projects-sidebar-action-btn:not(.is-star){display:none}.projects-sidebar-group-wrap:not(.is-fav):not(:hover) .projects-sidebar-actions{visibility:hidden;display:flex}.projects-sidebar-group-wrap:not(.is-fav):not(:hover) .projects-sidebar-action-btn:not(.is-star){display:none}.projects-sidebar-group-search{align-items:center;margin:2px 0 4px;display:flex;position:relative}.projects-sidebar-group-search-icon{color:var(--text-muted);pointer-events:none;opacity:.55;transition:opacity .15s;position:absolute;left:10px}.projects-sidebar-group-search:focus-within .projects-sidebar-group-search-icon{opacity:1}.projects-sidebar-group-search-input{border-radius:var(--radius);width:100%;height:28px;color:var(--text-main);background:0 0;border:1px solid #0000;outline:none;padding:0 22px 0 30px;font-size:13px;transition:background .15s,border-color .15s}.projects-sidebar-group-search-input:hover{background:#0000000a}.projects-sidebar-group-search-input:focus{background:var(--panel-bg);border-color:var(--border-color)}.projects-sidebar-group-search-input::placeholder{color:var(--text-muted);opacity:.6}.projects-sidebar-group-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:2px;transition:color .1s;display:flex;position:absolute;right:5px}.projects-sidebar-group-search-clear:hover{color:var(--text-main)}.projects-sidebar-group-search-empty{color:var(--text-muted);padding:4px 12px 6px;font-size:12px}.projects-sidebar-edit-row{padding:2px 8px}.projects-sidebar-edit-input{box-sizing:border-box;border:1px solid var(--primary-color);background:var(--bg-color);width:100%;color:var(--text-main);border-radius:4px;outline:none;padding:5px 8px;font-size:12px}.projects-sidebar-divider{background:var(--border-color);height:1px;margin:4px 8px}.projects-sidebar-trash-wrap,.projects-sidebar-footer{flex-shrink:0;padding:2px 8px}.projects-sidebar-add-btn:hover{color:var(--primary-color)}.projects-sidebar-new-group{flex-direction:column;gap:6px;display:flex}.projects-sidebar-new-group-actions{gap:6px;display:flex}.projects-sidebar-new-confirm,.projects-sidebar-new-cancel{cursor:pointer;border:1px solid var(--border-color);border-radius:4px;flex:1;padding:4px 0;font-size:12px;transition:background .12s}.projects-sidebar-new-confirm{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.projects-sidebar-new-confirm:hover{opacity:.88}.projects-sidebar-new-cancel{color:var(--text-muted);background:0 0}.projects-sidebar-new-cancel:hover{background:var(--bg-color)}.projects-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.projects-main{scrollbar-gutter:stable;flex:1;min-width:0;padding:20px 28px 0;overflow-y:auto}.projects-bottom-bar{background:var(--panel-bg);border-top:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:8px;height:41px;padding:0 28px;display:flex}.projects-bottom-bar .projects-sort-menu{width:160px;top:auto;bottom:calc(100% + 4px)}.projects-bottom-bar .projects-sort-menu button{text-overflow:ellipsis;display:block;overflow:hidden}.projects-bottom-bar .projects-sort-wrap>.projects-ghost-btn,.projects-bottom-bar>.projects-ghost-btn,.projects-bottom-bar .projects-danger-btn{justify-content:center;width:76px}.projects-bottom-bar .projects-sort-wrap>.projects-ghost-btn{min-width:0}.projects-bottom-bar-actions{margin-left:auto;margin-right:var(--sb-gutter,0px);flex-shrink:0;align-items:center;gap:8px;display:flex}.projects-page-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.projects-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.projects-toolbar,.projects-controls{align-items:center;gap:8px;margin-bottom:20px;display:flex}.projects-title{color:var(--text-main);white-space:nowrap;flex-shrink:0;align-items:baseline;gap:6px;margin:0;font-size:16px;font-weight:600;display:flex}.projects-title-count{color:var(--text-muted);font-size:12px;font-weight:400}.projects-search-wrap{flex:1;align-items:center;max-width:240px;display:flex;position:relative}.projects-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:8px}.projects-search-input{border-radius:var(--radius);background:var(--panel-bg);width:100%;height:30px;color:var(--text-main);border:1px solid #c4c7cd;outline:none;padding:0 28px;font-size:13px;transition:border-color .12s}.projects-search-input:focus{border-color:var(--primary-color)}.projects-search-input::placeholder{color:var(--text-muted)}.projects-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:2px;transition:color .1s;display:flex;position:absolute;right:6px}.projects-search-clear:hover{color:var(--text-main)}.projects-sort-wrap{flex-shrink:0;position:relative}.projects-sort-wrap>.projects-ghost-btn{justify-content:space-between;min-width:105px}.projects-sort-menu{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:var(--radius);z-index:100;min-width:100%;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 4px 12px #0000001a}.projects-sort-menu button{width:100%;color:var(--text-main);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;justify-content:space-between;align-items:center;gap:6px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.projects-sort-menu button:hover{background:var(--bg-color)}.projects-sort-menu button.is-active{color:var(--primary-color)}.projects-view-toggle{border-radius:var(--radius);border:1px solid #c4c7cd;flex-shrink:0;display:flex;overflow:hidden}.projects-view-btn{cursor:pointer;width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.projects-view-btn+.projects-view-btn{border-left:1px solid var(--border-color)}.projects-view-btn:hover{background:var(--bg-color);color:var(--text-main)}.projects-view-btn.is-active{background:var(--bg-color);color:var(--primary-color)}.projects-ghost-btn{height:30px;color:var(--text-main);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #c4c7cd;flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-size:13px;transition:border-color .12s,color .12s;display:inline-flex}.projects-ghost-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.projects-ghost-btn:disabled{opacity:.4;cursor:not-allowed}.projects-create-btn{background:var(--primary-color);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;justify-content:center;align-items:center;width:98px;height:30px;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s;display:inline-flex}.projects-create-btn:hover{background:var(--primary-hover)}.projects-create-btn:disabled{opacity:.5;cursor:not-allowed}.projects-import-btn{width:98px;height:30px;color:var(--text-main);border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #9ca3af;flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-size:13px;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.projects-import-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.projects-import-btn.is-importing{opacity:.75}.projects-import-btn.is-importing:hover{color:#ef4444;opacity:1;border-color:#ef4444}.projects-select-all{cursor:pointer;color:var(--text-main);flex-shrink:0;align-items:center;gap:6px;font-size:13px;display:flex}.projects-selection-count{color:var(--text-muted);flex-shrink:0;font-size:13px}.projects-danger-btn{color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:#ef4444;border:none;flex-shrink:0;align-items:center;gap:5px;height:30px;padding:0 12px;font-size:13px;transition:opacity .12s;display:inline-flex}.projects-danger-btn:hover:not(:disabled){opacity:.88}.projects-danger-btn:disabled{opacity:.4;cursor:not-allowed}.projects-toolbar-divider{background:var(--border-color);flex-shrink:0;width:1px;height:16px}.projects-loading,.projects-error{text-align:center;color:var(--text-muted);padding:60px 20px;font-size:14px}.projects-error{color:#ef4444}.projects-empty{color:var(--text-muted);flex-direction:column;align-items:center;padding:80px 20px 40px;display:flex}.projects-empty-icon{margin-bottom:12px;font-size:32px}.projects-empty-title{color:var(--text-main);margin:0 0 6px;font-size:15px;font-weight:500}.projects-empty-sub{margin:0 0 20px;font-size:13px}.projects-empty-link{color:var(--primary-color);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.projects-empty-actions{gap:8px;display:flex}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.project-card{background:var(--panel-bg);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;transition:border-color .15s,box-shadow .15s;position:relative;overflow:visible}.project-card:hover{border-color:var(--primary-color);box-shadow:0 2px 12px #00000014}.project-card.is-selected{border-color:var(--primary-color);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary-color) 25%, transparent)}.project-card-preview{aspect-ratio:16/9;background:var(--bg-color);border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.project-card-preview img{object-fit:cover;width:100%;height:100%;display:block}.project-card-preview-placeholder{color:var(--text-muted);opacity:.5;font-size:11px}.project-card-checkbox{border:1.5px solid var(--border-color);background:var(--panel-bg);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:border-color .12s,background .12s;display:flex}.project-card-checkbox.is-checked{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.project-card-checkbox.is-indeterminate{border-color:var(--primary-color);background:color-mix(in srgb, var(--primary-color) 15%, var(--panel-bg));color:var(--primary-color)}.project-card-preview .project-card-checkbox{z-index:2;opacity:1;cursor:pointer;transition:border-color .12s,background .12s;position:absolute;top:8px;left:8px}.project-card:hover .project-card-preview .project-card-checkbox:not(.is-checked){border-color:var(--primary-color)}.project-card-actions{flex-shrink:0;align-items:center;gap:0;display:flex}.pcard-action-btn{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:flex}.pcard-action-btn:hover{background:var(--bg-color);color:var(--primary-color)}.pcard-action-btn.is-danger:hover{color:#ef4444;background:#ef444414}.pcard-action-move{position:relative}.pcard-submenu{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:var(--radius);z-index:9999;max-height:min(320px,60vh);overflow:hidden auto;box-shadow:0 4px 12px #0000001a}.pcard-submenu-item{width:100%;color:var(--text-main);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.pcard-submenu-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pcard-submenu-item:hover{background:var(--bg-color)}.pcard-submenu-item.is-current{color:var(--primary-color);font-weight:500}.project-card-footer{flex-direction:column;gap:4px;padding:8px 10px 8px 12px;display:flex}.project-card-title-row{align-items:center;gap:6px;min-width:0;display:flex}.project-card-title{min-width:0;color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:500;overflow:hidden}.project-card-group-tag{color:var(--text-muted);flex-shrink:0;align-items:center;gap:3px;width:72px;font-size:11px;display:flex}.project-card-group-tag>svg{flex-shrink:0}.project-card-group-tag>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-card-time{color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:11px}.projects-list{border:1px solid var(--border-color);border-radius:8px;flex-direction:column;display:flex;overflow:visible}.projects-list-header{background:color-mix(in srgb, var(--border-color) 60%, var(--bg-color));border-bottom:1px solid var(--border-color);height:36px;color:var(--text-muted);border-radius:8px 8px 0 0;align-items:center;padding:0 10px;font-size:12px;font-weight:500;display:flex}.projects-list-header .project-row-group,.projects-list-header .project-row-time,.projects-list-header .project-row-actions{color:var(--text-main)}.project-row{border-bottom:1px solid var(--border-color);cursor:pointer;background:var(--panel-bg);align-items:center;height:52px;padding:0 10px;transition:background .1s;display:flex}.project-row:last-child{border-bottom:none;border-radius:0 0 8px 8px}.project-row:hover{background:color-mix(in srgb, var(--primary-color) 10%, var(--panel-bg))}.project-row.is-selected{background:color-mix(in srgb, var(--primary-color) 12%, transparent)}.project-row-check{flex-shrink:0;align-items:center;width:36px;display:flex}.projects-list-header .project-row-check{cursor:pointer}.projects-list-header .project-row-check .project-card-checkbox{opacity:1}.project-row .project-row-check .project-card-checkbox{opacity:1;cursor:pointer;transition:border-color .12s,background .12s}.project-row-thumb{flex-shrink:0;align-items:center;width:64px;padding-right:10px;display:flex}.project-row-thumb img{object-fit:cover;border:1px solid var(--border-color);border-radius:3px;width:54px;height:30px;display:block}.project-row-thumb-placeholder{border:1px solid var(--border-color);background:var(--bg-color);border-radius:3px;width:54px;height:30px}.project-row-title{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-right:12px;font-size:13px;font-weight:500;overflow:hidden}.project-row-group{width:130px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;padding-right:12px;font-size:12px;overflow:hidden}.project-row-time{width:120px;color:var(--text-muted);flex-shrink:0;font-size:12px}.project-row-actions{flex-shrink:0;justify-content:flex-start;align-items:center;width:164px;display:flex;position:relative}.pp-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pp-modal{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:10px;flex-direction:column;gap:14px;width:300px;padding:20px 20px 16px;display:flex;box-shadow:0 8px 32px #0003}.pp-modal-msg{color:var(--text-main);margin:0;font-size:13px;line-height:1.6}.pp-modal-input{box-sizing:border-box;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-color);width:100%;color:var(--text-main);outline:none;padding:7px 10px;font-size:13px;transition:border-color .12s}.pp-modal-input:focus{border-color:var(--primary-color)}.pp-modal-actions{justify-content:flex-end;gap:8px;display:flex}.pp-modal-cancel{border:1px solid var(--text-muted);border-radius:var(--radius);height:30px;color:var(--text-main);cursor:pointer;background:0 0;padding:0 14px;font-size:13px;transition:background .12s}.pp-modal-cancel:hover{background:var(--bg-color)}.pp-modal-confirm{background:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--radius);color:#fff;cursor:pointer;height:30px;padding:0 14px;font-size:13px;transition:opacity .12s}.pp-modal-confirm:hover:not(:disabled){opacity:.88}.pp-modal-confirm:disabled{opacity:.4;cursor:not-allowed}.pp-modal-confirm.is-danger{background:#ef4444;border-color:#ef4444}
