// ScenePresetPanel component styles // Story 3.2: Scene Auto-Apply & ConfirmationBar // // Import rule: All selectors scoped under .scrying-pool or .directors-board namespace // Use --sp-* semantic tokens only, never Foundry tokens directly // Panel container .directors-board__preset-panel { // Base styles background-color: var(--sp-surface); border: 1px solid var(--sp-border); border-radius: 6px; padding: 12px; margin-top: 12px; // Layout display: flex; flex-direction: column; gap: 8px; // Typography font-size: 14px; line-height: 1.4; color: var(--sp-text-primary); } // Panel header .directors-board__preset-panel-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; padding-bottom: 8px; border-bottom: 1px solid var(--sp-border-subtle); } .directors-board__preset-panel-title { margin: 0; font-size: 15px; font-weight: 600; color: var(--sp-text-primary); } // Panel body .directors-board__preset-panel-body { display: flex; flex-direction: column; gap: 10px; } // Panel row .directors-board__preset-panel-row { display: flex; align-items: center; gap: 8px; &--hint { font-size: 12px; color: var(--sp-text-secondary); margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--sp-border-subtle); } } // Panel label .directors-board__preset-panel-label { display: flex; align-items: center; gap: 8px; cursor: default; user-select: none; // Ensure proper spacing when label wraps flex-wrap: wrap; align-items: flex-start; } // Toggle switch .directors-board__preset-panel-toggle { // Button reset background: transparent; border: none; padding: 0; margin: 0; cursor: pointer; // Appearance width: 18px; height: 18px; border: 2px solid var(--sp-border); border-radius: 4px; background-color: var(--sp-surface); position: relative; transition: background-color 150ms ease, border-color 150ms ease; // Checked state &:checked { background-color: var(--sp-accent); border-color: var(--sp-accent); } // After pseudo-element for toggle effect &:after { content: ''; position: absolute; top: 1px; left: 1px; width: 12px; height: 12px; background-color: var(--sp-surface); border-radius: 2px; transition: transform 150ms ease, background-color 150ms ease; } &:checked:after { transform: translateX(100%); background-color: var(--sp-surface-inverse, white); } // Focus state &:focus { outline: 2px solid var(--sp-focus); outline-offset: 2px; } // Hover state &:hover:not(:checked) { background-color: var(--sp-surface-hover, rgba(0, 0, 0, 0.05)); } } // Preset selector .directors-board__preset-panel-select { // Button reset background: transparent; border: 1px solid var(--sp-border); padding: 6px 8px; margin: 0; cursor: pointer; // Typography font-family: inherit; font-size: 14px; color: var(--sp-text-primary); // Border and radius border-radius: 4px; // Transition transition: border-color 150ms ease, box-shadow 150ms ease; // Hover state &:hover:not(:disabled) { border-color: var(--sp-border-hover, var(--sp-accent)); } // Focus state &:focus { outline: none; border-color: var(--sp-focus); box-shadow: 0 0 0 2px rgba(var(--sp-focus-rgb, 0, 0, 255), 0.2); } // Disabled state &:disabled { opacity: 0.5; cursor: not-allowed; } } // Pre-delay slider container .directors-board__preset-panel-slider { // Remove default slider styling -webkit-appearance: none; appearance: none; width: 120px; height: 6px; background: var(--sp-surface-subtle, rgba(0, 0, 0, 0.1)); border-radius: 3px; outline: none; cursor: pointer; // Webkit slider thumb &::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; background: var(--sp-accent); border-radius: 50%; cursor: pointer; transition: transform 150ms ease; &:hover { transform: scale(1.1); } } // Firefox slider thumb &::-moz-range-thumb { width: 16px; height: 16px; background: var(--sp-accent); border-radius: 50%; cursor: pointer; border: none; transition: transform 150ms ease; &:hover { transform: scale(1.1); } } // Focus state &:focus { outline: none; } } // Delay value display .directors-board__preset-panel-delay-value { display: inline-block; min-width: 40px; text-align: right; font-family: monospace; font-size: 12px; color: var(--sp-text-secondary); padding: 0 4px; } // Panel message (when no scene) .directors-board__preset-panel-message { margin: 0; color: var(--sp-text-secondary); font-style: italic; text-align: center; padding: 8px 0; } // Reduced motion: disable transitions @media (prefers-reduced-motion: reduce) { .directors-board__preset-panel-toggle, .directors-board__preset-panel-select, .directors-board__preset-panel-slider::-webkit-slider-thumb, .directors-board__preset-panel-slider::-moz-range-thumb { transition: none; } .directors-board__preset-panel-slider::-webkit-slider-thumb:hover, .directors-board__preset-panel-slider::-moz-range-thumb:hover { transform: none; } }