/** * Player Privacy Panel styles. * * Uses SP (Scrying Pool) semantic token system. * All colors and spacing come from SP tokens, not Foundry tokens directly. */ // Import SP tokens @import "../tokens/_base.less"; .scrying-pool { // Dialog root element .player-privacy-panel { background: var(--sp-surface); color: var(--sp-text-primary); } // Container .player-privacy-panel__container { display: flex; flex-direction: column; min-width: 300px; max-width: 400px; } // Header .player-privacy-panel__header { padding: var(--sp-spacing-sm, 8px) var(--sp-spacing-md, 12px); border-bottom: 1px solid var(--sp-border); background: var(--sp-surface); } .player-privacy-panel__title { margin: 0; font-size: 1.1em; font-weight: 600; color: var(--sp-text-primary); text-align: center; } // Body .player-privacy-panel__body { padding: var(--sp-spacing-md, 12px); background: var(--sp-surface); } // Notice (read-only) .player-privacy-panel__notice { padding: var(--sp-spacing-sm, 8px) var(--sp-spacing-md, 12px); margin-bottom: var(--sp-spacing-md, 12px); border-radius: var(--sp-border-radius, 4px); font-size: 0.85em; text-align: center; } .player-privacy-panel__notice--readonly { background: var(--sp-urgency-awareness); color: var(--sp-text-secondary); border: 1px solid var(--sp-border); } // Section .player-privacy-panel__section { margin-bottom: var(--sp-spacing-md, 12px); } .player-privacy-panel__section-header { margin: 0 0 var(--sp-spacing-xs, 4px) 0; font-size: 0.95em; font-weight: 600; color: var(--sp-text-primary); } .player-privacy-panel__section-description { margin: 0 0 var(--sp-spacing-md, 12px) 0; font-size: 0.85em; color: var(--sp-text-secondary); line-height: 1.4; } // Effects list .player-privacy-panel__effects-list { display: flex; flex-direction: column; gap: var(--sp-spacing-md, 12px); } // Individual effect .player-privacy-panel__effect { padding: var(--sp-spacing-sm, 8px); border: 1px solid var(--sp-border); border-radius: var(--sp-border-radius, 4px); background: var(--sp-surface-elevated); } .player-privacy-panel__effect-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--sp-spacing-xs, 4px); } .player-privacy-panel__effect-label { margin: 0; font-size: 0.9em; font-weight: 500; color: var(--sp-text-primary); } .player-privacy-panel__effect-description { margin: 0; font-size: 0.8em; color: var(--sp-text-secondary); line-height: 1.4; } // Toggle switch .player-privacy-panel__toggle { display: flex; align-items: center; } .player-privacy-panel__toggle-label { display: flex; align-items: center; gap: var(--sp-spacing-xs, 4px); cursor: pointer; user-select: none; font-size: 0.85em; } // Toggle input - visually hidden, uses custom styling .player-privacy-panel__toggle-input { position: absolute; opacity: 0; width: 0; height: 0; &:focus-visible + .player-privacy-panel__toggle-text { outline: 2px solid var(--sp-focus); outline-offset: 2px; } &:disabled + .player-privacy-panel__toggle-text { opacity: 0.6; cursor: not-allowed; } } .player-privacy-panel__toggle-text { display: inline-block; padding: var(--sp-spacing-xs, 4px) var(--sp-spacing-sm, 8px); border: 1px solid var(--sp-border); border-radius: var(--sp-border-radius, 4px); background: var(--sp-surface); color: var(--sp-text-primary); font-weight: 500; transition: all 0.15s ease; .player-privacy-panel__toggle-input:checked + & { background: var(--sp-accent); color: white; border-color: var(--sp-accent); } .player-privacy-panel__toggle-input:disabled + & { background: var(--sp-surface); border-color: var(--sp-border); } .player-privacy-panel__toggle-input:checked:disabled + & { background: var(--sp-accent); color: white; opacity: 0.6; } } // Story 4.2: Portrait fallback section .player-privacy-panel__portrait-container { display: flex; flex-direction: column; gap: var(--sp-spacing-sm, 8px); } .player-privacy-panel__portrait-preview { width: 100px; height: 100px; border: 2px solid var(--sp-border); border-radius: var(--sp-border-radius, 4px); overflow: hidden; background: var(--sp-surface-elevated); display: flex; align-items: center; justify-content: center; } .player-privacy-panel__portrait-image { max-width: 100%; max-height: 100%; object-fit: cover; } .player-privacy-panel__portrait-actions { display: flex; gap: var(--sp-spacing-sm, 8px); flex-wrap: wrap; } .player-privacy-panel__portrait-choose, .player-privacy-panel__portrait-remove { font-size: 0.85em; padding: var(--sp-spacing-xs, 4px) var(--sp-spacing-sm, 8px); } }