/* ═══════════════════════════════════════════════════════════════════
   Космический Оракул — «Космический массаж» (v1.91)
   Стили секретной админки (врата по 5 кликам на Деониса + код),
   карточки массажа в кабинете, вау-эффектов и орбитальной ленты.
   Палитра — общая дизайн-система сайта (var из style.css).
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. Секретная цель в футере ───────────────────────────────────── */

.footer-brand.cm-gate-target {
    cursor: pointer;
    position: relative;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}
.footer-brand.cm-gate-target:active { transform: scale(0.985); }

.cm-gate-badge {
    position: absolute;
    right: -8px;
    top: -14px;
    font-size: 12px;
    letter-spacing: .08em;
    color: var(--gold-soft);
    background: rgba(94, 226, 240, .12);
    border: 1px solid rgba(94, 226, 240, .35);
    border-radius: 999px;
    padding: 1px 9px;
    pointer-events: none;
    opacity: .85;
}
.cm-gate-badge.pop { animation: cmBadgePop .35s ease; }
@keyframes cmBadgePop {
    0% { transform: scale(.6); }
    60% { transform: scale(1.25); }
    100% { transform: scale(1); }
}

.cm-click-spark {
    position: fixed;
    z-index: 9300;
    pointer-events: none;
    color: var(--gold-soft);
    font-size: 15px;
    text-shadow: 0 0 12px rgba(94, 226, 240, .9);
    animation: cmSpark .9s ease-out forwards;
}
@keyframes cmSpark {
    0% { transform: translate(-50%, -50%) scale(.4); opacity: 1; }
    100% { transform: translate(-50%, -140%) scale(1.5) rotate(40deg); opacity: 0; }
}

/* ── 2. Модалки: врата и запись ───────────────────────────────────── */

.cm-modal-root {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(2, 5, 12, .8);
    backdrop-filter: blur(6px);
    animation: cmFadeIn .25s ease;
}
@keyframes cmFadeIn { from { opacity: 0; } to { opacity: 1; } }

.cm-modal {
    width: min(460px, 100%);
    background: linear-gradient(160deg, #0d1830 0%, #0a1224 60%, #0c1a33 100%);
    border: 1px solid rgba(94, 226, 240, .28);
    border-radius: 22px;
    padding: 26px 24px 22px;
    text-align: center;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .55), 0 0 40px rgba(85, 128, 247, .18) inset;
    animation: cmModalIn .32s cubic-bezier(.2, .9, .3, 1.2);
    max-height: calc(100vh - 40px);
    overflow: auto;
}
.cm-modal.cm-book { width: min(560px, 100%); text-align: left; }
@keyframes cmModalIn {
    from { transform: translateY(24px) scale(.94); opacity: 0; }
    to { transform: translateY(0) scale(1); opacity: 1; }
}

.cm-gate-portal {
    width: 86px;
    height: 86px;
    margin: 0 auto 12px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 38px;
    background:
        radial-gradient(circle at 50% 42%, rgba(94, 226, 240, .35), transparent 62%),
        conic-gradient(from 0deg, rgba(94, 226, 240, .5), rgba(85, 128, 247, .5), rgba(94, 226, 240, .5));
    position: relative;
    animation: cmPortalSpin 7s linear infinite;
}
.cm-gate-portal::before {
    content: '';
    position: absolute;
    inset: -9px;
    border-radius: 50%;
    border: 1px dashed rgba(94, 226, 240, .4);
    animation: cmPortalSpin 12s linear infinite reverse;
}
.cm-gate-portal span { position: relative; z-index: 1; filter: drop-shadow(0 0 10px rgba(94, 226, 240, .8)); }
.cm-gate-portal.small { width: 64px; height: 64px; font-size: 28px; margin-bottom: 8px; }
@keyframes cmPortalSpin { to { transform: rotate(360deg); } }

.cm-gate-title {
    font-family: var(--font-hand);
    font-size: 21px;
    letter-spacing: .02em;
    background: linear-gradient(90deg, var(--gold-soft), var(--purple));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin-bottom: 6px;
}
.cm-gate-sub { color: var(--muted); font-size: 14px; margin-bottom: 16px; }

.cm-gate-input {
    width: 100%;
    text-align: center;
    font-size: 26px;
    letter-spacing: .5em;
    text-indent: .5em;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(94, 226, 240, .35);
    background: rgba(4, 10, 22, .75);
    color: var(--gold-soft);
    outline: none;
    margin-bottom: 10px;
}
.cm-gate-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(94, 226, 240, .15); }
.cm-gate-input.shake { animation: cmShake .5s ease; }
@keyframes cmShake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-9px); }
    40% { transform: translateX(8px); }
    60% { transform: translateX(-6px); }
    80% { transform: translateX(4px); }
}

.cm-form-error { color: #ff9d9d; font-size: 13.5px; min-height: 18px; margin-bottom: 8px; }
.cm-gate-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* поля модалки записи */
.cm-book .field { display: block; margin-bottom: 12px; }
.cm-book .field > span { display: block; font-size: 13px; color: var(--muted); margin-bottom: 5px; }
.cm-book select, .cm-book input[type="date"], .cm-book input[type="text"] {
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(4, 10, 22, .7);
    color: var(--text);
    font-size: 14.5px;
    outline: none;
}
.cm-book select:focus, .cm-book input:focus { border-color: var(--gold); }

.cm-slot-label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.cm-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; max-height: 168px; overflow: auto; padding: 2px; }
.cm-slot {
    padding: 7px 4px;
    border-radius: 10px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(8, 16, 32, .8);
    color: var(--text);
    font-size: 13px;
    cursor: pointer;
    transition: transform .12s ease, background .12s ease, border-color .12s ease;
}
.cm-slot:hover:not(:disabled) { border-color: var(--gold); transform: translateY(-1px); }
.cm-slot.sel {
    background: linear-gradient(135deg, rgba(94, 226, 240, .3), rgba(85, 128, 247, .3));
    border-color: var(--gold);
    color: var(--gold-soft);
    box-shadow: 0 0 14px rgba(94, 226, 240, .35);
}
.cm-slot.busy {
    opacity: .32;
    cursor: not-allowed;
    text-decoration: line-through;
    border-style: dashed;
}

/* ── 3. Секретная админка «Космический массаж» ────────────────────── */

.cm-admin-root { position: fixed; inset: 0; z-index: 8500; display: flex; align-items: stretch; justify-content: center; padding: 14px; animation: cmFadeIn .25s ease; }
.cm-admin {
    position: relative;
    width: min(1060px, 100%);
    margin: auto;
    max-height: calc(100vh - 28px);
    display: flex;
    flex-direction: column;
    background: linear-gradient(165deg, #0a1120 0%, #0b1526 55%, #101d38 100%);
    border: 1px solid rgba(94, 226, 240, .3);
    border-radius: 24px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .6), 0 0 60px rgba(85, 128, 247, .14) inset;
    overflow: hidden;
}
.cm-nebula {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(600px 300px at 15% -5%, rgba(85, 128, 247, .22), transparent 70%),
        radial-gradient(500px 260px at 95% 10%, rgba(94, 226, 240, .14), transparent 70%),
        radial-gradient(420px 300px at 50% 115%, rgba(58, 113, 237, .18), transparent 70%);
}

.cm-admin-head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px 12px;
    border-bottom: 1px solid rgba(94, 226, 240, .16);
    flex-wrap: wrap;
}
.cm-admin-title { display: flex; align-items: center; gap: 12px; }
.cm-admin-ship { font-size: 30px; filter: drop-shadow(0 0 10px rgba(94, 226, 240, .6)); animation: cmFloat 4s ease-in-out infinite; }
@keyframes cmFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
.cm-admin-title b { display: block; font-family: var(--font-hand); font-size: 19px; letter-spacing: .02em; background: linear-gradient(90deg, var(--gold-soft), var(--purple)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cm-admin-title i { display: block; font-style: normal; color: var(--muted); font-size: 12.5px; }
.cm-admin-head-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cm-admin-close {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(255, 157, 157, .4);
    background: rgba(255, 100, 100, .1);
    color: #ffb3b3;
    font-size: 15px;
    cursor: pointer;
}
.cm-admin-close:hover { background: rgba(255, 100, 100, .22); }

.cm-admin-tabs { position: relative; display: flex; gap: 6px; padding: 10px 16px 0; flex-wrap: wrap; }
.cm-admin-tab {
    padding: 8px 15px;
    border-radius: 12px 12px 0 0;
    border: 1px solid transparent;
    border-bottom: none;
    background: rgba(10, 20, 38, .6);
    color: var(--muted);
    font-size: 13.5px;
    cursor: pointer;
    transition: color .15s ease, background .15s ease;
}
.cm-admin-tab:hover { color: var(--text); }
.cm-admin-tab.active {
    color: var(--gold-soft);
    background: rgba(94, 226, 240, .12);
    border-color: rgba(94, 226, 240, .3);
    box-shadow: 0 -6px 18px rgba(94, 226, 240, .1) inset;
}

.cm-admin-body { position: relative; flex: 1; overflow: auto; padding: 16px 18px 22px; }
.cm-loading { color: var(--muted); text-align: center; padding: 30px 0; letter-spacing: .06em; }
.cm-empty { color: var(--muted); text-align: center; padding: 18px 0; }
.cm-subtitle { font-family: var(--font-hand); font-size: 15px; color: var(--gold-soft); margin: 20px 0 10px; letter-spacing: .03em; }
.cm-subtitle i { font-family: var(--font-main); font-size: 12px; font-style: normal; letter-spacing: 0; }

.cm-stats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.cm-chip {
    font-size: 12.5px;
    color: var(--muted);
    border: 1px solid rgba(143, 157, 184, .3);
    border-radius: 999px;
    padding: 4px 12px;
    background: rgba(10, 20, 38, .55);
}
.cm-chip b { color: var(--text); }
.cm-chip.gold { border-color: rgba(94, 226, 240, .45); color: var(--gold-soft); }
.cm-chip.gold b { color: #fff; }

/* записи в админке */
.cm-book-list { display: grid; gap: 12px; }
.cm-book-card {
    border: 1px solid rgba(94, 226, 240, .2);
    border-left: 4px solid var(--muted);
    border-radius: 14px;
    padding: 12px 14px;
    background: rgba(9, 17, 33, .72);
}
.cm-book-card.st-new { border-left-color: var(--gold); }
.cm-book-card.st-confirmed { border-left-color: #7ee787; }
.cm-book-card.st-done { border-left-color: var(--purple); }
.cm-book-card.st-cancelled { border-left-color: #ff8f8f; opacity: .75; }
.cm-book-main { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.cm-book-glyph { font-size: 26px; filter: drop-shadow(0 0 8px rgba(94, 226, 240, .5)); }
.cm-book-info { flex: 1; min-width: 200px; }
.cm-book-info b { display: block; font-size: 15px; }
.cm-book-info i { display: block; font-style: normal; color: var(--muted); font-size: 12.5px; }
.cm-book-when { text-align: right; font-size: 15px; color: var(--gold-soft); white-space: nowrap; }
.cm-book-when i { display: block; font-style: normal; color: var(--muted); font-size: 12px; }
.cm-book-edit { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.cm-book-edit label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-book-edit select, .cm-book-edit input {
    padding: 7px 10px;
    border-radius: 10px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(4, 10, 22, .7);
    color: var(--text);
    font-size: 13.5px;
    outline: none;
}
.cm-book-edit label:nth-child(4) { flex: 1; min-width: 180px; }

/* услуги в админке */
.cm-svc-list { display: grid; gap: 12px; }
.cm-svc-card { border: 1px solid rgba(94, 226, 240, .2); border-radius: 14px; padding: 12px 14px; background: rgba(9, 17, 33, .72); }
.cm-svc-card.new { border-style: dashed; border-color: rgba(85, 128, 247, .5); }
.cm-svc-top { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin-bottom: 10px; }
.cm-svc-top .grow { flex: 1; min-width: 200px; }
.cm-glyph-pick select { font-size: 20px; padding: 6px 10px; }
.cm-svc-card label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-svc-card input, .cm-svc-card textarea, .cm-svc-card select {
    padding: 8px 11px;
    border-radius: 10px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(4, 10, 22, .7);
    color: var(--text);
    font-size: 13.5px;
    outline: none;
    font-family: var(--font-main);
    resize: vertical;
}
.cm-svc-card input:focus, .cm-svc-card textarea:focus { border-color: var(--gold); }
.cm-svc-nums { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.cm-svc-nums label { width: 130px; }
.cm-svc-nums .btn-magic, .cm-svc-nums .btn-ghost { margin-left: auto; }

/* переключатель */
.cm-switch { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; flex-direction: row !important; }
.cm-switch input { position: absolute; opacity: 0; pointer-events: none; }
.cm-switch i {
    width: 40px; height: 22px;
    border-radius: 999px;
    background: rgba(143, 157, 184, .35);
    position: relative;
    transition: background .2s ease;
    flex: none;
}
.cm-switch i::after {
    content: '';
    position: absolute;
    top: 3px; left: 3px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: left .2s ease;
}
.cm-switch input:checked + i { background: linear-gradient(90deg, var(--gold), var(--purple)); }
.cm-switch input:checked + i::after { left: 21px; }
.cm-switch.big i { width: 50px; height: 26px; }
.cm-switch.big i::after { width: 20px; height: 20px; }
.cm-switch.big input:checked + i::after { left: 27px; }

/* статусы в админке */
.cm-search { margin-bottom: 12px; }
.cm-search input {
    width: min(420px, 100%);
    padding: 9px 13px;
    border-radius: 12px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(4, 10, 22, .7);
    color: var(--text);
    outline: none;
    font-size: 14px;
}
.cm-user-list { display: grid; gap: 10px; }
.cm-user-card { border: 1px solid rgba(94, 226, 240, .16); border-radius: 14px; padding: 11px 14px; background: rgba(9, 17, 33, .72); display: grid; gap: 8px; }
.cm-user-info { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cm-user-info b { font-size: 14.5px; }
.cm-user-info i { font-style: normal; color: var(--muted); font-size: 12.5px; }
.cm-user-info em { font-style: normal; }
.cm-user-edit { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.cm-user-edit label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-user-edit label.grow { flex: 1; min-width: 170px; }
.cm-user-edit select, .cm-user-edit input {
    padding: 7px 10px;
    border-radius: 10px;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(4, 10, 22, .7);
    color: var(--text);
    font-size: 13.5px;
    outline: none;
}

/* настройки в админке */
.cm-settings { display: grid; gap: 14px; max-width: 620px; }
.cm-set-box { border: 1px solid rgba(94, 226, 240, .22); border-radius: 14px; padding: 14px 16px; background: rgba(9, 17, 33, .72); }
.cm-set-box legend { color: var(--gold-soft); font-size: 13.5px; padding: 0 8px; letter-spacing: .04em; }
.cm-set-box .field { display: block; margin: 12px 0; }
.cm-set-box .field span { display: block; font-size: 12.5px; color: var(--muted); margin-bottom: 5px; }
.cm-set-box input[type="text"] {
    width: 100%;
    max-width: 260px;
    padding: 9px 12px;
    border-radius: 10px;
    border: 1px solid rgba(94, 226, 240, .25);
    background: rgba(4, 10, 22, .7);
    color: var(--gold-soft);
    font-size: 16px;
    letter-spacing: .2em;
    outline: none;
}
.cm-set-box .muted { display: block; font-size: 12.5px; line-height: 1.7; }

/* ── 4. Карточка массажа в кабинете ───────────────────────────────── */

#massageCard .cm-status {
    display: inline-block;
    vertical-align: middle;
    margin-left: 10px;
    font-size: 11.5px;
    letter-spacing: .05em;
    font-family: var(--font-main);
    border-radius: 999px;
    padding: 3px 11px;
    border: 1px solid rgba(143, 157, 184, .4);
    color: var(--muted);
    white-space: nowrap;
}
#massageCard .cm-status.pilot { border-color: rgba(94, 226, 240, .55); color: var(--gold-soft); background: rgba(94, 226, 240, .1); }
#massageCard .cm-status.star { border-color: rgba(255, 214, 112, .6); color: #ffd670; background: rgba(255, 214, 112, .1); box-shadow: 0 0 14px rgba(255, 214, 112, .18); }

.cm-cta-row { margin: 14px 0 4px; }
.cm-cta { font-size: 17px; padding: 13px 26px; border-radius: 16px; }
.cm-cta:disabled { opacity: .45; filter: saturate(.4); cursor: not-allowed; }
.cm-cta:not(:disabled) { animation: cmCtaPulse 2.6s ease-in-out infinite; }
@keyframes cmCtaPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(94, 226, 240, .35); }
    50% { box-shadow: 0 0 26px 4px rgba(94, 226, 240, .28); }
}
.cm-lock-msg { color: var(--muted); font-size: 13px; margin-top: 9px; }

.cm-services { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 14px; }
.cm-svc {
    position: relative;
    border: 1px solid rgba(94, 226, 240, .2);
    border-radius: 16px;
    padding: 14px 13px 12px;
    background: linear-gradient(170deg, rgba(16, 30, 56, .65), rgba(8, 15, 30, .8));
    display: flex;
    flex-direction: column;
    gap: 7px;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.cm-svc:hover:not(.locked) { transform: translateY(-3px); border-color: rgba(94, 226, 240, .5); box-shadow: 0 12px 30px rgba(0, 0, 0, .35), 0 0 20px rgba(94, 226, 240, .12); }
.cm-svc.locked { opacity: .55; }
.cm-svc-glyph { font-size: 27px; filter: drop-shadow(0 0 9px rgba(94, 226, 240, .55)); }
.cm-svc-title { font-size: 14.5px; }
.cm-svc-descr { font-size: 12px; color: var(--muted); line-height: 1.55; flex: 1; }
.cm-svc-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cm-price { color: var(--gold-soft); font-weight: 700; font-size: 15px; }
.cm-dur { color: var(--muted); font-size: 12.5px; border: 1px solid rgba(143, 157, 184, .3); border-radius: 999px; padding: 1px 9px; }

/* мои записи */
.cm-my-list { display: grid; gap: 10px; }
.cm-my-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    border: 1px solid rgba(94, 226, 240, .22);
    border-radius: 16px;
    padding: 12px 14px;
    background: rgba(9, 17, 33, .75);
    overflow: hidden;
}
.cm-my-card.st-done { opacity: .8; }
.cm-my-card.st-cancelled { opacity: .55; }
.cm-my-card.st-cancelled .cm-st { text-decoration: line-through; }
.cm-my-glow { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(300px 90px at 12% 50%, rgba(94, 226, 240, .14), transparent 70%); }
.cm-my-glyph { font-size: 30px; filter: drop-shadow(0 0 10px rgba(94, 226, 240, .6)); }
.cm-my-info { flex: 1; min-width: 190px; }
.cm-my-info b { display: block; font-size: 15.5px; }
.cm-my-info i { display: block; font-style: normal; color: var(--muted); font-size: 13px; }
.cm-my-info i.cm-my-note { color: #ffd670; }
.cm-my-side { text-align: right; display: grid; gap: 8px; justify-items: end; }
.cm-st { font-size: 11.5px; border: 1px solid rgba(94, 226, 240, .4); color: var(--gold-soft); border-radius: 999px; padding: 2px 10px; white-space: nowrap; }

/* ВАУ-ЭФФЕКТ новой записи */
.cm-my-card.cm-wow {
    border-color: var(--gold);
    animation: cmWowPop .9s cubic-bezier(.2, .9, .3, 1.35), cmWowGlow 2.8s ease .3s 3;
    z-index: 1;
}
@keyframes cmWowPop {
    0% { transform: scale(.55) rotate(-2deg); opacity: 0; filter: brightness(2.2); }
    55% { transform: scale(1.06) rotate(.5deg); opacity: 1; filter: brightness(1.5); }
    100% { transform: scale(1) rotate(0); filter: brightness(1); }
}
@keyframes cmWowGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(94, 226, 240, 0); }
    50% { box-shadow: 0 0 34px 6px rgba(94, 226, 240, .4); }
}
.cm-my-card.cm-wow::after {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 18px;
    pointer-events: none;
    background: conic-gradient(from var(--cm-ang, 0deg), transparent 0 70%, rgba(94, 226, 240, .7) 82%, transparent 94%);
    animation: cmRing 2.2s linear 3;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    padding: 2px;
}
@property --cm-ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes cmRing { to { --cm-ang: 360deg; } }

.cm-wow-soft { animation: cmFeedFlash 2.4s ease; }
@keyframes cmFeedFlash {
    0% { background: rgba(94, 226, 240, .3); transform: scale(1.03); }
    100% { background: transparent; transform: scale(1); }
}

/* небесная вспышка на весь экран */
.cm-sky-burst {
    position: fixed;
    inset: 0;
    z-index: 9200;
    pointer-events: none;
    background: radial-gradient(240px 240px at var(--bx, 50%) var(--by, 50%), rgba(94, 226, 240, .5), rgba(85, 128, 247, .22) 45%, transparent 70%);
    animation: cmBurst 1s ease-out forwards;
}
@keyframes cmBurst {
    0% { opacity: 0; transform: scale(.4); }
    25% { opacity: 1; }
    100% { opacity: 0; transform: scale(1.6); }
}
.cm-flying-star {
    position: fixed;
    z-index: 9201;
    pointer-events: none;
    font-size: 18px;
    filter: drop-shadow(0 0 8px rgba(94, 226, 240, .8));
    animation: cmFly 1.4s ease-out forwards;
}
@keyframes cmFly {
    0% { transform: translate(-50%, -50%) scale(.5); opacity: 0; }
    15% { opacity: 1; }
    100% { transform: translate(calc(-50% + var(--dx, 60px)), calc(-50% + var(--dy, -80px))) scale(1.35) rotate(160deg); opacity: 0; }
}

/* орбитальная лента */
.cm-feed { display: grid; gap: 6px; }
.cm-feed-row {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(94, 226, 240, .12);
    border-radius: 12px;
    padding: 7px 12px;
    background: rgba(8, 15, 30, .6);
    font-size: 13px;
    flex-wrap: wrap;
}
.cm-feed-glyph { font-size: 17px; }
.cm-feed-who { font-weight: 700; color: var(--gold-soft); }
.cm-feed-svc { flex: 1; min-width: 140px; color: var(--text); }
.cm-feed-when { color: var(--muted); white-space: nowrap; }

/* тосты */
#cmToast { position: fixed; right: 16px; bottom: 16px; z-index: 9400; display: grid; gap: 8px; max-width: min(360px, calc(100vw - 32px)); }
.cm-toast {
    display: flex;
    gap: 9px;
    align-items: center;
    background: linear-gradient(150deg, #10203c, #0b1526);
    border: 1px solid rgba(94, 226, 240, .4);
    border-radius: 14px;
    padding: 11px 15px;
    color: var(--text);
    font-size: 13.5px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, .45);
    animation: cmToastIn .3s cubic-bezier(.2, .9, .3, 1.2);
}
.cm-toast.bad { border-color: rgba(255, 140, 140, .55); }
.cm-toast.out { opacity: 0; transform: translateY(8px); transition: all .5s ease; }
.cm-toast-glyph { color: var(--gold); }
.cm-toast.bad .cm-toast-glyph { color: #ff9d9d; }
@keyframes cmToastIn { from { opacity: 0; transform: translateY(14px) scale(.95); } to { opacity: 1; transform: none; } }

/* ── 5. Адаптив ───────────────────────────────────────────────────── */

@media (max-width: 720px) {
    .cm-admin-root { padding: 6px; }
    .cm-admin { max-height: calc(100vh - 12px); border-radius: 18px; }
    .cm-admin-head { padding: 12px 14px 10px; }
    .cm-admin-body { padding: 12px 12px 18px; }
    .cm-book-when { text-align: left; }
    .cm-svc-nums .btn-magic, .cm-svc-nums .btn-ghost { margin-left: 0; width: 100%; }
    .cm-my-card { flex-wrap: wrap; }
    .cm-my-side { text-align: left; justify-items: start; }
    .cm-gate-input { letter-spacing: .3em; text-indent: .3em; }
}

@media (prefers-reduced-motion: reduce) {
    .cm-gate-portal, .cm-gate-portal::before, .cm-admin-ship, .cm-cta:not(:disabled),
    .cm-my-card.cm-wow, .cm-my-card.cm-wow::after { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   v1.92 — ФОТО: главное фото кабинета + фото у услуг
   ═══════════════════════════════════════════════════════════════════ */

/* главное фото кабинета: баннер с космической рамкой и мерцающими звёздами */
.cm-hero {
    position: relative;
    margin: 2px 0 16px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(94, 226, 240, .38);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .5), 0 0 30px rgba(94, 226, 240, .16);
    animation: cmHeroIn .9s cubic-bezier(.2, .9, .3, 1.05);
}
.cm-hero img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
}
.cm-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(60% 55% at 50% 108%, rgba(5, 7, 15, .78), transparent 70%),
        linear-gradient(180deg, rgba(5, 7, 15, .18), transparent 34%);
}
.cm-hero figcaption {
    position: absolute;
    left: 15px;
    right: 15px;
    bottom: 11px;
    z-index: 2;
    font: 600 14px/1.35 'Onest', system-ui, sans-serif;
    color: #eaf6ff;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .85);
}
.cm-hero-star {
    position: absolute;
    z-index: 2;
    color: #fff;
    text-shadow: 0 0 12px rgba(255, 255, 255, .95), 0 0 26px rgba(94, 226, 240, .8);
    animation: cmHeroStar 3.4s ease-in-out infinite;
    pointer-events: none;
}
.cm-hero-star.s1 { top: 14%; right: 11%; font-size: 21px; }
.cm-hero-star.s2 { top: 42%; right: 24%; font-size: 13px; animation-delay: 1.2s; }
.cm-hero-star.s3 { top: 22%; left: 16%; font-size: 15px; animation-delay: 2.1s; }
@keyframes cmHeroIn { from { opacity: 0; transform: scale(1.045); } to { opacity: 1; transform: none; } }
@keyframes cmHeroStar {
    0%, 100% { opacity: .3; transform: translateY(0) scale(.9); }
    50%      { opacity: 1;  transform: translateY(-7px) scale(1.18); }
}

/* фото на карточке услуги в кабинете (вместо простого знака) */
.cm-svc-img {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    border-radius: 13px;
    overflow: hidden;
    border: 1px solid rgba(94, 226, 240, .3);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .38);
}
.cm-svc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .55s ease;
}
.cm-svc:hover:not(.locked) .cm-svc-img img { transform: scale(1.07); }
.cm-svc-glyph.on-photo {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    font-size: 17px;
    font-style: normal;
    color: #fff;
    background: rgba(5, 10, 22, .62);
    border: 1px solid rgba(94, 226, 240, .5);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    filter: drop-shadow(0 0 8px rgba(94, 226, 240, .6));
}

/* фото в модалке записи */
.cm-bk-photo {
    width: 100%;
    aspect-ratio: 16 / 6;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid rgba(94, 226, 240, .32);
    margin: 0 0 12px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .4);
}

/* ── админка: блок фото у карточки услуги ── */
.cm-svc-media {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 10px;
}
.cm-svc-photo {
    width: 96px;
    height: 72px;
    border-radius: 12px;
    object-fit: cover;
    border: 1px solid rgba(94, 226, 240, .34);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
}
.cm-svc-photo.empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border: 1px dashed rgba(94, 226, 240, .38);
    background: rgba(8, 15, 30, .55);
    box-shadow: none;
    color: var(--muted);
    text-align: center;
    padding: 4px;
}
.cm-svc-photo.empty span { font-size: 19px; color: var(--gold-soft); }
.cm-svc-photo.empty i { font-style: normal; font-size: 10px; line-height: 1.3; max-width: 86px; }
.cm-photo-btns { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ── админка: превью главного фото в настройках ── */
.cm-hero-preview {
    display: block;
    width: 100%;
    max-width: 340px;
    aspect-ratio: 16 / 7;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(94, 226, 240, .34);
    margin: 2px 0 10px;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .4);
}
.cm-settings .cm-set-box { margin-bottom: 14px; }
.cm-settings .cm-set-box small { display: block; margin-top: 8px; }

/* ── адаптив v1.92 ── */
@media (max-width: 720px) {
    .cm-hero img { aspect-ratio: 16 / 9; }
    .cm-hero figcaption { font-size: 12.5px; left: 12px; bottom: 9px; }
    .cm-bk-photo { aspect-ratio: 16 / 7; }
    .cm-svc-photo { width: 84px; height: 63px; }
}

@media (prefers-reduced-motion: reduce) {
    .cm-hero, .cm-hero-star, .cm-svc-img img { animation: none !important; transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   v1.93 «Звёздные мастера»: карточки мастеров, разделы, рейтинги,
   звёзды, чаты, календарь заработка, консоль мастера, master.php
   ═══════════════════════════════════════════════════════════════════ */

/* ── рейтинговые уровни: у каждого своё свечение ──────────────────── */
.cm-rate-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 2px 10px 3px;
    border-radius: 999px;
    font-size: 12.5px;
    line-height: 1.5;
    border: 1px solid rgba(143, 157, 184, .4);
    background: rgba(17, 26, 45, .7);
    white-space: nowrap;
}
.cm-rate-badge b { font-size: 14px; color: var(--text); }
.cm-rate-badge i { font-style: normal; font-size: 11px; color: var(--muted); }
.cm-rate-badge.big { font-size: 14px; padding: 4px 14px 5px; }
.cm-rate-badge.big b { font-size: 17px; }

.cm-rate-badge.rt-new   { border-color: rgba(143, 157, 184, .45); }
.cm-rate-badge.rt-low   { border-color: rgba(255, 120, 120, .55); box-shadow: 0 0 12px rgba(255, 120, 120, .2); }
.cm-rate-badge.rt-low b { color: #ffb3b3; }
.cm-rate-badge.rt-soft  { border-color: rgba(183, 148, 244, .6); box-shadow: 0 0 12px rgba(183, 148, 244, .22); }
.cm-rate-badge.rt-soft b { color: #d9c2ff; }
.cm-rate-badge.rt-bright { border-color: rgba(94, 226, 240, .55); box-shadow: 0 0 14px rgba(94, 226, 240, .25); }
.cm-rate-badge.rt-bright b { color: var(--gold-soft); }
.cm-rate-badge.rt-gold  { border-color: rgba(255, 208, 105, .65); background: rgba(255, 190, 80, .1); box-shadow: 0 0 16px rgba(255, 208, 105, .3); }
.cm-rate-badge.rt-gold b { color: #ffd977; }
.cm-rate-badge.rt-legend {
    border-color: rgba(255, 216, 119, .9);
    background: linear-gradient(90deg, rgba(255, 190, 80, .22), rgba(94, 226, 240, .18));
    box-shadow: 0 0 20px rgba(255, 208, 105, .45), inset 0 0 12px rgba(255, 216, 119, .25);
    animation: cmLegendPulse 2.2s ease-in-out infinite;
}
.cm-rate-badge.rt-legend b { color: #ffe9ad; }
@keyframes cmLegendPulse {
    0%, 100% { box-shadow: 0 0 14px rgba(255, 208, 105, .35), inset 0 0 10px rgba(255, 216, 119, .2); }
    50%      { box-shadow: 0 0 26px rgba(255, 208, 105, .6), inset 0 0 16px rgba(255, 216, 119, .35); }
}

/* ── счётчики, телефоны, чипы ─────────────────────────────────────── */
.cm-unread {
    display: inline-block;
    min-width: 18px;
    text-align: center;
    font-style: normal;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #ff5b7f, #d63a68);
    border-radius: 999px;
    padding: 0 5px;
    vertical-align: 2px;
    box-shadow: 0 0 10px rgba(255, 91, 127, .5);
}
.cm-chip.ok { border-color: rgba(96, 232, 160, .5); color: #8ff0bd; }
.cm-chip.warn { border-color: rgba(255, 208, 105, .55); color: #ffd977; }
.cm-chip.red { border-color: rgba(255, 91, 127, .6); color: #ff9db3; }
.cm-book-phone a { color: var(--gold-soft); text-decoration: none; border-bottom: 1px dashed rgba(94, 226, 240, .5); }
.cm-rate-chip { color: #ffd977; font-style: normal; letter-spacing: .04em; }
.cm-row-btns { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; }

/* ── кабинет: кнопка сообщений и напоминание про звёзды ───────────── */
.cm-cta-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 6px 0 14px; }
.cm-cta-chat { position: relative; }
.cm-rate-reminder {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 0 0 16px;
    padding: 12px 16px;
    border-radius: 14px;
    border: 1px solid rgba(255, 208, 105, .55);
    background: linear-gradient(90deg, rgba(255, 190, 80, .14), rgba(94, 226, 240, .08));
    animation: cmRrGlow 2.4s ease-in-out infinite;
}
.cm-rate-reminder b { color: #ffd977; display: block; font-size: 14.5px; }
.cm-rate-reminder i { color: var(--muted); font-size: 12.5px; font-style: normal; }
.cm-rr-glyph { font-size: 26px; filter: drop-shadow(0 0 8px rgba(255, 208, 105, .8)); }
@keyframes cmRrGlow {
    0%, 100% { box-shadow: 0 0 10px rgba(255, 208, 105, .18); }
    50%      { box-shadow: 0 0 24px rgba(255, 208, 105, .4); }
}

/* ── кабинет: разделы услуг ───────────────────────────────────────── */
.cm-sec-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin-bottom: 18px; }
.cm-sec-tile {
    text-align: left;
    cursor: pointer;
    border: 1px solid rgba(94, 226, 240, .26);
    border-radius: 16px;
    padding: 12px;
    background: linear-gradient(160deg, rgba(13, 24, 48, .85), rgba(10, 18, 36, .9));
    color: var(--text);
    font: inherit;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.cm-sec-tile:hover { transform: translateY(-3px); border-color: rgba(94, 226, 240, .6); box-shadow: 0 12px 30px rgba(0, 0, 0, .4), 0 0 18px rgba(94, 226, 240, .18); }
.cm-sec-tile img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; border-radius: 10px; margin-bottom: 8px; }
.cm-sec-ph { display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 8; font-size: 30px; border-radius: 10px; background: rgba(94, 226, 240, .08); margin-bottom: 8px; }
.cm-sec-tile b { display: block; font-size: 14.5px; color: var(--gold-soft); margin-bottom: 4px; }
.cm-sec-tile p { font-size: 12px; color: var(--muted); line-height: 1.45; margin-bottom: 8px; }
.cm-sec-price { font-size: 12px; color: var(--gold-soft); letter-spacing: .02em; }

/* ── кабинет: карточки мастеров ───────────────────────────────────── */
.cm-mcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.cm-mcard {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(94, 226, 240, .24);
    background: linear-gradient(165deg, rgba(13, 24, 48, .92), rgba(9, 16, 32, .96));
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
    display: flex;
    flex-direction: column;
}
.cm-mcard:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0, 0, 0, .5); }
.cm-mcard-link { display: block; color: inherit; text-decoration: none; }
.cm-mcard-photo { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: rgba(94, 226, 240, .06); }
.cm-mcard-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cm-mcard:hover .cm-mcard-photo img { transform: scale(1.06); }
.cm-mcard-ph { position: absolute; inset: 0; display: grid; place-items: center; font-size: 44px; color: rgba(94, 226, 240, .5); }
.cm-mcard-spark { position: absolute; color: var(--gold-soft); text-shadow: 0 0 10px rgba(94, 226, 240, .9); animation: cmSparkFloat 3.4s ease-in-out infinite; }
.cm-mcard-spark.s1 { top: 10px; right: 14px; font-size: 17px; }
.cm-mcard-spark.s2 { bottom: 12px; left: 16px; font-size: 12px; animation-delay: 1.2s; }
@keyframes cmSparkFloat {
    0%, 100% { transform: translateY(0); opacity: .75; }
    50%      { transform: translateY(-6px); opacity: 1; }
}
.cm-mcard-body { padding: 11px 13px 8px; display: flex; flex-direction: column; gap: 5px; flex: 1; }
.cm-mcard-name { font-size: 15.5px; color: var(--text); }
.cm-mcard-sec { font-style: normal; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-soft); }
.cm-mcard-story { font-size: 12.5px; color: var(--muted); line-height: 1.45; }
.cm-mcard-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 2px; }
.cm-mc-price { font-size: 12.5px; color: var(--gold-soft); }
.cm-mcard-gal { display: flex; gap: 5px; }
.cm-mcard-gal img { width: 54px; height: 40px; object-fit: cover; border-radius: 7px; border: 1px solid rgba(94, 226, 240, .3); }
.cm-mcard-more { font-style: normal; font-size: 12px; color: var(--purple); margin-top: auto; }
.cm-mcard-cta { padding: 0 13px 12px; }

/* уровни рейтинга меняют облик карточки мастера */
.cm-mcard.rt-gold    { border-color: rgba(255, 208, 105, .5); box-shadow: 0 0 22px rgba(255, 208, 105, .14); }
.cm-mcard.rt-bright  { border-color: rgba(94, 226, 240, .55); box-shadow: 0 0 22px rgba(94, 226, 240, .14); }
.cm-mcard.rt-soft    { border-color: rgba(183, 148, 244, .5); }
.cm-mcard.rt-low     { border-color: rgba(255, 120, 120, .45); }
.cm-mcard.rt-legend  { border-color: rgba(255, 216, 119, .85); animation: cmCardLegend 2.6s ease-in-out infinite; }
@keyframes cmCardLegend {
    0%, 100% { box-shadow: 0 0 16px rgba(255, 208, 105, .22); }
    50%      { box-shadow: 0 0 34px rgba(255, 208, 105, .45); }
}
.cm-mcard.wow::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 80% -10%, rgba(94, 226, 240, .18), transparent 55%),
                radial-gradient(circle at 0% 110%, rgba(85, 128, 247, .18), transparent 55%);
}

/* ── кабинет: модалка чата, звёзды ────────────────────────────────── */
.cm-chat-modal { width: min(560px, 100%); text-align: left; }
.cm-chat-pick-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0 14px; }
.cm-chat-pick {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 10px 14px; border-radius: 12px; cursor: pointer;
    border: 1px solid rgba(94, 226, 240, .25); background: rgba(9, 17, 33, .72); color: var(--text); font: inherit;
}
.cm-chat-pick:hover { border-color: rgba(94, 226, 240, .6); }
.cm-chat-log {
    display: flex; flex-direction: column; gap: 8px;
    max-height: 320px; overflow-y: auto; padding: 10px;
    border: 1px solid rgba(94, 226, 240, .2); border-radius: 12px;
    background: rgba(5, 9, 18, .6);
    scrollbar-width: thin;
}
.cm-chat-send { display: flex; gap: 8px; margin-top: 10px; }
.cm-chat-send input {
    flex: 1; border-radius: 12px; border: 1px solid rgba(94, 226, 240, .3);
    background: rgba(5, 9, 18, .7); color: var(--text); padding: 9px 12px; font: inherit; font-size: 13.5px;
}
.cm-chat-send input:focus { outline: none; border-color: var(--gold); }
.cm-msg {
    max-width: 84%;
    padding: 8px 12px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.45;
    border: 1px solid rgba(94, 226, 240, .22);
    background: rgba(17, 26, 45, .8);
    align-self: flex-start;
}
.cm-msg.mine { align-self: flex-end; border-color: rgba(85, 128, 247, .4); background: rgba(34, 52, 96, .55); }
.cm-msg p { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.cm-msg p.cm-msg-sys { color: var(--muted); font-style: italic; }
.cm-msg.k-rating {
    border-color: rgba(255, 208, 105, .65);
    background: linear-gradient(160deg, rgba(255, 190, 80, .16), rgba(255, 190, 80, .05));
    box-shadow: 0 0 14px rgba(255, 208, 105, .2);
}
.cm-msg.k-rating p { color: #ffe9ad; }
.cm-msg.k-order { border-color: rgba(94, 226, 240, .5); }
.cm-msg.k-thanks { border-color: rgba(96, 232, 160, .5); }
.cm-msg-tag { display: inline-block; font-style: normal; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-soft); margin-bottom: 3px; }
.cm-msg-tag.gold { color: #ffd977; }
.cm-msg-stars { display: block; color: #ffd166; font-size: 16px; letter-spacing: .12em; text-shadow: 0 0 8px rgba(255, 208, 105, .6); }
.cm-msg-sys { margin: 0; }

.cm-stars { display: flex; gap: 6px; justify-content: center; margin: 10px 0 6px; }
.cm-star {
    font-size: 34px; line-height: 1; cursor: pointer;
    color: rgba(143, 157, 184, .4); background: none; border: none;
    transition: transform .15s ease, color .15s ease, text-shadow .15s ease;
}
.cm-star:hover { transform: scale(1.2); }
.cm-star.on { color: #ffd166; text-shadow: 0 0 14px rgba(255, 208, 105, .75); }
.cm-stars-hint { min-height: 18px; font-size: 12.5px; color: var(--gold-soft); margin-bottom: 8px; }
.cm-gate-portal.rate { background: conic-gradient(from 0deg, rgba(255, 208, 105, .5), rgba(255, 150, 150, .4), rgba(255, 208, 105, .5)); }

/* ── админка: разделы ─────────────────────────────────────────────── */
.cm-sec-list { display: grid; gap: 12px; }
.cm-sec-card { display: grid; grid-template-columns: 190px 1fr; gap: 14px; border: 1px solid rgba(94, 226, 240, .2); border-radius: 14px; padding: 12px 14px; background: rgba(9, 17, 33, .72); }
.cm-sec-card.new { border-style: dashed; border-color: rgba(85, 128, 247, .5); }
.cm-sec-card.approved { border-color: rgba(96, 232, 160, .4); }
.cm-sec-card:not(.new) + .cm-sec-card { margin-top: 0; }
.cm-sec-media { display: flex; flex-direction: column; gap: 8px; }
.cm-sec-photo { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; border: 1px solid rgba(94, 226, 240, .3); }
.cm-sec-photo.empty { display: grid; place-items: center; background: rgba(94, 226, 240, .06); font-size: 24px; color: var(--gold-soft); }
.cm-sec-photo.empty i { font-style: normal; font-size: 10.5px; }
.cm-sec-card label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-sec-card input, .cm-sec-card textarea, .cm-sec-card select {
    border-radius: 10px; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .7);
    color: var(--text); padding: 8px 10px; font: inherit; font-size: 13px;
}

/* ── админка: мастера ─────────────────────────────────────────────── */
.cm-mst-list { display: grid; gap: 12px; }
.cm-mst-card { display: grid; grid-template-columns: 190px 1fr; gap: 14px; border: 1px solid rgba(94, 226, 240, .2); border-radius: 14px; padding: 12px 14px; background: rgba(9, 17, 33, .72); }
.cm-mst-card.approved { border-color: rgba(96, 232, 160, .4); }
.cm-mst-card.station { border-color: rgba(255, 208, 105, .4); }
.cm-mst-media { display: flex; flex-direction: column; gap: 8px; position: relative; }
.cm-mst-photo { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 10px; border: 1px solid rgba(94, 226, 240, .3); }
.cm-mst-photo.empty { display: grid; place-items: center; background: rgba(94, 226, 240, .06); font-size: 26px; color: var(--gold-soft); }
.cm-mst-photo.empty i { font-style: normal; font-size: 10.5px; }
.cm-mst-media .cm-rate-badge { position: absolute; top: 8px; left: 8px; backdrop-filter: blur(3px); }
.cm-mst-body { display: flex; flex-direction: column; gap: 7px; }
.cm-mst-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cm-mst-head b { font-size: 15.5px; color: var(--text); }
.cm-mst-card label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-mst-card input, .cm-mst-card textarea, .cm-mst-card select {
    border-radius: 10px; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .7);
    color: var(--text); padding: 8px 10px; font: inherit; font-size: 13px;
}
.cm-mst-card .grow { flex: 1; }

/* ── админка/консоль: галерея ─────────────────────────────────────── */
.cm-gallery-pick, .cm-gal-upload { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin-bottom: 12px; }
.cm-gallery-pick label, .cm-gal-upload label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-gallery-pick select, .cm-gal-upload input {
    border-radius: 10px; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .7);
    color: var(--text); padding: 8px 10px; font: inherit; font-size: 13px; min-width: 220px;
}
.cm-gal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.cm-gal-item { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .6); }
.cm-gal-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .4s ease; }
.cm-gal-item:hover img { transform: scale(1.05); }
.cm-gal-item figcaption { font-size: 11.5px; color: var(--muted); padding: 6px 8px; line-height: 1.35; }
.cm-gal-del {
    position: absolute; top: 6px; right: 6px; width: 24px; height: 24px;
    border-radius: 50%; border: 1px solid rgba(255, 91, 127, .6); cursor: pointer;
    background: rgba(20, 6, 12, .85); color: #ff9db3; font-size: 12px; line-height: 1;
}

/* ── админка/консоль: чат ─────────────────────────────────────────── */
.cm-chat-masters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.cm-chat-master {
    cursor: pointer; font: inherit; font-size: 13px; color: var(--text);
    padding: 7px 13px; border-radius: 999px;
    border: 1px solid rgba(94, 226, 240, .3); background: rgba(9, 17, 33, .72);
}
.cm-chat-master.sel { border-color: var(--gold); background: rgba(94, 226, 240, .12); box-shadow: 0 0 12px rgba(94, 226, 240, .2); }
.cm-chat-box { border: 1px solid rgba(94, 226, 240, .22); border-radius: 14px; padding: 10px; background: rgba(5, 9, 18, .55); }

/* ── консоль мастера в кабинете ───────────────────────────────────── */
.cm-mc-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 4px 0 14px; }
.cm-mc-tab {
    cursor: pointer; font: inherit; font-size: 13px; color: var(--muted);
    padding: 8px 14px; border-radius: 999px;
    border: 1px solid rgba(94, 226, 240, .22); background: rgba(9, 17, 33, .6);
}
.cm-mc-tab.active { color: var(--text); border-color: var(--gold); background: rgba(94, 226, 240, .1); box-shadow: 0 0 12px rgba(94, 226, 240, .15); }
.cm-mc-body { display: grid; gap: 12px; }
.cm-mc-profile { display: grid; grid-template-columns: 190px 1fr; gap: 16px; }
.cm-mc-photo-box { display: flex; flex-direction: column; gap: 8px; }
.cm-mc-photo { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 12px; border: 1px solid rgba(94, 226, 240, .3); box-shadow: 0 8px 26px rgba(0, 0, 0, .4); }
.cm-mc-photo.empty { display: grid; place-items: center; background: rgba(94, 226, 240, .06); font-size: 30px; color: var(--gold-soft); }
.cm-mc-photo.empty i { font-style: normal; font-size: 11px; }
.cm-mc-profile-fields { display: flex; flex-direction: column; gap: 9px; }
.cm-mc-profile-fields label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cm-mc-profile-fields .grow { flex: 1; }
.cm-mc-profile-fields input, .cm-mc-profile-fields textarea, .cm-mc-profile-fields select {
    border-radius: 10px; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .7);
    color: var(--text); padding: 9px 11px; font: inherit; font-size: 13.5px;
}
.cm-mc-profile-fields textarea { resize: vertical; }

/* ── календарь заработка ──────────────────────────────────────────── */
.cm-cal-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.cm-cal { border: 1px solid rgba(94, 226, 240, .22); border-radius: 14px; padding: 12px; background: rgba(9, 17, 33, .6); }
.cm-cal-title { display: block; text-align: center; color: var(--gold-soft); font-size: 14px; margin-bottom: 8px; }
.cm-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cm-cal-w { text-align: center; font-size: 10.5px; color: var(--muted); padding-bottom: 2px; }
.cm-cal-day {
    position: relative; border: 1px solid transparent; border-radius: 9px;
    background: rgba(94, 226, 240, .04); color: var(--text); font: inherit;
    padding: 3px 2px 4px; min-height: 42px; cursor: default;
}
.cm-cal-day i { display: block; font-style: normal; font-size: 11.5px; color: var(--muted); }
.cm-cal-day b { display: block; font-size: 10.5px; color: #8ff0bd; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cm-cal-day.has { border-color: rgba(96, 232, 160, .45); background: rgba(96, 232, 160, .08); cursor: pointer; box-shadow: 0 0 10px rgba(96, 232, 160, .12); }
.cm-cal-day.has:hover { transform: scale(1.06); border-color: rgba(96, 232, 160, .8); }
.cm-cal-day.sel { border-color: var(--gold); background: rgba(94, 226, 240, .14); }
.cm-cal-detail { border: 1px solid rgba(94, 226, 240, .22); border-radius: 14px; padding: 12px; background: rgba(5, 9, 18, .55); }

/* ═══════════════════════════════════════════════════════════════════
   master.php — страница мастера (в аналогии с прогнозами по рукам)
   ═══════════════════════════════════════════════════════════════════ */
.cmp-wrap { max-width: 1060px; margin: 0 auto; padding: 26px 16px 60px; position: relative; z-index: 1; }
.cmp-hero {
    position: relative;
    border-radius: 26px;
    overflow: hidden;
    border: 1px solid rgba(94, 226, 240, .3);
    box-shadow: 0 26px 70px rgba(0, 0, 0, .55);
    background: linear-gradient(160deg, #0d1830, #0a1224);
}
.cmp-hero img.cmp-photo { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; }
.cmp-hero.empty .cmp-photo-ph {
    display: grid; place-items: center; width: 100%; aspect-ratio: 21 / 9;
    font-size: 64px; color: rgba(94, 226, 240, .5);
    background: radial-gradient(circle at 50% 40%, rgba(94, 226, 240, .12), transparent 65%);
}
.cmp-hero-body { position: relative; padding: 18px 24px 20px; }
.cmp-hero-body::before {
    content: '';
    position: absolute; inset: 0;
    background: radial-gradient(circle at 18% 0%, rgba(94, 226, 240, .12), transparent 55%);
    pointer-events: none;
}
.cmp-name { font-family: var(--font-hand); font-size: clamp(24px, 4vw, 34px); letter-spacing: .02em;
    background: linear-gradient(90deg, var(--gold-soft), var(--purple));
    -webkit-background-clip: text; background-clip: text; color: transparent; }
.cmp-sec { display: inline-block; margin-top: 6px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-soft); }
.cmp-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.cmp-price-range { font-size: 13.5px; color: var(--gold-soft); }
.cmp-stars-bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.cmp-stars-bg span { position: absolute; color: var(--gold-soft); opacity: .5; animation: cmCmpStar 4s ease-in-out infinite; text-shadow: 0 0 10px rgba(94, 226, 240, .8); }
.cmp-stars-bg span:nth-child(1) { top: 12%; left: 8%; font-size: 16px; }
.cmp-stars-bg span:nth-child(2) { top: 30%; left: 82%; font-size: 12px; animation-delay: .8s; }
.cmp-stars-bg span:nth-child(3) { top: 62%; left: 14%; font-size: 11px; animation-delay: 1.6s; }
.cmp-stars-bg span:nth-child(4) { top: 18%; left: 55%; font-size: 14px; animation-delay: 2.4s; }
.cmp-stars-bg span:nth-child(5) { top: 74%; left: 70%; font-size: 15px; animation-delay: 3s; }
@keyframes cmCmpStar {
    0%, 100% { transform: translateY(0); opacity: .35; }
    50%      { transform: translateY(-9px); opacity: .9; }
}

/* вау-страница (Звёздный мастер): живая аура */
.cmp-page.wow .cmp-hero { animation: cmpAura 3.4s ease-in-out infinite; }
@keyframes cmpAura {
    0%, 100% { box-shadow: 0 26px 70px rgba(0, 0, 0, .55), 0 0 26px rgba(94, 226, 240, .16); }
    50%      { box-shadow: 0 26px 70px rgba(0, 0, 0, .55), 0 0 52px rgba(255, 208, 105, .3); }
}
.cmp-page.wow .cmp-name {
    background: linear-gradient(90deg, #ffe9ad, var(--gold-soft), #ffd166);
    -webkit-background-clip: text; background-clip: text;
    animation: cmpShimmer 3.2s linear infinite; background-size: 200% auto;
}
@keyframes cmpShimmer { to { background-position: 200% center; } }

.cmp-block { margin-top: 22px; }
.cmp-block > h3 {
    font-family: var(--font-hand); font-size: 17px; letter-spacing: .03em; color: var(--gold-soft);
    margin-bottom: 12px; display: flex; align-items: center; gap: 10px;
}
.cmp-block > h3::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(94, 226, 240, .4), transparent); }
.cmp-resume { white-space: pre-line; color: var(--text); font-size: 14.5px; line-height: 1.65; }
.cmp-story { color: var(--muted); font-size: 14px; line-height: 1.6; white-space: pre-line; }

.cmp-price-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.cmp-price-card {
    border: 1px solid rgba(94, 226, 240, .26); border-radius: 16px; overflow: hidden;
    background: linear-gradient(165deg, rgba(13, 24, 48, .9), rgba(9, 16, 32, .95));
    display: flex; flex-direction: column; transition: transform .2s ease, border-color .2s ease;
}
.cmp-price-card:hover { transform: translateY(-3px); border-color: rgba(94, 226, 240, .55); }
.cmp-price-card .ph { display: block; aspect-ratio: 16 / 9; overflow: hidden; position: relative; background: rgba(94, 226, 240, .06); }
.cmp-price-card .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.cmp-price-card:hover .ph img { transform: scale(1.05); }
.cmp-price-card .ph .g { position: absolute; top: 8px; left: 8px; font-size: 15px; color: var(--gold-soft);
    background: rgba(5, 9, 18, .72); border-radius: 999px; padding: 3px 9px; border: 1px solid rgba(94, 226, 240, .3); }
.cmp-price-card .bd { padding: 11px 13px 13px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.cmp-price-card b { color: var(--text); font-size: 14.5px; }
.cmp-price-card p { color: var(--muted); font-size: 12.5px; line-height: 1.45; flex: 1; }
.cmp-price-card .meta { display: flex; gap: 8px; align-items: center; justify-content: space-between; }
.cmp-price-card .pr { color: var(--gold-soft); font-size: 15px; }
.cmp-price-card .dr { color: var(--muted); font-size: 12px; }

.cmp-gal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.cmp-gal-item { border-radius: 14px; overflow: hidden; border: 1px solid rgba(94, 226, 240, .25); background: rgba(5, 9, 18, .6); }
.cmp-gal-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .45s ease; }
.cmp-gal-item:hover img { transform: scale(1.06); }
.cmp-gal-item figcaption { font-size: 12px; color: var(--muted); padding: 7px 10px; }

.cmp-review { border: 1px solid rgba(255, 208, 105, .3); border-radius: 14px; padding: 12px 14px; background: linear-gradient(160deg, rgba(255, 190, 80, .08), rgba(9, 16, 32, .7)); }
.cmp-review + .cmp-review { margin-top: 8px; }
.cmp-review .rw { display: flex; gap: 10px; align-items: baseline; }
.cmp-review .rw b { color: var(--text); font-size: 13.5px; }
.cmp-review .rw .st { color: #ffd166; letter-spacing: .14em; text-shadow: 0 0 8px rgba(255, 208, 105, .5); }
.cmp-review p { color: var(--muted); font-size: 13px; margin-top: 4px; line-height: 1.5; }

.cmp-cta { margin-top: 26px; text-align: center; padding: 18px; border-radius: 18px;
    border: 1px dashed rgba(94, 226, 240, .4); background: rgba(94, 226, 240, .05); }
.cmp-cta p { color: var(--muted); font-size: 13.5px; margin-bottom: 10px; }

@media (max-width: 720px) {
    .cm-sec-card, .cm-mst-card { grid-template-columns: 1fr; }
    .cm-mc-profile { grid-template-columns: 1fr; }
    .cm-mc-photo-box { max-width: 220px; }
    .cmp-hero img.cmp-photo, .cmp-hero.empty .cmp-photo-ph { aspect-ratio: 16 / 10; }
    .cm-mcard-gal img { width: 46px; height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
    .cm-mcard, .cm-rate-badge, .cmp-page .cmp-hero, .cmp-page .cmp-name, .cmp-stars-bg span { animation: none !important; }
}
