/* Standalone personalization styles, independent of ../CSS/cabinet.css. */
[data-cabinet-pane][hidden], .lps-personalization [hidden] { display: none !important; }
.cabinet-tab-switch { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 12px; }
.cabinet-tab-btn { cursor:pointer; border:1px solid #67433f; border-radius:7px; background:#201418; color:#dac2b8; padding:11px 16px; font:inherit; }
.cabinet-tab-btn.is-active, .cabinet-tab-btn:hover { background:#68403b; color:#fff0e5; border-color:#ae7e6f; }
.cabinet-tab-caption { margin:0 0 18px; opacity:.8; }
.lps-personalization { min-width:0; color:#eadbd4; }
.lps-personalization, .lps-personalization * { box-sizing:border-box; }
.lps-studio-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:22px; }
.lps-studio-head h2 { margin:0 0 6px; font-size:21px; }
.lps-db-state { display:flex; flex-wrap:wrap; gap:7px; }
.lps-studio-layout { display:grid; grid-template-columns:minmax(310px,1.1fr) minmax(340px,1fr); gap:20px; align-items:start; }
.lps-preview-panel,.lps-editor-panel { border:1px solid #473039; background:#130e13; border-radius:10px; padding:14px; min-width:0; }
.lps-preview-panel { position:sticky; top:14px; }
.lps-preview-toolbar { display:flex; justify-content:center; align-items:center; gap:12px; margin-bottom:12px; min-height:35px; text-align:center; }
.lps-preview-toolbar strong { min-width:0; font-size:13px; }
.lps-small-btn { font:inherit; color:#f3ded5; border:1px solid #694946; border-radius:6px; background:#352126; min-height:34px; padding:6px 10px; cursor:pointer; }
.lps-small-btn:hover { border-color:#c38c78; background:#553038; }
.lps-preview-stage { position:relative; overflow:hidden; border:1px solid #3f3235; border-radius:8px; background:#100d12; }
.lps-preview-stage canvas { display:block; width:100%; height:auto; aspect-ratio:828/570; image-rendering:pixelated; }
.lps-preview-empty:not([hidden]) { position:absolute; bottom:10px; left:12px; right:12px; padding:10px; background:rgba(21,12,15,.92); border:1px solid #a16f63; color:#f1c7bc; border-radius:5px; font-size:12px; }
.lps-preview-foot, .lps-sync-note { margin-top:12px; font-size:12px; line-height:1.6; opacity:.8; }
.lps-page-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px; }
.lps-page-tabs button { font:inherit; font-size:13px; color:#d9c3bd; background:#24191c; border:1px solid #51383b; border-radius:6px; padding:9px 10px; cursor:pointer; }
.lps-page-tabs button.is-active,.lps-page-tabs button:hover { background:#723f3f; border-color:#b67b6d; color:#fff0e8; }
.lps-targets { display:flex; gap:7px; flex-wrap:wrap; max-height:175px; overflow:auto; padding:0 2px 12px 0; margin-bottom:12px; border-bottom:1px solid #3f3036; }
.lps-target { display:flex; align-items:center; gap:7px; padding:7px 9px; background:#211719; border:1px solid #443138; border-radius:6px; color:#e2d1c8; cursor:pointer; font:inherit; font-size:12px; }
.lps-target.is-active { border-color:#dba08a; background:#553238; }
.lps-target-swatch { width:17px; height:17px; border-radius:50%; display:inline-block; flex-shrink:0; border:1px solid rgba(255,255,255,.32); }
.lps-target-swatch.is-disabled { opacity:.42; }
.lps-color-editor { display:grid; grid-template-columns:minmax(150px,240px) minmax(175px,1fr); align-items:start; gap:18px; }
.lps-wheel-wrap { position:relative; width:min(240px,100%); margin:0 auto; }
.lps-wheel-wrap canvas { display:block; width:100%; height:auto; cursor:crosshair; border-radius:50%; }
.lps-wheel-marker { position:absolute; width:12px; height:12px; border:2px solid white; border-radius:50%; box-shadow:0 0 0 1px #000, 0 2px 5px #000; transform:translate(-50%,-50%); pointer-events:none; }
.lps-sliders { min-width:0; }
.lps-sliders>label { display:block; margin-bottom:12px; font-size:13px; }
.lps-sliders>label strong { float:right; }
.lps-sliders input[type="range"] { display:block; width:100%; margin:8px 0 0; accent-color:#c17c6b; }
.lps-color-row { display:flex; align-items:center; gap:12px; margin:15px 0; }
.lps-swatch { width:39px; height:39px; display:inline-block; flex-shrink:0; border-radius:7px; border:1px solid #b9958b; }
.lps-toggle { display:flex; align-items:center; gap:6px; font-size:12px; cursor:pointer; }
.lps-toggle input { accent-color:#ad7568; }
.lps-skin-mode,.lps-sample-row { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:10px 0; font-size:12px; }
.lps-skin-mode button { padding:6px 9px; color:#eddad2; background:#352225; border:1px solid #714b46; border-radius:6px; cursor:pointer; }
.lps-skin-mode button.is-active { background:#834a45; border-color:#e3ae97; }
.lps-sample-row input[type="number"] { width:55px; min-height:33px; padding:5px; background:#21181c; color:#f8e0d7; border:1px solid #674b49; border-radius:4px; }
.lps-actions { margin:20px 0 8px; display:flex; flex-wrap:wrap; gap:8px; }
.lps-actions button { min-height:38px; }
@media(max-width:1000px){ .lps-studio-layout { grid-template-columns:1fr; } .lps-preview-panel { position:static; } }
@media(max-width:600px){ .lps-color-editor { grid-template-columns:1fr; } .lps-wheel-wrap { width:210px; } .lps-preview-panel,.lps-editor-panel { padding:10px; } .lps-personalization { padding:12px !important; } }

/* Character appearance choices; these controls operate on the portrait preview. */
.lps-face-controls{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px 12px;align-items:end;margin:2px 0 10px;padding:12px;background:#1d151c;border:1px solid #4b3035;border-radius:7px}
.lps-face-controls>label{min-width:0;font-size:12px;color:#ddc5b9;display:flex;flex-direction:column;gap:6px}
.lps-face-controls select{width:100%;min-width:0;border:1px solid #74504e;border-radius:5px;background:#2a1b21;color:#f6e4da;padding:8px 5px;font:inherit;font-size:13px;min-height:36px}
.lps-face-controls label.lps-check{flex-direction:row;align-items:center;gap:7px;min-height:24px;cursor:pointer}
.lps-face-controls-hint{font-size:12px;line-height:1.4;color:#c7a59a;margin:4px 0 16px}
@media(max-width:650px){.lps-face-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
