:root{--tapestry-orange:#ff9049;--tapestry-coral:#ff5c5c;--tapestry-pink:#ff2d79;--tapestry-magenta:#e91e63;--primary:#ff5c5c;--primary-hover:#e94b4b;--primary-dark:#d93a3a;--primary-light:#ff9049;--secondary:#ff2d79;--accent:#e91e63;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--text-primary:#3d3d3d;--text-secondary:#64748b;--text-muted:#94a3b8;--bg-primary:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--border:#e5e5e5;--border-light:#f0f0f0;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--radius:12px;--radius-sm:8px;--radius-lg:16px;--gradient-tapestry:linear-gradient(135deg,#ff9049,#ff5c5c 50%,#ff2d79)}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Helvetica Neue,Arial,sans-serif;color:var(--text-primary);background:var(--bg-secondary);margin:0;padding:0;line-height:1.6}.legacy-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--bg-primary);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);table-layout:auto}.legacy-td,.legacy-th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-light);vertical-align:middle;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legacy-td.hoverable-cell{position:relative}.legacy-td.audio-cell,.legacy-td.hoverable-cell{overflow:visible!important}.legacy-th{font-weight:600;background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.legacy-td.col-id{width:60px;max-width:60px}.legacy-td.col-order{width:70px;max-width:70px}.legacy-td.col-actions{width:80px;max-width:80px;white-space:nowrap}.legacy-td.col-expand{white-space:normal;word-wrap:break-word;overflow-wrap:break-word;min-width:100px}.legacy-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:normal;word-break:break-word}.legacy-clamp,.legacy-truncate{overflow:hidden;text-overflow:ellipsis}.legacy-truncate{white-space:nowrap;max-width:100%;display:block}.legacy-table-fixed{table-layout:fixed}.legacy-table-fixed .legacy-td{overflow:hidden}.legacy-icon-group{display:inline-flex;align-items:center;gap:0;padding:0;margin:0;white-space:nowrap}.legacy-icon-group .legacy-icon-btn{margin:0;padding:3px;border-radius:4px;font-size:14px;min-width:20px;min-height:20px}.legacy-icon-group .legacy-icon-btn svg{width:14px;height:14px}.legacy-expand-btn{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-weight:700;font-size:16px;width:32px;height:32px;border-radius:999px;box-shadow:var(--shadow-sm);opacity:1!important}.legacy-expand-btn.expanded,.legacy-expand-btn:hover{border-color:var(--primary);color:var(--primary);background:rgba(255,92,92,.12);transform:scale(1.05)}.legacy-row-actions button{margin-right:8px}.legacy-group{background:linear-gradient(to right,var(--bg-tertiary),var(--bg-secondary));font-weight:600;color:var(--text-primary)}.legacy-badge{display:inline-flex;align-items:center;background:var(--primary);color:#fff;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;box-shadow:var(--shadow-sm)}.legacy-badge-warn{background:var(--danger);color:#fff}.legacy-link-like{color:var(--primary);text-decoration:none;cursor:pointer;font-weight:500;transition:color .2s ease}.legacy-link-like:hover{color:var(--primary-hover);text-decoration:underline}.legacy-icon-btn{border:none;background:transparent;border-radius:var(--radius-sm);padding:6px;cursor:pointer;font-size:16px;transition:all .15s ease;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}.legacy-icon-btn:hover{background:var(--bg-tertiary);color:var(--primary);transform:scale(1.1)}.legacy-icon-btn:active{transform:scale(.95)}.legacy-icon-btn.edit-btn{color:var(--text-secondary)}.legacy-icon-btn.edit-btn:hover{color:var(--primary);background:rgba(255,92,92,.1)}.legacy-icon-btn.delete-btn{color:var(--text-muted)}.legacy-icon-btn.delete-btn:hover{color:var(--danger);background:rgba(239,68,68,.1)}.legacy-icon-btn.add-btn{color:#fff;background:var(--gradient-tapestry);padding:8px 16px;gap:6px;font-weight:500;box-shadow:var(--shadow-sm)}.legacy-icon-btn.add-btn:hover{opacity:.9;transform:translateY(-2px);box-shadow:var(--shadow-md)}.legacy-td .legacy-icon-btn{margin-left:8px;opacity:0;transition:opacity .15s ease,transform .15s ease}.legacy-table tbody tr:hover .legacy-icon-btn,.legacy-td .legacy-icon-btn:focus{opacity:1}.legacy-muted{color:var(--text-muted);font-style:italic}.legacy-section-header{font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.1em;background:var(--gradient-tapestry);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;border-bottom:2px solid var(--primary);padding-bottom:8px;margin:24px 0 16px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:28px;width:560px;max-width:90vw;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-card h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 20px}.modal-card input,.modal-card select,.modal-card textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:15px;transition:all .2s ease;background:var(--bg-primary);color:var(--text-primary)}.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn{padding:10px 18px;border:1px solid var(--border);background:var(--bg-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;color:var(--text-primary)}.btn:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#dc2626;border-color:#dc2626}input[type=number],input[type=text],input[type=url],select,textarea{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;transition:all .2s ease;background:var(--bg-primary);color:var(--text-primary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}label{font-weight:500;color:var(--text-secondary);font-size:14px}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border);transition:.3s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:var(--shadow-sm)}.toggle-switch input:checked+.toggle-slider{background-color:var(--success)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}h2{font-size:28px;font-weight:700;margin:0 0 24px}h2,h3{color:var(--text-primary)}h3{font-size:20px;font-weight:600;margin:20px 0 12px}.add-icon{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--gradient-tapestry);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-size:14px;transition:all .2s ease;box-shadow:var(--shadow-sm)}.add-icon:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.legacy-table tbody tr:nth-child(2n){background:var(--bg-secondary)}.legacy-table tbody tr:hover{background:#eff6ff}.card{background:var(--bg-primary);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.loading{color:var(--text-secondary);font-style:italic}.error{color:var(--danger);background:#fef2f2;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid #fecaca}.file-link{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all .2s ease;text-decoration:none!important;min-width:0;max-width:100%}.file-link:hover{background:#e8e8e8;transform:translateX(2px)}.file-size-badge{display:inline-flex;align-items:center;padding:2px 8px;background:linear-gradient(135deg,var(--tapestry-orange),var(--tapestry-coral));color:#fff;font-size:11px;font-weight:600;border-radius:10px;letter-spacing:.02em;transition:background .2s ease,color .2s ease}.file-size-badge--ok{background:rgba(16,185,129,.18);color:#047857}.file-size-badge--warn{background:rgba(245,158,11,.2);color:#92400e}.file-size-badge--danger{background:rgba(239,68,68,.2);color:#b91c1c}.char-usage{font-size:12px;color:var(--text-secondary);margin-top:6px;text-align:right}.char-usage--over{color:var(--danger);font-weight:600}.over-limit-cell{background:rgba(239,68,68,.08);border-radius:6px;padding:2px 4px;display:inline-block}.shot-composer-grid{display:grid;grid-template-columns:minmax(280px,340px) 1fr;grid-gap:24px;gap:24px;align-items:start}@media (max-width:1120px){.shot-composer-grid{grid-template-columns:1fr}}.shot-list-panel{background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 200px);overflow:hidden}.shot-list-panel__header{display:flex;align-items:flex-start;justify-content:space-between}.shot-list-panel__title{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.shot-list-panel__hint{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.shot-list-panel__count{text-align:right;font-size:12px;color:var(--text-secondary);display:flex;flex-direction:column;gap:2px}.shot-list-panel__count strong{font-size:18px;color:var(--text-primary);margin-right:4px}.shot-list{display:flex;flex-direction:column;gap:8px;flex:1 1;min-height:0;overflow-y:auto;padding-right:6px}.shot-list--compact{gap:6px}.shot-list__section-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:8px 0 2px}.shot-list-empty{border:1px dashed var(--border);border-radius:12px;padding:12px;text-align:center;color:var(--text-secondary)}.shot-list-empty__hint{font-size:12px;margin:4px 0 0}.shot-list-item{border:1px solid transparent;border-radius:12px;padding:6px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-tertiary);transition:border-color .2s ease,background .2s ease}.shot-list-item:hover:not(.shot-list-item--disabled){background:rgba(59,130,246,.06);border-color:rgba(59,130,246,.2)}.shot-list-item--active{border-color:var(--primary);background:rgba(59,130,246,.12)}.shot-list-item--active:hover{background:rgba(59,130,246,.16)}.shot-list-item--flash{animation:shot-save-flash .6s ease-out}@keyframes shot-save-flash{0%{background:rgba(16,185,129,.3);border-color:rgba(16,185,129,.6)}50%{background:rgba(16,185,129,.5);border-color:rgba(16,185,129,.8)}to{background:var(--bg-tertiary);border-color:transparent}}.shot-list-item--disabled{opacity:.55}.shot-list-item__meta{display:flex;flex-direction:column;gap:2px}.shot-list-item__eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 2px}.shot-list-item__label{margin:0;font-weight:600;color:var(--text-primary);font-size:12px}.shot-list-item__actions{display:flex;gap:6px;align-items:center}.shot-action-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:3px 7px;font-size:11px;font-weight:600;color:var(--text-primary);line-height:1.1;transition:background .2s ease,border-color .2s ease}.shot-action-btn:hover:not(:disabled){background:var(--bg-secondary)}.shot-action-btn:disabled{opacity:.4}.shot-action-btn--play{border-color:var(--primary);color:var(--primary);background:rgba(59,130,246,.12)}.shot-composer-viewer{border:1px solid var(--border);border-radius:20px;background:#050505;height:520px;max-height:520px;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.shot-composer-viewer__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-align:center;padding:32px}.shot-composer-viewer__canvas{position:relative;width:100%;height:100%}.shot-composer-viewer__canvas-inner{width:100%;height:100%;min-height:520px}.shot-composer-viewer__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);color:#fff;font-weight:600;letter-spacing:.02em;text-align:center;padding:16px}.shot-composer-viewer__overlay.error{background:rgba(220,38,38,.3)}@keyframes kml-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.shot-composer-viewer__scene-meta{position:absolute;top:20px;right:20px;background:rgba(5,5,5,.6);color:#fff;padding:12px 18px;border-radius:16px;text-align:right;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:220px;pointer-events:none}.shot-composer-viewer__scene-eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#ffe6c5}.shot-composer-viewer__scene-title{margin:0;font-size:20px;font-weight:600;line-height:1.3}.section-card{background:var(--bg-primary);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);margin-bottom:20px}.language-group{display:grid;grid-template-columns:220px 1fr auto;grid-gap:12px;gap:12px;padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-light);margin-bottom:12px}.language-group-header{grid-column:1/-1;font-weight:600;font-size:13px;color:var(--text-primary);margin-bottom:4px}.action-group{gap:6px;justify-content:flex-end}.action-group,.narration-field{display:flex;align-items:center}.narration-field{gap:8px;padding:6px 0}.narration-label{min-width:60px;font-size:13px;color:var(--text-secondary);font-weight:500}.detail-grid{display:grid;grid-template-columns:220px 1fr auto;grid-row-gap:14px;row-gap:14px;grid-column-gap:16px;column-gap:16px;align-items:start}.detail-grid label{padding-top:8px}.modal-card input[type=date]{padding:12px 14px;min-width:240px}.hoverable-cell{position:relative;transition:background-color .2s ease}.hoverable-cell:hover{background-color:rgba(255,92,92,.04)!important}.floating-toolbar{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:inline-flex;flex-wrap:nowrap;align-items:center;gap:2px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:2px;box-shadow:0 4px 12px rgba(0,0,0,.15),0 2px 4px rgba(0,0,0,.1);z-index:1000;animation:floatingToolbarFadeIn .15s ease-in-out;pointer-events:auto;width:auto;height:auto}@keyframes floatingToolbarFadeIn{0%{opacity:0;transform:translateY(-50%) scale(.95)}to{opacity:1;transform:translateY(-50%) scale(1)}}.floating-toolbar .legacy-icon-btn{opacity:1!important;margin:0;padding:6px;min-width:28px;min-height:28px;flex-shrink:0;font-size:16px}.floating-toolbar .legacy-icon-btn:hover{background:var(--bg-tertiary)}.floating-toolbar button,.floating-toolbar>*{flex-shrink:0;white-space:nowrap}.alert-info{background:#f0f7ff;border:1px solid #cce0ff;border-radius:var(--radius-sm);padding:10px 14px}.alert-warning{background:#fff8e1;border:1px solid var(--warning);border-radius:var(--radius-sm);padding:12px 16px}.alert-success{background:#ecfdf5;border:1px solid var(--success);color:#065f46;border-radius:var(--radius-sm);padding:12px 16px}