:root { --bg-main: #f1f5f9; --bg-card: #ffffff; --text-primary: #1e293b; --text-secondary: #64748b; --border-color: #e2e8f0; --primary: #3b82f6; --primary-hover: #2563eb; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 0.75rem; --spacing-lg: 1rem; --spacing-xl: 1.25rem; --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); --shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); } body { font-family: 'Inter', sans-serif; background-color: var(--bg-main); color: var(--text-primary); line-height: 1.5; } .card { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); } .card-header { padding: var(--spacing-md) var(--spacing-lg); border-bottom: 1px solid var(--border-color); } .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--spacing-sm); border-radius: var(--radius-md); padding: 0.6rem var(--spacing-lg); font-weight: 600; transition: all 0.2s ease-in-out; cursor: pointer; border: 1px solid transparent; } .btn-primary { background-color: var(--primary); color: #ffffff; border-color: var(--primary); } .btn-primary:hover { background-color: var(--primary-hover); border-color: var(--primary-hover); } .control-button { transition: all 0.2s ease-in-out; background-color: #f8fafc; border: 1px solid var(--border-color); color: var(--text-secondary); } .control-button.active { background-color: var(--primary); color: #ffffff; border-color: var(--primary); box-shadow: 0 2px 5px rgba(59, 130, 246, 0.3); } .control-button .icon-solid { display: none; } .control-button.active .icon-outline { display: none; } .control-button.active .icon-solid { display: inline-block; } .cam-badge { position: absolute; left: 12px; bottom: 12px; background-color: rgba(15, 23, 42, 0.75); color: #ffffff; font-weight: 700; font-size: 0.75rem; padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); letter-spacing: 0.05em; z-index: 10; pointer-events: none; } .modal { position: fixed; inset: 0; display: none; z-index: 50; } .modal.show { display: block; } .modal-backdrop { position: absolute; inset: 0; background-color: rgba(15, 23, 42, 0.5); backdrop-filter: blur(2px); } .modal-container { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: var(--spacing-lg); } .modal-close-btn { color: var(--text-secondary); background: transparent; border: none; font-size: 1.25rem; line-height: 1; cursor: pointer; padding: var(--spacing-xs); border-radius: var(--radius-sm); } .modal-close-btn:hover { color: var(--text-primary); background-color: #f1f5f9; } .modal-input { width: 100%; padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 0.875rem; background-color: #f8fafc; transition: all 0.2s ease-in-out; } .modal-input:focus { outline: 2px solid var(--primary); outline-offset: 2px; border-color: var(--primary); background-color: #ffffff; } @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } @media (max-width: 768px) { :root { --spacing-lg: 1rem; --spacing-xl: 1rem; } .card-header { padding: var(--spacing-sm) var(--spacing-md); } }