:root { --accent: #aa5971; --accent-dark: #6f3547; --accent-mid: #cf8096; --accent-soft: #fff0f5; }
body { background: radial-gradient(circle at 76% 7%, rgba(218, 136, 162, .2), transparent 30%), linear-gradient(135deg, #fffdfd 0%, #fbf0f4 100%); }
.makeup-design-header .old-photo-heading > div { display: grid; gap: 2px; }
.makeup-design-header h1 { color: #322428; }
.makeup-design-mode.is-selected { border-color: var(--accent); background: #fff6f9; color: var(--accent-dark); }
.makeup-design-mode > svg { color: var(--accent-mid); }
.makeup-design-mode-reference { grid-column: 1 / -1; }
.makeup-design-mode-parameter-panel[hidden] { display: none; }
.makeup-design-parameter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.makeup-parameter-group-title { margin: 0 0 10px; color: #644652; font-size: 13px; font-weight: 700; }
.makeup-smart-explain { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; margin-top: 14px; padding: 12px 13px; border: 1px solid #edd7df; border-radius: 12px; color: #6e4a58; background: linear-gradient(135deg, #fff8fa, #fdf0f4); }
.makeup-smart-explain > svg { width: 25px; height: 25px; color: var(--accent); }
.makeup-smart-explain > div { display: grid; gap: 4px; }
.makeup-smart-explain strong { font-size: 13px; }
.makeup-smart-explain p, .makeup-smart-explain b { margin: 0; color: #8b6d76; font-size: 12px; line-height: 1.5; }
.makeup-smart-explain b { color: #704454; font-weight: 700; }
.makeup-reference-upload { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 14px; align-items: center; }
.makeup-reference-preview { position: relative; min-height: 112px; display: grid; place-items: center; align-content: center; gap: 5px; overflow: hidden; padding: 12px; color: #9b7d87; background: #fff9fb; border: 1px dashed #dba9b8; border-radius: 12px; text-align: center; }
.makeup-reference-preview > svg { width: 27px; height: 27px; color: var(--accent-mid); }
.makeup-reference-preview strong { font-size: 12px; }
.makeup-reference-preview small { font-size: 10px; line-height: 1.4; }
.makeup-reference-preview.has-image { min-height: 132px; padding: 0; border-style: solid; }
.makeup-reference-preview.has-image img { width: 100%; height: 132px; display: block; object-fit: cover; }
.makeup-reference-preview.has-image > span { position: absolute; inset: auto 6px 6px; overflow: hidden; padding: 4px 7px; color: #fff; background: rgba(74, 39, 50, .72); border-radius: 6px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.makeup-reference-preview.has-image > button { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; display: grid; place-items: center; padding: 0; color: #fff; background: rgba(74, 39, 50, .74); border: 0; border-radius: 50%; cursor: pointer; }
.makeup-reference-preview.has-image > button svg { width: 15px; height: 15px; }
.makeup-reference-upload-copy { display: grid; justify-items: start; gap: 8px; }
.makeup-reference-upload-copy p { margin: 0; color: #8d777f; font-size: 12px; line-height: 1.55; }
.makeup-reference-settings-title { margin-top: 18px; }
.makeup-reference-analysis { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 9px; margin-top: 14px; padding: 12px 13px; color: #6f4856; background: #fff7fa; border: 1px solid #e8cbd5; border-radius: 12px; }
.makeup-reference-analysis > svg { width: 22px; height: 22px; color: var(--accent); }
.makeup-reference-analysis strong { font-size: 13px; }
.makeup-reference-analysis p { margin: 3px 0 0; color: #8b7079; font-size: 11px; line-height: 1.5; }
.makeup-reference-analysis ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
.makeup-reference-analysis li { padding: 4px 7px; color: #784b5a; background: #fff; border: 1px solid #edd8df; border-radius: 999px; font-size: 10px; }
.makeup-reference-analysis.is-waiting { color: #8f7f84; background: #faf8f8; border-color: #ece4e6; }
.makeup-reference-principle { margin-top: 12px; }
.makeup-output-settings { margin-top: 18px; padding-top: 16px; border-top: 1px solid #f0e0e4; }
.makeup-output-hint { margin: 7px 0 0; color: #9a858b; font-size: 11px; line-height: 1.45; }
.makeup-recommendation { display: grid; gap: 9px; margin: 14px 0 0; padding: 14px 16px; border: 1px solid #efd9df; border-radius: 14px; background: linear-gradient(135deg, #fff9fa, #fdf0f4); }
.makeup-recommendation-heading { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 9px; align-items: start; }
.makeup-recommendation-heading > svg { width: 22px; height: 22px; color: var(--accent); }
.makeup-recommendation h3 { margin: 0; color: #643e4d; font-size: 15px; }
.makeup-recommendation p { margin: 4px 0 0; color: #886d75; font-size: 12px; line-height: 1.5; }
.makeup-recommendation ul { display: grid; gap: 4px; margin: 0; padding-left: 34px; color: #765761; font-size: 12px; line-height: 1.45; }
.makeup-parts { margin: 14px 0 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.makeup-parts legend { width: 100%; margin-bottom: 2px; color: #5f5054; font-size: 13px; font-weight: 600; }
.makeup-parts legend small { margin-left: 5px; color: #9a858b; font-size: 11px; font-weight: 400; }
.makeup-parts-toolbar { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 3px; padding: 9px 10px; border: 1px solid #f0dfe4; border-radius: 10px; background: #fffafb; }
.makeup-parts-status { display: grid; gap: 2px; min-width: 0; }
.makeup-parts-status b { color: #754a57; font-size: 12px; }
.makeup-parts-status small { color: #9a858b; font-size: 10px; }
.makeup-parts-status.is-empty b { color: #a04d61; }
.makeup-parts-actions { display: inline-flex; flex: 0 0 auto; gap: 6px; }
.makeup-parts-actions button { min-height: 28px; padding: 4px 9px; border: 1px solid #e5cfd6; border-radius: 8px; background: #fff; color: #76545e; font: inherit; font-size: 11px; cursor: pointer; }
.makeup-parts-actions button:hover { border-color: #c77b90; color: #743d4d; background: #fff4f7; }
.makeup-parts-actions button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.makeup-parts label { position: relative; cursor: pointer; }
.makeup-parts input { position: absolute; opacity: 0; pointer-events: none; }
.makeup-parts span { display: inline-flex; align-items: center; min-height: 34px; padding: 7px 12px; border: 1px solid #ead9de; border-radius: 999px; background: rgba(255,255,255,.8); color: #78676c; font-size: 12px; transition: .18s ease; }
.makeup-parts input:checked + span::before { content: '✓'; margin-right: 4px; font-weight: 700; }
.makeup-parts input:checked + span { border-color: #c77b90; background: #fff0f4; color: #743d4d; box-shadow: inset 0 0 0 1px rgba(170,89,113,.12); }
.makeup-parts input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.makeup-parts.is-lipstick label:not(:last-child) { opacity: .42; pointer-events: none; }
.makeup-design-identity-note { border-color: #edd7df; background: linear-gradient(135deg, #fff8fa, #fbedf2); }
.makeup-design-identity-note > i { color: var(--accent); }
.makeup-design-result-grid .portrait-retouch-result-slot span { background: rgba(102, 48, 65, .8); }
.makeup-design-use-note { border-color: #ead6dd; background: rgba(255,251,252,.86); }
@media (max-width: 760px) { .makeup-design-parameter-grid { grid-template-columns: 1fr; } .makeup-smart-explain { grid-template-columns: 24px minmax(0, 1fr); } .makeup-design-mode-reference { grid-column: auto; } .makeup-reference-upload { grid-template-columns: 1fr; } .makeup-reference-preview { min-height: 150px; } .makeup-reference-preview.has-image img { height: 180px; } .makeup-parts-toolbar { align-items: flex-start; } }
.makeup-local-preview { margin-top: 14px; padding: 12px; border: 1px solid #edd4de; border-radius: 14px; background: #fff8fb; }
#previewMakeupLocalButton { margin-top: 12px; padding: 10px 15px; border: 1px solid #d6a8b7; border-radius: 10px; color: #743d4d; background: #fff7fa; font: inherit; font-size: 13px; cursor: pointer; }
#previewMakeupLocalButton:hover { background: #ffecf2; }
#previewMakeupLocalButton:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
#previewMakeupLocalButton:disabled { opacity: .5; cursor: wait; }
.makeup-local-preview[hidden] { display: none; }
.makeup-local-preview img { display: block; max-width: 100%; max-height: 320px; margin: 10px auto; object-fit: contain; }
.makeup-local-preview p, .makeup-local-region-note { font-size: 13px; line-height: 1.65; color: #6e5861; }
.makeup-local-preview small { display: block; line-height: 1.5; color: #796b70; }
