@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-app:#0f172a;--bg-sidebar:#0f172a;--bg-surface:#1e293b;--bg-surface-hover:#334155;--bg-field:#1e293b;--accent:#3b82f6;--accent-hover:#2563eb;--accent-subtle:#3b82f626;--accent-ring:#3b82f64d;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#334155;--border-subtle:#33415580}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-app);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#root{width:100%;height:100vh}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.toolbar{background:var(--bg-sidebar);width:224px;color:var(--text-primary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.toolbar-section{border-bottom:1px solid var(--border-subtle);padding:12px}.toolbar-section:last-child{border-bottom:none}.toolbar-section h3{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);margin:0 0 8px;font-size:10px;font-weight:600}.tool-grid{grid-template-columns:1fr 1fr;gap:3px;display:grid}.tool-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:7px 8px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.tool-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.tool-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tool-btn.active{background:var(--accent-subtle);border-color:var(--accent-ring);color:var(--accent)}.tool-icon{text-align:center;flex-shrink:0;width:18px;font-size:14px;line-height:1}.tool-label{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.color-picker{flex-wrap:wrap;gap:6px;display:flex}.color-btn{cursor:pointer;border:2px solid #0000;border-radius:50%;outline:none;width:24px;height:24px;transition:all .15s;position:relative}.color-btn:hover{border-color:#ffffff4d;transform:scale(1.15)}.color-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.color-btn.active{border-color:#fff;transform:scale(1.15);box-shadow:0 0 8px #ffffff40}.stroke-row{align-items:center;gap:10px;display:flex}.stroke-slider{appearance:none;background:var(--bg-surface-hover);cursor:pointer;border-radius:3px;outline:none;flex:1;height:6px}.stroke-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--bg-sidebar);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s;box-shadow:0 1px 4px #0000004d}.stroke-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.stroke-slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--bg-sidebar);cursor:pointer;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0000004d}.stroke-value{color:var(--text-muted);text-align:right;min-width:24px;font-family:Courier New,monospace;font-size:11px}.team-colors{flex-direction:column;gap:6px;display:flex}.team-colors label{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:2px 0;font-size:12px;font-weight:500;display:flex}.team-colors input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:28px;height:28px;padding:2px;transition:border-color .15s}.team-colors input[type=color]:hover{border-color:var(--text-muted)}.action-buttons{flex-direction:column;gap:4px;display:flex}.action-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s;display:flex}.action-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--text-muted)}.action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.action-btn.danger:hover{color:var(--danger);background:#ef44441a;border-color:#ef44444d}.action-btn.export{background:var(--accent);color:#fff;border:none;font-weight:600;box-shadow:0 2px 8px #3b82f640}.action-btn.export:hover{background:var(--accent-hover);box-shadow:0 4px 12px #3b82f659}.timeline{background:var(--bg-sidebar);border-top:1px solid var(--border);flex-shrink:0;align-items:stretch;height:100px;display:flex}.timeline-controls{border-right:1px solid var(--border-subtle);flex-direction:column;justify-content:center;gap:6px;min-width:240px;padding:8px 10px;display:flex}.tl-controls-row{gap:4px;display:flex}.tl-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:5px 10px;font-family:inherit;font-size:11px;font-weight:500;transition:all .15s;display:flex}.tl-btn:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary)}.tl-btn:disabled{opacity:.4;cursor:not-allowed}.tl-btn-primary{background:var(--accent);color:#fff;border:none;font-weight:600}.tl-btn-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.tl-btn-accent{color:#fff;background:#10b981;border:none;font-weight:600}.tl-btn-accent:hover:not(:disabled){color:#fff;background:#059669}.tl-btn-export{color:#fff;background:#8b5cf6;border:none;font-weight:700}.tl-btn-export:hover:not(:disabled){color:#fff;background:#7c3aed}.tl-btn-video{color:#fff;background:#e11d48;border:none;font-weight:700}.tl-btn-video:hover:not(:disabled){color:#fff;background:#be123c}.timeline-frames{flex:1;align-items:center;gap:6px;padding:8px 10px;display:flex;overflow-x:auto}.tl-frame{border:2px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:8px;flex-direction:column;flex-shrink:0;min-width:100px;max-width:130px;padding:6px 8px;transition:all .15s;display:flex}.tl-frame:hover{border-color:var(--text-muted);background:var(--bg-surface-hover)}.tl-frame.active{border-color:var(--accent);background:var(--accent-subtle)}.tl-frame-header{align-items:center;gap:4px;margin-bottom:2px;display:flex}.tl-frame-label{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:0;font-family:inherit;font-size:11px;font-weight:600}.tl-frame-label:focus{color:var(--accent)}.tl-frame-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:10px;line-height:1;transition:color .15s}.tl-frame-remove:hover{color:var(--danger)}.tl-frame-info{color:var(--text-muted);align-items:center;gap:6px;font-size:10px;display:flex}.tl-frame-index{background:var(--bg-surface-hover);border-radius:4px;padding:1px 5px;font-weight:600}.tl-frame-duration{align-items:center;gap:2px;margin-top:3px;display:flex}.tl-duration-input{background:var(--bg-surface-hover);border:1px solid var(--border);width:50px;color:var(--text-secondary);text-align:right;border-radius:4px;outline:none;padding:1px 4px;font-family:Courier New,monospace;font-size:10px}.tl-duration-input:focus{border-color:var(--accent)}.tl-duration-unit{color:var(--text-muted);font-size:9px}.tl-empty{color:var(--text-muted);padding:10px;font-size:12px}.timeline-frames::-webkit-scrollbar{height:4px}.timeline-frames::-webkit-scrollbar-track{background:0 0}.timeline-frames::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.app{background:var(--bg-app);height:100vh;color:var(--text-primary);outline:none;flex-direction:column;display:flex}.app-header{background:var(--bg-sidebar);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:48px;padding:0 20px;display:flex}.app-header h1{color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase;margin:0;font-size:14px;font-weight:700}.sport-badge{text-transform:uppercase;letter-spacing:.15em;background:var(--accent-subtle);color:var(--accent);border-radius:100px;padding:3px 10px;font-size:10px;font-weight:600}.app-body{flex:1;display:flex;overflow:hidden}.board-wrapper{flex:1;position:relative;overflow:hidden}.board-container{background:var(--bg-field);width:100%;height:100%}
