/** * Preset Save Dialog — compact, polished design. * Follows SP token system; mirrors Directors Board aesthetic. */ @import "../tokens/_base.less"; .scrying-pool.preset-save-dialog { background: linear-gradient(175deg, hsl(220, 18%, 13%) 0%, hsl(220, 15%, 10%) 100%); color: var(--sp-text-primary); border: 1px solid rgba(255, 255, 255, 0.08); border-top: 2px solid var(--sp-accent); border-radius: 8px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.04); // ── Form wrapper ────────────────────────────────────────────────────────── .preset-save-dialog__form { display: flex; flex-direction: column; height: 100%; gap: 0; } // ── Header ──────────────────────────────────────────────────────────────── .preset-save-dialog__header { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px 10px; border-bottom: 1px solid var(--sp-border); background: rgba(255, 255, 255, 0.02); } .preset-save-dialog__header-icon { flex-shrink: 0; font-size: 16px; color: var(--sp-accent); margin-top: 1px; opacity: 0.9; } .preset-save-dialog__description { margin: 0; font-family: var(--font-primary, ui-sans-serif, system-ui, sans-serif); font-size: 12px; color: var(--sp-text-secondary); line-height: 1.45; } // ── Body ────────────────────────────────────────────────────────────────── .preset-save-dialog__body { padding: 16px; overflow-y: auto; flex: 1 1 auto; } .preset-save-dialog__field { display: flex; flex-direction: column; gap: 7px; } .preset-save-dialog__label { font-family: var(--font-primary, ui-sans-serif, system-ui, sans-serif); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--sp-text-muted); cursor: default; } .preset-save-dialog__input { width: 100%; font-family: var(--font-primary, ui-sans-serif, system-ui, sans-serif); font-size: 14px; padding: 9px 12px; border: 1px solid var(--sp-border); border-radius: 5px; background: var(--sp-control-bg, #1a1d20); color: var(--sp-text-primary); outline: none; transition: border-color 0.15s, box-shadow 0.15s; box-sizing: border-box; &:focus { border-color: var(--sp-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--sp-accent) 22%, transparent); } &::placeholder { color: var(--sp-text-muted); font-style: italic; font-size: 13px; } } // ── Footer ──────────────────────────────────────────────────────────────── .preset-save-dialog__footer { display: flex; justify-content: flex-end; align-items: center; gap: 8px; padding: 10px 16px; border-top: 1px solid var(--sp-border); background: rgba(0, 0, 0, 0.15); flex-shrink: 0; } .preset-save-dialog__btn { font-family: var(--font-primary, ui-sans-serif, system-ui, sans-serif); font-size: 12px; font-weight: 600; padding: 7px 14px; border-radius: 5px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: background 0.15s, border-color 0.15s, opacity 0.15s; i { font-size: 10px; opacity: 0.85; } &--save { background: var(--sp-accent); color: var(--sp-accent-text, #fff); border: 1px solid transparent; letter-spacing: 0.02em; &:hover { background: var(--sp-accent-hover); } &:active { background: var(--sp-accent-active); } i { opacity: 1; } } &--cancel { background: transparent; color: var(--sp-text-secondary); border: 1px solid var(--sp-border); font-weight: 500; &:hover { color: var(--sp-text-primary); border-color: rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.05); } } } }