/* villa_barbershop — local overrides / unique layout */ .category-view { position: absolute; inset: 10px; display: grid; grid-template-columns: 250px 250px; grid-template-rows: 170px 150px 124px 125px 125px; gap: 5px; z-index: 1; overflow: hidden; } .category-view::-webkit-scrollbar { width: 4px; } .category-view::-webkit-scrollbar-thumb { background: var(--white-3); border-radius: 2px; } /* Grid placement (matches Figma design) */ .cat-cabelos { grid-column: 1; grid-row: 1; } .cat-olhos { grid-column: 2; grid-row: 1; } .cat-sobrancelhas { grid-column: 1 / span 2; grid-row: 2; } .cat-barba { grid-column: 1; grid-row: 3; } .cat-pelo-corporal { grid-column: 2; grid-row: 3 / span 3; } .cat-maquiagem { grid-column: 1; grid-row: 4; } .cat-pele { grid-column: 1; grid-row: 5; } .category-tab-bar.is-makeup-sub-tabs .cat-tab-arrow { display: none; } .category-tab-bar.is-makeup-sub-tabs .cat-tabs { margin: 0; } .products-grid.is-skin-panel { display: flex; flex-direction: column; grid-template-columns: unset; grid-auto-rows: unset; gap: 0; padding: 0 15px 0 0; } .products-grid.is-skin-panel .skin-section-panel { flex-shrink: 0; width: 100%; } .products-grid.is-skin-panel .skin-controls-list { padding: 6px 12px 12px 12px; } /* ═══════════════════════════════════════════════════════════════════ SKIN VIEW — tab bar + inner panel layout ═══════════════════════════════════════════════════════════════════ */ .skin-view { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; padding: 8px 10px 10px 10px; gap: 8px; overflow: hidden; min-height: 0; } /* Tab bar (identical spec to .category-tab-bar) */ .skin-tab-bar { flex-shrink: 0; height: 55px; background: var(--color-bg); border-radius: var(--radius-sm); display: flex; align-items: center; padding: 9px 10px; gap: 8px; } .skin-tab-tabs { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(var(--tab-count), minmax(0, 1fr)); gap: 5px; overflow: hidden; } .skin-tab-btn { width: 100%; min-width: 0; height: 37px; border-radius: var(--radius-sm); background: var(--color-bg); color: var(--white-4); font-weight: 700; font-size: 11px; letter-spacing: 0.5px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s ease, color 0.2s ease; white-space: nowrap; border: none; font-family: inherit; } .skin-tab-btn:hover:not(.is-active) { background: var(--accent-2); color: var(--white-7); } .skin-tab-btn.is-active { background: var(--color-accent); color: var(--white); } .skin-tab-arrow-btn { width: 9px; height: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; opacity: 0.6; transition: opacity 0.15s ease; background: none; border: none; cursor: pointer; color: inherit; font-family: inherit; } .skin-tab-arrow-btn:hover { opacity: 1; } .skin-tab-filter-btn { width: 42px; height: 41px; border-radius: var(--radius-sm); background: var(--color-bg); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 0.15s ease; border: none; cursor: pointer; color: inherit; font-family: inherit; } .skin-tab-filter-btn:hover { background: var(--white-2); } /* Scrollable content area below tab bar */ .skin-main-content { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; gap: 8px; -webkit-overflow-scrolling: touch; } .skin-main-content::-webkit-scrollbar { width: 8px; } .skin-main-content::-webkit-scrollbar-track { background: var(--panel-6); border-radius: 10px; } .skin-main-content::-webkit-scrollbar-thumb { background: var(--color-accent); box-shadow: var(--shadow-scrollbar-thumb); border-radius: 10px; } /* Inner panel matching Rectangle 3 (308:270) */ .skin-section-panel { background: var(--color-bg); box-shadow: var(--shadow-border-faint); border-radius: var(--radius-sm); flex-shrink: 0; } .skin-section-header { display: flex; align-items: center; gap: 8px; padding: 12px 16px 6px 12px; } .skin-section-icon { width: 12px; height: 12px; flex-shrink: 0; color: var(--color-accent); } .skin-section-title { font-size: 15px; font-weight: 600; color: var(--white); flex: 1; } .skin-controls-list { padding: 6px 12px 12px 12px; display: flex; flex-direction: column; } /* ── Skin control rows ── */ .skin-control { padding: 10px 0; } .skin-control + .skin-control { box-shadow: var(--shadow-divider-top); } /* Label: sentence-case, 13 px, muted grey — matches Figma */ .skin-control-label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; color: var(--text-dim); } /* Row: [icon btn 35px] [slider flex:1] [value box 35px] */ .skin-control-row { display: flex; align-items: center; gap: 10px; } /* Left: face icon (decorativo — não clicável) */ .skin-step { width: 35px; height: 35px; flex-shrink: 0; border-radius: var(--radius-sm); background: var(--white-1); display: flex; align-items: center; justify-content: center; color: var(--white-6); pointer-events: none; user-select: none; } .skin-step svg { width: 20px; height: 20px; } /* Middle: slider bar */ .skin-slider { position: relative; flex: 1; height: 35px; border-radius: 3px; background: var(--white-1); display: flex; align-items: center; padding: 0 10px; cursor: grab; touch-action: none; -webkit-user-select: none; user-select: none; } .skin-slider:active { cursor: grabbing; } .skin-slider-track { position: relative; width: 100%; height: 4px; border-radius: 4px; background: var(--slider-track); } .skin-slider-fill { position: absolute; inset: 0 auto 0 0; width: var(--slider-progress); border-radius: inherit; background: var(--color-accent); } .skin-slider-thumb { position: absolute; top: 50%; left: var(--slider-progress); width: 12px; height: 12px; border-radius: 999px; background: var(--color-accent); transform: translate(-50%, -50%); box-shadow: 0 0 8px var(--accent-7); cursor: grab; z-index: 1; } /* Right: valor exibido (decorativo — não clicável) */ .skin-value-btn { width: 35px; height: 35px; flex-shrink: 0; background: var(--white-1); box-shadow: var(--shadow-border); border-radius: 3px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; color: var(--white); font-family: "Inter", "Sora", sans-serif; pointer-events: none; user-select: none; } /* ═══════════════════════════════════════════════════════════════════ NAV BAR (PRÓXIMO / VOLTAR + toggle roupa) ═══════════════════════════════════════════════════════════════════ */ .nav-bar { flex-shrink: 0; width: 100%; height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .clothes-toggle { display: flex; align-items: center; gap: 8px; cursor: pointer; flex-shrink: 0; padding: 0 2px; transition: opacity 0.15s ease; } .clothes-toggle:hover { opacity: 0.9; } .clothes-toggle-label { font-size: 12px; font-weight: 600; color: var(--color-text-dim); white-space: nowrap; letter-spacing: 0.3px; } .clothes-toggle.is-active .clothes-toggle-label { color: var(--color-text); } .clothes-switch-track { position: relative; width: 44px; height: 15px; background: var(--white-1); border-radius: 15px; flex-shrink: 0; } .clothes-switch-knob { position: absolute; right: -3px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border-radius: 50%; background: var(--color-accent); box-shadow: 0 0 8px var(--accent-6); transition: background 0.2s ease, right 0.2s ease, left 0.2s ease; } .clothes-toggle:not(.is-active) .clothes-switch-knob { right: auto; left: -3px; background: var(--white-4); box-shadow: none; } /* ═══════════════════════════════════════════════════════════════════ MAKEUP SUB-VIEW ═══════════════════════════════════════════════════════════════════ */ .makeup-sub-view { position: absolute; top: 75px; left: 12px; right: 8px; bottom: 14px; display: flex; flex-direction: column; gap: 5px; z-index: 1; box-sizing: border-box; } .makeup-sub-card { flex: 1; position: relative; border-radius: var(--radius-md); background: var(--color-bg); overflow: hidden; cursor: pointer; transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; } .makeup-sub-card:hover { background: var(--color-accent-soft); transform: translateY(-2px); box-shadow: 0 10px 25px var(--black-6); } .makeup-sub-card.is-selected { background: var(--color-accent); } .makeup-sub-label { position: absolute; top: 10px; left: 10px; font-weight: 800; font-size: 12px; color: var(--color-text); letter-spacing: 0.3px; z-index: 2; } /* Native overlay color (-1): keep baked texture colors, no palette tint */ .palette-color-grid .palette-swatch.palette-swatch-none { background: #5a5a5a; display: inline-flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, 0.72); } .palette-swatch-none-icon { width: 14px; height: 14px; display: block; } .palette-swatch-none-icon svg { width: 100%; height: 100%; display: block; }