@font-face {
    font-family: "IRANSans";
    src: local("IRANSans"), local("IRAN Sans"), url("../fonts/IRANSans.ttf") format("truetype");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

:root {
    --font: "IRANSans", Tahoma, Arial, sans-serif;
    --bg: #f7f5fa;
    --surface: #ffffff;
    --surface-2: #fbf9fd;
    --surface-3: #f3eef8;
    --text: #211b28;
    --muted: #776f7e;
    --subtle: #9f98a5;
    --line: #e9e3ee;
    --line-strong: #ddd4e5;
    --primary: #6f4a8e;
    --primary-dark: #4e2f67;
    --primary-soft: #eee5f5;
    --purple: #7c5ce7;
    --purple-soft: #eeeafe;
    --rose: #ee7894;
    --rose-soft: #ffe8ee;
    --teal: #20a997;
    --teal-soft: #e1f7f3;
    --amber: #e69d2c;
    --amber-soft: #fff3dd;
    --danger: #d84c63;
    --success: #229b75;
    --shadow-sm: 0 8px 22px rgba(46, 25, 60, .06);
    --shadow-md: 0 18px 46px rgba(46, 25, 60, .10);
    --shadow-lg: 0 30px 80px rgba(46, 25, 60, .16);
    --radius-sm: 12px;
    --radius: 18px;
    --radius-lg: 26px;
    --sidebar: 286px;
    --topbar: 88px;
}

html[data-theme="dark"] {
    --bg: #17141c;
    --surface: #211c27;
    --surface-2: #28212f;
    --surface-3: #302738;
    --text: #f6f1f8;
    --muted: #b8aebe;
    --subtle: #8e8495;
    --line: #3c3243;
    --line-strong: #4c4055;
    --primary-soft: #382746;
    --purple-soft: #302a4f;
    --rose-soft: #482934;
    --teal-soft: #213e3a;
    --amber-soft: #45371f;
    --shadow-sm: 0 8px 22px rgba(0,0,0,.14);
    --shadow-md: 0 18px 46px rgba(0,0,0,.23);
    --shadow-lg: 0 30px 80px rgba(0,0,0,.32);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.75;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-synthesis: weight style;
}
body, button, input, select, textarea { font-family: var(--font); }
button, input, select, textarea { font-size: 1rem; line-height: 1.5; }
input, select, textarea { font-variant-numeric: tabular-nums; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
svg { width: 1.25em; height: 1.25em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
h1,h2,h3,h4,p { margin-top: 0; }
button { cursor: pointer; }
[hidden] { display: none !important; }

/* App shell */
.app-shell { min-height: 100vh; }
.sidebar {
    position: fixed;
    inset-block: 0;
    right: 0;
    width: var(--sidebar);
    background: var(--surface);
    border-left: 1px solid var(--line);
    padding: 22px 18px 18px;
    display: flex;
    flex-direction: column;
    z-index: 1000;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.main-area { min-height: 100vh; margin-right: var(--sidebar); }
.page-container { max-width: 1600px; margin: 0 auto; padding: 30px 34px 54px; }
.sidebar-overlay { display: none; }

.brand-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 22px; }
.brand-link { display: inline-flex; align-items: center; gap: 12px; }
.brand-mark { width: 47px; height: 47px; border-radius: 15px; display: grid; place-items: center; background: linear-gradient(145deg,#70458f,#e3819c); box-shadow: 0 12px 28px rgba(111,74,142,.28); overflow: hidden; }
.brand-mark img { width: 100%; height: 100%; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-copy strong { font-size: 1.24rem; letter-spacing: .08em; }
.brand-copy small { margin-top: 7px; color: var(--muted); font-size: .78rem; }
.sidebar-close { display: none !important; }

.salon-switcher { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); background: var(--surface-2); border-radius: 16px; padding: 10px; margin-bottom: 18px; }
.salon-switcher img { width: 42px; height: 42px; border-radius: 13px; object-fit: cover; }
.salon-switcher span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.salon-switcher strong { font-size: .88rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.salon-switcher small { color: var(--muted); font-size: .76rem; }
.salon-switcher > svg { width: 16px; color: var(--subtle); }

.side-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-caption { margin: 16px 11px 7px; color: var(--subtle); font-size: .74rem; font-weight: 700; }
.nav-item { min-height: 47px; border-radius: 13px; padding: 0 12px; display: flex; align-items: center; gap: 11px; color: var(--muted); font-size: .94rem; font-weight: 600; position: relative; transition: .18s ease; }
.nav-item svg { width: 20px; height: 20px; }
.nav-item:hover { color: var(--primary); background: var(--surface-3); transform: translateX(-2px); }
.nav-item.active { color: var(--primary); background: var(--primary-soft); }
.nav-item.active::before { content: ""; position: absolute; right: -18px; width: 4px; height: 27px; border-radius: 5px 0 0 5px; background: linear-gradient(var(--primary),var(--rose)); }
.nav-item span { flex: 1; }
.nav-badge { min-width: 25px; height: 23px; padding: 0 7px; border-radius: 999px; display: grid; place-items: center; background: var(--rose-soft); color: var(--rose); font-size: .73rem; }
.nav-alert { width: 7px; height: 7px; background: var(--amber); border-radius: 50%; }
.ai-label { background: linear-gradient(135deg,var(--purple),var(--rose)); color: white; border-radius: 7px; font-size: .61rem; line-height: 1; padding: 5px 6px; }
.sidebar-bottom { margin-top: auto; padding-top: 20px; }
.portal-preview-card { margin-top: 12px; border-radius: 17px; padding: 14px; color: #fff; background: linear-gradient(135deg,#523568,#8060a1 55%,#e27c99); display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow-md); }
.portal-icon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.14); }
.portal-preview-card > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; }
.portal-preview-card strong { font-size: .87rem; }
.portal-preview-card small { font-size: .69rem; opacity: .76; }
.portal-arrow { width: 17px; }

/* Topbar */
.topbar { height: var(--topbar); position: sticky; top: 0; z-index: 100; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 34px; background: color-mix(in srgb,var(--bg) 88%,transparent); backdrop-filter: blur(18px); border-bottom: 1px solid color-mix(in srgb,var(--line) 75%,transparent); }
.topbar-heading { display: flex; align-items: center; gap: 13px; }
.topbar-heading h1 { margin: 1px 0 0; font-size: 1.38rem; line-height: 1.35; }
.today-label { color: var(--muted); font-size: .78rem; }
.mobile-menu { display: none !important; }
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.global-search { width: 325px; height: 45px; border: 1px solid var(--line); background: var(--surface); border-radius: 14px; display: flex; align-items: center; padding: 0 12px; gap: 9px; color: var(--muted); }
.global-search svg { width: 18px; }
.global-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font-size: .86rem; }
.global-search kbd { color: var(--subtle); border: 1px solid var(--line); background: var(--surface-2); border-radius: 6px; padding: 1px 6px; font: 11px Arial; }
.icon-button { width: 45px; height: 45px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--muted); display: inline-grid; place-items: center; transition: .18s ease; }
.icon-button:hover { color: var(--primary); border-color: color-mix(in srgb,var(--primary) 34%,var(--line)); transform: translateY(-1px); }
.icon-button.small { width: 37px; height: 37px; border-radius: 11px; }
.icon-button.tiny { width: 31px; height: 31px; border-radius: 9px; }
.notice-button { position: relative; }
.notice-button i { position: absolute; width: 8px; height: 8px; background: var(--rose); border: 2px solid var(--surface); border-radius: 50%; top: 9px; right: 9px; }
.theme-icon-sun { display: none; }
html[data-theme="dark"] .theme-icon-sun { display: block; }
html[data-theme="dark"] .theme-icon-moon { display: none; }
.user-chip { height: 48px; min-width: 172px; padding: 4px 7px 4px 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; display: flex; align-items: center; gap: 9px; color: var(--text); }
.user-chip img { width: 36px; height: 36px; border-radius: 11px; }
.user-chip span { flex: 1; min-width: 0; text-align: right; display: flex; flex-direction: column; line-height: 1.5; }
.user-chip strong { font-size: .8rem; }
.user-chip small { font-size: .66rem; color: var(--muted); }
.user-chip svg { width: 15px; color: var(--subtle); }

/* Generic UI */
.button { min-height: 45px; border-radius: 13px; padding: 0 18px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: .9rem; font-weight: 700; transition: .18s ease; white-space: nowrap; }
.button:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.button svg { width: 18px; }
.button-primary { background: linear-gradient(135deg,var(--primary),#8b61a6); color: white; box-shadow: 0 10px 25px rgba(111,74,142,.19); }
.button-soft { color: var(--primary); background: var(--primary-soft); border-color: color-mix(in srgb,var(--primary) 12%,transparent); }
.button-ghost { color: var(--muted); background: var(--surface); border-color: var(--line); }
.button-light { color: var(--primary-dark); background: white; }
.button-glass { color: white; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); backdrop-filter: blur(12px); }
.button-block { width: 100%; }
.small-button { min-height: 37px; padding: 0 13px; font-size: .79rem; border-radius: 11px; }
.button[disabled] { cursor: not-allowed; opacity: .58; transform: none; box-shadow: none; }
.text-link { color: var(--primary); font-size: .84rem; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.text-link svg { width: 16px; }
.text-button { color: var(--primary); border: 0; padding: 0; background: transparent; font-weight: 700; }
.back-link { color: var(--primary); font-weight: 700; font-size: .84rem; display: inline-flex; align-items: center; margin-bottom: 6px; }
.back-link::before { content: "→"; margin-left: 6px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.compact-panel { padding: 14px 18px; }
.panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 21px; }
.panel-head h3 { margin: 2px 0 0; font-size: 1.05rem; }
.section-kicker, .page-eyebrow { color: var(--primary); font-weight: 700; font-size: .76rem; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
.page-head h2 { font-size: 1.65rem; line-height: 1.4; margin: 4px 0 4px; }
.page-head p { margin: 0; color: var(--muted); font-size: .92rem; }
.page-head-actions { display: flex; align-items: center; gap: 10px; }
.form-page-head { align-items: center; }
.segmented-control { padding: 4px; background: var(--surface-3); border-radius: 12px; display: inline-flex; gap: 2px; }
.segmented-control button { border: 0; min-height: 35px; padding: 0 14px; border-radius: 9px; color: var(--muted); background: transparent; font-size: .82rem; }
.segmented-control button.active { color: var(--primary); background: var(--surface); box-shadow: 0 4px 12px rgba(48,28,62,.08); font-weight: 700; }
.select-button { min-height: 37px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--muted); display: flex; align-items: center; gap: 7px; font-size: .78rem; }
.select-button svg { width: 14px; }
.status-badge { min-height: 26px; display: inline-flex; align-items: center; justify-content: center; padding: 0 9px; border-radius: 999px; font-size: .7rem; font-weight: 700; }
.status-badge.success { color: var(--success); background: color-mix(in srgb,var(--teal-soft) 78%,transparent); }
.status-badge.warning { color: #bd7916; background: var(--amber-soft); }
.status-badge.info { color: var(--purple); background: var(--purple-soft); }
.status-badge.muted { color: var(--muted); background: var(--surface-3); }
.trend { border-radius: 999px; padding: 3px 8px; font-size: .7rem; background: var(--surface-3); color: var(--muted); }
.trend.up { color: var(--success); background: var(--teal-soft); }
.stars { color: #e8a62f; letter-spacing: 2px; direction: ltr; }
.stars.compact { font-size: .69rem; letter-spacing: 1px; }
.stars.large { font-size: 1.35rem; }

/* Hero and dashboard */
.hero-panel { min-height: 270px; border-radius: var(--radius-lg); padding: 38px 42px; color: white; overflow: hidden; position: relative; box-shadow: var(--shadow-lg); }
.admin-hero { background: radial-gradient(circle at 10% 120%,rgba(246,149,180,.75),transparent 34%),linear-gradient(120deg,#4c2d62 0%,#6f4b88 55%,#b96e91 100%); }
.hero-copy { position: relative; z-index: 2; max-width: 680px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.78); font-size: .8rem; font-weight: 700; }
.eyebrow i { width: 8px; height: 8px; border-radius: 50%; background: #f4a9bf; box-shadow: 0 0 0 6px rgba(255,255,255,.1); }
.hero-copy h2 { margin: 14px 0 8px; font-size: clamp(1.65rem,2.4vw,2.45rem); line-height: 1.5; max-width: 610px; }
.hero-copy p { max-width: 600px; color: rgba(255,255,255,.75); font-size: .94rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hero-art { position: absolute; inset-block: 0; left: 0; width: 37%; }
.beauty-orb { position: absolute; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; }
.orb-one { width: 250px; height: 250px; left: 26px; top: 13px; }
.orb-two { width: 178px; height: 178px; left: 62px; top: 49px; box-shadow: inset 0 0 55px rgba(255,255,255,.1); }
.hero-monogram { position: absolute; left: 102px; top: 65px; width: 142px; height: 142px; border-radius: 50%; display: grid; place-items: center; font: 700 72px Georgia; color: rgba(255,255,255,.83); background: rgba(255,255,255,.08); backdrop-filter: blur(5px); }
.floating-stat { position: absolute; min-width: 123px; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; padding: 10px 13px; background: rgba(37,19,49,.26); backdrop-filter: blur(12px); display: flex; flex-direction: column; }
.floating-stat strong { font-size: 1.12rem; }
.floating-stat span { opacity: .72; font-size: .67rem; }
.stat-a { left: 9px; top: 41px; }
.stat-b { left: 206px; bottom: 27px; }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; margin: 20px 0; }
.metric-card { min-height: 174px; padding: 20px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
.metric-card::after { content: ""; position: absolute; left: -28px; top: -36px; width: 105px; height: 105px; border-radius: 50%; opacity: .36; }
.metric-card.purple::after { background: var(--purple-soft); }
.metric-card.rose::after { background: var(--rose-soft); }
.metric-card.teal::after { background: var(--teal-soft); }
.metric-card.amber::after { background: var(--amber-soft); }
.metric-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; position: relative; z-index: 1; }
.metric-icon { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; }
.metric-card.purple .metric-icon,.metric-icon.purple { background: var(--purple-soft); color: var(--purple); }
.metric-card.rose .metric-icon,.metric-icon.rose { background: var(--rose-soft); color: var(--rose); }
.metric-card.teal .metric-icon,.metric-icon.teal { background: var(--teal-soft); color: var(--teal); }
.metric-card.amber .metric-icon,.metric-icon.amber { background: var(--amber-soft); color: var(--amber); }
.metric-label { display: block; color: var(--muted); font-size: .78rem; }
.metric-value { display: block; font-size: 1.75rem; line-height: 1.3; margin-top: 3px; }
.metric-value em { font-style: normal; font-size: .78rem; color: var(--muted); }
.metric-card > small { color: var(--subtle); font-size: .7rem; }
.metric-progress { height: 5px; border-radius: 999px; background: var(--rose-soft); margin-top: 14px; overflow: hidden; }
.metric-progress i { height: 100%; display: block; border-radius: inherit; background: var(--rose); }
.mini-bars { height: 27px; display: flex; align-items: end; gap: 4px; position: absolute; bottom: 19px; left: 20px; }
.mini-bars i { width: 5px; border-radius: 5px; background: color-mix(in srgb,var(--purple) 65%,transparent); }
.avatar-stack { display: flex; align-items: center; margin-top: 13px; direction: ltr; }
.avatar-stack img,.avatar-stack b { width: 27px; height: 27px; margin-left: -7px; border: 2px solid var(--surface); border-radius: 50%; }
.avatar-stack b { display: grid; place-items: center; background: var(--teal); color: white; font-size: .56rem; }
.dashboard-grid { display: grid; gap: 18px; margin-top: 18px; }
.dashboard-grid-main { grid-template-columns: 1.3fr .7fr; }
.dashboard-grid-secondary { grid-template-columns: 1fr .85fr 1fr; }
.dashboard-grid > .panel { padding: 22px; }
.appointment-list { display: flex; flex-direction: column; }
.appointment-row { display: grid; grid-template-columns: 54px 14px minmax(190px,1fr) auto 38px; gap: 10px; align-items: center; min-height: 68px; border-bottom: 1px solid var(--line); }
.appointment-row:last-child { border-bottom: 0; }
.appointment-row time { font-size: .78rem; font-weight: 700; }
.timeline-dot { width: 9px; height: 9px; border-radius: 50%; box-shadow: 0 0 0 5px var(--surface-3); }
.timeline-dot.purple { background: var(--purple); }
.timeline-dot.rose { background: var(--rose); }
.timeline-dot.teal { background: var(--teal); }
.timeline-dot.amber { background: var(--amber); }
.appointment-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.appointment-person img { width: 38px; height: 38px; border-radius: 12px; }
.appointment-person span { min-width: 0; display: flex; flex-direction: column; }
.appointment-person strong { font-size: .82rem; }
.appointment-person small { color: var(--muted); font-size: .68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chart-summary { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.chart-summary strong { font-size: 1.35rem; }
.bar-chart { height: 190px; display: flex; align-items: end; justify-content: space-between; gap: 8px; padding-top: 20px; }
.bar-chart > div { height: 100%; flex: 1; display: flex; align-items: center; justify-content: end; flex-direction: column; gap: 8px; }
.bar-chart i { display: block; width: min(70%,24px); border-radius: 7px 7px 2px 2px; background: linear-gradient(var(--purple),color-mix(in srgb,var(--purple) 30%,transparent)); }
.bar-chart span { color: var(--subtle); font-size: .68rem; }
.team-list { display: flex; flex-direction: column; gap: 8px; }
.team-row { min-height: 56px; display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.team-row:last-child { border-bottom: 0; }
.team-row img { width: 40px; height: 40px; border-radius: 13px; }
.team-row > span { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.team-row strong { font-size: .82rem; }
.team-row small { color: var(--muted); font-size: .67rem; }
.team-score { display: flex; gap: 3px; align-items: center; }
.team-score b { font-size: .8rem; }
.team-score span { color: var(--amber); }
.quick-action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.quick-action-grid a { min-height: 103px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; display: flex; flex-direction: column; align-items: flex-start; transition: .18s ease; }
.quick-action-grid a:hover { border-color: color-mix(in srgb,var(--primary) 30%,var(--line)); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.quick-icon { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; margin-bottom: 8px; }
.quick-icon.purple { background: var(--purple-soft); color: var(--purple); }
.quick-icon.rose { background: var(--rose-soft); color: var(--rose); }
.quick-icon.teal { background: var(--teal-soft); color: var(--teal); }
.quick-icon.amber { background: var(--amber-soft); color: var(--amber); }
.quick-action-grid strong { font-size: .76rem; }
.quick-action-grid small { color: var(--muted); font-size: .64rem; }
.review-row { display: flex; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.review-row:last-child { border-bottom: 0; }
.review-row img { width: 39px; height: 39px; border-radius: 12px; }
.review-row > div { flex: 1; }
.review-row strong { font-size: .8rem; }
.review-row p { margin: 4px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.8; }

/* Calendar and appointment pages */
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.calendar-nav { display: flex; align-items: center; gap: 12px; }
.calendar-nav strong { font-size: .9rem; }
.toolbar-actions { display: flex; gap: 8px; }
.appointments-layout { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 18px; }
.day-schedule { padding: 23px; }
.capacity-badge { color: var(--primary); background: var(--primary-soft); border-radius: 999px; padding: 5px 10px; font-size: .72rem; }
.day-timeline { display: flex; flex-direction: column; gap: 9px; }
.timeline-booking { display: grid; grid-template-columns: 80px minmax(210px,1.6fr) minmax(120px,.8fr) minmax(120px,.7fr) auto 38px; gap: 12px; align-items: center; min-height: 82px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-2); }
.booking-time { display: flex; flex-direction: column; }
.booking-time strong { font-size: .91rem; }
.booking-time small,.booking-specialist small,.booking-price small { color: var(--muted); font-size: .67rem; }
.booking-main { min-width: 0; display: flex; align-items: center; gap: 9px; position: relative; }
.booking-main img { width: 42px; height: 42px; border-radius: 13px; }
.booking-main > div { min-width: 0; display: flex; flex-direction: column; }
.booking-main strong { font-size: .81rem; }
.booking-main small { color: var(--muted); font-size: .68rem; }
.booking-accent { width: 4px; align-self: stretch; border-radius: 5px; background: var(--purple); }
.timeline-booking.rose .booking-accent { background: var(--rose); }
.timeline-booking.teal .booking-accent { background: var(--teal); }
.timeline-booking.amber .booking-accent { background: var(--amber); }
.booking-specialist,.booking-price { display: flex; flex-direction: column; }
.booking-specialist strong,.booking-price strong { font-size: .75rem; }
.empty-time-slot { min-height: 62px; display: grid; grid-template-columns: 80px 1fr; align-items: center; gap: 12px; border: 1px dashed color-mix(in srgb,var(--primary) 30%,var(--line)); border-radius: 15px; padding: 9px 13px; color: var(--primary); }
.empty-time-slot > span { font-weight: 700; font-size: .82rem; }
.empty-time-slot > div { min-height: 40px; border-radius: 11px; background: var(--primary-soft); display: flex; align-items: center; justify-content: center; gap: 7px; font-size: .76rem; font-weight: 700; }
.appointment-side { display: flex; flex-direction: column; gap: 18px; }
.appointment-side > .panel { padding: 19px; }
.mini-calendar-card .panel-head { margin-bottom: 12px; align-items: center; }
.mini-calendar-card .panel-head > div { display: flex; gap: 4px; }
.mini-calendar { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; }
.mini-calendar b { text-align: center; color: var(--subtle); font-size: .64rem; }
.mini-calendar button { height: 31px; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font-size: .7rem; }
.mini-calendar button.active { color: white; background: var(--primary); }
.stat-list { display: flex; flex-direction: column; }
.stat-list div { display: flex; align-items: center; justify-content: space-between; min-height: 47px; border-bottom: 1px solid var(--line); }
.stat-list div:last-child { border-bottom: 0; }
.stat-list span { color: var(--muted); font-size: .75rem; }
.stat-list strong { font-size: .86rem; }

/* Forms */
.step-indicator { display: flex; align-items: center; gap: 7px; }
.step-indicator span { width: 31px; height: 31px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: .73rem; font-weight: 700; }
.step-indicator span.active { color: white; background: var(--primary); border-color: var(--primary); }
.step-indicator i { width: 28px; height: 1px; background: var(--line); }
.form-main-grid { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 20px; align-items: start; }
.form-sections { display: flex; flex-direction: column; gap: 17px; }
.form-card { padding: 25px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.form-card-head { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 22px; }
.form-card-head h3 { margin: 0 0 2px; font-size: 1.07rem; }
.form-card-head p { margin: 0; color: var(--muted); font-size: .78rem; }
.form-number { width: 34px; height: 34px; flex: 0 0 auto; border-radius: 11px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); font-size: .8rem; font-weight: 800; }
.field-grid { display: grid; gap: 15px; }
.field-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.field-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 15px; }
.field > span { font-size: .8rem; font-weight: 700; }
.field > span b { color: var(--rose); }
.field input,.field select,.field textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-2); color: var(--text); outline: 0; transition: .18s ease; }
.field input,.field select { height: 48px; padding: 0 13px; }
.field textarea { padding: 12px 13px; resize: vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color: color-mix(in srgb,var(--primary) 70%,var(--line)); box-shadow: 0 0 0 4px color-mix(in srgb,var(--primary) 9%,transparent); background: var(--surface); }
.field input:disabled { opacity: .65; cursor: not-allowed; }
.field-error { color: var(--danger); font-size: .69rem; }
.input-suffix { position: relative; }
.input-suffix input { padding-left: 72px; }
.input-suffix em { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--muted); font-style: normal; font-size: .7rem; }
.form-summary-card { padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-md); }
.sticky-card { position: sticky; top: calc(var(--topbar) + 18px); }
.summary-icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg,var(--primary-soft),var(--rose-soft)); color: var(--primary); margin-bottom: 16px; }
.summary-icon svg { width: 25px; height: 25px; }
.form-summary-card h3 { font-size: 1.05rem; margin-bottom: 7px; }
.form-summary-card > p { color: var(--muted); font-size: .77rem; margin-bottom: 18px; }
.summary-list { margin-bottom: 18px; border-block: 1px solid var(--line); padding-block: 9px; }
.summary-list div { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.summary-list span { color: var(--muted); font-size: .73rem; }
.summary-list strong { font-size: .75rem; }
.form-summary-card .button + .button { margin-top: 9px; }
.client-suggestion-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.client-suggestion-row > span { color: var(--muted); font-size: .72rem; }
.suggestion-chip { border: 1px solid var(--line); background: var(--surface-2); border-radius: 999px; padding: 5px 10px 5px 5px; display: flex; align-items: center; gap: 6px; color: var(--text); font-size: .7rem; }
.suggestion-chip img { width: 26px; height: 26px; border-radius: 50%; }
.profile-upload { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.profile-upload > div { display: flex; flex-direction: column; }
.profile-upload strong { font-size: .82rem; }
.profile-upload small { color: var(--muted); font-size: .68rem; }
.avatar-uploader { width: 82px; height: 82px; flex: 0 0 auto; border: 1px dashed color-mix(in srgb,var(--primary) 35%,var(--line)); border-radius: 20px; background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; }
.avatar-uploader span { font-size: .62rem; }
.avatar-uploader.brand-avatar { border-style: solid; background: white; overflow: hidden; }
.avatar-uploader.brand-avatar img { width: 100%; height: 100%; }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.check-card { position: relative; min-height: 70px; border: 1px solid var(--line); border-radius: 14px; padding: 11px; display: flex; align-items: center; gap: 10px; cursor: pointer; }
.check-card input { width: 19px; height: 19px; accent-color: var(--primary); }
.check-card span { display: flex; flex-direction: column; }
.check-card strong { font-size: .75rem; }
.check-card small { color: var(--muted); font-size: .64rem; }
.service-select-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.week-schedule { display: flex; flex-direction: column; gap: 9px; }
.week-schedule > div { min-height: 50px; display: grid; grid-template-columns: minmax(110px,1fr) 120px 22px 120px; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 9px; }
.week-schedule label { display: flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 700; }
.week-schedule input[type="checkbox"] { accent-color: var(--primary); }
.week-schedule input[type="time"] { height: 39px; border: 1px solid var(--line); border-radius: 10px; padding: 0 8px; color: var(--text); background: var(--surface-2); }
.upload-zone { min-height: 180px; border: 1.5px dashed color-mix(in srgb,var(--primary) 35%,var(--line)); border-radius: 17px; background: var(--surface-2); display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 5px; margin-bottom: 20px; position: relative; overflow: hidden; cursor: pointer; }
.upload-zone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.upload-icon { width: 45px; height: 45px; border-radius: 13px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.upload-zone strong { font-size: .83rem; }
.upload-zone small { color: var(--muted); font-size: .68rem; }
.upload-zone img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.switch-row { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line); }
.switch-row > span { display: flex; flex-direction: column; }
.switch-row strong { font-size: .78rem; }
.switch-row small { color: var(--muted); font-size: .66rem; }
.switch-row input { appearance: none; width: 46px; height: 25px; border-radius: 999px; background: var(--line-strong); position: relative; transition: .2s; }
.switch-row input::after { content: ""; position: absolute; top: 3px; right: 3px; width: 19px; height: 19px; border-radius: 50%; background: white; box-shadow: 0 2px 6px rgba(0,0,0,.16); transition: .2s; }
.switch-row input:checked { background: var(--primary); }
.switch-row input:checked::after { right: 24px; }

/* Tables, profiles and common content */
.compact-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.mini-metric { min-height: 100px; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); display: flex; align-items: center; gap: 13px; box-shadow: var(--shadow-sm); }
.mini-metric .metric-icon { flex: 0 0 auto; }
.mini-metric > div { display: flex; flex-direction: column; }
.mini-metric small { color: var(--muted); font-size: .7rem; }
.mini-metric strong { font-size: 1.3rem; line-height: 1.35; }
.mini-metric em { color: var(--success); font-size: .65rem; font-style: normal; }
.table-panel { padding: 22px; }
.table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 17px; }
.table-toolbar > div { display: flex; gap: 8px; }
.table-search { width: min(430px,100%); height: 45px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-2); display: flex; align-items: center; gap: 8px; padding: 0 12px; color: var(--muted); }
.table-search input { width: 100%; border: 0; background: transparent; outline: 0; color: var(--text); font-size: .8rem; }
.responsive-table { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; white-space: nowrap; }
th { height: 44px; text-align: right; color: var(--muted); font-size: .7rem; font-weight: 700; background: var(--surface-2); padding: 0 12px; }
th:first-child { border-radius: 0 11px 11px 0; }
th:last-child { border-radius: 11px 0 0 11px; }
td { min-height: 69px; padding: 12px; border-bottom: 1px solid var(--line); font-size: .77rem; }
tr:last-child td { border-bottom: 0; }
.person-cell { display: flex; align-items: center; gap: 10px; }
.person-cell img { width: 40px; height: 40px; border-radius: 12px; }
.person-cell span { display: flex; flex-direction: column; }
.person-cell strong { font-size: .79rem; }
.person-cell small { color: var(--muted); font-size: .66rem; }
.level-badge { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 999px; color: #956d26; background: #f8efdb; font-size: .68rem; font-weight: 700; }
.level-badge.vip { color: var(--primary); background: var(--primary-soft); }
.profile-hero { padding: 23px; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 18px; }
.profile-identity { display: flex; align-items: center; gap: 15px; }
.profile-identity > img { width: 78px; height: 78px; border-radius: 22px; }
.profile-identity h2 { margin: 6px 0 0; font-size: 1.35rem; }
.profile-identity p { color: var(--muted); font-size: .75rem; margin: 0; }
.profile-actions { display: flex; gap: 8px; }
.profile-grid { display: grid; grid-template-columns: 1.3fr 1fr .62fr; gap: 18px; }
.profile-grid > .panel { padding: 21px; }
.service-history { display: flex; flex-direction: column; }
.service-history > div { min-height: 69px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); }
.service-history > div:last-child { border: 0; }
.service-icon { width: 39px; height: 39px; flex: 0 0 auto; border-radius: 12px; display: grid; place-items: center; }
.service-icon.purple { background: var(--purple-soft); color: var(--purple); }
.service-icon.rose { background: var(--rose-soft); color: var(--rose); }
.service-icon.teal { background: var(--teal-soft); color: var(--teal); }
.service-history > div > div { flex: 1; display: flex; flex-direction: column; }
.service-history strong { font-size: .78rem; }
.service-history small { color: var(--muted); font-size: .65rem; }
.service-history b { font-size: .72rem; }
.before-after-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.before-after-grid figure { margin: 0; border-radius: 14px; overflow: hidden; background: var(--surface-2); }
.before-after-grid img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.before-after-grid figcaption { padding: 8px 10px; font-size: .67rem; }
.note-item { border-radius: 13px; background: var(--surface-2); padding: 12px; margin-bottom: 10px; }
.note-item.warning { background: var(--amber-soft); }
.note-item strong { font-size: .75rem; }
.note-item p { margin: 2px 0 0; color: var(--muted); font-size: .67rem; }

/* Specialists */
.specialist-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; }
.specialist-card { overflow: hidden; }
.specialist-cover { height: 77px; position: relative; }
.specialist-cover.purple { background: linear-gradient(135deg,#ede7ff,#a38bea); }
.specialist-cover.rose { background: linear-gradient(135deg,#ffe7ed,#ee9aae); }
.specialist-cover.teal { background: linear-gradient(135deg,#e1f7f3,#7dd5ca); }
.specialist-cover.amber { background: linear-gradient(135deg,#fff0d3,#efc275); }
.specialist-cover .status-badge { position: absolute; top: 12px; left: 12px; }
.specialist-profile { display: flex; align-items: center; gap: 10px; padding: 0 16px; margin-top: -28px; position: relative; }
.specialist-profile img { width: 65px; height: 65px; border-radius: 20px; border: 4px solid var(--surface); }
.specialist-profile > div { flex: 1; padding-top: 30px; }
.specialist-profile h3 { margin: 0; font-size: .9rem; }
.specialist-profile p { margin: 0; color: var(--muted); font-size: .66rem; }
.specialist-profile .icon-button { margin-top: 29px; }
.specialist-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin: 16px; padding: 12px 0; border-block: 1px solid var(--line); }
.specialist-stats div { text-align: center; display: flex; flex-direction: column; }
.specialist-stats small { color: var(--muted); font-size: .62rem; }
.specialist-stats strong { font-size: .78rem; }
.specialist-stats em { color: var(--amber); font-style: normal; }
.commission-line { display: flex; justify-content: space-between; padding: 0 16px 13px; font-size: .72rem; }
.specialist-card > .button { width: calc(100% - 32px); margin: 0 16px 16px; }

/* Finance */
.line-chart-placeholder { height: 250px; position: relative; padding-top: 15px; }
.line-chart-placeholder svg { width: 100%; height: 205px; }
.chart-labels { display: flex; justify-content: space-between; color: var(--subtle); font-size: .65rem; }
.donut-wrap { display: flex; align-items: center; justify-content: center; gap: 30px; min-height: 245px; }
.donut-chart { width: 155px; height: 155px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--purple) 0 72%,var(--rose) 72% 91%,var(--teal) 91%); position: relative; }
.donut-chart::after { content: ""; position: absolute; width: 105px; height: 105px; border-radius: 50%; background: var(--surface); }
.donut-chart span { position: relative; z-index: 1; display: flex; align-items: center; flex-direction: column; }
.donut-chart strong { font-size: 1.28rem; }
.donut-chart small { color: var(--muted); font-size: .62rem; }
.legend-list { display: flex; flex-direction: column; gap: 13px; }
.legend-list > div { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 8px; font-size: .72rem; }
.legend-list i { width: 8px; height: 8px; border-radius: 50%; }
.legend-list i.purple { background: var(--purple); }.legend-list i.rose { background: var(--rose); }.legend-list i.teal { background: var(--teal); }

/* Products */
.product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; }
.product-card { padding: 14px; }
.product-image { height: 176px; background: var(--surface-2); border-radius: 15px; display: grid; place-items: center; position: relative; overflow: hidden; }
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.product-image .status-badge { position: absolute; top: 10px; left: 10px; }
.product-copy { padding: 14px 2px 9px; }
.product-copy small { color: var(--primary); font-size: .66rem; }
.product-copy h3 { margin: 2px 0 3px; font-size: .88rem; }
.product-copy strong { font-size: .78rem; }
.stock-row { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; font-size: .66rem; color: var(--muted); }
.stock-bar { height: 5px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
.stock-bar i { height: 100%; display: block; border-radius: inherit; background: var(--teal); }
.product-footer { margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.product-footer > span { color: var(--muted); font-size: .65rem; }
.add-product-card { min-height: 339px; border: 1px dashed color-mix(in srgb,var(--primary) 34%,var(--line)); border-radius: var(--radius); background: color-mix(in srgb,var(--primary-soft) 32%,var(--surface)); }
.add-product-card a { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 6px; text-align: center; }
.add-product-card a > span { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary); }
.add-product-card strong { font-size: .9rem; }
.add-product-card small { color: var(--muted); font-size: .68rem; }

/* Loyalty */
.loyalty-hero { min-height: 250px; padding: 34px; color: white; background: radial-gradient(circle at 12% 130%,rgba(255,202,124,.5),transparent 35%),linear-gradient(125deg,#4f3268,#79528e 55%,#b36d88); display: flex; align-items: center; justify-content: space-between; overflow: hidden; }
.loyalty-hero > div:first-child { max-width: 630px; }
.loyalty-hero h2 { margin: 10px 0 7px; font-size: 1.55rem; }
.loyalty-hero p { color: rgba(255,255,255,.72); font-size: .82rem; }
.loyalty-card-visual { width: 300px; height: 170px; border-radius: 22px; padding: 24px; transform: rotate(-5deg); background: linear-gradient(135deg,#f3d08c,#b67c27); color: #3d2a18; box-shadow: 0 30px 65px rgba(30,14,37,.36); display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.loyalty-card-visual::after { content: ""; position: absolute; left: -50px; top: -65px; width: 180px; height: 180px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; }
.loyalty-card-visual span { letter-spacing: .2em; font-weight: 800; }
.loyalty-card-visual strong { font: 700 1.15rem Georgia; letter-spacing: .12em; }
.loyalty-card-visual small { font-weight: 700; }
.tier-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 15px; margin: 18px 0; }
.tier-card { min-height: 140px; border-radius: var(--radius); padding: 19px; border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-sm); }
.tier-card span { font-size: .76rem; font-weight: 800; }
.tier-card strong { display: block; font-size: 1.45rem; }
.tier-card small { color: var(--muted); font-size: .65rem; }
.tier-card > div { height: 5px; border-radius: 999px; margin-top: 15px; background: var(--surface-3); overflow: hidden; }
.tier-card i { display: block; height: 100%; border-radius: inherit; }
.tier-card.bronze i { background: #b57b57; }.tier-card.silver i { background: #8c96a5; }.tier-card.gold i { background: #d7a533; }.tier-card.vip i { background: var(--primary); }

/* Campaigns */
.campaign-insight { padding: 20px; display: flex; align-items: center; gap: 14px; margin-bottom: 18px; border-color: color-mix(in srgb,var(--purple) 18%,var(--line)); background: linear-gradient(90deg,var(--purple-soft),var(--surface)); }
.insight-icon { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 16px; display: grid; place-items: center; color: var(--purple); background: var(--surface); }
.campaign-insight > div:nth-child(2) { flex: 1; }
.campaign-insight h3 { margin: 2px 0; font-size: .95rem; }
.campaign-insight p { margin: 0; color: var(--muted); font-size: .72rem; }
.campaign-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 17px; }
.campaign-card { padding: 20px; }
.campaign-head { display: flex; justify-content: space-between; margin-bottom: 17px; }
.campaign-channel { min-width: 45px; height: 26px; padding: 0 8px; display: grid; place-items: center; border-radius: 8px; font: 700 .66rem Arial; }
.campaign-channel.sms { color: var(--purple); background: var(--purple-soft); }
.campaign-channel.app { color: var(--teal); background: var(--teal-soft); }
.campaign-card h3 { margin: 0 0 5px; font-size: .95rem; }
.campaign-card > p { min-height: 48px; color: var(--muted); font-size: .7rem; }
.campaign-stats { display: grid; grid-template-columns: repeat(4,1fr); padding: 13px 0; border-block: 1px solid var(--line); }
.campaign-stats div { display: flex; align-items: center; flex-direction: column; border-left: 1px solid var(--line); }
.campaign-stats div:last-child { border: 0; }
.campaign-stats small { color: var(--muted); font-size: .6rem; }
.campaign-stats strong { font-size: .77rem; }
.campaign-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 13px; }
.campaign-footer span { color: var(--muted); font-size: .66rem; }
.audience-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.select-card { min-height: 100px; border: 1px solid var(--line); border-radius: 14px; padding: 13px; display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; column-gap: 10px; cursor: pointer; position: relative; }
.select-card input { position: absolute; left: 12px; top: 12px; accent-color: var(--primary); }
.select-card-icon { grid-row: 1 / span 2; width: 41px; height: 41px; border-radius: 12px; display: grid; place-items: center; }
.select-card-icon.purple { background: var(--purple-soft); color: var(--purple); }.select-card-icon.rose { background: var(--rose-soft); color: var(--rose); }.select-card-icon.amber { background: var(--amber-soft); color: var(--amber); }.select-card-icon.teal { background: var(--teal-soft); color: var(--teal); }
.select-card strong { font-size: .75rem; align-self: end; }
.select-card small { color: var(--muted); font-size: .64rem; }
.select-card:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); box-shadow: 0 0 0 3px color-mix(in srgb,var(--primary) 9%,transparent); }
.character-counter { display: block; text-align: left; margin-top: -10px; color: var(--muted); font-size: .63rem; }
.phone-preview { padding: 15px; border: 1px solid var(--line); border-radius: 31px; background: var(--surface); box-shadow: var(--shadow-lg); }
.phone-notch { width: 78px; height: 17px; border-radius: 0 0 13px 13px; background: var(--text); margin: -15px auto 12px; }
.phone-screen { min-height: 360px; border-radius: 21px; padding: 17px; background: linear-gradient(145deg,#f6edf8,#fdf8fb); color: #27202d; }
html[data-theme="dark"] .phone-screen { background: linear-gradient(145deg,#32283b,#251e2c); color: white; }
.preview-app { display: block; text-align: center; font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.message-preview { margin-top: 80px; width: 88%; padding: 12px; border-radius: 14px 14px 3px 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.message-preview small { color: var(--muted); font-size: .58rem; }
.message-preview p { margin: 4px 0 0; font-size: .72rem; line-height: 1.8; }
.phone-summary { padding: 13px 4px; }
.phone-summary div { display: flex; justify-content: space-between; min-height: 34px; align-items: center; font-size: .7rem; }
.phone-summary span { color: var(--muted); }

/* Content studio */
.content-hero { min-height: 290px; padding: 36px; display: flex; align-items: center; justify-content: space-between; background: radial-gradient(circle at 85% 10%,rgba(255,255,255,.18),transparent 25%),linear-gradient(125deg,#392148,#714c85 52%,#d57c98); color: white; overflow: hidden; }
.content-hero > div:first-child { width: 53%; }
.ai-pill { display: inline-flex; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 5px 10px; font: 700 .65rem Arial; letter-spacing: .08em; }
.content-hero h2 { font-size: 1.65rem; margin: 13px 0 6px; }
.content-hero p { color: rgba(255,255,255,.72); font-size: .8rem; }
.content-mockups { width: 42%; height: 220px; position: relative; }
.mockup-card { position: absolute; width: 150px; height: 202px; margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 25px 55px rgba(25,9,31,.35); border: 4px solid rgba(255,255,255,.7); }
.mockup-card img { width: 100%; height: 100%; object-fit: cover; }
.mockup-card span { position: absolute; bottom: 10px; left: 10px; font: 700 .62rem Arial; background: rgba(0,0,0,.45); padding: 4px 7px; border-radius: 6px; }
.mockup-card.m1 { right: 30px; top: 11px; transform: rotate(7deg); }.mockup-card.m2 { right: 148px; top: 2px; transform: rotate(-8deg); }
.sparkle-shape { position: absolute; left: 16px; top: 2px; font-size: 2.4rem; color: #f5cbd6; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin: 27px 0 14px; }
.section-heading h2,.section-heading h3 { margin: 2px 0 0; font-size: 1.25rem; }
.content-project-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 17px; }
.content-project-card { padding: 12px; }
.project-thumb { height: 225px; border-radius: 14px; overflow: hidden; position: relative; background: var(--surface-2); }
.project-thumb img { width: 100%; height: 100%; object-fit: cover; }
.project-thumb > span { position: absolute; top: 10px; right: 10px; padding: 4px 8px; border-radius: 7px; color: white; background: rgba(35,19,44,.58); font-size: .61rem; }
.play-button { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 47px; height: 47px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; display: grid; place-items: center; color: white; background: rgba(42,20,51,.42); backdrop-filter: blur(10px); }
.project-copy { display: flex; align-items: center; justify-content: space-between; padding: 12px 2px 8px; }
.project-copy h3 { margin: 0; font-size: .85rem; }
.project-copy p { margin: 1px 0 0; color: var(--muted); font-size: .63rem; }
.project-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.studio-builder { display: grid; grid-template-columns: minmax(0,1fr) 370px; gap: 20px; align-items: start; }
.studio-controls { display: flex; flex-direction: column; gap: 17px; }
.dual-upload { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dual-upload .upload-zone { margin: 0; }
.format-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 18px; }
.format-card { min-height: 132px; border: 1px solid var(--line); border-radius: 14px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; position: relative; cursor: pointer; }
.format-card input { position: absolute; top: 9px; left: 9px; accent-color: var(--primary); }
.format-card:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.format-shape { display: grid; place-items: center; border: 2px solid var(--muted); border-radius: 5px; color: var(--muted); }
.format-shape.story,.format-shape.reel { width: 29px; height: 49px; }.format-shape.portrait { width: 34px; height: 44px; }.format-shape.square { width: 39px; height: 39px; }
.format-card strong { font-size: .7rem; }
.format-card small { color: var(--muted); font-size: .61rem; }
.preview-canvas { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-md); }
.preview-label { display: block; color: var(--muted); font-size: .7rem; margin-bottom: 10px; }
.story-preview { aspect-ratio: 9/14.5; max-height: 570px; margin: 0 auto 14px; border-radius: 21px; padding: 28px 18px; color: white; background: radial-gradient(circle at 30% 16%,rgba(255,255,255,.2),transparent 20%),linear-gradient(160deg,#442554,#896093 65%,#d5819c); display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; }
.story-brand { position: absolute; align-self: flex-start; margin-top: -480px; font: 700 .72rem Arial; letter-spacing: .2em; }
.story-images { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; width: 100%; }
.story-images figure { margin: 0; position: relative; border-radius: 14px; overflow: hidden; }
.story-images img { width: 100%; height: 230px; object-fit: cover; }
.story-images figcaption { position: absolute; bottom: 8px; right: 8px; border-radius: 6px; background: rgba(0,0,0,.4); padding: 2px 7px; font-size: .6rem; }
.story-preview h3 { text-align: center; margin: 18px 0 5px; font-size: 1.05rem; }
.story-preview > small { opacity: .72; }

/* Feedback */
.feedback-summary-grid { display: grid; grid-template-columns: .7fr 1.4fr .8fr; gap: 17px; margin-bottom: 18px; }
.feedback-summary-grid > .panel { min-height: 165px; padding: 21px; }
.rating-overview { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rating-overview > span { color: var(--muted); font-size: .72rem; }
.rating-overview > strong { font-size: 2.3rem; line-height: 1.25; }
.rating-overview > small { color: var(--muted); font-size: .64rem; }
.rating-bars { display: flex; flex-direction: column; justify-content: center; gap: 7px; }
.rating-bars > div { display: grid; grid-template-columns: 40px 1fr 35px; align-items: center; gap: 8px; font-size: .66rem; }
.rating-bars i { height: 6px; background: var(--surface-3); border-radius: 999px; overflow: hidden; }
.rating-bars b { height: 100%; display: block; background: var(--amber); border-radius: inherit; }
.rating-bars strong { font-size: .65rem; }
.sentiment-card { display: flex; align-items: center; justify-content: center; gap: 13px; }
.sentiment-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--teal-soft); color: var(--teal); font-size: 2rem; }
.sentiment-card > div:last-child { display: flex; flex-direction: column; }
.sentiment-card span,.sentiment-card small { color: var(--muted); font-size: .68rem; }
.sentiment-card strong { font-size: 1.5rem; }
.feedback-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 18px; }
.feedback-list,.feedback-layout aside { display: flex; flex-direction: column; gap: 14px; }
.feedback-card { padding: 20px; }
.feedback-card-head { display: flex; align-items: center; justify-content: space-between; }
.feedback-card > p { color: var(--muted); font-size: .78rem; margin: 16px 0; }
.feedback-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.feedback-meta span { border-radius: 999px; background: var(--surface-3); padding: 4px 9px; color: var(--muted); font-size: .65rem; }
.feedback-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 13px; }
.feedback-layout aside > .panel { padding: 20px; }
.topic-cloud { display: flex; flex-wrap: wrap; gap: 7px; }
.topic-cloud span { padding: 5px 9px; border-radius: 999px; color: var(--primary); background: var(--primary-soft); font-size: .68rem; }

/* Settings */
.settings-layout { display: grid; grid-template-columns: 245px minmax(0,1fr); gap: 18px; align-items: start; }
.settings-nav { padding: 10px; position: sticky; top: calc(var(--topbar) + 18px); }
.settings-nav button { width: 100%; min-height: 46px; border: 0; border-radius: 12px; background: transparent; color: var(--muted); display: flex; align-items: center; gap: 9px; padding: 0 11px; font-size: .78rem; text-align: right; }
.settings-nav button.active { color: var(--primary); background: var(--primary-soft); font-weight: 700; }
.settings-nav svg { width: 18px; }
.settings-content { display: flex; flex-direction: column; gap: 14px; }
.settings-pane { display: none; }
.settings-pane.active { display: block; }
.settings-save-bar { min-height: 69px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); display: flex; align-items: center; justify-content: space-between; position: sticky; bottom: 13px; box-shadow: var(--shadow-md); }
.settings-save-bar span { color: var(--muted); font-size: .73rem; }
.switch-list { display: flex; flex-direction: column; }

/* Customer portal */
.customer-body { background: #f8f5fa; }
html[data-theme="dark"] .customer-body { background: var(--bg); }
.customer-shell { min-height: 100vh; }
.customer-header { position: sticky; top: 0; z-index: 100; height: 78px; border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 90%,transparent); backdrop-filter: blur(18px); }
.customer-header-inner { max-width: 1240px; height: 100%; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.customer-brand { display: flex; align-items: center; gap: 9px; }
.customer-brand img { width: 42px; height: 42px; border-radius: 13px; }
.customer-brand span { display: flex; flex-direction: column; line-height: 1.45; }
.customer-brand strong { font: 800 1rem Arial; letter-spacing: .1em; }
.customer-brand small { color: var(--muted); font-size: .6rem; }
.customer-desktop-nav { display: flex; align-items: center; gap: 5px; }
.customer-desktop-nav a { min-height: 40px; padding: 0 14px; border-radius: 11px; display: flex; align-items: center; color: var(--muted); font-size: .79rem; font-weight: 700; }
.customer-desktop-nav a.active { color: var(--primary); background: var(--primary-soft); }
.customer-actions { display: flex; align-items: center; gap: 8px; }
.customer-profile-chip { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 14px; padding: 5px 7px 5px 11px; background: var(--surface); }
.customer-profile-chip img { width: 36px; height: 36px; border-radius: 11px; }
.customer-profile-chip span { display: flex; flex-direction: column; line-height: 1.45; }
.customer-profile-chip strong { font-size: .73rem; }
.customer-profile-chip small { color: var(--muted); font-size: .6rem; }
.customer-main { max-width: 1240px; margin: 0 auto; padding: 34px 24px 80px; }
.customer-mobile-nav { display: none; }
.customer-welcome,.customer-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.customer-welcome h1,.customer-page-head h1 { margin: 3px 0 3px; font-size: clamp(1.55rem,2.5vw,2rem); }
.customer-welcome p,.customer-page-head p { margin: 0; color: var(--muted); font-size: .86rem; }
.customer-dashboard-grid { display: grid; grid-template-columns: 1.5fr .65fr; gap: 18px; }
.next-appointment-card { min-height: 280px; padding: 31px; border-radius: 26px; position: relative; overflow: hidden; color: white; background: radial-gradient(circle at 8% 125%,rgba(255,176,199,.7),transparent 38%),linear-gradient(125deg,#4c2c61,#72508b 58%,#bf7892); box-shadow: var(--shadow-lg); }
.appointment-glow { position: absolute; width: 230px; height: 230px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; left: 30px; top: 20px; box-shadow: inset 0 0 65px rgba(255,255,255,.06); }
.next-appointment-card > *:not(.appointment-glow) { position: relative; z-index: 1; }
.card-label { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.75); font-size: .75rem; }
.next-appointment-card h2 { margin: 20px 0 17px; font-size: 1.5rem; }
.appointment-details { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.appointment-details span { display: flex; flex-direction: column; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.17); }
.appointment-details span:last-child { border: 0; }
.appointment-details small { opacity: .66; font-size: .65rem; }
.appointment-details strong { font-size: .8rem; }
.card-actions { display: flex; gap: 8px; margin-top: 24px; }
.loyalty-mini-card { padding: 23px; display: flex; flex-direction: column; justify-content: center; }
.loyalty-top { display: flex; align-items: center; gap: 11px; }
.loyalty-badge { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; color: #a87220; background: linear-gradient(135deg,#fff3d1,#e8bd62); }
.loyalty-top > span:last-child { display: flex; flex-direction: column; }
.loyalty-top small { color: var(--muted); font-size: .65rem; }
.loyalty-top strong { font-size: .82rem; }
.points-row { margin-top: 22px; display: flex; align-items: end; gap: 7px; }
.points-row strong { font-size: 2rem; line-height: 1; }
.points-row span { color: var(--muted); font-size: .69rem; }
.points-progress { height: 7px; border-radius: 999px; background: var(--surface-3); margin-top: 13px; overflow: hidden; }
.points-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#dca743,#f1d08b); }
.loyalty-mini-card p { color: var(--muted); font-size: .68rem; margin: 11px 0; }
.customer-quick-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; margin-top: 17px; }
.customer-quick-card { min-height: 91px; padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); display: flex; align-items: center; gap: 11px; box-shadow: var(--shadow-sm); transition: .18s ease; }
.customer-quick-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.customer-quick-card .quick-icon { margin: 0; flex: 0 0 auto; }
.customer-quick-card > div { flex: 1; display: flex; flex-direction: column; }
.customer-quick-card strong { font-size: .79rem; }
.customer-quick-card small { color: var(--muted); font-size: .63rem; }
.quick-arrow { width: 16px; color: var(--subtle); }
.customer-section { margin-top: 29px; }
.offer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.offer-card { min-height: 200px; padding: 25px; border-radius: 22px; color: white; display: flex; align-items: flex-start; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.offer-card::after { content: ""; position: absolute; left: -45px; top: -55px; width: 170px; height: 170px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; }
.offer-purple { background: linear-gradient(125deg,#4c3064,#8b5ea0); }
.offer-rose { background: linear-gradient(125deg,#944f6d,#e58ba2); }
.offer-card > span { font-size: .68rem; opacity: .76; }
.offer-card h3 { margin: 8px 0 3px; font-size: 1.12rem; }
.offer-card p { color: rgba(255,255,255,.73); font-size: .72rem; }
.offer-card a { font-size: .73rem; font-weight: 800; border-bottom: 1px solid rgba(255,255,255,.45); }
.customer-specialists { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.customer-specialist-card { min-height: 86px; padding: 13px; display: flex; align-items: center; gap: 10px; }
.customer-specialist-card img { width: 50px; height: 50px; border-radius: 15px; }
.customer-specialist-card > div { flex: 1; display: flex; flex-direction: column; }
.customer-specialist-card strong { font-size: .78rem; }.customer-specialist-card small { color: var(--muted); font-size: .63rem; }.customer-specialist-card span { color: var(--amber); font-size: .64rem; }

/* Customer bookings */
.booking-tabs { display: flex; gap: 6px; margin-bottom: 15px; border-bottom: 1px solid var(--line); }
.booking-tabs button { min-height: 45px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); padding: 0 15px; font-size: .78rem; }
.booking-tabs button.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 700; }
.booking-tabs b { min-width: 21px; height: 21px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--primary-soft); font-size: .62rem; }
.customer-booking-list { display: none; flex-direction: column; gap: 13px; }
.customer-booking-list.active { display: flex; }
.customer-booking-card { min-height: 155px; padding: 19px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); display: grid; grid-template-columns: 82px minmax(0,1fr) auto; align-items: center; gap: 18px; box-shadow: var(--shadow-sm); }
.customer-booking-card.featured { border-color: color-mix(in srgb,var(--primary) 28%,var(--line)); }
.booking-date-box { height: 100px; border-radius: 16px; display: flex; align-items: center; justify-content: center; flex-direction: column; background: var(--primary-soft); color: var(--primary); }
.booking-date-box strong { font-size: 1.6rem; line-height: 1.2; }
.booking-date-box span { font-weight: 800; font-size: .72rem; }.booking-date-box small { font-size: .62rem; }
.booking-card-main h3 { margin: 7px 0 6px; font-size: .95rem; }
.booking-card-main p { margin: 2px 0; color: var(--muted); font-size: .7rem; display: flex; align-items: center; gap: 6px; }
.booking-card-main svg { width: 15px; }
.booking-card-actions { display: flex; flex-direction: column; gap: 7px; }
.empty-state { min-height: 280px; padding: 35px; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; }
.empty-state > span { width: 65px; height: 65px; border-radius: 20px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); }
.empty-state h3 { margin: 16px 0 4px; font-size: 1rem; }.empty-state p { color: var(--muted); font-size: .74rem; }
.customer-booking-form { display: flex; flex-direction: column; gap: 16px; }
.customer-form-card { padding: 27px; }
.service-option-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 11px; }
.service-option { min-height: 106px; border: 1px solid var(--line); border-radius: 16px; padding: 13px; display: flex; align-items: center; gap: 11px; position: relative; cursor: pointer; }
.service-option input { position: absolute; opacity: 0; }
.service-option:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); box-shadow: 0 0 0 3px color-mix(in srgb,var(--primary) 8%,transparent); }
.service-option-icon { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 15px; display: grid; place-items: center; }
.service-option-icon.purple { background: var(--purple-soft); color: var(--purple); }.service-option-icon.rose { background: var(--rose-soft); color: var(--rose); }.service-option-icon.teal { background: var(--teal-soft); color: var(--teal); }.service-option-icon.amber { background: var(--amber-soft); color: var(--amber); }
.service-option > div { display: flex; flex-direction: column; }
.service-option strong { font-size: .78rem; }.service-option small { color: var(--muted); font-size: .63rem; }.service-option b { margin-top: 4px; font-size: .7rem; }
.service-option > i { margin-right: auto; width: 23px; height: 23px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: transparent; }
.service-option:has(input:checked) > i { color: white; background: var(--primary); border-color: var(--primary); }
.specialist-option-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.specialist-option { min-height: 150px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; display: flex; align-items: center; flex-direction: column; text-align: center; cursor: pointer; position: relative; }
.specialist-option input { position: absolute; opacity: 0; }
.specialist-option:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.specialist-option img,.auto-specialist { width: 61px; height: 61px; border-radius: 18px; margin-bottom: 8px; }
.auto-specialist { display: grid; place-items: center; background: linear-gradient(135deg,var(--primary-soft),var(--rose-soft)); color: var(--primary); }
.specialist-option strong { font-size: .7rem; }.specialist-option small { color: var(--muted); font-size: .57rem; }.specialist-option > span:not(.auto-specialist) { color: var(--amber); font-size: .61rem; }
.date-option-row { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin-bottom: 15px; }
.date-option { min-height: 75px; border: 1px solid var(--line); border-radius: 14px; display: flex; align-items: center; justify-content: center; flex-direction: column; cursor: pointer; }
.date-option input,.time-option input { position: absolute; opacity: 0; }
.date-option:has(input:checked),.time-option:has(input:checked) { border-color: var(--primary); color: var(--primary); background: var(--primary-soft); }
.date-option span { color: var(--muted); font-size: .62rem; }.date-option strong { font-size: .75rem; }
.time-option-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 8px; }
.time-option { min-height: 44px; border: 1px solid var(--line); border-radius: 12px; display: grid; place-items: center; cursor: pointer; position: relative; font-size: .75rem; }
.checkout-summary { padding: 17px; display: flex; align-items: center; gap: 15px; }
.checkout-summary > div:first-child { display: flex; align-items: center; gap: 10px; flex: 1; }
.checkout-summary > div:first-child > div { display: flex; flex-direction: column; }
.checkout-summary strong { font-size: .8rem; }.checkout-summary small { color: var(--muted); font-size: .63rem; }
.checkout-total { display: flex; flex-direction: column; align-items: flex-end; }
.checkout-total span { color: var(--muted); font-size: .64rem; }.checkout-total strong { font-size: .82rem; }

/* Customer history, gallery, payments */
.history-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; margin-bottom: 20px; }
.history-summary article { min-height: 88px; padding: 15px; display: flex; align-items: center; gap: 11px; }
.history-summary .quick-icon { margin: 0; }
.history-summary article > div { display: flex; flex-direction: column; }
.history-summary small { color: var(--muted); font-size: .64rem; }.history-summary strong { font-size: .83rem; }
.history-timeline { position: relative; display: flex; flex-direction: column; gap: 14px; }
.history-item { min-height: 160px; padding: 17px; display: grid; grid-template-columns: 115px 165px minmax(0,1fr) auto; align-items: center; gap: 16px; }
.history-date { height: 100%; border-left: 1px solid var(--line); position: relative; display: flex; align-items: flex-start; padding-top: 15px; }
.history-date span { position: absolute; left: -5px; top: 20px; width: 10px; height: 10px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 5px var(--primary-soft); }
.history-date strong { font-size: .72rem; }
.history-image img { width: 165px; height: 120px; border-radius: 15px; object-fit: cover; }
.history-content h3 { margin: 7px 0 2px; font-size: .9rem; }.history-content > p { margin: 0; color: var(--muted); font-size: .68rem; }
.specialist-note { display: flex; gap: 8px; margin-top: 10px; padding: 9px 10px; border-radius: 11px; background: var(--surface-2); }
.specialist-note svg { color: var(--primary); flex: 0 0 auto; }.specialist-note span { display: flex; flex-direction: column; }.specialist-note strong { font-size: .68rem; }.specialist-note small { color: var(--muted); font-size: .62rem; }
.history-actions { display: flex; flex-direction: column; gap: 7px; }
.privacy-note { padding: 17px; display: flex; align-items: center; gap: 12px; margin-bottom: 16px; background: linear-gradient(90deg,var(--teal-soft),var(--surface)); }
.privacy-note > span { width: 45px; height: 45px; border-radius: 14px; display: grid; place-items: center; color: var(--teal); background: var(--surface); }
.privacy-note strong { font-size: .8rem; }.privacy-note p { margin: 0; color: var(--muted); font-size: .68rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }
.gallery-card { padding: 12px; }
.gallery-image { height: 300px; border-radius: 16px; overflow: hidden; position: relative; }
.gallery-image img { width: 100%; height: 100%; object-fit: cover; }
.before-after-labels { position: absolute; inset: auto 10px 10px; display: flex; justify-content: space-between; }
.before-after-labels span { padding: 3px 8px; color: white; background: rgba(31,15,39,.5); backdrop-filter: blur(8px); border-radius: 7px; font-size: .62rem; }
.gallery-card > div:last-child { display: flex; align-items: center; justify-content: space-between; padding: 11px 3px 1px; }
.gallery-card > div:last-child > span { display: flex; flex-direction: column; }
.gallery-card strong { font-size: .79rem; }.gallery-card small { color: var(--muted); font-size: .62rem; }
.payment-balance-card { min-height: 180px; border-radius: 24px; padding: 29px; color: white; background: radial-gradient(circle at 10% 130%,rgba(240,151,180,.75),transparent 35%),linear-gradient(120deg,#4d3063,#7d5792); display: flex; align-items: center; justify-content: space-between; box-shadow: var(--shadow-lg); margin-bottom: 18px; }
.payment-balance-card > div { display: flex; flex-direction: column; }.payment-balance-card > div > strong { margin-top: 16px; font-size: 2rem; }.payment-balance-card > div > strong small { font-size: .72rem; }.payment-balance-card p { margin: 0; color: rgba(255,255,255,.7); font-size: .68rem; }
.customer-table-panel { padding: 20px; }

/* Customer loyalty */
.customer-loyalty-hero { display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; align-items: stretch; }
.customer-member-card { min-height: 270px; border-radius: 26px; padding: 25px; color: #4a341b; background: linear-gradient(145deg,#f7dd9e,#d5a54a 60%,#ae7525); box-shadow: var(--shadow-lg); position: relative; overflow: hidden; display: flex; flex-direction: column; }
.customer-member-card::after { content: ""; position: absolute; left: -70px; top: -85px; width: 250px; height: 250px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; }
.member-card-top { display: flex; justify-content: space-between; font: 700 .74rem Arial; letter-spacing: .13em; }
.member-card-name { margin-top: auto; display: flex; flex-direction: column; }.member-card-name strong { font-size: 1.1rem; }.member-card-name span { font-size: .68rem; }
.member-card-points { margin-top: 13px; display: flex; align-items: end; gap: 7px; }.member-card-points strong { font-size: 1.75rem; }.member-card-points small { font-size: .65rem; }
.member-card-code { margin-top: 10px; font: .65rem Arial; letter-spacing: .13em; }
.loyalty-progress-card { padding: 29px; }
.loyalty-progress-card h2 { margin: 7px 0 27px; font-size: 1.2rem; }
.big-progress { height: 11px; border-radius: 999px; background: var(--surface-3); position: relative; }
.big-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#c59032,#efd486); }
.big-progress span { position: absolute; top: -36px; transform: translateX(50%); border-radius: 8px; padding: 3px 7px; background: var(--primary); color: white; font-size: .62rem; }
.progress-labels { display: flex; justify-content: space-between; margin-top: 6px; color: var(--muted); font-size: .62rem; }
.loyalty-progress-card p { color: var(--muted); font-size: .7rem; }
.reward-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.reward-card { min-height: 190px; padding: 18px; border: 1px solid var(--line); border-radius: 19px; background: var(--surface); display: flex; align-items: flex-start; flex-direction: column; box-shadow: var(--shadow-sm); }
.reward-card.available { border-color: color-mix(in srgb,var(--primary) 30%,var(--line)); }
.reward-icon { width: 47px; height: 47px; border-radius: 14px; display: grid; place-items: center; color: var(--primary); background: var(--primary-soft); margin-bottom: 11px; }
.reward-card > div { flex: 1; }.reward-card > div > span { color: var(--primary); font-size: .64rem; font-weight: 700; }.reward-card h3 { margin: 3px 0 2px; font-size: .86rem; }.reward-card p { margin: 0; color: var(--muted); font-size: .64rem; }
.reward-card .button { align-self: stretch; margin-top: 12px; }
.earn-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.earn-grid article { min-height: 120px; padding: 18px; display: flex; align-items: flex-start; flex-direction: column; }
.earn-grid .quick-icon { margin-bottom: 11px; }.earn-grid strong { font-size: .82rem; }.earn-grid small { color: var(--muted); font-size: .65rem; }

/* Customer feedback/profile */
.my-feedback-list { display: flex; flex-direction: column; gap: 14px; }
.my-feedback-card { padding: 20px; }
.my-feedback-card > div:first-child { display: flex; justify-content: space-between; }
.my-feedback-card h3 { margin: 13px 0 4px; font-size: .92rem; }.my-feedback-card > p { color: var(--muted); font-size: .76rem; }
.salon-reply { margin-top: 15px; padding: 13px; border-radius: 14px; background: var(--primary-soft); display: flex; gap: 10px; }
.salon-reply img { width: 38px; height: 38px; border-radius: 11px; }.salon-reply strong { font-size: .73rem; }.salon-reply p { margin: 2px 0 0; color: var(--muted); font-size: .66rem; }
.feedback-form { max-width: 780px; padding: 28px; margin: 0 auto; }
.feedback-service-summary { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.feedback-service-summary img { width: 59px; height: 59px; border-radius: 17px; }.feedback-service-summary small { color: var(--muted); font-size: .65rem; }.feedback-service-summary h3 { margin: 1px 0; font-size: .9rem; }.feedback-service-summary p { margin: 0; color: var(--muted); font-size: .65rem; }
.rating-question { text-align: center; padding: 28px 0; }
.rating-question > span { display: block; font-size: .84rem; font-weight: 700; }
.rating-question > strong { display: block; margin-top: 7px; color: var(--muted); font-size: .7rem; }
.star-rating { direction: ltr; display: flex; justify-content: center; flex-direction: row-reverse; gap: 5px; margin-top: 9px; }
.star-rating input { display: none; }
.star-rating label { font: 2.3rem Arial; color: var(--line-strong); cursor: pointer; transition: .15s; }
.star-rating label:hover,.star-rating label:hover ~ label,.star-rating input:checked ~ label { color: var(--amber); transform: scale(1.06); }
.customer-profile-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 18px; align-items: start; }
.customer-profile-aside { padding: 24px; display: flex; align-items: center; flex-direction: column; text-align: center; position: sticky; top: 96px; }
.customer-profile-aside > img { width: 105px; height: 105px; border-radius: 28px; }.customer-profile-aside h2 { margin: 12px 0 5px; font-size: 1.1rem; }.customer-profile-aside p { color: var(--muted); font-size: .72rem; }.customer-profile-aside .button { margin-top: 10px; }
.profile-form-sections { display: flex; flex-direction: column; gap: 15px; }.profile-submit { align-self: flex-end; min-width: 180px; }

/* Toast */
.toast-stack { position: fixed; left: 22px; bottom: 22px; z-index: 3000; display: flex; flex-direction: column; gap: 9px; }
.toast { min-width: 290px; max-width: 420px; min-height: 54px; padding: 12px 15px; border: 1px solid color-mix(in srgb,var(--success) 20%,var(--line)); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-lg); display: flex; align-items: center; gap: 10px; animation: toast-in .24s ease both; font-size: .78rem; }
.toast::before { content: "✓"; width: 28px; height: 28px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; color: white; background: var(--success); }
.toast.error::before { content: "!"; background: var(--danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }

/* Responsive */
@media (max-width: 1280px) {
    :root { --sidebar: 266px; }
    .page-container { padding-inline: 25px; }
    .topbar { padding-inline: 25px; }
    .global-search { width: 255px; }
    .dashboard-grid-secondary { grid-template-columns: 1fr 1fr; }
    .dashboard-grid-secondary > :last-child { grid-column: 1 / -1; }
    .specialist-grid,.product-grid,.content-project-grid { grid-template-columns: repeat(3,1fr); }
    .profile-grid { grid-template-columns: 1.2fr 1fr; }.profile-note-card { grid-column: 1/-1; }
    .specialist-option-grid { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 1080px) {
    .sidebar { transform: translateX(105%); transition: transform .25s ease; box-shadow: var(--shadow-lg); }
    .sidebar.open { transform: translateX(0); }
    .sidebar-close,.mobile-menu { display: inline-grid !important; }
    .sidebar-overlay { position: fixed; inset: 0; z-index: 999; background: rgba(18,10,22,.4); backdrop-filter: blur(3px); }
    body.sidebar-open .sidebar-overlay { display: block; }
    .main-area { margin-right: 0; }
    .topbar { padding-inline: 20px; }
    .page-container { padding-inline: 20px; }
    .metric-grid { grid-template-columns: repeat(2,1fr); }
    .appointments-layout { grid-template-columns: 1fr; }.appointment-side { display: grid; grid-template-columns: 1fr 1fr; }
    .form-main-grid { grid-template-columns: 1fr; }.form-aside { order: -1; }.form-summary-card.sticky-card { position: static; display: grid; grid-template-columns: auto 1fr; column-gap: 15px; }.form-summary-card.sticky-card .summary-icon { grid-row: 1/span 2; }.form-summary-card.sticky-card .summary-list,.form-summary-card.sticky-card .button { grid-column: 1/-1; }
    .feedback-layout { grid-template-columns: 1fr; }.feedback-layout aside { display: grid; grid-template-columns: 1fr 1fr; }
    .studio-builder { grid-template-columns: 1fr; }.studio-preview { order: -1; }.preview-canvas.sticky-card { position: static; }.story-preview { max-width: 330px; max-height: 510px; }
    .customer-desktop-nav { display: none; }
}

@media (max-width: 850px) {
    body { font-size: 15px; }
    .topbar-actions .global-search,.topbar-actions .install-button,.user-chip span,.user-chip > svg { display: none; }
    .user-chip { min-width: auto; width: 48px; padding: 5px; }
    .user-chip img { width: 36px; height: 36px; }
    .hero-art { opacity: .55; width: 48%; }.hero-copy { max-width: 72%; }
    .dashboard-grid-main,.dashboard-grid-secondary { grid-template-columns: 1fr; }.dashboard-grid-secondary > :last-child { grid-column: auto; }
    .timeline-booking { grid-template-columns: 66px minmax(170px,1fr) auto 38px; }.booking-specialist,.booking-price { display: none; }
    .specialist-grid,.product-grid,.content-project-grid { grid-template-columns: repeat(2,1fr); }
    .profile-grid { grid-template-columns: 1fr; }.profile-note-card { grid-column: auto; }
    .campaign-grid { grid-template-columns: 1fr; }
    .feedback-summary-grid { grid-template-columns: 1fr 1fr; }.sentiment-card { grid-column: 1/-1; }
    .settings-layout { grid-template-columns: 1fr; }.settings-nav { position: static; display: flex; overflow-x: auto; }.settings-nav button { min-width: max-content; width: auto; }
    .customer-dashboard-grid { grid-template-columns: 1fr; }.customer-quick-grid { grid-template-columns: repeat(2,1fr); }.customer-specialists { grid-template-columns: 1fr; }
    .history-item { grid-template-columns: 90px 130px 1fr; }.history-image img { width: 130px; }.history-actions { grid-column: 2/-1; flex-direction: row; }
    .customer-loyalty-hero { grid-template-columns: 1fr; }.reward-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    :root { --topbar: 72px; }
    body { font-size: 15px; line-height: 1.7; }
    .topbar { height: var(--topbar); padding: 0 14px; }.topbar-heading h1 { font-size: 1.06rem; }.today-label { font-size: .65rem; }.topbar-actions { gap: 5px; }.topbar-actions .notice-button { display: none; }.icon-button { width: 41px; height: 41px; border-radius: 12px; }
    .page-container { padding: 20px 14px 40px; }
    .page-head,.customer-page-head,.customer-welcome { align-items: flex-start; flex-direction: column; margin-bottom: 20px; }.page-head h2,.customer-page-head h1,.customer-welcome h1 { font-size: 1.4rem; }.page-head > .button,.customer-page-head > .button,.customer-welcome > .button { width: 100%; }
    .hero-panel { min-height: 330px; padding: 27px 22px; }.hero-copy { max-width: 100%; }.hero-copy h2 { font-size: 1.65rem; }.hero-art { width: 100%; opacity: .24; }.floating-stat { display: none; }
    .metric-grid,.compact-metrics { grid-template-columns: 1fr; }.metric-card { min-height: 155px; }.mini-metric { min-height: 85px; }
    .dashboard-grid > .panel,.panel { border-radius: 16px; }.dashboard-grid > .panel { padding: 17px; }
    .appointment-row { grid-template-columns: 48px 10px 1fr 36px; }.appointment-row .status-badge { display: none; }.appointment-person img { width: 35px; height: 35px; }
    .quick-action-grid { grid-template-columns: 1fr 1fr; }
    .calendar-toolbar { align-items: stretch; flex-direction: column; }.calendar-nav { justify-content: space-between; }.toolbar-actions { display: none; }.appointment-side { grid-template-columns: 1fr; }
    .day-schedule { padding: 14px; }.timeline-booking { grid-template-columns: 55px 1fr 34px; padding: 9px; }.timeline-booking .status-badge { display: none; }.booking-main img { width: 38px; height: 38px; }
    .form-card { padding: 18px 15px; }.field-grid.two,.field-grid.three { grid-template-columns: 1fr; }.check-grid,.service-select-grid { grid-template-columns: 1fr; }.form-summary-card.sticky-card { display: block; }.form-summary-card.sticky-card .summary-icon { margin-bottom: 12px; }
    .week-schedule > div { grid-template-columns: 1fr 88px 16px 88px; gap: 5px; }.week-schedule input[type="time"] { font-size: .7rem; }
    .table-toolbar { align-items: stretch; flex-direction: column; }.table-search { width: 100%; }.table-toolbar > div { justify-content: stretch; }.table-toolbar .button { flex: 1; }
    .profile-hero { align-items: flex-start; flex-direction: column; }.profile-actions { width: 100%; }.profile-actions .button { flex: 1; }.profile-identity > img { width: 64px; height: 64px; }
    .specialist-grid,.product-grid,.content-project-grid { grid-template-columns: 1fr; }.product-image { height: 230px; }
    .loyalty-hero { padding: 26px 20px; flex-direction: column; }.loyalty-card-visual { width: min(100%,290px); margin: 22px auto 0; }.tier-grid { grid-template-columns: 1fr 1fr; }
    .campaign-insight { align-items: flex-start; flex-wrap: wrap; }.campaign-insight > .button { width: 100%; }.audience-grid { grid-template-columns: 1fr; }
    .content-hero { padding: 25px 20px; align-items: flex-start; flex-direction: column; }.content-hero > div:first-child { width: 100%; }.content-mockups { width: 100%; margin-top: 20px; transform: scale(.86); transform-origin: center; }.section-heading { align-items: flex-start; flex-direction: column; }.dual-upload,.format-grid { grid-template-columns: 1fr 1fr; }
    .feedback-summary-grid { grid-template-columns: 1fr; }.sentiment-card { grid-column: auto; }.feedback-layout aside { grid-template-columns: 1fr; }
    .settings-save-bar { align-items: stretch; flex-direction: column; gap: 8px; }.settings-save-bar .button { width: 100%; }
    .customer-header { height: 68px; }.customer-header-inner { padding: 0 14px; }.customer-brand small,.customer-profile-chip span,.customer-actions .icon-button { display: none; }.customer-profile-chip { border: 0; padding: 0; }.customer-profile-chip img { width: 40px; height: 40px; }.customer-main { padding: 22px 14px 105px; }
    .customer-mobile-nav { position: fixed; z-index: 500; bottom: 0; inset-inline: 0; min-height: 72px; padding: 8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(5,1fr); align-items: end; border-top: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 94%,transparent); backdrop-filter: blur(18px); }
    .customer-mobile-nav a { min-height: 50px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; color: var(--muted); font-size: .58rem; }.customer-mobile-nav a svg { width: 19px; }.customer-mobile-nav a.active { color: var(--primary); }.customer-mobile-nav .mobile-primary-action { width: 58px; height: 58px; min-height: 58px; margin: -25px auto 0; border-radius: 18px; color: white; background: linear-gradient(135deg,var(--primary),var(--rose)); box-shadow: 0 12px 28px rgba(111,74,142,.28); }.customer-mobile-nav .mobile-primary-action span { display: none; }.customer-mobile-nav .mobile-primary-action svg { width: 25px; height: 25px; }
    .next-appointment-card { min-height: 330px; padding: 24px 20px; }.appointment-details { grid-template-columns: 1fr 1fr; }.appointment-details span:last-child { grid-column: 1/-1; margin-top: 7px; }.card-actions { flex-direction: column; }.customer-quick-grid { grid-template-columns: 1fr; }.offer-grid { grid-template-columns: 1fr; }
    .booking-tabs { overflow-x: auto; }.booking-tabs button { min-width: max-content; }.customer-booking-card { grid-template-columns: 68px 1fr; padding: 13px; }.booking-date-box { height: 90px; }.booking-card-actions { grid-column: 1/-1; flex-direction: row; }.booking-card-actions .button { flex: 1; }
    .service-option-grid { grid-template-columns: 1fr; }.specialist-option-grid { grid-template-columns: 1fr 1fr; }.date-option-row { grid-template-columns: repeat(3,1fr); overflow-x: auto; }.time-option-grid { grid-template-columns: repeat(3,1fr); }.checkout-summary { align-items: stretch; flex-direction: column; }.checkout-total { align-items: flex-start; }.checkout-summary > .button { width: 100%; }
    .history-summary { grid-template-columns: 1fr; }.history-item { grid-template-columns: 1fr; }.history-date { min-height: 34px; border-left: 0; border-bottom: 1px solid var(--line); }.history-date span { right: 0; left: auto; top: 8px; }.history-date strong { padding-right: 20px; }.history-image img { width: 100%; height: 190px; }.history-actions { grid-column: auto; }.history-actions .button { flex: 1; }
    .gallery-grid { grid-template-columns: 1fr; }.gallery-image { height: 260px; }.payment-balance-card { align-items: flex-start; flex-direction: column; gap: 20px; }.payment-balance-card .button { width: 100%; }
    .customer-loyalty-hero { grid-template-columns: 1fr; }.reward-grid,.earn-grid { grid-template-columns: 1fr; }.customer-member-card { min-height: 245px; }.loyalty-progress-card { padding: 21px; }
    .customer-profile-layout { grid-template-columns: 1fr; }.customer-profile-aside { position: static; }.profile-submit { width: 100%; }
    .feedback-form { padding: 18px 15px; }.star-rating label { font-size: 2rem; }
    .toast-stack { left: 12px; right: 12px; bottom: 88px; }.toast { min-width: 0; max-width: none; width: 100%; }
}

/* =========================================================
   NOVA BEAUTY OS — FULL SAAS PROTOTYPE EXTENSIONS
   ========================================================= */
:root{
    --violet:#7351a2;--violet-2:#a76db5;--pink:#ed7e9d;--peach:#ffb79c;
    --ink:#211a27;--soft-white:#fffafd;--auth-deep:#24162f;
}
body{font-size:16px;letter-spacing:-.01em}.panel-body{background:var(--bg)}
.brand-mark,.auth-brand-mark{color:#fff;font-weight:900;font-family:Arial,sans-serif;font-size:1.25rem}
.salon-letter,.mini-avatar,.large-avatar,.huge-avatar{display:grid;place-items:center;background:linear-gradient(145deg,var(--primary),var(--rose));color:#fff;font-weight:900;flex:0 0 auto;box-shadow:0 10px 24px rgba(111,74,142,.2)}
.salon-letter{width:42px;height:42px;border-radius:13px}.mini-avatar{width:38px;height:38px;border-radius:12px}.large-avatar{width:64px;height:64px;border-radius:20px;font-size:1.35rem}.huge-avatar{width:92px;height:92px;border-radius:28px;font-size:2rem}
.sidebar [data-sidebar-close]{display:none}.context-switch{display:flex;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.context-switch>span{font-size:1.3rem;color:var(--primary)}.context-switch div{display:flex;flex-direction:column}.context-switch small{color:var(--muted)}
.trial-chip,.salon-pill{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.82rem;font-weight:800}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 5px color-mix(in srgb,var(--success) 16%,transparent);animation:pulseDot 1.8s infinite}@keyframes pulseDot{50%{box-shadow:0 0 0 9px transparent}}
.subscription-alert{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;margin-bottom:24px;border-radius:18px;background:linear-gradient(135deg,#8a4964,#b96d7f);color:#fff;box-shadow:var(--shadow-md)}.subscription-alert div{display:flex;flex-direction:column}.subscription-alert span{opacity:.82}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:25px}.page-head h2,.portal-page-head h1{margin:3px 0 5px;font-size:1.65rem}.page-head p,.portal-page-head p{color:var(--muted);margin:0}.form-panel{max-width:1100px;margin-inline:auto}.form-heading{margin-bottom:22px}.form-heading>span{color:var(--primary);font-size:.78rem;font-weight:800}.form-heading h2{margin:5px 0 4px;font-size:1.45rem}.form-heading p{color:var(--muted);margin:0}.modern-form{display:flex;flex-direction:column;gap:22px}.modern-form.panel{padding:28px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:8px}.field>span,.field-label{font-weight:800;font-size:.87rem;color:var(--text)}.field input,.field select,.field textarea,.status-select{width:100%;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);border-radius:14px;outline:none;transition:.18s}.field input,.field select{height:52px;padding:0 14px}.field textarea{padding:13px 14px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 12%,transparent)}.span-2{grid-column:span 2}.form-actions,.sticky-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--line)}.button-lg{min-height:54px}.button-xl{min-height:58px;font-size:1rem}.form-safe{display:block;text-align:center;color:var(--muted)}
.alert{border-radius:15px;padding:13px 15px;margin-bottom:16px}.alert-danger{background:#fff0f2;color:#9c3148;border:1px solid #f4ccd5}.alert ul{margin:6px 18px 0 0;padding:0}.empty-state,.empty-card{padding:34px;text-align:center;color:var(--muted)}.empty-state b,.empty-card b{display:block;color:var(--text);font-size:1.05rem}.empty-card{background:var(--surface);border:1px dashed var(--line-strong);border-radius:20px}
.hero-panel{min-height:270px}.salon-hero{background:linear-gradient(135deg,#53356d,#7f55a0 58%,#d77797)}.specialist-hero{background:linear-gradient(135deg,#2d5960,#3e8487 55%,#7a5ba0)}.platform-hero{background:linear-gradient(135deg,#1d1c30,#45406f 55%,#765391)}.hero-orbit{position:relative;width:220px;height:220px;display:grid;place-items:center}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.25);inset:10px}.hero-orbit:after{inset:42px;border-style:dashed;animation:spin 15s linear infinite}.hero-orbit span{width:110px;height:110px;border-radius:36px;display:grid;place-items:center;background:rgba(255,255,255,.15);backdrop-filter:blur(20px);font:900 2rem Arial;color:#fff;box-shadow:0 25px 60px rgba(0,0,0,.2)}@keyframes spin{to{transform:rotate(360deg)}}
.metric-card>span:first-child{color:var(--muted);font-weight:700}.metric-card>strong{display:block;margin:10px 0;font-size:1.65rem}.metric-card>small{color:var(--muted)}
.progress-ring{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary) 60%,var(--line) 0);color:var(--primary);font-weight:900;position:relative}.progress-ring:after{content:"";position:absolute;inset:6px;background:var(--surface);border-radius:50%}.progress-ring{isolation:isolate}.progress-ring::first-line{z-index:2}.setup-list{list-style:none;margin:0;padding:0;display:grid;gap:13px}.setup-list li{padding:12px 44px 12px 12px;border:1px solid var(--line);border-radius:13px;position:relative}.setup-list li:before{content:"";position:absolute;right:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:2px solid var(--line-strong);border-radius:50%}.setup-list li.done:before{content:"✓";display:grid;place-items:center;background:var(--success);border-color:var(--success);color:#fff;font-size:.72rem}.compact-list{display:grid;gap:10px}.compact-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px}.compact-list span{display:flex;flex-direction:column}.compact-list small{color:var(--muted)}
.table-panel{padding:0;overflow:hidden}.table-responsive{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th,.data-table td{padding:16px 18px;text-align:right;border-bottom:1px solid var(--line);vertical-align:middle}.data-table th{font-size:.79rem;color:var(--muted);background:var(--surface-2)}.data-table td strong,.data-table td small{display:block}.data-table td small{color:var(--muted);margin-top:3px}.status-select{height:39px;padding:0 10px;font-size:.78rem;min-width:125px}.points-badge{display:inline-flex;padding:6px 10px;background:var(--amber-soft);color:var(--amber);border-radius:999px;font-weight:800}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.customer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.person-card,.specialist-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-sm);transition:.2s}.person-card:hover,.specialist-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 25%,var(--line))}.person-card>div{flex:1}.person-card h3,.specialist-card h3{margin:0 0 4px}.person-card p,.specialist-card p{margin:0;color:var(--muted)}.person-card b{color:var(--primary)}.specialist-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.specialist-card{display:block}.specialist-card-top{display:flex;justify-content:space-between;align-items:flex-start}.specialist-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.specialist-card-stats span{display:flex;flex-direction:column;padding:10px;background:var(--surface-2);border-radius:12px}.specialist-card>small{color:var(--primary);font-weight:800}.profile-hero{display:flex;align-items:center;gap:18px;padding:24px;margin-bottom:22px}.profile-hero>div{flex:1}.profile-hero h2{margin:2px 0}.profile-hero p{margin:0;color:var(--muted)}.detail-list{margin:0;display:grid;gap:12px}.detail-list>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;text-align:left}
.service-heading{margin-top:12px;padding-top:24px;border-top:1px solid var(--line)}.service-builder{display:grid;gap:14px}.service-category-block{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface)}.category-toggle{width:100%;border:0;background:var(--surface);color:var(--text);padding:13px 16px;display:flex;align-items:center;gap:13px;text-align:right}.category-toggle img{width:56px;height:56px;border-radius:15px;object-fit:cover}.category-toggle span{display:flex;flex-direction:column;flex:1}.category-toggle small{color:var(--muted)}.category-toggle b{transition:.2s}.category-toggle.open b{transform:rotate(180deg)}.category-content{padding:0 16px 16px;background:var(--surface-2)}.service-group{padding:18px 0;border-top:1px solid var(--line)}.service-group-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:13px}.service-group-head h3{margin:0}.service-group-head p{margin:2px 0 0;color:var(--muted)}.variant-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.variant-price-card{position:relative;display:grid;grid-template-columns:42px 1fr;gap:10px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface);cursor:pointer;transition:.18s}.variant-price-card>input{position:absolute;opacity:0}.variant-price-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.variant-price-card img{width:42px;height:42px;border-radius:11px;object-fit:cover}.variant-check{position:absolute;left:10px;top:10px;width:22px;height:22px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--line-strong);color:transparent}.variant-price-card.selected .variant-check{background:var(--primary);border-color:var(--primary);color:#fff}.variant-title{display:flex;flex-direction:column;padding-left:25px}.variant-title small{color:var(--muted)}.variant-fields{grid-column:1/-1;display:grid;grid-template-columns:1.5fr 1fr;gap:8px}.variant-fields>span{position:relative}.variant-fields input{width:100%;height:42px;padding:0 10px 0 56px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);color:var(--text)}.variant-fields i{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-style:normal;font-size:.69rem;color:var(--muted)}.sticky-form-actions{position:sticky;bottom:16px;z-index:5;padding:13px 15px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-md);justify-content:space-between}.sticky-form-actions>div{display:flex;align-items:center;gap:12px}.sticky-form-actions span{color:var(--muted);font-size:.82rem}.offering-list>section{padding:18px 0;border-top:1px solid var(--line)}.offering-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.offering-grid article{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:14px}.offering-grid img{width:48px;height:48px;border-radius:12px}.offering-grid article>span,.offering-grid article>div{display:flex;flex-direction:column}.offering-grid small{color:var(--muted)}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.catalog-card{background:var(--surface);border:1px solid var(--line);border-radius:21px;overflow:hidden;box-shadow:var(--shadow-sm)}.catalog-card>img{width:100%;height:150px;object-fit:cover}.catalog-card>div{padding:16px}.catalog-card h3{margin:4px 0}.catalog-card p,.catalog-card span{color:var(--muted)}.catalog-card details{border-top:1px solid var(--line);padding:13px 16px}.catalog-card summary{cursor:pointer;color:var(--primary);font-weight:800}.catalog-service{margin-top:15px}.catalog-service>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.catalog-service span{padding:5px 8px;border-radius:8px;background:var(--surface-2);font-size:.74rem}.catalog-admin-forms{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:25px}.catalog-admin-forms form{padding:20px}.catalog-admin-forms h3{margin-bottom:15px}
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product-card{padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;position:relative}.product-visual{height:130px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary-soft),var(--rose-soft));color:var(--primary);font-weight:900;letter-spacing:.15em}.product-card>.status-badge{position:absolute;top:24px;left:24px}.product-card h3{margin:13px 0 4px}.product-card p{margin:0;font-weight:900}.product-card small{color:var(--muted)}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.review-card{background:var(--surface);border:1px solid var(--line);border-radius:19px;padding:17px}.review-card>div{display:flex;align-items:center;gap:10px}.review-card>div span{display:flex;flex-direction:column;flex:1}.review-card>div b,.review-card>div small{color:var(--amber)}.review-card p{margin:14px 0;color:var(--muted)}.review-card time{font-size:.75rem;color:var(--subtle)}.before-after-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.before-after-grid>article{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:12px}.compare-card{display:grid;grid-template-columns:1fr 1fr;gap:5px}.compare-card figure{position:relative;margin:0;overflow:hidden;border-radius:14px}.compare-card img{width:100%;height:220px;object-fit:cover}.compare-card figcaption{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;padding:3px 8px;border-radius:999px;font-size:.7rem}.before-after-grid h3{margin:12px 3px 2px}.before-after-grid p{margin:0 3px;color:var(--muted)}
.subscription-status{display:flex;justify-content:space-between;align-items:center;padding:20px;margin-bottom:22px}.subscription-status>div{display:flex;flex-direction:column}.subscription-status span{color:var(--muted)}.subscription-status strong{font-size:1.3rem}.pricing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:900px;margin:0 auto}.pricing-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:25px;position:relative;box-shadow:var(--shadow-sm)}.pricing-card.featured{border-color:var(--primary);box-shadow:0 22px 60px rgba(111,74,142,.15)}.pricing-card .popular{position:absolute;left:20px;top:-13px;background:linear-gradient(135deg,var(--primary),var(--rose));color:#fff;padding:6px 11px;border-radius:999px;font-size:.72rem;font-weight:800}.pricing-card h3{font-size:1.45rem;margin-bottom:5px}.pricing-card>p{color:var(--muted);min-height:56px}.pricing-card .price{display:flex;align-items:baseline;gap:7px;margin:18px 0}.pricing-card .price strong{font-size:2rem}.pricing-card .price span{color:var(--muted)}.pricing-card ul{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:9px}.pricing-card li:before{content:"✓";color:var(--success);margin-left:8px}.demo-note{text-align:center;color:var(--muted);margin-top:18px}.launch-card{display:block;padding:26px}.launch-card>span{color:var(--primary);font-weight:800}.launch-card h3{font-size:1.35rem;margin:7px 0}.launch-card p{color:var(--muted)}.launch-card b{color:var(--primary)}
.booking-summary{display:flex;gap:12px;padding:15px;border-radius:15px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}.booking-summary>div{flex:1;display:flex;justify-content:space-between;align-items:center}.booking-summary strong{color:var(--text)}.booking-steps{display:flex;gap:8px}.booking-steps span{flex:1;text-align:center;padding:9px;border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.76rem}.booking-steps .active{background:var(--primary-soft);color:var(--primary);font-weight:800}.week-schedule{display:grid;gap:10px}.week-schedule>div{display:grid;grid-template-columns:1.2fr 1fr auto 1fr;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:13px}.week-schedule label{display:flex;gap:8px;font-weight:800}.week-schedule input[type=time]{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 8px;background:var(--surface);color:var(--text)}
/* Authentication */
.auth-body{min-height:100vh;background:var(--auth-deep);overflow-x:hidden}.auth-scene{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);position:relative;isolation:isolate}.auth-noise{position:fixed;inset:0;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.auth-blob{position:absolute;border-radius:50%;filter:blur(10px);opacity:.56;z-index:-1;animation:floatBlob 12s ease-in-out infinite}.blob-a{width:430px;height:430px;right:-110px;top:-130px;background:#7d4da1}.blob-b{width:360px;height:360px;left:38%;bottom:-190px;background:#d6688d;animation-delay:-4s}.blob-c{width:230px;height:230px;right:34%;top:42%;background:#efb086;opacity:.18;animation-delay:-7s}@keyframes floatBlob{50%{transform:translate3d(20px,35px,0) scale(1.06)}}.auth-showcase{position:relative;padding:48px clamp(38px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between;color:#fff;overflow:hidden}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand-mark{width:50px;height:50px;border-radius:17px;display:grid;place-items:center;background:linear-gradient(145deg,#a56fba,#ef86a5);box-shadow:0 20px 45px rgba(0,0,0,.18)}.auth-brand>span:last-child{display:flex;flex-direction:column}.auth-brand strong{font-size:1.25rem;letter-spacing:.14em}.auth-brand small{opacity:.65;font-size:.72rem}.showcase-copy{max-width:670px;margin-top:auto;margin-bottom:60px}.showcase-copy h1{font-size:clamp(2rem,4vw,4rem);line-height:1.42;margin:17px 0}.showcase-copy p{max-width:590px;font-size:1.05rem;color:rgba(255,255,255,.72)}.eyebrow.light{color:rgba(255,255,255,.83)}.auth-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth-feature-grid article{padding:16px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:rgba(255,255,255,.07);backdrop-filter:blur(14px);display:flex;flex-direction:column}.auth-feature-grid b{font-size:1.12rem}.auth-feature-grid span{opacity:.65;font-size:.78rem}.floating-beauty-card{position:absolute;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.1);backdrop-filter:blur(18px);box-shadow:0 25px 60px rgba(0,0,0,.17);animation:cardFloat 5s ease-in-out infinite}.floating-beauty-card div{display:flex;flex-direction:column}.floating-beauty-card small{opacity:.65}.card-one{left:6%;top:20%}.card-two{left:12%;top:37%;animation-delay:-2s}.spark{font-size:1.7rem;color:#ffdca8}@keyframes cardFloat{50%{transform:translateY(-10px)}}.auth-panel-wrap{padding:24px;display:grid;place-items:center}.auth-panel{width:min(520px,100%);max-height:calc(100vh - 48px);overflow:auto;background:rgba(255,252,255,.97);color:#241d29;border-radius:32px;padding:clamp(28px,4vw,48px);box-shadow:0 35px 100px rgba(0,0,0,.27);border:1px solid rgba(255,255,255,.38)}.auth-mobile-brand{display:none}.auth-kicker{color:var(--primary);font-weight:900;font-size:.78rem}.auth-panel h2{font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.5;margin:8px 0}.auth-lead{color:#786e7d;margin-bottom:24px}.phone-field{height:58px;display:flex;align-items:center;border:1px solid #ded4e3;border-radius:16px;background:#fff;margin-bottom:13px;direction:ltr;overflow:hidden;transition:.18s}.phone-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px rgba(111,74,142,.1)}.phone-field span{height:100%;display:grid;place-items:center;padding:0 16px;border-right:1px solid #eee4f0;color:#8b8290}.phone-field input{flex:1;height:100%;border:0;outline:0;padding:0 16px;font-size:1.1rem;letter-spacing:.08em;text-align:left}.otp-stage{margin-top:19px;animation:stageIn .5s cubic-bezier(.2,.8,.2,1)}@keyframes stageIn{from{opacity:0;transform:translateY(15px)}}.stage-divider{display:flex;align-items:center;gap:10px;color:#8a7f8f;font-size:.78rem;margin:18px 0}.stage-divider:before,.stage-divider:after{content:"";height:1px;background:#ede4ef;flex:1}.dev-code{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px;border-radius:15px;background:linear-gradient(135deg,#f1e9f7,#fff0f4);margin-bottom:15px}.dev-code span{font-size:.75rem;color:#776d7d}.dev-code button{border:0;background:#fff;border-radius:10px;padding:6px 12px;font-size:1.25rem;font-weight:900;letter-spacing:.16em;color:var(--primary);box-shadow:0 6px 18px rgba(70,40,90,.08)}.dev-code small{color:#95899a;font-size:.68rem}.otp-input-wrap input{width:100%;height:62px;border:1px solid #ded4e3;border-radius:16px;text-align:center;letter-spacing:.55em;font:800 1.5rem Arial;margin-bottom:12px;outline:none}.otp-input-wrap input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(111,74,142,.1)}.otp-resend{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;color:#8c818f;font-size:.75rem}.otp-resend button{border:0;background:transparent;color:var(--primary);font-weight:800}.otp-resend button:disabled{color:#aaa}.auth-footnote{display:flex;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #eee5f0;color:#7f7483;font-size:.75rem}.auth-footnote p{margin:0}.toast-stack{position:fixed;left:24px;bottom:24px;z-index:9999;display:grid;gap:8px}.toast{min-width:270px;max-width:380px;padding:13px 16px;border-radius:14px;background:#193f35;color:#fff;box-shadow:0 15px 40px rgba(0,0,0,.2);transition:.25s}.toast.error{background:#8d3347}.toast.leave{opacity:0;transform:translateY(10px)}
/* =========================================================
   CONTEXT / SALON SELECTION
   Standalone selector pages before a salon is activated.
   ========================================================= */
.selection-body,
.portal-selection {
    min-height: 100vh;
    margin: 0;
    color: #251d2b;
    background:
        radial-gradient(circle at 12% 14%, rgba(230, 120, 151, .14), transparent 30%),
        radial-gradient(circle at 88% 82%, rgba(112, 74, 142, .14), transparent 32%),
        #f8f5fa;
}

.selection-body button,
.selection-body input,
.selection-body select,
.selection-body textarea {
    font: inherit;
}

.selection-shell {
    width: min(1080px, calc(100% - 40px));
    min-height: 100vh;
    margin: 0 auto;
    padding: 54px 0 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.selection-head {
    width: min(700px, 100%);
    margin: 0 auto 30px;
}

.selection-head .auth-brand-mark {
    width: 62px;
    height: 62px;
    margin: 0 auto 16px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, #8358a2, #eb7f9d);
    box-shadow: 0 18px 42px rgba(80, 47, 101, .22);
    font: 900 1.45rem Arial, sans-serif;
}

.selection-head p {
    margin: 0;
    color: #6f4a8e;
    font-size: .82rem;
    font-weight: 900;
}

.selection-head h1 {
    margin: 9px 0 8px;
    color: #251d2b;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.45;
    letter-spacing: -.025em;
}

.selection-head > span {
    display: block;
    color: #776f7e;
    font-size: .9rem;
    line-height: 1.9;
}

.context-grid,
.salon-choice-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
    margin: 0 0 24px;
}

.salon-choice-grid form,
.context-grid form {
    min-width: 0;
    margin: 0;
}

.context-card,
.salon-choice-card {
    width: 100%;
    min-height: 152px;
    padding: 21px;
    border: 1px solid #e8dfeb;
    border-radius: 24px;
    display: flex;
    align-items: center;
    gap: 17px;
    color: #251d2b;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 38px rgba(60, 37, 72, .07);
    text-align: right;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.context-card:hover,
.salon-choice-card:hover {
    transform: translateY(-3px);
    border-color: #cdb8d7;
    box-shadow: 0 20px 48px rgba(60, 37, 72, .12);
}

.context-card:focus-visible,
.salon-choice-card:focus-visible {
    outline: 0;
    border-color: #7b5697;
    box-shadow: 0 0 0 4px rgba(111, 74, 142, .12), 0 20px 48px rgba(60, 37, 72, .12);
}

.context-icon,
.salon-logo {
    width: 66px;
    height: 66px;
    flex: 0 0 66px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, #765193, #e27a99);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 12px 26px rgba(111, 74, 142, .18);
    font-size: 1.42rem;
    font-weight: 900;
}

.context-card > div,
.salon-choice-card > div {
    min-width: 0;
    flex: 1;
}

.context-card h2,
.salon-choice-card h2 {
    margin: 0 0 7px;
    color: #251d2b;
    font-size: 1.08rem;
    line-height: 1.55;
}

.context-card p,
.salon-choice-card p {
    margin: 0;
    color: #7c7180;
    font-size: .78rem;
    line-height: 1.75;
}

.context-card > b,
.salon-choice-card > b {
    flex: 0 0 auto;
    color: #6f4a8e;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.selection-shell > .text-link {
    align-self: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 13px;
    border-radius: 12px;
    color: #6f4a8e;
    font-size: .78rem;
    font-weight: 800;
}

.selection-shell > .text-link:hover {
    background: rgba(111, 74, 142, .07);
}

.selection-shell .empty-state {
    grid-column: 1 / -1;
    min-height: 190px;
    padding: 32px;
    border: 1px dashed #d9cddd;
    border-radius: 22px;
    background: rgba(255, 255, 255, .8);
}

.selection-shell .empty-state h2 {
    margin: 0 0 8px;
    color: #251d2b;
    font-size: 1.15rem;
}

.selection-shell .empty-state p {
    margin: 0;
    color: #776f7e;
}

@media (max-width: 720px) {
    .selection-shell {
        width: min(100% - 24px, 540px);
        padding: max(24px, env(safe-area-inset-top)) 0 max(26px, env(safe-area-inset-bottom));
        justify-content: flex-start;
    }

    .selection-head {
        margin-bottom: 22px;
    }

    .selection-head .auth-brand-mark {
        width: 54px;
        height: 54px;
        border-radius: 17px;
        margin-bottom: 13px;
    }

    .selection-head h1 {
        font-size: 1.62rem;
        margin-top: 7px;
    }

    .selection-head > span {
        font-size: .8rem;
    }

    .context-grid,
    .salon-choice-grid {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .context-card,
    .salon-choice-card {
        min-height: 122px;
        padding: 16px;
        border-radius: 20px;
        gap: 13px;
    }

    .context-icon,
    .salon-logo {
        width: 56px;
        height: 56px;
        flex-basis: 56px;
        border-radius: 17px;
        font-size: 1.2rem;
    }

    .context-card h2,
    .salon-choice-card h2 {
        font-size: .98rem;
    }
}

@media (max-width: 390px) {
    .selection-shell {
        width: calc(100% - 16px);
    }

    .context-card,
    .salon-choice-card {
        padding: 14px;
    }

    .context-card > b,
    .salon-choice-card > b {
        display: none;
    }
}

/* Selection and onboarding */
/* Public pages are deliberately isolated from the dashboard dark palette. */
.onboarding-body,
.portal-body,
.selection-body,
.portal-selection {
    --bg: #f8f5fa;
    --surface: #ffffff;
    --surface-2: #fbf9fd;
    --surface-3: #f3eef8;
    --text: #251d2b;
    --muted: #776f7e;
    --subtle: #9f98a5;
    --line: #e9e3ee;
    --line-strong: #ddd4e5;
    --primary: #6f4a8e;
    --primary-dark: #4e2f67;
    --primary-soft: #eee5f5;
    --purple: #7c5ce7;
    --purple-soft: #eeeafe;
    --rose: #ee7894;
    --rose-soft: #ffe8ee;
    --teal: #20a997;
    --teal-soft: #e1f7f3;
    --amber: #e69d2c;
    --amber-soft: #fff3dd;
    color-scheme: light;
}

.onboarding-body {
    min-height: 100vh;
    background: #f8f5fa;
    color: #251d2b;
}

.onboarding-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: minmax(360px, .78fr) minmax(620px, 1.22fr);
    direction: rtl;
}

.onboarding-aside {
    position: sticky;
    top: 0;
    min-height: 100vh;
    padding: 42px clamp(34px, 5vw, 76px);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(239,129,159,.25), transparent 28%),
        radial-gradient(circle at 14% 88%, rgba(174,104,187,.30), transparent 34%),
        linear-gradient(155deg, #2a1936 0%, #55346c 56%, #a95779 100%);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.onboarding-aside::after {
    content: "";
    position: absolute;
    width: 520px;
    height: 520px;
    left: -290px;
    bottom: -260px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018);
    pointer-events: none;
}

.onboarding-brand { position: relative; z-index: 1; }
.onboarding-copy { position: relative; z-index: 1; max-width: 610px; margin-block: 55px; }
.onboarding-copy h1 {
    margin: 18px 0 18px;
    max-width: 620px;
    font-size: clamp(2rem, 3.25vw, 3.25rem);
    line-height: 1.55;
    letter-spacing: -.035em;
}
.onboarding-copy p {
    max-width: 580px;
    margin: 0;
    color: rgba(255,255,255,.76);
    font-size: .98rem;
    line-height: 2;
}

.onboarding-progress {
    position: relative;
    z-index: 1;
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 11px;
}
.onboarding-progress li {
    min-height: 43px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255,255,255,.55);
    font-size: .88rem;
    font-weight: 600;
}
.onboarding-progress li b {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 11px;
    font-size: .84rem;
}
.onboarding-progress li.active { color: #fff; }
.onboarding-progress li.active b { color: #603b79; background: #fff; border-color: #fff; }

.onboarding-form-wrap {
    min-width: 0;
    padding: clamp(28px, 4.5vw, 64px);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    background: linear-gradient(180deg, #fbf9fc 0%, #f6f1f8 100%);
    overflow: visible;
}

.onboarding-form {
    width: min(840px, 100%);
    margin: 0 auto;
    padding: clamp(25px, 4vw, 40px);
    color: #251d2b;
    background: #fff;
    border: 1px solid #ebe2ee;
    border-radius: 30px;
    box-shadow: 0 26px 70px rgba(60,33,70,.09);
}

.onboarding-form .form-heading { margin-bottom: 4px; }
.onboarding-form .form-heading h2 { font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.55; }
.onboarding-form .form-heading p { font-size: .88rem; line-height: 1.9; }
.onboarding-form .field > span,
.onboarding-form .field-label { color: #302637; font-size: .9rem; }
.onboarding-form .field input,
.onboarding-form .field select,
.onboarding-form .field textarea {
    background: #fff;
    color: #2a2130;
    border-color: #ddd3e2;
    font-weight: 500;
}
.onboarding-form .field input::placeholder,
.onboarding-form .field textarea::placeholder { color: #aaa0ae; opacity: 1; }

.choice-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 22px;
    padding: 19px 20px;
    border: 1px solid #e3d9e7;
    border-radius: 19px;
    background: #fff;
}
.choice-copy { min-width: 0; }
.choice-section h3 { margin: 0 0 5px; color: #302637; font-size: 1rem; line-height: 1.65; }
.choice-section p { margin: 0; color: #817786; font-size: .79rem; line-height: 1.8; }

.number-choice {
    display: flex;
    width: max-content;
    align-items: center;
    overflow: hidden;
    border: 1px solid #d9cfe0;
    border-radius: 14px;
    background: #fff;
}
.number-choice button {
    width: 50px;
    height: 50px;
    border: 0;
    color: #704792;
    background: #f4eef7;
    font-size: 1.35rem;
    line-height: 1;
}
.number-choice button:hover { background: #ede2f2; }
.number-choice input {
    width: 96px;
    height: 50px;
    border: 0;
    outline: 0;
    color: #251d2b;
    background: #fff;
    text-align: center;
    font-weight: 900;
    font-size: 1.08rem;
    appearance: textfield;
}
.number-choice input::-webkit-inner-spin-button,
.number-choice input::-webkit-outer-spin-button { appearance: none; margin: 0; }

.segmented {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.segmented label { position: relative; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span {
    min-height: 56px;
    padding: 12px 15px;
    display: grid;
    place-items: center;
    text-align: center;
    cursor: pointer;
    border: 1px solid #ded4e3;
    border-radius: 14px;
    color: #62596a;
    background: #fff;
    font-size: .84rem;
    font-weight: 700;
    transition: .16s ease;
}
.segmented input:checked + span {
    color: #fff;
    border-color: #5b396f;
    background: linear-gradient(135deg, #4d2f60, #704792);
    box-shadow: 0 10px 24px rgba(91,57,111,.16);
}
.segmented input:focus-visible + span { outline: 3px solid rgba(112,71,146,.16); outline-offset: 2px; }

.plan-preview {
    padding: 19px 21px;
    display: grid;
    gap: 3px;
    border: 1px solid #eaddea;
    border-radius: 19px;
    color: #fff;
    background: linear-gradient(135deg, #39243f 0%, #603d6d 55%, #8b4c70 100%);
    box-shadow: 0 16px 34px rgba(77,44,86,.13);
}
.plan-preview span { color: rgba(255,255,255,.62); font-size: .74rem; }
.plan-preview strong { font: 800 1.35rem/1.5 var(--font); }
.plan-preview p { margin: 0; color: rgba(255,255,255,.75); font-size: .82rem; }
.onboarding-form .form-safe { margin-top: -8px; color: #918696; font-size: .72rem; line-height: 1.8; }

/* Portal */
.portal-body {
    min-height: 100vh;
    padding-bottom: 96px;
    color: #251d2b;
    background: #f8f5fa;
}
.portal-shell { min-height: 100vh; }

.portal-header {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 78px;
    padding: 0;
    border-bottom: 1px solid #e9e3ee;
    background: rgba(248,245,250,.92);
    backdrop-filter: blur(15px);
}
.portal-header-inner {
    width: min(1240px, 100%);
    height: 100%;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.portal-brand { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.portal-brand .brand-mark { width: 43px; height: 43px; border-radius: 14px; }
.portal-brand > span:last-child { min-width: 0; display: flex; flex-direction: column; line-height: 1.45; }
.portal-brand strong { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; }
.portal-brand small { color: #817786; font-size: .67rem; }

.portal-desktop-nav { display: flex; align-items: center; gap: 4px; }
.portal-desktop-nav a {
    min-height: 40px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    border-radius: 11px;
    color: #776f7e;
    font-size: .8rem;
    font-weight: 700;
    transition: .16s ease;
}
.portal-desktop-nav a:hover { color: #6f4a8e; background: #f2ebf6; }
.portal-desktop-nav a.active { color: #6f4a8e; background: #eee5f5; }

.portal-header-actions { display: flex; align-items: center; gap: 9px; }
.portal-header .salon-pill {
    min-height: 41px;
    padding: 0 13px;
    color: #6f4a8e;
    background: #eee5f5;
    border: 1px solid #e2d5e9;
}
.portal-header .salon-pill svg { width: 15px; height: 15px; }
.portal-profile-chip {
    min-height: 48px;
    padding: 4px 6px 4px 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e5dfe9;
    border-radius: 14px;
    background: #fff;
}
.portal-profile-chip > span:last-child { display: flex; flex-direction: column; line-height: 1.4; }
.portal-profile-chip strong { font-size: .75rem; }
.portal-profile-chip small { color: #817786; font-size: .62rem; }

.portal-main { width: min(1240px, 100%); margin: 0 auto; padding: 32px 24px 88px; }
.portal-alert { max-width: 900px; margin-inline: auto; }

.portal-welcome,
.portal-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}
.portal-welcome h1,
.portal-page-head h1 { margin: 4px 0 4px; color: #251d2b; font-size: clamp(1.55rem, 2.5vw, 2rem); line-height: 1.55; }
.portal-welcome p,
.portal-page-head p { margin: 0; color: #776f7e; font-size: .87rem; }
.portal-welcome .button { flex: 0 0 auto; }

.portal-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 18px; }
.portal-next-card {
    position: relative;
    min-height: 325px;
    overflow: hidden;
    padding: 29px;
    color: #fff;
    border-radius: 27px;
    background:
        radial-gradient(circle at 10% 10%, rgba(255,255,255,.13), transparent 28%),
        linear-gradient(135deg, #4c2f5f 0%, #73508d 58%, #d46f91 100%);
    box-shadow: 0 24px 54px rgba(68,39,80,.18);
    display: flex;
    flex-direction: column;
}
.portal-next-card.is-empty { background: linear-gradient(135deg, #493057, #78558e 62%, #bd6887); }
.portal-next-glow {
    position: absolute;
    width: 340px;
    height: 340px;
    left: -160px;
    bottom: -185px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.15);
    box-shadow: 0 0 0 52px rgba(255,255,255,.025), 0 0 0 105px rgba(255,255,255,.015);
    pointer-events: none;
}
.portal-card-label { position: relative; z-index: 1; display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,.78); font-size: .76rem; font-weight: 800; }
.portal-card-label svg { width: 18px; height: 18px; }
.portal-next-card h2 { position: relative; z-index: 1; margin: 25px 0 2px; max-width: 620px; font-size: clamp(1.55rem, 3vw, 2.4rem); line-height: 1.45; }
.portal-next-model { position: relative; z-index: 1; margin: 0; color: rgba(255,255,255,.72); font-size: .9rem; }
.portal-appointment-details { position: relative; z-index: 1; margin-top: auto; padding-top: 28px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.portal-appointment-details span { min-width: 0; padding: 12px 13px; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; background: rgba(255,255,255,.09); backdrop-filter: blur(8px); display: flex; flex-direction: column; }
.portal-appointment-details small { color: rgba(255,255,255,.62); font-size: .66rem; }
.portal-appointment-details strong { margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; }
.portal-card-actions { position: relative; z-index: 1; margin-top: 17px; display: flex; align-items: center; gap: 10px; }
.portal-status-pill { min-height: 42px; padding: 0 14px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 13px; color: #fff; background: rgba(255,255,255,.10); font-size: .74rem; font-weight: 800; }

.portal-loyalty-mini {
    min-height: 325px;
    padding: 24px;
    color: #251d2b;
    border: 1px solid #e9e3ee;
    border-radius: 27px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(46,25,60,.07);
    display: flex;
    flex-direction: column;
}
.portal-loyalty-head { display: flex; align-items: center; gap: 11px; }
.portal-loyalty-icon { width: 45px; height: 45px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 14px; color: #6f4a8e; background: #eee5f5; }
.portal-loyalty-icon svg { width: 21px; height: 21px; }
.portal-loyalty-head > span:last-child { display: flex; flex-direction: column; }
.portal-loyalty-head small { color: #817786; font-size: .67rem; }
.portal-loyalty-head strong { margin-top: 2px; font-size: .84rem; }
.portal-points-row { margin-top: 30px; display: flex; align-items: baseline; gap: 8px; }
.portal-points-row strong { color: #4f3264; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1; }
.portal-points-row span { color: #817786; font-size: .75rem; }
.portal-points-progress { height: 8px; margin: 24px 0 14px; overflow: hidden; border-radius: 99px; background: #efe8f2; }
.portal-points-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#704792,#e97798); }
.portal-loyalty-mini p { margin: 0 0 14px; color: #817786; font-size: .75rem; line-height: 1.85; }
.portal-loyalty-mini .text-link { margin-top: auto; }

.portal-quick-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-top: 18px; }
.portal-quick-card {
    min-height: 92px;
    padding: 15px;
    display: flex;
    align-items: center;
    gap: 11px;
    color: #251d2b;
    border: 1px solid #e9e3ee;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(46,25,60,.045);
    transition: .17s ease;
}
.portal-quick-card:hover { transform: translateY(-2px); border-color: #d9cae0; box-shadow: 0 16px 34px rgba(46,25,60,.08); }
.portal-quick-card .quick-icon { margin: 0; flex: 0 0 auto; }
.portal-quick-card > div { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.portal-quick-card strong { font-size: .8rem; }
.portal-quick-card small { margin-top: 2px; color: #817786; font-size: .65rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.portal-quick-card .quick-arrow { width: 16px; height: 16px; color: #aaa0ae; }

.portal-section { margin-top: 30px; }
.section-title,
.portal-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.section-title span,
.portal-page-head > div > span { color: #6f4a8e; font-size: .76rem; font-weight: 900; }
.section-title h2 { margin: 3px 0; color: #251d2b; }
.section-title > a { color: #6f4a8e; font-weight: 800; }

.mobile-card-list { display: grid; gap: 12px; }
.booking-card,
.simple-list-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px;
    color: #251d2b;
    background: #fff;
    border: 1px solid #e9e3ee;
    border-radius: 19px;
    box-shadow: 0 6px 18px rgba(46,25,60,.035);
}
.booking-date { width: 60px; height: 66px; flex: 0 0 auto; border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #eee5f5; color: #6f4a8e; }
.booking-date strong { font-size: 1.35rem; line-height: 1.2; }
.booking-card > div:nth-child(2) { min-width: 0; flex: 1; }
.booking-card h3 { margin: 0 0 3px; font-size: .91rem; line-height: 1.6; }
.booking-card p { margin: 0; color: #817786; font-size: .76rem; }
.booking-card > div:nth-child(2) > span { color: #6f4a8e; font-size: .76rem; }

.portal-form { max-width: 850px; margin: 0 auto; padding: 26px; color: #251d2b; background: #fff; border: 1px solid #e9e3ee; border-radius: 24px; }
.portal-form .field > span { color: #302637; }
.portal-form .field input,
.portal-form .field select,
.portal-form .field textarea { color: #251d2b; background: #fff; border-color: #ddd4e5; }

.portal-nav {
    position: fixed;
    z-index: 500;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    width: min(610px, calc(100% - 24px));
    height: 70px;
    padding: 6px;
    display: none;
    align-items: center;
    justify-content: space-around;
    border: 1px solid #e5dfe9;
    border-radius: 22px;
    background: rgba(255,255,255,.95);
    box-shadow: 0 20px 55px rgba(50,30,60,.15);
    backdrop-filter: blur(15px);
}
.portal-nav a { min-width: 65px; display: flex; flex-direction: column; align-items: center; gap: 3px; color: #817786; font-size: .65rem; }
.portal-nav a > svg { width: 20px; height: 20px; }
.portal-nav a.active { color: #6f4a8e; }
.portal-nav-main { transform: translateY(-16px); }
.portal-nav-main b { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 17px; color: #fff; background: linear-gradient(145deg,#6f4a8e,#ee7894); box-shadow: 0 14px 28px rgba(111,74,142,.28); }
.portal-nav-main b svg { width: 24px; height: 24px; }

.loyalty-card { max-width: 650px; margin: 25px auto; padding: 35px; border-radius: 28px; color: #fff; background: linear-gradient(145deg,#36223f,#785090 60%,#e5859e); text-align: center; }
.loyalty-card > span { opacity: .7; }
.loyalty-card > strong { display: block; font-size: 4rem; line-height: 1.2; }
.loyalty-card > small { opacity: .75; }
.loyalty-progress { height: 8px; margin: 24px 0 15px; background: rgba(255,255,255,.16); border-radius: 99px; overflow: hidden; }
.loyalty-progress i { display: block; height: 100%; background: #fff; border-radius: inherit; }
.loyalty-card p { margin: 0; opacity: .7; }
.rating-picker { display: flex; align-items: center; gap: 5px; direction: ltr; }
.rating-picker > span { margin-right: auto; direction: rtl; font-weight: 800; }
.rating-picker input { position: absolute; opacity: 0; }
.rating-picker label span { font-size: 2rem; color: #d8d1da; cursor: pointer; }
.rating-picker input:checked ~ span,
.rating-picker label:hover span { color: #e69d2c; }
.profile-card-mobile { max-width: 520px; margin: 40px auto; text-align: center; background: #fff; border: 1px solid #e9e3ee; border-radius: 27px; padding: 35px; }
.profile-card-mobile .huge-avatar { margin: 0 auto; }
.profile-card-mobile h1 { margin: 15px 0 3px; }
.profile-card-mobile p { color: #817786; }
.profile-card-mobile form { margin-top: 15px; }

/* Responsive */
@media(max-width:1180px){.customer-grid{grid-template-columns:repeat(3,1fr)}.product-grid{grid-template-columns:repeat(3,1fr)}.catalog-grid{grid-template-columns:repeat(2,1fr)}.catalog-admin-forms{grid-template-columns:1fr}.review-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:991px){.sidebar{transform:translateX(105%);transition:.25s}.sidebar.open{transform:translateX(0)}.sidebar [data-sidebar-close]{display:grid}.main-area{margin-right:0}.mobile-menu{display:grid!important}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(20,12,25,.45);z-index:900;opacity:0;pointer-events:none;transition:.2s}.sidebar-open .sidebar-overlay{opacity:1;pointer-events:auto}.topbar{padding:0 18px}.page-container{padding:24px 18px 45px}.global-search{display:none}.auth-scene{grid-template-columns:1fr}.auth-showcase{min-height:430px;padding:35px}.showcase-copy{margin:60px 0 25px}.showcase-copy h1{font-size:2.2rem}.floating-beauty-card{display:none}.auth-panel-wrap{margin-top:-55px;position:relative;z-index:3}.auth-panel{max-height:none}.onboarding-shell{grid-template-columns:1fr}.onboarding-aside{min-height:480px}.customer-grid,.specialist-grid{grid-template-columns:repeat(2,1fr)}.variant-price-grid,.offering-grid{grid-template-columns:1fr}.before-after-grid{grid-template-columns:repeat(2,1fr)}.product-grid{grid-template-columns:repeat(2,1fr)}.catalog-admin-forms{grid-template-columns:1fr}}
@media(max-width:700px){body{font-size:15px}.topbar{height:72px}.topbar-heading h1{font-size:1.1rem}.today-label,.trial-chip,.user-chip span,.user-chip>b{display:none}.user-chip{min-width:48px;width:48px;padding:4px}.page-container{padding:18px 13px 38px}.page-head,.portal-page-head{align-items:stretch;flex-direction:column}.page-head .button,.portal-page-head .button{width:100%}.hero-panel{padding:24px;min-height:300px}.hero-panel .hero-orbit{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-card{min-height:150px;padding:17px}.dashboard-grid-main,.dashboard-grid-secondary{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.modern-form.panel{padding:18px}.form-actions{flex-direction:column-reverse}.form-actions .button{width:100%}.auth-showcase{min-height:350px}.auth-feature-grid{grid-template-columns:1fr}.auth-feature-grid article:nth-child(n+2){display:none}.auth-panel-wrap{padding:12px;margin-top:-35px}.auth-panel{padding:24px 18px;border-radius:26px}.auth-showcase .auth-brand{display:none}.auth-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:20px}.showcase-copy{margin:20px 0}.showcase-copy h1{font-size:1.75rem}.showcase-copy p{font-size:.92rem}.context-grid,.salon-choice-grid{grid-template-columns:1fr}.selection-shell{padding:35px 14px}.context-card,.salon-choice-card{padding:17px;min-height:120px}.onboarding-aside{min-height:360px;padding:28px 20px}.onboarding-aside h1{font-size:2rem}.onboarding-aside ol{display:none}.onboarding-form-wrap{padding:14px}.onboarding-form{padding:22px 16px;border-radius:25px}.segmented{grid-template-columns:1fr}.customer-grid,.specialist-grid,.product-grid,.review-grid,.catalog-grid,.before-after-grid{grid-template-columns:1fr}.pricing-grid{grid-template-columns:1fr}.catalog-card>img{height:125px}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-hero .button{width:100%}.sticky-form-actions{bottom:80px;flex-direction:column}.sticky-form-actions>div{width:100%;justify-content:space-between}.sticky-form-actions .button{flex:1}.variant-fields{grid-template-columns:1fr}.portal-main{padding:16px 13px}.portal-header{height:68px;padding:0 13px}.portal-hero{padding:23px;border-radius:23px}.portal-shortcuts{grid-template-columns:repeat(2,1fr)}.booking-card{align-items:flex-start;flex-wrap:wrap}.booking-card .status-badge{margin-right:74px}.portal-nav{bottom:8px;height:66px}.portal-nav a{min-width:48px}.week-schedule>div{grid-template-columns:1fr 1fr}.week-schedule>div>span{display:none}.booking-summary{flex-direction:column}.subscription-alert{align-items:stretch;flex-direction:column}.toast-stack{left:12px;right:12px;bottom:90px}.toast{min-width:0;max-width:none}.service-group-head{flex-direction:column}.category-toggle img{width:48px;height:48px}}
.salon-register-link{display:block;margin-top:16px;text-align:center;padding:12px;border-radius:13px;background:#f5eef8;color:var(--primary);font-weight:800;font-size:.82rem}


/* NOVA UI FIX v5 — final responsive overrides */
@media (max-width: 1100px) {
    .onboarding-shell { grid-template-columns: minmax(320px,.72fr) minmax(520px,1.28fr); }
    .portal-desktop-nav { display: none; }
    .portal-dashboard-grid { grid-template-columns: 1fr .72fr; }
    .portal-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    .onboarding-shell { grid-template-columns: 1fr; }
    .onboarding-aside { position: relative; min-height: auto; padding: 30px 24px; }
    .onboarding-copy { margin: 35px 0 26px; }
    .onboarding-copy h1 { max-width: 720px; font-size: clamp(1.8rem,6vw,2.55rem); }
    .onboarding-progress { grid-template-columns: repeat(3,1fr); gap: 8px; }
    .onboarding-progress li { justify-content: center; }
    .onboarding-form-wrap { padding: 24px 16px 38px; }

    .portal-header-inner { padding-inline: 17px; }
    .portal-profile-chip > span:last-child { display: none; }
    .portal-profile-chip { min-height: 43px; padding: 2px; border: 0; background: transparent; }
    .portal-main { padding: 25px 17px 96px; }
    .portal-dashboard-grid { grid-template-columns: 1fr; }
    .portal-loyalty-mini { min-height: 260px; }
    .portal-nav { display: flex; }
}

@media (max-width: 700px) {
    .onboarding-aside { padding: max(22px,env(safe-area-inset-top)) 17px 24px; }
    .onboarding-brand { transform: none; }
    .onboarding-copy { margin: 28px 0 6px; }
    .onboarding-copy h1 { margin: 13px 0 10px; font-size: 1.72rem; line-height: 1.55; }
    .onboarding-copy p { font-size: .84rem; line-height: 1.85; }
    .onboarding-progress { display: none; }
    .onboarding-form-wrap { padding: 14px 10px 28px; }
    .onboarding-form { padding: 23px 15px 18px; border-radius: 24px; }
    .onboarding-form .form-grid { grid-template-columns: 1fr; }
    .onboarding-form .span-2 { grid-column: auto; }
    .choice-section { grid-template-columns: 1fr; gap: 14px; padding: 16px; }
    .number-choice { width: 100%; }
    .number-choice input { flex: 1; }
    .segmented { grid-template-columns: 1fr; }
    .segmented span { min-height: 52px; }
    .plan-preview { padding: 17px; }

    .portal-body { padding-bottom: 90px; }
    .portal-header { height: 68px; padding: 0; }
    .portal-header-inner { padding-inline: 13px; gap: 10px; }
    .portal-brand { min-width: 0; }
    .portal-brand .brand-mark { width: 39px; height: 39px; border-radius: 12px; }
    .portal-brand strong { max-width: 150px; font-size: .79rem; }
    .portal-brand small { font-size: .59rem; }
    .portal-header .salon-pill { min-height: 38px; padding: 0 10px; font-size: .7rem; }
    .portal-header .salon-pill span { display: none; }
    .portal-profile-chip { display: none; }
    .portal-main { padding: 21px 13px 92px; }
    .portal-welcome,.portal-page-head { align-items: stretch; flex-direction: column; margin-bottom: 19px; }
    .portal-welcome h1,.portal-page-head h1 { font-size: 1.42rem; }
    .portal-welcome p,.portal-page-head p { font-size: .8rem; line-height: 1.8; }
    .portal-welcome .button,.portal-page-head .button { width: 100%; }
    .portal-next-card { min-height: 350px; padding: 23px 19px; border-radius: 23px; }
    .portal-next-card h2 { margin-top: 20px; font-size: 1.55rem; }
    .portal-appointment-details { grid-template-columns: 1fr 1fr; }
    .portal-appointment-details span:last-child { grid-column: 1 / -1; }
    .portal-card-actions { align-items: stretch; flex-direction: column; }
    .portal-card-actions .button,.portal-status-pill { width: 100%; justify-content: center; }
    .portal-loyalty-mini { min-height: 260px; padding: 21px; border-radius: 23px; }
    .portal-points-row { margin-top: 23px; }
    .portal-quick-grid { grid-template-columns: 1fr; }
    .portal-quick-card { min-height: 84px; }
    .booking-card { align-items: flex-start; flex-wrap: wrap; }
    .booking-card .status-badge { margin-right: 74px; }
    .portal-form { padding: 20px 15px; border-radius: 22px; }
    .portal-nav { bottom: 8px; height: 66px; }
    .portal-nav a { min-width: 48px; }
}

@media (max-width: 380px) {
    .onboarding-form-wrap { padding-inline: 7px; }
    .onboarding-form { padding-inline: 12px; }
    .portal-main { padding-inline: 10px; }
    .portal-brand strong { max-width: 125px; }
}
/* DELORA_SALON_DASHBOARD_BRAND_ORBIT_V2 */
.salon-hero .salon-dashboard-brand-orbit{
    position:relative;
    width:220px;
    height:220px;
    min-width:220px;
    max-width:220px;
    flex:0 0 220px;
    display:grid;
    place-items:center;
    isolation:isolate;
}
.salon-hero .salon-dashboard-brand-orbit::before,
.salon-hero .salon-dashboard-brand-orbit::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}
.salon-hero .salon-dashboard-brand-orbit::before{
    inset:5px;
    border:1px solid rgba(255,255,255,.34);
    box-shadow:inset 0 0 40px rgba(255,255,255,.05);
}
.salon-hero .salon-dashboard-brand-orbit::after{
    inset:30px;
    border:1px dashed rgba(255,255,255,.48);
    animation:deloraSalonBrandOrbitSpin 16s linear infinite;
}
.salon-hero .salon-dashboard-brand-orbit img{
    position:relative;
    z-index:2;
    display:block;
    width:138px;
    height:138px;
    min-width:138px;
    max-width:138px;
    min-height:138px;
    max-height:138px;
    object-fit:contain;
    border-radius:40px;
    background:rgba(255,255,255,.94);
    padding:9px;
    box-shadow:0 24px 58px rgba(27,12,39,.25),0 0 0 1px rgba(255,255,255,.52);
    animation:deloraSalonBrandFloat 5.5s ease-in-out infinite;
}
.salon-hero .salon-dashboard-brand-orbit > i,
.salon-hero .salon-dashboard-brand-orbit > b{display:none!important}
@keyframes deloraSalonBrandOrbitSpin{to{transform:rotate(360deg)}}
@keyframes deloraSalonBrandFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:700px){
    .salon-hero .salon-dashboard-brand-orbit{display:none}
}
@media(prefers-reduced-motion:reduce){
    .salon-hero .salon-dashboard-brand-orbit::after,
    .salon-hero .salon-dashboard-brand-orbit img{animation:none!important}
}
/* DELORA_SALON_DASHBOARD_BRAND_ORBIT_V1 */
.salon-hero .salon-dashboard-brand-orbit{
    position:relative;
    width:220px;
    height:220px;
    flex:0 0 220px;
    display:grid;
    place-items:center;
    isolation:isolate;
}
.salon-hero .salon-dashboard-brand-orbit::before,
.salon-hero .salon-dashboard-brand-orbit::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}
.salon-hero .salon-dashboard-brand-orbit::before{
    inset:5px;
    border:1px solid rgba(255,255,255,.34);
    box-shadow:inset 0 0 40px rgba(255,255,255,.05);
}
.salon-hero .salon-dashboard-brand-orbit::after{
    inset:30px;
    border:1px dashed rgba(255,255,255,.48);
    animation:deloraSalonBrandOrbitSpin 16s linear infinite;
}
.salon-hero .salon-dashboard-brand-orbit img{
    position:relative;
    z-index:2;
    display:block;
    width:138px;
    height:138px;
    object-fit:contain;
    border-radius:40px;
    background:rgba(255,255,255,.94);
    padding:9px;
    box-shadow:0 24px 58px rgba(27,12,39,.25),0 0 0 1px rgba(255,255,255,.52);
    animation:deloraSalonBrandFloat 5.5s ease-in-out infinite;
}
.salon-hero .salon-dashboard-brand-orbit > i,
.salon-hero .salon-dashboard-brand-orbit > b{display:none!important}
@keyframes deloraSalonBrandOrbitSpin{to{transform:rotate(360deg)}}
@keyframes deloraSalonBrandFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:700px){
    .salon-hero .salon-dashboard-brand-orbit{display:none}
}
@media(prefers-reduced-motion:reduce){
    .salon-hero .salon-dashboard-brand-orbit::after,
    .salon-hero .salon-dashboard-brand-orbit img{animation:none!important}
}
