/* ===== Дизайн-система: премиальный минимализм ===== */
  :root{
    /* Палитра (имена сохранены, значения обогащены по хэндоффу) */
    --bg:#f4f0e9;            /* фон страницы (в хэндоффе --paper) */
    --paper:#fbf9f5;         /* карточки (в хэндоффе --card) */
    --card-hi:#fffdf9;       /* светлее карточки — объём, бейджи */
    --ink:#18160f;--ink-hover:#241f15;
    --muted:#746f63;--text:#4a463d;--text-soft:#5b564b;
    --line:#e3dccf;--line-soft:#ece5d7;--line-dark:#d8cfbf;
    --accent:#4a3f5e;--gold:#a8895c;--gold-line:rgba(168,137,92,.45);--gold-light:#c7a878;
    --on-dark:#f4f0e9;--on-dark-muted:#a39d90;--on-dark-line:rgba(243,239,233,.12);
    /* Шрифты */
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    --eyebrow-track:0.24em;
    /* Сетка / радиусы */
    --max:1280px;--pad-x:64px;
    --radius:12px;--radius-lg:18px;--r-pill:999px;--r-hero:24px;
    /* Тени / свечения (двухслойные — глубина) */
    --shadow:0 2px 4px rgba(24,22,15,.03), 0 40px 80px -50px rgba(24,22,15,.28);
    --sh-card-hover:0 28px 56px -32px rgba(24,22,15,.32);
    --sh-badge:0 14px 30px -16px rgba(24,22,15,.35);
    --sh-btn:0 16px 30px -16px rgba(24,22,15,.75);
    --sh-arrow:0 10px 24px -14px rgba(24,22,15,.40);
    /* Анимация */
    --ease:cubic-bezier(.2,.6,.2,1);--dur-fast:.25s;--dur:.3s;--dur-slow:.8s;
    /* Алиасы под имена из хэндоффа (чтобы вставлять его CSS как есть) */
    --card:var(--paper);--plum:var(--accent);--line-2:var(--line-dark);
    --font-serif:var(--serif);--font-sans:var(--sans);
    --r-card:var(--radius-lg);--r-slot:var(--radius);--sh-card:var(--shadow);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .container{max-width:var(--max);margin:0 auto;padding:0 32px}
  section{padding:110px 0}
  h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.01em;line-height:1.08}
  h1{font-size:clamp(46px,6.5vw,84px)}
  h2{font-size:clamp(34px,4.6vw,56px)}
  h3{font-size:22px;font-weight:600}
  .view{display:none}
  .view.active{display:block;animation:fade .5s var(--ease)}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .eyebrow{display:inline-block;font-family:var(--sans);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--gold);margin-bottom:22px}
  .eyebrow::before{content:"";display:inline-block;width:26px;height:1px;background:var(--gold);vertical-align:middle;margin-right:12px}
  .section-head{max-width:680px;margin-bottom:64px}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center}
  .section-head.center .eyebrow::after{content:"";display:inline-block;width:26px;height:1px;background:var(--gold);vertical-align:middle;margin-left:12px}
  .section-head p{color:var(--muted);font-size:19px;margin-top:18px;line-height:1.55}
  /* Кнопки */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.02em;padding:15px 32px;border-radius:100px;border:1px solid transparent;cursor:pointer;transition:all .4s var(--ease);white-space:nowrap}
  .btn-primary{background:var(--ink);color:var(--paper)}
  .btn-primary:hover{background:var(--accent)}
  .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-dark)}
  .btn-ghost:hover{border-color:var(--ink)}
  .btn-light{background:var(--paper);color:var(--ink)}
  .btn-light:hover{background:#fff}
  .btn-lg{padding:18px 40px;font-size:15px}
  .btn-block{width:100%}
  /* Хедер */
  .header{position:sticky;top:0;z-index:50;background:rgba(244,240,233,.8);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .header .container{display:flex;align-items:center;gap:28px;height:84px;min-width:0}
  .logo{display:flex;align-items:baseline;gap:4px;font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:-.01em;cursor:pointer}
  .logo .dot{color:var(--gold);font-size:20px}
  /* Шапка не должна вылезать за край: длинное имя эксперта и шесть пунктов меню
     раньше не помещались в 1440 и страницу уводило вбок. */
  .nav{display:flex;gap:28px;margin-left:10px;min-width:0;flex:0 1 auto;overflow:hidden}
  .nav a{font-size:14px;color:var(--muted);font-weight:500;transition:color .25s;cursor:pointer;white-space:nowrap}
  .nav a:hover{color:var(--ink)}
  .header-actions{margin-left:auto;display:flex;align-items:center;gap:14px;flex:none;min-width:0}
  #auth-area{display:inline-flex;align-items:center;gap:12px;min-width:0}
  #auth-area .user-chip{min-width:0}
  #auth-area .uname{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  @media(max-width:1500px){ .nav{gap:22px} .header .container{gap:20px} }
  @media(max-width:1320px){ .nav a:nth-child(n+5){display:none} }
  @media(max-width:1150px){ .nav{display:none} }
  .header-actions .text-link{font-size:14px;font-weight:500;color:var(--ink);cursor:pointer}
  .burger{display:none;background:none;border:none;cursor:pointer;font-size:24px}
  /* Hero */
  .hero{padding:90px 0 120px}
  .hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center}
  .hero h1{margin-bottom:0}
  .hero h1 em{font-style:italic;color:var(--accent)}
  .hero p.lead{font-size:20px;color:var(--muted);margin:30px 0 40px;max-width:500px;line-height:1.65}
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap}
  .hero-trust{margin-top:56px;padding-top:40px;border-top:1px solid var(--line);display:flex;gap:48px;flex-wrap:wrap}
  .hero-trust .num{font-family:var(--serif);font-size:42px;font-weight:500;line-height:1}
  .hero-trust .lbl{font-size:13px;color:var(--muted);margin-top:8px;max-width:150px}
  .hero-visual{position:relative}
  .hero-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:30px}
  .hero-card .therapist{display:flex;gap:18px;align-items:center}
  .avatar{width:56px;height:56px;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:var(--paper);font-family:var(--serif);font-weight:600;font-size:20px;flex:none}
  .hero-card .hc-photo{width:112px;height:112px;border-radius:50%;object-fit:cover;object-position:center top;flex:none;border:1px solid var(--line);background:linear-gradient(150deg,#efe7d8,#d7cab2)}
  .hero-card .meta strong{display:block;font-size:19px;font-weight:600}
  .hero-card .meta span{font-size:13px;color:var(--muted)}
  .hero-card .meta .hc-rating{display:block;margin-top:7px;font-size:13px;color:var(--muted)}
  .hero-card .meta .hc-rating b{color:var(--gold);font-weight:600}
  .hero-card .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
  .tag{font-size:12px;background:transparent;color:var(--muted);padding:5px 13px;border:1px solid var(--line-dark);border-radius:100px;font-weight:500}
  .hero-card .slot-row{display:flex;gap:8px;margin-top:22px}
  .slot{flex:1;text-align:center;font-size:12px;font-weight:500;line-height:1.4;padding:11px 0;border:1px solid var(--line-dark);border-radius:var(--radius);cursor:pointer;transition:all .25s}
  .slot:hover{border-color:var(--ink)}
  .slot.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .hero-badge{position:absolute;background:var(--paper);border:1px solid var(--line);box-shadow:0 14px 40px -24px rgba(40,32,20,.5);border-radius:100px;padding:11px 20px;font-size:13px;font-weight:500}
  .hero-badge.b1{top:-22px;right:24px}
  .hero-badge.b2{bottom:-22px;left:-16px}
  .hero-badge .gold{color:var(--gold)}
  /* Пресса */
  .press{padding:46px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .press .row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:28px}
  .press .row span{font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--muted);opacity:.7}
  /* Шаги */
  .steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
  .step{padding:44px 36px 44px 0;border-right:1px solid var(--line)}
  .step:last-child{border-right:none;padding-right:0;padding-left:36px}
  .step:nth-child(2){padding-left:36px}
  .step .n{font-family:var(--serif);font-size:40px;color:var(--gold);line-height:1;margin-bottom:24px}
  .step p{color:var(--muted);margin-top:12px;font-size:15px}
  /* Темы */
  .areas-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
  .area-card{padding:38px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .35s}
  .area-card:hover{background:var(--paper)}
  .area-card .idx{font-family:var(--serif);font-size:15px;color:var(--gold);font-style:italic}
  .area-card h3{font-size:19px;margin-top:18px}
  .area-card p{font-size:14px;color:var(--muted);margin-top:10px}
  /* Отбор */
  .vetting{background:var(--ink);color:#e9e4d8}
  .vetting .eyebrow{color:var(--gold)}
  .vetting h2{color:var(--paper)}
  .vetting .container{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}
  .vetting-stat{font-family:var(--serif);font-size:clamp(120px,16vw,200px);font-weight:400;color:var(--gold);line-height:.9;margin-top:20px}
  .vetting-stat-cap{color:#b3ab9a;font-size:17px;margin-top:8px}
  .check-list{list-style:none;display:grid;gap:0}
  .check-list li{display:flex;gap:20px;font-size:17px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.12);color:#e9e4d8}
  .check-list li:first-child{border-top:1px solid rgba(255,255,255,.12)}
  .check-list .ic{color:var(--gold);font-family:var(--serif);font-size:16px;flex:none;min-width:22px}
  /* Преимущества */
  .benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
  .benefit{background:var(--bg);padding:42px 36px;transition:background .35s}
  .benefit:hover{background:var(--paper)}
  .benefit .ic{font-family:var(--serif);font-size:28px;color:var(--gold);font-style:italic}
  .benefit h3{margin:20px 0 12px}
  .benefit p{color:var(--muted);font-size:15px}
  /* Отзывы */
  .prof-reviews{display:grid;gap:16px}
  .rv-all{margin-top:16px}
  .rvc{border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 22px;background:var(--paper)}
  .rvc-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:10px}
  .rvc-stars{color:var(--gold);letter-spacing:.14em;font-size:13px}
  .rvc-date{color:var(--muted);font-size:12.5px}
  .rvc-media{margin:0 0 12px;border-radius:var(--radius);overflow:hidden;background:var(--bg);aspect-ratio:4/3}
  .rvc-media>*{width:100%;height:100%}
  .rvc-media img,.rvc-media video,.rvc-media iframe{display:block;width:100%;height:100%;object-fit:cover;max-height:none;margin:0;border:0}
  .rvc-link{display:inline-block;padding:14px;font-size:14px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
  .rvc-text{margin:0;font-size:15px;line-height:1.6;color:var(--text);white-space:pre-wrap}
  .rvc-text.clamp{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .rvc-more{background:none;border:none;padding:6px 0 0;font:inherit;font-size:14px;color:var(--muted);
    cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .rvc-more:hover{color:var(--ink)}
  .rvc-by{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:14px}
  .rv-prev{position:relative;margin-top:10px;border-radius:var(--radius);overflow:hidden;max-width:320px}
  .rv-prev img,.rv-prev video{display:block;width:100%;height:auto;max-height:220px;object-fit:cover}
  .rv-prev-x{position:absolute;right:8px;top:8px;background:rgba(20,18,15,.72);color:#fff;border:none;
    border-radius:100px;padding:4px 12px;font:inherit;font-size:12px;cursor:pointer}
  /* Страница отзывов и кейсов */
  .rvp{padding:30px 0 70px;max-width:1120px;margin:0 auto}
  .rvp-back{color:var(--muted);font-size:14px;cursor:pointer;margin-bottom:18px}
  .rvp-back:hover{color:var(--ink)}
  .rvp-h{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.2vw,42px);margin:0 0 6px}
  .rvp-sub{margin:0 0 28px}
  .rvp-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 26px}
  .rvp-meta .sub{margin:0}
  .rvp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
  .rvp-more{margin-top:28px;text-align:center}
  @media(max-width:980px){.rvp-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:640px){.rvp-grid{grid-template-columns:1fr}}
  .rvp-grid>*{min-width:0}
  .review .rv-mark{color:var(--gold);letter-spacing:.14em;font-size:13px;margin-bottom:8px}
  .plat-rev{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
    margin-top:24px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 24px;background:var(--paper)}
  .plat-rev strong{font-size:16px}
  .plat-rev .sub{margin:4px 0 0}
  .reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
  .review{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:38px 34px;display:flex;flex-direction:column}
  .review .quote{font-family:var(--serif);font-size:40px;color:var(--gold);line-height:.5;height:24px}
  .review p{font-family:var(--serif);font-size:21px;line-height:1.45;font-weight:500}
  .review .who{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:28px}
  .review .who .avatar{width:46px;height:46px;font-size:16px}
  .review .who strong{font-size:15px;display:block;font-weight:600}
  .review .who span{font-size:13px;color:var(--muted)}
  /* Цены */
  .pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
  .price-card{padding:48px 40px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg);transition:background .35s}
  .price-card:last-child{border-right:none}
  .price-card.featured{background:var(--paper)}
  .price-card .plan-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:600;min-height:16px}
  .price-card h3{font-size:26px;font-family:var(--serif);font-weight:500;margin:14px 0 0}
  .price-card .price{font-family:var(--serif);font-size:46px;font-weight:500;margin:24px 0 4px}
  .price-card .price span{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--muted)}
  .price-card .tagline{color:var(--muted);font-size:15px}
  .price-card ul{list-style:none;margin:28px 0 34px;display:grid;gap:14px}
  .price-card li{font-size:15px;display:flex;gap:12px;color:var(--ink)}
  .price-card li .ic{color:var(--gold);font-family:var(--serif)}
  .price-card .btn{margin-top:auto}
  /* FAQ */
  .faq-list{max-width:880px;margin:0 auto;border-top:1px solid var(--line)}
  .faq-item{border-bottom:1px solid var(--line)}
  .faq-q{width:100%;background:none;border:none;text-align:left;font-family:var(--serif);font-size:25px;font-weight:500;color:var(--ink);padding:32px 50px 32px 0;cursor:pointer;position:relative;transition:color .25s}
  .faq-q:hover{color:var(--accent)}
  .faq-q::after{content:"";position:absolute;right:8px;top:50%;width:16px;height:1px;background:var(--ink);transition:transform .3s}
  .faq-q::before{content:"";position:absolute;right:8px;top:50%;width:16px;height:1px;background:var(--ink);transform:rotate(90deg);transition:transform .3s var(--ease)}
  .faq-item.open .faq-q::before{transform:rotate(0)}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
  .faq-a p{color:var(--muted);padding-bottom:32px;font-size:17px;max-width:720px}
  /* CTA */
  .cta-banner{background:var(--ink);border-radius:var(--radius-lg);padding:90px 56px;text-align:center;color:var(--paper)}
  .cta-banner .eyebrow{color:var(--gold)}
  .cta-banner h2{color:var(--paper);max-width:640px;margin:0 auto}
  .cta-banner p{color:#b3ab9a;font-size:18px;margin:22px auto 38px;max-width:480px}
  /* Футер */
  .footer{background:var(--bg);border-top:1px solid var(--line);padding:80px 0 36px;color:var(--muted)}
  .footer .top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
  .footer .logo{color:var(--ink)}
  .footer h4{color:var(--ink);font-family:var(--sans);font-size:12px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:20px;font-weight:600}
  .footer ul{list-style:none;display:grid;gap:13px}
  .footer a{font-size:14px;transition:color .25s;cursor:pointer}
  .footer a:hover{color:var(--ink)}
  .footer .desc{font-size:15px;margin:20px 0;max-width:300px;line-height:1.6}
  .footer .bottom{border-top:1px solid var(--line);margin-top:56px;padding-top:28px;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
  /* Модалка */
  .modal-overlay{position:fixed;inset:0;background:rgba(24,22,15,.5);backdrop-filter:blur(6px);z-index:100;display:none;align-items:center;justify-content:center;padding:24px}
  .modal-overlay.open{display:flex}
  .modal{background:var(--paper);border-radius:var(--radius-lg);max-width:580px;width:100%;max-height:90vh;overflow-y:auto;padding:48px;position:relative;box-shadow:var(--shadow)}
  /* Окно записи: шапка и поля прокручиваются, кнопка вынесена из области
     прокрутки — она всегда на виду и при этом ничего собой не накрывает.
     Прижимать её поверх содержимого нельзя: закрывает поля формы. */
  #booking-modal .modal{display:flex;flex-direction:column;overflow:hidden}
  #booking-modal #booking-body,#booking-modal #booking-body>form{display:flex;flex-direction:column;flex:1;min-height:0}
  .bk-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:6px}
  .bk-foot{flex:none;padding-top:16px}
  .bk-foot .form-error{margin-top:0;margin-bottom:8px}
  .modal-close{position:absolute;top:22px;right:22px;background:none;border:1px solid var(--line-dark);width:40px;height:40px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink);transition:all .25s}
  .modal-close:hover{border-color:var(--ink)}
  .progress{height:2px;background:var(--line);margin-bottom:36px;margin-right:34px;overflow:hidden;border-radius:2px}
  .progress .bar{height:100%;background:var(--gold);transition:width .4s var(--ease)}
  .quiz-step h3{font-family:var(--serif);font-size:32px;font-weight:500;margin-bottom:8px}
  .sub{color:var(--muted);font-size:16px}
  .quiz-step .sub{margin-bottom:28px}
  .join-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
  .options{display:grid;gap:12px;max-height:52vh;overflow-y:auto;scrollbar-width:thin}
  .options::-webkit-scrollbar{width:6px}
  .options::-webkit-scrollbar-thumb{background:var(--line-dark);border-radius:3px}
  .option{border:1px solid var(--line-dark);border-radius:var(--radius);padding:18px 22px;cursor:pointer;font-size:16px;font-weight:500;transition:all .25s;display:flex;align-items:center;gap:14px}
  .option:hover{border-color:var(--ink)}
  .option.selected{border-color:var(--ink);background:var(--bg)}
  .option .mark{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:17px;min-width:22px}
  .quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:32px;gap:12px}
  .quiz-result{text-align:center;margin-bottom:8px}
  .quiz-result .big-mark{font-family:var(--serif);font-size:48px;font-style:italic;color:var(--gold)}
  /* Формы */
  .form-head h3{font-family:var(--serif);font-size:30px;font-weight:500;margin-bottom:6px}
  .field{margin-bottom:16px}
  .field label{display:block;font-size:13px;font-weight:600;letter-spacing:.02em;margin-bottom:7px;color:var(--ink)}
  .field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:15px;padding:13px 15px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink);transition:border-color .25s}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink)}
  /* Родная стрелка выпадающего списка стояла вплотную к рамке. Отодвигаем её
     от края и даём тексту место, чтобы он под неё не заезжал. */
  select{padding-right:34px}
  .field select,.crm-add select,.sched-pattern select,.vb-client select{padding-right:34px}
  .field textarea{resize:vertical;min-height:70px}
  .form-note{font-size:13px;color:var(--muted);margin-top:4px}
  .form-error{color:#b3402f;font-size:14px;margin-top:10px;min-height:18px}
  .booking-who{display:flex;align-items:center;gap:14px;padding:16px 0 22px;margin-bottom:6px;border-bottom:1px solid var(--line)}
  .api-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-top:14px}
  .api-status .led{width:8px;height:8px;border-radius:50%;background:#c9c2b2}
  .api-status.live .led{background:var(--gold)}
  /* Авторизация в хедере */
  .user-chip{display:flex;align-items:center;gap:10px;cursor:pointer}
  .user-chip .ava{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:15px}
  .user-chip .uname{font-size:14px;font-weight:500;white-space:nowrap}
  .user-chip .urole{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}
  .text-link{cursor:pointer}
  .demo-hint{font-size:13px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:6px 0 18px;line-height:1.5}
  .demo-hint b{color:var(--ink)}
  .code-sent{background:var(--bg);border:1px dashed var(--gold);border-radius:var(--radius);padding:14px;text-align:center;margin-bottom:16px}
  .code-sent .big{font-family:var(--serif);font-size:30px;letter-spacing:.18em;color:var(--ink)}
  /* Кабинеты */
  .cab-hero{padding:54px 0 0}
  .cab-hero .role-tag{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:600;margin-bottom:10px}
  /* Шапка кабинета не должна съедать экран у доски: роль и имя в одну строку. */
  .cab-hero--tight{padding:26px 0 0;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
  .cab-hero--tight .role-tag{margin-bottom:0}
  .cab-hero--tight h1{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);line-height:1.15;margin:0;font-weight:600}
  .cab-hero--tight .cab-tabs{flex:1 0 100%;margin-top:18px}
  /* Вкладок в кабинете много: на узком экране полоса листается сама,
     а не растягивает страницу вбок. */
  .cab-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin:36px 0 0;
    overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-ms-overflow-style:none}
  .cab-tabs::-webkit-scrollbar{display:none}
  .cab-tabs>*{flex:none}
  .cab-tab{white-space:nowrap;padding:0 0 18px;font-size:15px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s}
  .cab-tab.active{color:var(--ink);border-color:var(--ink)}
  .cab-tab--page{color:var(--gold);font-weight:600}
  .cab-tab--page:hover{color:var(--ink)}
  .cab-body{padding:40px 0 110px}

  /* #40. Разделов в кабинете эксперта стало больше десяти — в одну строку
     они не влезали и обрезались справа. На широком экране меню уходит влево
     столбиком и стоит на месте при прокрутке; на узком остаётся строкой. */
  .cab-shell{margin-top:18px}
  .cab-main{min-width:0}
  @media(min-width:1100px){
    .cab-shell{display:grid;grid-template-columns:160px minmax(0,1fr);gap:28px;align-items:start;margin-top:26px}
    .cab-side.cab-tabs{position:sticky;top:104px;flex-direction:column;gap:2px;border-bottom:0;margin:0;
      overflow:visible;max-height:calc(100vh - 124px);overflow-y:auto}
    .cab-side .cab-tab{padding:5px 10px;border-bottom:0;margin:0;border-radius:8px;font-size:14.5px;font-weight:400;white-space:nowrap;line-height:1.3}
    .cab-side .cab-tab:hover{color:var(--ink);background:rgba(0,0,0,.035)}
    .cab-side .cab-tab.active{background:rgba(0,0,0,.06);color:var(--ink);font-weight:400}
    .cab-side .cab-tab--page{margin:0 0 12px;color:var(--gold);font-weight:400}
    .cab-shell .cab-body{padding-top:0}
  }
  .booking-row{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .booking-row .when{font-family:var(--serif);font-size:20px;min-width:200px}
  .booking-row .who2{flex:1;min-width:160px}
  .booking-row .who2 strong{font-weight:600}
  .booking-row .who2 .sub{font-size:13px}
  .booking-row .actions{display:flex;gap:8px;flex-wrap:wrap}
  .btn-sm{padding:9px 16px;font-size:13px}
  .badge{font-size:12px;font-weight:600;padding:5px 12px;border-radius:100px;letter-spacing:.02em;white-space:nowrap}
  .badge.new{background:#efe7d6;color:#8a6d2f}
  .badge.confirmed{background:#e2ece3;color:#2f6b45}
  .badge.done{background:#e7e4ef;color:#4a3f5e}
  .badge.cancelled{background:#efe1de;color:#9a4636}
  .cab-empty{padding:60px 0;color:var(--muted);text-align:center}
  .cab-empty .mark{font-family:var(--serif);font-style:italic;font-size:40px;color:var(--gold)}
  .note-box{width:100%;margin-top:12px;font-family:var(--sans);font-size:14px;padding:11px 13px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  /* Расписание эксперта */
  .sched-add{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:22px 24px;margin-bottom:30px}
  .sched-add .field{margin:0}
  .sched-add input{min-width:220px}
  .slot-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
  /* Шаблон рабочей недели: раскладывает слоты пачкой вместо ввода по одному */
  .sched-pattern .wd-field{flex:1 1 100%}
  .wd-pick{display:flex;gap:6px;flex-wrap:wrap}
  .wd-b{font:500 13px/1 var(--sans);padding:10px 13px;border:1px solid var(--line-dark);border-radius:var(--radius);background:transparent;color:var(--muted);cursor:pointer;transition:all .2s}
  .wd-b:hover{border-color:var(--ink);color:var(--ink)}
  .wd-b.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
  .sched-pattern select{font:500 14px/1 var(--sans);padding:11px 13px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink);cursor:pointer}
  /* Расписание эксперта в календаре: число под датой — сколько свободно,
     через плюс — сколько уже занято. */
  .sc-n{font:600 10px/1 var(--sans);color:var(--gold)}
  .sc-n b{color:var(--muted);font-weight:600}
  .sc-d.sel .sc-n,.sc-d.sel .sc-n b{color:var(--paper)}
  .sc-d.today:not(.sel){box-shadow:inset 0 0 0 1px var(--gold-line)}
  /* Выбор из готовых вариантов (длительность и цена первой сессии) */
  .opt-pick{display:inline-flex;gap:6px;flex-wrap:wrap}
  .opt-b{font:500 13px/1 var(--sans);padding:9px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:transparent;color:var(--muted);cursor:pointer;transition:all .2s}
  .opt-b:hover{border-color:var(--ink);color:var(--ink)}
  .opt-b.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
  .opt-own{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
  .eadd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
  .eadd input[type=time]{font:500 14px/1 var(--sans);padding:10px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .slot-days{display:flex;flex-direction:column;gap:16px}
  .sday-h{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:9px}
  .sday-items{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}
  .sday-items .slot-item{padding:9px 12px;gap:9px}
  .sday-items .slot-item .st{font-family:var(--sans);font-size:14px;font-weight:500}
  .slot-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--paper)}
  .slot-item .st{font-family:var(--serif);font-size:16px}
  .slot-item.booked{opacity:.65}
  .slot-item .x{cursor:pointer;color:var(--muted);border:none;background:none;font-size:18px;line-height:1}
  .slot-item .x:hover{color:#9a4636}
  /* Выбор слота при записи */
  .slot-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
  .slot-cal{margin-bottom:6px}
  .sc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
  .sc-head .m{font-family:var(--serif);font-size:20px;text-transform:capitalize}
  .sc-nav{width:34px;height:34px;flex:none;border:1px solid var(--line-dark);border-radius:var(--radius);background:transparent;color:var(--ink);font-size:18px;line-height:1;cursor:pointer;transition:border-color .2s}
  .sc-nav:hover:not(:disabled){border-color:var(--ink)}
  .sc-nav:disabled{opacity:.3;cursor:default}
  .sc-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
  .sc-wd span{text-align:center;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .sc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
  .sc-d{height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:var(--radius);font-size:14px;border:1px solid transparent}
  .sc-d.off{color:var(--muted);opacity:.4}
  .sc-d.has{border-color:var(--line-dark);cursor:pointer;font-weight:500;transition:all .2s}
  .sc-d.has:hover{border-color:var(--ink)}
  .sc-d.sel{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .sc-d .dot{width:4px;height:4px;border-radius:50%;background:var(--gold)}
  .sc-d.sel .dot{background:var(--paper)}
  .slot-day{margin-top:18px;min-height:92px}
  .slot-day .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
  .slot-times{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .slot-times .slot-opt{padding:11px 6px}
  .slot-times .slot-opt .h{font-size:14px;opacity:1;font-weight:500}
  .slot-opt{border:1px solid var(--line-dark);border-radius:var(--radius);padding:13px;text-align:center;cursor:pointer;font-size:14px;transition:all .2s}
  .slot-opt:hover{border-color:var(--ink)}
  .slot-opt.sel{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .slot-opt .d{font-weight:600}
  .slot-opt .h{font-size:13px;opacity:.8}
  /* Оплата */
  .pay-card{background:linear-gradient(135deg,var(--accent),#6a5b86);border-radius:14px;padding:22px;color:#fff;margin-bottom:20px}
  .pay-card .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.18em;opacity:.7}
  .pay-card .num{font-family:var(--serif);font-size:24px;letter-spacing:.08em;margin:14px 0}
  .pay-card .rowb{display:flex;justify-content:space-between;font-size:13px;opacity:.85}
  .pay-amount{font-family:var(--serif);font-size:34px;text-align:center;margin:8px 0 18px}
  .pay-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .pay-fields .field:first-child{grid-column:1/-1}
  /* Видеокомната */
  #view-room.active{display:flex}
  .room{position:fixed;inset:0;z-index:200;height:100dvh;width:100vw;background:#16140f;color:#e9e4d8;display:flex;flex-direction:column;overflow:hidden}
  .room-top{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid rgba(255,255,255,.1)}
  .room-top .ti{font-family:var(--serif);font-size:20px;color:#fff}
  .logo--room{display:inline-flex;font-size:20px;vertical-align:baseline;cursor:default;letter-spacing:.13em}
  .logo--room .logo__o .ring{border-color:#fff;border-width:2px}
  .logo--room .node--gold{box-shadow:0 0 0 1px #16140f}
  .logo--room .node--plum{box-shadow:0 0 0 1px #16140f}
  .room-top .meta{font-size:13px;color:#b3ab9a}
  .room-stage{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:24px;max-width:1100px;margin:0 auto;width:100%;align-items:center;box-sizing:border-box}
  .vtile{position:relative;aspect-ratio:16/9;max-height:100%;border-radius:16px;background:radial-gradient(circle at 50% 35%,#3a3450,#1d1a2b);display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);overflow:hidden}
  .vtile .bigava{width:96px;height:96px;border-radius:50%;background:var(--accent);display:grid;place-items:center;font-family:var(--serif);font-size:40px;color:#fff}
  .vtile .name{position:absolute;left:16px;bottom:14px;font-size:14px;background:rgba(0,0,0,.4);padding:5px 12px;border-radius:100px}
  .vtile.self{background:radial-gradient(circle at 50% 35%,#4a4030,#211d14)}
  .vtile.self .bigava{background:var(--gold)}
  .room-bar{display:flex;justify-content:center;gap:14px;padding:22px;border-top:1px solid rgba(255,255,255,.1)}
  .rbtn{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font-size:20px;cursor:pointer;transition:all .2s;display:grid;place-items:center}
  .rbtn:hover{background:rgba(255,255,255,.14)}
  .rbtn.off{background:#9a4636;border-color:#9a4636}
  .rbtn.leave{background:#c0392b;border-color:#c0392b;width:auto;padding:0 24px;border-radius:100px;font-size:14px;font-weight:600}
  .room-note{text-align:center;font-size:12px;color:#8a8270;padding:0 0 18px}
  @media (max-width:700px){.room-stage{grid-template-columns:1fr;align-content:center}}
  @media (max-height:620px){.room-stage{padding:14px;gap:12px}.vtile .bigava{width:64px;height:64px;font-size:28px}.room-top,.room-bar{padding:12px 20px}}
  /* Подтверждение и тосты */
  #confirm-body h3{font-family:var(--serif);font-size:24px;font-weight:500;margin-bottom:22px}
  #toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
  .toast-item{background:var(--ink);color:var(--paper);padding:12px 22px;border-radius:100px;font-size:14px;box-shadow:var(--shadow);animation:fade .3s var(--ease)}
  /* Страница психолога */
  .prof-wrap{padding:48px 0 110px}
  .prof-back{font-size:14px;color:var(--muted);cursor:pointer;display:inline-flex;gap:8px;align-items:center;margin-bottom:32px;transition:color .2s}
  .prof-back:hover{color:var(--ink)}
  /* Отзывы */
  .rv-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .rv-head h3{margin:0}
  .rv-note{color:var(--muted);font-size:13px}
  .rv-wrap{padding:32px 34px 30px}
  .rv-wrap h3{margin:6px 0 6px;font-size:23px}
  .rv-stars{display:flex;gap:6px;margin:16px 0 14px}
  .rv-star{background:none;border:none;cursor:pointer;font-size:30px;line-height:1;padding:0;color:var(--line-dark);transition:color .15s}
  .rv-star:hover,.rv-star.on{color:var(--gold)}
  .rv-wrap textarea{width:100%;font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--line-dark);
    border-radius:var(--radius);background:var(--bg);color:var(--ink);resize:vertical}
  .rv-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
  .rv-acts .btn{width:auto;flex:0 0 auto}
  .prof-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:start}
  .prof-grid>*{min-width:0}
  .prof-head{display:flex;gap:24px;align-items:center;margin-bottom:14px}
  .prof-head .avatar{width:96px;height:96px;font-size:34px}
  .prof-head h1{font-size:clamp(34px,4vw,48px);margin:0}
  .prof-head .role{color:var(--muted);font-size:16px;margin-top:6px}
  .prof-head .rating{font-size:14px;margin-top:8px;font-weight:500}
  .prof-head .rating .star{color:var(--gold)}
  .prof-head .rating span{color:var(--muted);font-weight:400}
  .prof-tags{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 38px}
  .prof-section{padding:32px 0;border-top:1px solid var(--line)}
  .prof-section h3{font-family:var(--serif);font-size:26px;font-weight:500;margin-bottom:16px}
  .prof-section p{color:var(--muted);font-size:16px;line-height:1.7}
  .prof-meta{display:grid;gap:16px}
  .prof-meta .it .k{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:600;margin-bottom:4px}
  .prof-meta .it .v{font-size:16px}
  .prof-reviews{display:grid;gap:18px}
  .prev-review{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;background:var(--paper)}
  .prev-review .stars{color:var(--gold);font-size:14px;letter-spacing:2px}
  .prev-review p{font-family:var(--serif);font-size:19px;line-height:1.45;color:var(--ink);margin:10px 0 14px}
  .prev-review .by{font-size:13px;color:var(--muted)}
  .prof-aside{border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;background:var(--paper);box-shadow:var(--shadow)}
  .prof-aside .price{font-family:var(--serif);font-size:38px;font-weight:500}
  .prof-aside .price small{font-family:var(--sans);font-size:14px;color:var(--muted);font-weight:400}
  .prof-aside .slots-prev{margin:22px 0}
  .prof-aside .slots-prev .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600;margin-bottom:12px}
  .schip{display:flex;flex-wrap:wrap;gap:8px}
  .schip .s{font-size:13px;border:1px solid var(--line-dark);border-radius:100px;padding:7px 14px;cursor:pointer;transition:all .2s}
  .schip .s:hover{border-color:var(--ink);background:var(--bg)}
  @media (max-width:980px){.prof-grid{grid-template-columns:minmax(0,1fr);gap:32px}}
  @media (max-width:560px){.prof-head{gap:16px}.prof-head h1{font-size:26px;word-break:break-word}}
  /* Каталог */
  .page-hero{padding:80px 0 64px;border-bottom:1px solid var(--line)}
  .page-hero.center{text-align:center}
  .page-hero h1{font-size:clamp(40px,5.5vw,68px)}
  .page-hero p{color:var(--muted);font-size:18px;margin-top:18px;max-width:620px}
  .page-hero.center p{margin-left:auto;margin-right:auto}
  /* Витрина — не текст для чтения, её незачем держать в колонке на 1280 точек:
     на широком мониторе по бокам оставалось по трети экрана пустоты. Каталог
     раскрывается во всю ширину, а число колонок считается от места. */
  #view-catalog>.container:not(.page-hero .container){max-width:min(2200px,100%);
    padding-left:clamp(20px,3vw,40px);padding-right:clamp(20px,3vw,40px)}
  .catalog-layout{display:grid;grid-template-columns:260px 1fr;gap:clamp(28px,3vw,56px);align-items:start;padding-top:56px;padding-bottom:110px}
  /* Планшет: колонка фильтров съедала место под карточки, и на 768 оставалась
     одна карточка в ряд. Фильтры уходят наверх раньше — с 900 точек. */
  @media (max-width:900px){
    .catalog-layout{grid-template-columns:1fr;gap:32px}
    .filters{position:static}
  }
  .filters{position:sticky;top:108px;max-height:calc(100vh - 128px);overflow-y:auto;scrollbar-width:thin;padding-right:6px}
  .filters h4{font-family:var(--sans);font-size:12px;text-transform:uppercase;letter-spacing:.16em;margin-bottom:16px;font-weight:600}
  .filter-group{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid var(--line)}
  .filter-group .chk{display:flex;align-items:center;gap:12px;font-size:15px;padding:7px 0;cursor:pointer;color:var(--muted);transition:color .2s}
  .filter-group .chk:hover{color:var(--ink)}
  .filter-group .chk input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}
  .filter-reset{font-size:13px;color:var(--accent);cursor:pointer;background:none;border:none;font-weight:600;padding:0;letter-spacing:.02em}
  .catalog-toolbar{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px;flex-wrap:wrap;gap:12px;padding-bottom:20px;border-bottom:1px solid var(--line)}
  .catalog-toolbar .count{color:var(--muted);font-size:14px;letter-spacing:.02em}
  .catalog-toolbar select{appearance:none;-webkit-appearance:none;padding:9px 38px 9px 14px;border-radius:var(--radius);border:1px solid var(--line-dark);font-family:var(--sans);font-size:14px;cursor:pointer;color:var(--ink);background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8895c' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:10px}
  /* Колонок столько, сколько влезает: карточка не уже 270 точек. На 1280 это
     три колонки, на 1600 — четыре, на 2000 — пять, на телефоне одна. */
  .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;align-items:stretch}
  .card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;background:var(--paper);transition:border-color .3s,transform .35s var(--ease)}
  .card:hover{border-color:var(--line-dark);transform:translateY(-4px)}
  .card .head{display:flex;gap:16px}
  .card .avatar{width:66px;height:66px;font-size:22px}
  .card .head strong{font-size:19px;font-weight:600}
  .card .head .role{font-size:13px;color:var(--muted);margin-top:2px}
  .card .rating{font-size:13px;color:var(--ink);margin-top:8px;font-weight:500}
  .card .rating .star{color:var(--gold)}
  .card .rating span{color:var(--muted);font-weight:400}
  .card .tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
  .card .desc{font-size:14px;color:var(--muted);line-height:1.6}
  /* Три строки на представление, пять на описание — карточки встают вровень. */
  .card .role{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .card .desc.clamp{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .desc-more{margin-top:6px;background:none;border:none;padding:0;cursor:pointer;
    font:500 13px/1 var(--sans);color:var(--gold);text-decoration:underline;text-underline-offset:3px}
  .desc-more[hidden]{display:none}
  .card .first-note{font-size:12.5px;color:var(--muted);margin-top:6px}
  .card .first-note a{color:var(--gold);text-decoration:underline;cursor:pointer}
  /* В три колонки карточка уже, и цена с кнопками в одну строку не помещалась:
     цена разваливалась на три строки, а кнопка вылезала за край. Теперь низ
     карточки переносится — цена сверху, кнопки под ней во всю ширину. */
  /* Низ карточки прижат к низу: сколько бы ни было текста, цена и кнопки
     у всех на одной линии. Первая сессия идёт под основной ценой. */
  .card{display:flex;flex-direction:column}
  .card .pbody{display:flex;flex-direction:column;flex:1}
  .card .foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
  .card .foot .price-row{margin-bottom:14px}
  .card .foot .price{font-family:var(--serif);font-weight:600;font-size:22px;white-space:nowrap}
  .card .card-acts{display:flex;gap:8px}
  .card .card-acts .btn{flex:1;padding-left:16px;padding-right:16px;white-space:nowrap}
  .card .foot .price small{font-family:var(--sans);font-weight:400;font-size:12px;color:var(--muted)}
  .empty-state{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--muted)}
  .empty-state .mark{font-family:var(--serif);font-style:italic;font-size:40px;color:var(--gold)}
  /* Адаптив */
  @media (max-width:980px){
    .nav{display:none}
    .burger{display:block}
    /* На телефоне крупная кнопка подбора не помещается рядом с меню и профилем —
       страницу уводило вбок. Подбор остаётся в самом меню. */
    .header-actions>.btn-primary{display:none}
    #auth-area .urole{display:none}
    #auth-area .uname{max-width:110px}
  }
  @media (max-width:760px){
    /* На узком экране в шапке остаются только логотип, поиск, сообщения,
       аватар и меню — всё остальное живёт внутри кабинета. */
    #auth-area .uname{display:none}
    #auth-area>.text-link{display:none}
    .header .container{gap:12px}
    .header-actions{gap:8px}
    .hero .container,.vetting .container{grid-template-columns:1fr;gap:56px}
    .hero-visual{order:-1}
    .steps-grid,.benefits-grid,.pricing-grid{grid-template-columns:1fr}
    .step,.price-card{border-right:none;border-bottom:1px solid var(--line);padding:36px 0!important}
    .step:last-child,.price-card:last-child{border-bottom:none}
    .reviews-grid{grid-template-columns:1fr}
    .areas-grid{grid-template-columns:repeat(2,1fr)}
    .footer .top{grid-template-columns:1fr 1fr}
    .catalog-layout{grid-template-columns:1fr;gap:32px}
    .filters{position:static}
    section{padding:72px 0}
  }
  @media (max-width:560px){
    .container{padding:0 20px}
    .areas-grid{grid-template-columns:1fr}
    .footer .top{grid-template-columns:1fr}
    .hero-trust{gap:28px}
    .modal{padding:32px 24px}
    .cta-banner{padding:60px 28px}
  }
  /* Блок «Для экспертов» (тёмная полоса) */
  .experts-band{background:var(--ink);color:#e9e4d8;border-radius:var(--radius-lg);padding:64px 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
  .experts-band .eyebrow{color:var(--gold)}
  .experts-band h2{color:var(--paper)}
  .experts-band p{color:#b3ab9a;font-size:18px;margin-top:14px}
  .experts-band ul{list-style:none;display:grid;gap:14px;margin-bottom:26px}
  .experts-band li{display:flex;gap:12px;font-size:16px;color:#e9e4d8}
  .experts-band li .ic{color:var(--gold);font-family:var(--serif)}
  @media(max-width:900px){.experts-band{grid-template-columns:1fr;padding:44px 28px;gap:28px}}

  /* ========================================================= */
  /* ПРЕМИУМ-РЕДИЗАЙН (дизайн-хэндофф ЭКОСТА) — слой поверх базы */
  /* ========================================================= */
  /* Типографика */
  h1{letter-spacing:-.015em;line-height:1.0}
  h2{line-height:1.06}
  /* Eyebrow — премиум-разрядка */
  .eyebrow{letter-spacing:var(--eyebrow-track)}
  /* Кнопки */
  .btn{border:1px solid transparent;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
  .btn-primary{background:var(--ink);color:#f7f3ec;box-shadow:var(--sh-btn)}
  .btn-primary:hover{background:var(--ink-hover);transform:translateY(-2px);box-shadow:0 22px 38px -16px rgba(24,22,15,.85)}
  .btn-ghost{background:var(--paper);border-color:var(--line-dark);color:var(--ink)}
  .btn-ghost:hover{border-color:var(--ink);background:var(--card-hi)}
  .btn-light{background:transparent;border-color:rgba(243,239,233,.35);color:var(--on-dark)}
  .btn-light:hover{border-color:var(--on-dark);background:rgba(243,239,233,.06)}
  /* Карточки — мягкая тень + объём */
  .card{border-color:var(--line-soft);box-shadow:var(--shadow)}
  .card:hover{box-shadow:var(--sh-card-hover);border-color:#ddd4c4}
  /* Теги → chip */
  .tag,.chip{border:1px solid var(--line);color:var(--text-soft);background:transparent}
  /* Тёмные блоки */
  .vetting p,.experts-band p,.vetting li,.experts-band li{color:#d8d3c8}
  .vetting-stat,.stat-figure{color:var(--gold)}
  /* Hero-карточка и бейджи (парение) */
  .hero-card{box-shadow:var(--shadow);border-color:var(--line-soft)}
  .hero-badge{background:var(--card-hi);border-color:var(--line-soft);box-shadow:var(--sh-badge)}
  .hero-badge.b1{animation:ecFloatA 6.5s ease-in-out infinite}
  .hero-badge.b2{animation:ecFloatB 7.5s ease-in-out infinite}
  /* Формы / слоты */
  .field input,.field select,.field textarea,.option,.slot-opt{background:var(--card-hi)}
  /* Анимации */
  @keyframes ecFloatA{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  @keyframes ecFloatB{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
  .reveal{opacity:0;transform:translateY(18px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}
  .reveal.is-visible{opacity:1;transform:none}
  .hero-rotator{position:relative}
  .hero-rotator__layer{transition:opacity .9s var(--ease)}
  @media (prefers-reduced-motion: reduce){.hero-badge.b1,.hero-badge.b2{animation:none}.reveal{opacity:1;transform:none;transition:none}}
  /* Фон-бумага с тёплыми засветами */
  .bg-paper{background:radial-gradient(60% 50% at 88% 6%,rgba(74,63,94,.07),transparent 62%),radial-gradient(55% 45% at 4% 96%,rgba(168,137,92,.09),transparent 60%),var(--bg)}
  .bg-paper::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:radial-gradient(rgba(116,111,99,.06) 1px,transparent 1.4px);background-size:5px 5px}
  /* Логотип ЭК⭕СТА — кольцо-знак на месте ударной «О» (фиксирует экОста) */
  .logo{align-items:center;gap:0;letter-spacing:.13em;font:600 25px/1 var(--serif)}
  .logo .dot{display:none}
  .logo__o{position:relative;display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;margin:0 .15em 0 .02em;transform:translateY(.5px)}
  .logo__o .ring{position:absolute;inset:0;border:1.5px solid var(--ink);border-radius:var(--r-pill)}
  .logo__o .node{position:absolute;width:4.5px;height:4.5px;border-radius:var(--r-pill);top:-.5px}
  .logo__o .node--gold{background:var(--gold);left:2px}
  .logo__o .node--plum{background:var(--plum);left:12.5px}
  /* Рейтинг-чип (портрет-led карточка) */
  .rating-chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 12px;background:rgba(255,253,249,.92);backdrop-filter:blur(4px);border:1px solid rgba(236,229,215,.9);border-radius:var(--r-pill);font:500 12.5px/1 var(--sans)}
  .rating-chip .star{color:var(--gold)}
  /* Карусель «Избранные специалисты» */
  /* Витрина специалистов идёт во всю ширину экрана, а не в колонке под текст:
     это галерея, её задача — показать как можно больше людей. */
  .ec-wrap{position:relative;max-width:min(2200px,100%);margin:0 auto}
  .ec-track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px max(4px,calc((100% - var(--max))/2 + 32px)) 22px;scroll-padding-inline:max(4px,calc((100% - var(--max))/2 + 32px));scrollbar-width:none;-ms-overflow-style:none}
  .ec-track::-webkit-scrollbar{display:none}
  .ec-track .card{flex:none;width:340px;scroll-snap-align:start}
  .ec-arrow{position:absolute;top:140px;z-index:4;width:46px;height:46px;border-radius:var(--r-pill);background:var(--paper);border:1px solid var(--line);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-arrow);font:400 20px/1 var(--sans);color:var(--ink);transition:border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}
  .ec-arrow:hover{border-color:var(--ink);transform:translateY(-1px)}
  .ec-arrow--prev{left:max(6px,calc((100% - var(--max))/2 - 14px))}
  .ec-arrow--next{right:max(6px,calc((100% - var(--max))/2 - 14px))}
  /* Портрет-led карточка специалиста */
  .card.portrait{padding:0;overflow:hidden}
  /* Фото в карточке — квадрат. Хранится портрет 4:5 с лицом на одном месте,
     карточка показывает его верхнюю квадратную часть: лицо целиком, плечи видны,
     и у всех одинаково. Высота считается от ширины — в сетке и на телефоне
     все фото одного размера. Жёсткая высота в 300 точек этого не давала. */
  .card .photo{position:relative;aspect-ratio:1/1;background:linear-gradient(150deg,#efe7d8,#e4d8c4 58%,#d7cab2);display:grid;place-items:center}
  .card .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
  .card .photo .mono{font:500 66px/1 var(--serif);color:rgba(74,63,94,.32)}
  .card .pbody{padding:20px 20px 22px}
  @media (max-width:560px){.ec-track .card{width:78vw}}
  /* На телефоне и планшете стрелки карусели вылезали за край и уводили всю страницу вбок — листается пальцем */
  @media (max-width:980px){.ec-arrow{display:none}}
  /* Ячейка сетки по умолчанию не ужимается меньше своего содержимого —
     из-за этого на узких экранах страницу уводило вбок. */
  .areas-grid>*,.pricing-grid>*,.steps-grid>*,.benefits-grid>*,.reviews-grid>*,.cards>*,.faq>*{min-width:0}
  .hero-cta .btn{max-width:100%}
  .btn-lg{max-width:100%}
  .fnl-hero>*{min-width:0}
  /* Когда контейнер уже 1216, стрелки карусели должны уйти внутрь, а не за край */
  @media (max-width:1300px){.ec-arrow--prev{left:6px}.ec-arrow--next{right:6px}}

  /* ============================ CRM-доска ============================ */
  .crm-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
  .crm-switch{display:inline-flex;background:var(--card-hi);border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:4px}
  .crm-seg{font:600 13px/1 var(--sans);padding:9px 20px;border:none;background:none;color:var(--muted);border-radius:var(--r-pill);cursor:pointer;transition:all .2s}
  .crm-seg.active{background:var(--ink);color:var(--paper)}
  .crm-board{display:flex;gap:16px;overflow-x:auto;padding:4px 2px 28px;scrollbar-width:thin}
  .crm-board::-webkit-scrollbar{height:8px}
  .crm-board::-webkit-scrollbar-thumb{background:var(--line-dark);border-radius:8px}
  .crm-col{flex:none;width:268px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;transition:border-color .2s,background .2s}
  .crm-col.over{border-color:var(--gold);background:var(--card-hi)}
  .crm-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);border-top:3px solid var(--c,var(--gold));border-radius:var(--radius-lg) var(--radius-lg) 0 0}
  .crm-col-title{font:600 13px/1.2 var(--sans);letter-spacing:.01em;color:var(--ink)}
  .crm-col-meta{font:600 11px/1 var(--sans);color:var(--muted);white-space:nowrap}
  .crm-col-body{padding:12px;display:flex;flex-direction:column;gap:10px;min-height:80px;flex:1}
  .crm-empty-col{text-align:center;color:var(--line-dark);font-size:18px;padding:14px 0}
  .crm-card{background:var(--paper);border:1px solid var(--line-dark);border-radius:var(--radius);padding:13px 14px;cursor:pointer;box-shadow:0 1px 2px rgba(40,32,20,.04);transition:box-shadow .2s,transform .12s,border-color .2s}
  .crm-card:hover{box-shadow:0 8px 22px -14px rgba(40,32,20,.5);border-color:var(--gold-line)}
  .crm-card.dragging{opacity:.45;transform:scale(.98)}
  .crm-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
  .crm-card-top strong{font:600 14px/1.3 var(--sans);color:var(--ink)}
  .crm-val{font:600 12px/1 var(--sans);color:var(--gold);white-space:nowrap}
  .crm-card-goal{font-size:12.5px;color:var(--text-soft);margin-top:5px;line-height:1.4}
  .crm-stickers{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
  .crm-sticker{font:600 10.5px/1 var(--sans);background:#e7e4ef;color:var(--accent);padding:4px 9px;border-radius:var(--r-pill);letter-spacing:.02em}
  .crm-card-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px}
  .crm-chip{font:600 11px/1 var(--sans);color:var(--muted);background:var(--card-hi);border:1px solid var(--line);padding:4px 8px;border-radius:var(--r-pill)}
  .crm-chip.warn{background:#efe7d6;color:#8a6d2f;border-color:transparent}
  .crm-src{margin-left:auto;font:500 10.5px/1 var(--sans);color:var(--line-dark);text-transform:uppercase;letter-spacing:.08em}

  /* Панель карточки */
  /* Карточка клиента: шапка со статусами закреплена, содержимое прокручивается.
     Раньше стояло overflow:hidden — всё, что не влезло, просто отрезалось,
     и «План работы с клиентом» внизу увидеть было нельзя. */
  .crm-modal{max-width:860px;padding:0;overflow:hidden;display:flex;flex-direction:column}
  /* Содержимое карточки лежит в обёртке #crm-card-body — растягиваем и её,
     иначе флекс не доходит до самой карточки и прокрутка не включается. */
  #crm-card-body,#vbt-drawer-body{flex:1;min-height:0;display:flex;flex-direction:column}
  .crm-card-head{flex:none;padding:30px 36px 22px;border-bottom:1px solid var(--line);background:var(--card-hi)}
  .crm-bc{font:500 11.5px/1 var(--sans);color:var(--muted);letter-spacing:.04em;margin-bottom:12px}
  .crm-bc b{color:var(--gold)}
  .crm-card-head h2{font:500 30px/1.1 var(--serif);margin:0 0 6px;letter-spacing:-.01em}
  .crm-card-head .contact{font-size:14px;color:var(--muted)}
  .crm-stbtns{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
  .crm-stbtn{font:600 12px/1 var(--sans);padding:9px 14px;border:1px solid var(--line-dark);border-left:3px solid var(--c,var(--line-dark));background:var(--paper);color:var(--text);border-radius:var(--radius);cursor:pointer;transition:all .18s}
  .crm-stbtn:hover{border-color:var(--ink)}
  .crm-stbtn.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .crm-body{flex:1;min-height:0;overflow-y:auto;padding:26px 36px 40px;display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .crm-sect{min-width:0}
  .crm-sect.full{grid-column:1/-1}
  .crm-sect h4{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0 0 14px}
  .crm-profile{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .crm-stat{flex:1;min-width:90px;background:var(--card-hi);border:1px solid var(--line);border-radius:var(--radius);padding:13px 15px}
  .crm-stat .v{font:500 22px/1 var(--serif);color:var(--ink)}
  .crm-stat .l{font-size:11px;color:var(--muted);margin-top:5px;text-transform:uppercase;letter-spacing:.08em}
  .crm-blist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
  .crm-blist li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
  .crm-task{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:14px;cursor:pointer;border-bottom:1px solid var(--line-soft)}
  .crm-task input{width:17px;height:17px;accent-color:var(--gold);flex:none}
  .crm-task.done span{text-decoration:line-through;color:var(--muted)}
  .crm-task em{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--muted)}
  /* Строка добавления: раньше не переносилась и кнопка уезжала за край. */
  .crm-add{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
  .crm-add>*{min-width:0}
  .crm-add input[type=text],.crm-add input:not([type]){flex:1 1 160px}
  .crm-add input[type=date]{flex:0 1 150px}
  .crm-add input,.crm-add select{flex:1;font-family:var(--sans);font-size:13.5px;padding:10px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .crm-add input:focus,.crm-add select:focus{outline:none;border-color:var(--ink)}
  .crm-chat{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;padding:6px 8px;background-color:#f1ece1;background-image:radial-gradient(rgba(168,137,92,.16) 1.1px,transparent 1.7px),radial-gradient(rgba(74,63,94,.12) 1.1px,transparent 1.7px),radial-gradient(62% 46% at 93% 2%,rgba(74,63,94,.08),transparent 62%),radial-gradient(52% 42% at 3% 99%,rgba(168,137,92,.12),transparent 60%);background-size:24px 24px,24px 24px,100% 100%,100% 100%;background-position:0 0,12px 12px,0 0,0 0;border-radius:var(--radius)}
  .inbox-right .ibx-chat-box{padding:16px 18px}
  .crm-note{background:var(--card-hi);border:1px solid var(--line);border-radius:var(--radius);padding:10px 13px}
  .crm-note.expert{background:#eef0f5;border-color:transparent}
  .crm-note.system{background:transparent;border-style:dashed}
  .crm-note-meta{font:600 10.5px/1 var(--sans);color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em}
  .crm-note div:last-child{font-size:13.5px;line-height:1.45;color:var(--text)}
  .crm-events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
  .crm-events li{font-size:12.5px;color:var(--muted);display:flex;gap:9px}
  .crm-events .t{color:var(--ink);font-weight:600;white-space:nowrap}
  @media (max-width:640px){.crm-body{grid-template-columns:1fr;padding:22px}.crm-card-head{padding:24px}}

  /* ============================ CRM-сводка (дашборд) ============================ */
  .sum-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
  .sum-tile{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 22px}
  .sum-tile .v{font:500 30px/1 var(--serif);color:var(--ink);letter-spacing:-.01em}
  .sum-tile .l{font-size:12px;color:var(--muted);margin-top:9px;text-transform:uppercase;letter-spacing:.07em}
  .sum-tile.warn{border-color:#e0c98a;background:#faf4e4}
  .sum-tile.warn .v{color:#8a6d2f}
  .sum-tile.accent{border-color:var(--gold-line)}
  .sum-tile.accent .v{color:var(--gold)}
  .sum-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 26px;margin-bottom:18px}
  .todo-card{border-left:3px solid var(--gold)}
  .todo-list{display:flex;flex-direction:column;gap:8px}
  .todo-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;cursor:pointer;font-family:var(--sans);font-size:15px;color:var(--ink);transition:border-color .2s}
  .todo-item:hover{border-color:var(--ink)}
  .todo-item .todo-ic{font-size:18px}
  .todo-item>span:not(.todo-ic){flex:1}
  .todo-item b{font-size:18px;color:var(--gold);font-family:var(--serif)}
  .sum-card.full{grid-column:1/-1}
  .sum-card h4{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0 0 18px}
  .sum-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
  .sum-card-head h4{margin:0 0 18px}
  .sum-conv{font-size:13px;color:var(--muted)}
  .sum-conv b{color:var(--ink);font-size:15px}
  .sum-bar-row{display:flex;align-items:center;gap:14px;margin-bottom:11px}
  .sum-bar-lbl{flex:0 0 150px;font-size:13px;color:var(--text);text-align:right}
  .sum-bar{flex:1;height:14px;background:var(--line-soft);border-radius:var(--r-pill);overflow:hidden}
  .sum-bar-fill{height:100%;border-radius:var(--r-pill);min-width:2px;transition:width .4s var(--ease,ease)}
  .sum-bar-val{flex:0 0 130px;font:600 12.5px/1 var(--sans);color:var(--muted)}
  .sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .sum-list{list-style:none;margin:0;padding:0}
  .sum-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px}
  .sum-list li:last-child{border-bottom:none}
  .sum-list li.link{cursor:pointer;transition:opacity .2s}
  .sum-list li.link:hover{opacity:.62}
  .sum-when{color:var(--muted);font-size:12.5px;white-space:nowrap}
  .sum-who{font-weight:600;color:var(--ink)}
  .sum-stage,.sum-msg{flex:1;color:var(--text-soft);font-size:12.5px}
  .sum-list li .badge{margin-left:auto}
  /* На телефоне строка со встречей и кнопками не умещается в ряд —
     переносим, иначе страница уезжает вбок. */
  @media (max-width:640px){
    .sum-list li{flex-wrap:wrap;gap:8px}
    .sum-list li .badge{margin-left:0}
    .sum-list li .btn{flex:1 0 100%}
    .inc-list li .inc-amt{margin-left:auto}
  }
  @media (max-width:900px){.sum-tiles{grid-template-columns:repeat(2,1fr)}.sum-grid{grid-template-columns:1fr}}
  @media (max-width:560px){.sum-bar-lbl{flex-basis:96px}.sum-bar-val{flex-basis:78px}}

  /* ============================ Клиентская доска «Мой путь» ============================ */
  .path-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 30px;margin-bottom:20px;box-shadow:var(--shadow)}
  .path-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px}
  .path-expert{display:flex;align-items:center;gap:13px}
  .path-expert .ava{width:46px;height:46px;border-radius:50%;background:linear-gradient(150deg,#efe7d8,#d7cab2);display:grid;place-items:center;font:500 17px/1 var(--serif);color:var(--accent);flex:none}
  .path-expert-name{font:500 19px/1.1 var(--serif);color:var(--ink)}
  .path-goal{font-size:14px;color:var(--text)}
  .path-goal b{color:var(--ink)}
  .path-progress{margin-bottom:22px}
  .path-progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px;font:600 14px/1 var(--sans);color:var(--ink)}
  .path-bar{height:10px;background:var(--line-soft);border-radius:var(--r-pill);overflow:hidden}
  .path-bar-fill{height:100%;background:var(--gold);border-radius:var(--r-pill);min-width:3px;transition:width .5s var(--ease,ease)}
  .path-bar-fill.won{background:#3fbf6f}
  .path-meeting{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--card-hi);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:22px}
  .path-meeting.empty{background:transparent;border-style:dashed}
  .path-meeting-when{font:500 17px/1.2 var(--serif);color:var(--ink)}
  .path-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .path-sect h4{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0 0 14px}
  @media (max-width:720px){.path-cols{grid-template-columns:1fr;gap:22px}}

  /* ============================ Календарь эксперта ============================ */
  .cal-feed{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:18px}
  .cal-how{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
  .cal-how summary{cursor:pointer;font-size:13px;font-weight:500;color:var(--accent);list-style:none}
  .cal-how summary::-webkit-details-marker{display:none}
  .cal-how summary::before{content:"＋ ";color:var(--gold)}
  .cal-how[open] summary::before{content:"− "}
  .cal-how-body{font-size:13px;color:var(--muted);line-height:1.55;margin-top:10px}
  .cal-how-body p{margin:0 0 8px}
  .cal-feed-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .cal-feed-h h4{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0}
  .cal-feed-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  .cal-feed-row input{flex:1;min-width:220px;font:500 13px/1 var(--sans);padding:11px 13px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer}
  .cal-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
  .cal-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
  .cal-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-dark);background:var(--paper);font-size:18px;line-height:1;cursor:pointer;color:var(--ink);transition:border-color .2s}
  .cal-arrow:hover{border-color:var(--ink)}
  .cal-title{font:500 22px/1 var(--serif);color:var(--ink);min-width:200px;text-transform:capitalize}
  .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
  .cal-grid.head{gap:8px;margin-bottom:8px}
  .cal-wd{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:center;padding:4px 0}
  .cal-cell{min-height:104px;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:8px}
  .cal-evs,.cal-day{min-width:0}
  .cal-cell.empty{background:transparent;border-color:transparent}
  .cal-cell.today{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold-line)}
  .cal-day{font:600 13px/1 var(--sans);color:var(--muted);margin-bottom:6px}
  .cal-cell.today .cal-day{color:var(--gold)}
  .cal-evs{display:flex;flex-direction:column;gap:4px}
  .cal-chip{font:500 11px/1.3 var(--sans);padding:4px 7px;border-radius:6px;cursor:pointer;border-left:3px solid var(--muted);background:var(--card-hi);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:transform .12s}
  .cal-chip:hover{transform:translateX(2px)}
  .cal-chip b{color:var(--ink)}
  .cal-chip.paid{border-left-color:#3fbf6f;background:#eaf5ee}
  .cal-chip.unpaid{border-left-color:#f0b24a;background:#faf4e4}
  .cal-chip.done{border-left-color:var(--accent);background:#eceaf2}
  .cal-week{display:flex;flex-direction:column;gap:8px}
  .cal-wrow{display:flex;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px}
  .cal-wrow.today{border-color:var(--gold)}
  .cal-wday{flex:0 0 96px;display:flex;flex-direction:column;gap:3px}
  .cal-wday b{font:600 14px/1 var(--sans);color:var(--ink)}
  .cal-wday span{font-size:12.5px;color:var(--muted)}
  .cal-wevs{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .cal-wevs .cal-chip{white-space:normal}
  @media (max-width:680px){.cal-cell{min-height:78px}.cal-chip{font-size:10px}.cal-title{min-width:140px;font-size:18px}}

  /* ============================ CRM Шаг 7: фильтры доски + время в колонке ============================ */
  .crm-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;justify-content:center}
  .crm-search{font:500 13px/1 var(--sans);padding:9px 13px;border:1px solid var(--line-dark);border-radius:var(--r-pill);background:var(--bg);color:var(--ink);min-width:180px}
  .crm-search:focus{outline:none;border-color:var(--ink)}
  .crm-fsel{font:500 12.5px/1 var(--sans);padding:9px 12px;border:1px solid var(--line-dark);border-radius:var(--r-pill);background:var(--bg);color:var(--ink);cursor:pointer}
  .crm-clear{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-dark);background:var(--paper);font-size:16px;line-height:1;cursor:pointer;color:var(--muted)}
  .crm-clear:hover{border-color:var(--ink);color:var(--ink)}
  .crm-incol{display:inline-block;margin-left:8px;font:600 10.5px/1 var(--sans);color:var(--muted);background:var(--card-hi);border:1px solid var(--line);padding:4px 9px;border-radius:var(--r-pill);vertical-align:middle;letter-spacing:.02em}
  .crm-incol.warn{background:#efe7d6;color:#8a6d2f;border-color:transparent}
  @media (max-width:760px){.crm-filters{order:3;width:100%;justify-content:flex-start}}

  .crm-clear.hidden{display:none}

  /* ===== Соцслой: публикации, серии, композер ===== */
  .series-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}
  .series-chip{border:1px solid var(--line-dark);border-radius:var(--radius);padding:12px 16px;min-width:180px;background:var(--bg)}
  .series-chip .st{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:600}
  .series-chip strong{display:block;font-size:15px;margin:3px 0 2px}
  .series-chip span{font-size:13px;color:var(--muted)}
  .post-feed{display:flex;flex-direction:column;gap:16px}
  /* Пост в ленте собран как в инстаграме: медиа занимает всю ширину карточки,
     отступы живут на внутренних блоках, а не на самой карточке. */
  .post{border:1px solid var(--line);border-radius:var(--radius-lg);padding:0;overflow:hidden;background:var(--paper);transition:border-color .3s}
  .ig-head{display:flex;align-items:center;gap:11px;padding:13px 16px}
  /* Карточка клиента — выдвижная панель справа, а не окно посреди экрана:
     доска остаётся на виду, и видно, из какого этапа вынули карточку. */
  .drawer-overlay{padding:0;align-items:stretch;justify-content:flex-end;
    background:rgba(24,22,15,.32);backdrop-filter:blur(2px)}
  .crm-drawer{width:min(880px,100%);max-width:none;height:100vh;max-height:100vh;
    border-radius:0;box-shadow:-34px 0 70px -34px rgba(24,22,15,.55);
    animation:drawerIn .3s var(--ease)}
  @keyframes drawerIn{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
  .crm-drawer .modal-close{position:fixed;top:14px;right:18px;float:none;margin:0;z-index:5}
  @media(max-width:920px){.crm-drawer{width:100%}}
  /* Автоворонка: дожимы к уроку и просьбы открыть серию заново */
  .fn-sn{margin:-6px 0 18px;padding-left:2px}
  .fn-sn-t{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;
    background:none;border:0;padding:8px 0;cursor:pointer;font:500 14px/1.3 var(--sans);color:var(--ink)}
  .fn-sn-t .sub{font-size:13px}
  .fn-sn-t:hover{color:var(--gold-ink,var(--ink))}
  .fn-retry{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;background:var(--paper)}
  .fn-retry-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
  .fn-retry-h .sub{font-size:13px}
  .fn-retry-t{margin:8px 0 0;font-size:14px;line-height:1.5;white-space:pre-wrap}
  .fn-retry-a{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
  /* Анкета перед первой встречей */
  .int-on{display:flex;align-items:center;gap:9px;margin:0 0 16px;font-size:14.5px;cursor:pointer}
  .int-link{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
  .int-link-t{font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;
    color:var(--muted);margin-bottom:10px}
  .int-ans{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
  .int-ans h5{margin:0 0 10px;font:600 12px/1 var(--sans);letter-spacing:.07em;
    text-transform:uppercase;color:var(--muted)}
  .int-a{padding:9px 0;border-bottom:1px solid var(--line)}
  .int-a summary{cursor:pointer;font-size:14.5px}
  .int-qa{margin:12px 0 0;font-size:14px;line-height:1.55}
  .int-q{color:var(--muted);font-size:13px;margin-bottom:2px}
  .int-form{max-width:640px;margin:48px auto 90px;padding:0 20px}
  .int-head{margin-bottom:26px}
  .int-from{font:600 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;
    color:var(--gold);margin-bottom:10px}
  .int-head h1{margin:0 0 10px;font-size:30px}
  .int-intro{margin:0;font-size:15.5px;line-height:1.65;color:var(--muted)}
  .int-form .field{margin-bottom:18px}
  /* Экран дня */
  .td-head{margin:4px 0 18px}
  .td-date{font:600 12px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
  .td-head h2{margin:0;font-size:26px}
  .td-tiles{margin-bottom:22px}
  .td-list{list-style:none;margin:2px 0 0;padding:0}
  .td-list li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
  .td-list li:last-child{border-bottom:none}
  .td-list li.link{cursor:pointer}
  .td-list li.link:hover{background:var(--card-hi)}
  .td-time{flex:0 0 58px;font:600 15px/1.2 var(--sans);color:var(--ink)}
  .td-list.late .td-time{color:#9a5b3c}
  .td-main{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
  .td-main .sub{font-size:13px}
  .td-acts{display:flex;gap:8px;flex-wrap:wrap}
  .td-sub{font:600 11.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;
    color:var(--muted);margin:14px 0 2px}
  @media (max-width:640px){
    .td-list li{flex-wrap:wrap;gap:8px}
    .td-time{flex:0 0 52px}
    .td-acts{flex:1 0 100%;padding-left:66px}
    .td-tiles{grid-template-columns:repeat(2,1fr)}
  }
  /* Быстрая запись: одна строка в любом месте кабинета */
  .qcap{display:flex;align-items:center;gap:10px;margin:0 0 4px;padding:0 0 18px}
  .qcap input{flex:1;max-width:560px;font-family:var(--sans);font-size:14px;padding:11px 14px;
    border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .qcap input:focus{outline:none;border-color:var(--ink)}
  .qcap-n{background:none;border:none;color:var(--muted);font:500 13px/1 var(--sans);
    cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:0}
  .qcap-n:hover{color:var(--ink)}
  .qcap-n[hidden]{display:none}
  @media (max-width:640px){.qcap{flex-wrap:wrap}.qcap input{max-width:none;flex:1 0 100%}}
  /* Экран перед встречей */
  .br-acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
  .br-prev{margin:0;font-size:14.5px;line-height:1.6;padding:14px 16px;
    background:var(--card-hi);border-radius:var(--radius)}
  .br-tasks,.br-msgs{list-style:none;margin:4px 0 0;padding:0}
  .br-tasks li{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
  .br-tasks li.done{color:var(--muted)}
  .br-tasks li.done span:not(.br-mark){text-decoration:line-through}
  .br-mark{flex:0 0 16px;color:var(--gold)}
  .br-tasks em{margin-left:auto;font-style:normal;font-size:12.5px;color:var(--muted);white-space:nowrap}
  .br-msgs li{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.55}
  .br-when{flex:0 0 132px;color:var(--muted);font-size:12.5px}
  @media (max-width:640px){.br-msgs li{flex-direction:column;gap:3px}.br-when{flex:none}}
  /* Досье клиента: итоги встреч и документы */
  .crm-bsum{flex:1 0 100%;margin-top:4px;font-size:13px;line-height:1.5;color:var(--muted)}
  .crm-files{list-style:none;margin:4px 0 12px;padding:0}
  .crm-files li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}
  .crm-files li a{flex:1;min-width:140px}
  .crm-files .sub{font-size:12.5px}
  .crm-file-add{display:inline-block;cursor:pointer;font-size:13.5px;color:var(--muted)}
  .crm-file-add:hover{color:var(--ink)}
  /* Постоянные клиенты */
  .reg-box{margin-top:26px}
  .reg-list{list-style:none;margin:4px 0 16px;padding:0}
  .reg-list li{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
  .reg-list li.off{opacity:.5}
  .reg-when{font-weight:600;min-width:210px}
  .reg-who{min-width:150px}
  .reg-next{color:var(--muted);font-size:13.5px;flex:1}
  .reg-acts{display:flex;gap:8px;flex-wrap:wrap}
  .reg-clash{margin:0 0 14px;font-size:13.5px;color:#9a5b3c;line-height:1.5}
  .reg-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end;padding:16px 0 4px}
  .reg-form .btn{align-self:end}
  @media (max-width:760px){.reg-list li{flex-direction:column;align-items:flex-start;gap:6px}
    .reg-when,.reg-who{min-width:0}.reg-form{grid-template-columns:1fr}}
  /* Деньги эксперта */
  .inc-chart{display:flex;align-items:flex-end;gap:10px;height:150px;padding:10px 2px 0}
  .inc-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
  .inc-bar{width:100%;max-width:46px;background:var(--gold);border-radius:6px 6px 0 0;opacity:.85}
  .inc-col:hover .inc-bar{opacity:1}
  .inc-m{margin-top:7px;font-size:11.5px;color:var(--muted);letter-spacing:.02em}
  .inc-amt{font-weight:600;white-space:nowrap}
  .inc-x{background:none;border:none;color:var(--muted);font-size:17px;line-height:1;cursor:pointer;padding:0 2px}
  .inc-x:hover{color:var(--ink)}
  .inc-list li{gap:12px}
  .inc-ways{display:flex;flex-wrap:wrap;gap:8px;width:100%;padding:10px 0 2px}
  .inc-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:end;
    padding:14px 0 18px;border-bottom:1px solid var(--line)}
  .inc-form .btn{align-self:end}
  @media (max-width:640px){.inc-form{grid-template-columns:1fr}}
  .fnc-closed{max-width:560px;margin:60px auto;padding:0 20px}
  .fnc-closed-t{font-size:17px;line-height:1.6;white-space:pre-wrap;margin:0 0 22px}
  /* Ожидание, пока серия открывается заново */
  .fnc-wait{text-align:center;margin:120px auto 160px}
  .fnc-wait .fnc-closed-t{margin:0 0 8px}
  .fnc-spin{width:40px;height:40px;margin:0 auto 22px;border-radius:50%;
    border:3px solid var(--line-dark);border-top-color:var(--gold);
    animation:fncspin 1s linear infinite}
  @keyframes fncspin{to{transform:rotate(360deg)}}
  /* Предпросмотр письма */
  .fn-prev{margin-left:auto;background:none;border:1px solid var(--line);
    border-radius:var(--r-pill);padding:5px 13px;cursor:pointer;
    font:500 12.5px/1 var(--sans);color:var(--muted)}
  .fn-prev:hover{border-color:var(--ink);color:var(--ink)}
  #mailprev-frame{display:block;width:100%;height:min(72vh,720px);
    border:0;border-top:1px solid var(--line);background:#f4efe5}
  #mailprev-modal .modal{max-height:92vh}
  .fn-mark{display:flex;align-items:center;gap:9px;font-size:14px;margin:0 0 10px;cursor:pointer}
  .fn-mark input{width:16px;height:16px;flex:none}
  /* Галочка согласия на рассылку — везде, где спрашиваем */
  .consent-box{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;cursor:pointer}
  .consent-box input{width:17px;height:17px;flex:none;margin-top:2px}
  .consent-box span{font:400 13.5px/1.5 var(--sans);color:var(--muted)}
  /* Контакты и сегменты */
  .ct{max-width:1100px}
  .ct-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:20px}
  .ct-head h3{font:500 24px/1.2 var(--serif);margin:0 0 6px}
  .ct-head .sub{font-size:14px;margin:0;max-width:520px}
  .ct-nums{display:flex;gap:10px;flex-wrap:wrap}
  .ct-num{font:400 13px/1 var(--sans);color:var(--muted);background:var(--card-hi);
    border:1px solid var(--line);padding:9px 13px;border-radius:var(--r-pill);white-space:nowrap}
  .ct-num b{font-weight:600;color:var(--ink)}
  .ct-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
  .ct-tab{background:none;border:1px solid var(--line);border-radius:var(--r-pill);
    padding:8px 16px;cursor:pointer;font:500 13.5px/1 var(--sans);color:var(--muted)}
  .ct-tab.on{background:var(--ink);border-color:var(--ink);color:#f4f0e9}
  .ct-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
  .ct-q{flex:1;min-width:220px}
  .ct-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
  .ct-chip{background:var(--card-hi);border:1px solid var(--line);border-radius:var(--r-pill);
    padding:6px 13px;cursor:pointer;font:500 12.5px/1 var(--sans);color:var(--muted)}
  .ct-chip.on{background:var(--ink);border-color:var(--ink);color:#f4f0e9}
  .ct-chip--off{border-style:dashed}
  .ct-found{font-size:13px;margin:0 0 12px}
  .ct-rows{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
  .ct-row{border-bottom:1px solid var(--line-soft);padding:12px 16px}
  .ct-row:last-child{border-bottom:0}
  .ct-row.is-open{background:var(--card-hi)}
  .ct-main{display:flex;align-items:baseline;gap:14px;width:100%;text-align:left;
    background:none;border:0;padding:0;cursor:pointer;flex-wrap:wrap}
  .ct-name{font:600 15px/1.3 var(--sans);color:var(--ink)}
  .ct-mail{font:400 13.5px/1.3 var(--sans);color:var(--muted)}
  .ct-src{margin-left:auto;font:400 12.5px/1.3 var(--sans);color:var(--muted)}
  .ct-flags{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
  .ct-f{font:500 11.5px/1 var(--sans);color:var(--muted);background:var(--card-hi);
    border:1px solid var(--line);padding:5px 9px;border-radius:var(--r-pill)}
  .ct-f--ok{background:#e9efe5;color:#4e6b42;border-color:transparent}
  .ct-f--off{background:#f0e4e4;color:#8a5050;border-color:transparent}
  .ct-f--lb{background:#efe7d6;color:#8a6d2f;border-color:transparent}
  .ct-card{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  .ct-card-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 22px}
  .ct-card-g .k{display:block;font:600 10.5px/1 var(--sans);letter-spacing:.07em;
    text-transform:uppercase;color:var(--muted);margin-bottom:5px}
  .ct-card-g .v{font:400 14px/1.4 var(--sans)}
  .ct-card-a{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}
  .ct-lb{flex:1;min-width:200px}
  .ct-seg{display:flex;align-items:center;gap:16px;border:1px solid var(--line);
    border-radius:var(--radius);background:var(--paper);padding:16px 18px;margin-bottom:10px;flex-wrap:wrap}
  .ct-seg .sub{font-size:13px;margin:4px 0 0}
  .ct-seg-n{font:600 18px/1 var(--sans);color:var(--ink);background:var(--card-hi);
    border:1px solid var(--line);padding:10px 14px;border-radius:var(--r-pill)}
  .ct-seg-a{display:flex;gap:8px;margin-left:auto}
  .ct-seg-new{border:1px dashed var(--line-dark);border-radius:var(--radius);padding:18px 20px;margin-top:16px}
  .ct-add{max-width:620px}
  .ct-imp{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
  @media(max-width:640px){.ct-src{margin-left:0}.ct-seg-a{margin-left:0;width:100%}}
  /* Обучение: список курсов и уроков */
  .acad{max-width:820px}
  .acad-head{margin-bottom:26px}
  .acad-head h3{font:500 24px/1.2 var(--serif);margin:0 0 6px}
  .acad-head .sub{font-size:14.5px}
  .acad-c{border:1px solid var(--line);border-radius:var(--radius-lg);
    background:var(--paper);padding:24px 26px;margin-bottom:18px}
  .acad-c-h{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}
  .acad-c-h h4{font:600 17px/1.3 var(--sans);margin:0 0 4px}
  .acad-c-h .sub{font-size:14px;margin:0}
  .acad-n{flex:none;font:600 12.5px/1 var(--sans);color:var(--muted);
    background:var(--card-hi);border:1px solid var(--line);
    padding:7px 12px;border-radius:var(--r-pill);white-space:nowrap}
  .acad-bar{height:4px;border-radius:999px;background:var(--line-soft);margin:16px 0 4px;overflow:hidden}
  .acad-bar i{display:block;height:100%;background:var(--gold);transition:width .3s var(--ease)}
  .acad-l{list-style:none;margin:14px 0 0;padding:0}
  .acad-li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
  .acad-li:last-child{border-bottom:0}
  .acad-chk{flex:none;width:24px;height:24px;border-radius:var(--r-pill);
    border:1px solid var(--line-dark);background:var(--card-hi);cursor:pointer;
    font:600 13px/1 var(--sans);color:var(--ink);display:flex;align-items:center;justify-content:center}
  .acad-chk:hover{border-color:var(--ink)}
  .acad-li.is-done .acad-chk{background:var(--ink);border-color:var(--ink);color:#f4f0e9}
  .acad-li.is-done .acad-t{color:var(--muted)}
  .acad-t{flex:1;display:flex;align-items:center;gap:10px;text-align:left;
    background:none;border:0;padding:0;cursor:pointer;
    font:400 15px/1.45 var(--sans);color:var(--ink)}
  .acad-t:hover{color:var(--gold)}
  .acad-i{flex:none;width:22px;font:600 12.5px/1 var(--sans);color:var(--muted)}
  .acad-go{margin-top:18px}
  .acad-all{margin-top:16px;font-size:14px}
  @media(max-width:640px){.acad-c{padding:20px}.acad-c-h{flex-direction:column;gap:10px}}
  /* Узкие телефоны (320 px и уже): шапка в залогиненном виде не помещалась
     и вылезала на четыре пикселя вправо — отсюда горизонтальная прокрутка
     всей страницы. Поджимаем поля и промежутки ровно настолько, чтобы влезло. */
  @media (max-width:360px){
    .header .container{padding-left:14px;padding-right:14px;gap:8px}
    .header-actions{gap:6px}
    .hdr-search,.hdr-msg{width:34px;height:34px}
    .header .uava,.header-actions .uava{width:34px;height:34px}
  }
  /* Переключатель «День / Неделя / Месяц / Год» на узком экране не помещался
     и тянул за собой всю страницу. Делаем его прокручиваемым, как полосу
     вкладок: кнопки не сжимаются, полосу прокрутки не показываем. */
  @media (max-width:430px){
    .cal-bar{gap:10px}
    .cal-bar .crm-switch{max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
    .cal-bar .crm-switch::-webkit-scrollbar{display:none}
    .cal-bar .crm-seg{flex:none;padding:9px 15px}
  }
  /* Канал рассылки у клиента: только чтение */
  .ibx-sep{padding:14px 16px 6px;font:600 11px/1 var(--sans);letter-spacing:.08em;
    text-transform:uppercase;color:var(--muted)}
  .bot-ava{flex:none;width:36px;height:36px;border-radius:var(--r-pill);display:flex;
    align-items:center;justify-content:center;background:var(--card-hi);
    border:1px solid var(--line);font-size:15px;color:var(--muted)}
  .bot-box{flex:1;min-height:0;overflow-y:auto;padding:20px 24px;display:flex;
    flex-direction:column;gap:14px}
  .bot-msg{border:1px solid var(--line);border-radius:var(--radius);
    background:var(--paper);padding:14px 16px}
  .bot-when{font:500 12px/1 var(--sans);color:var(--muted);margin-bottom:8px}
  .bot-text{font-size:14px;line-height:1.55;white-space:pre-wrap}
  .bot-foot{flex:none;padding:14px 24px;border-top:1px solid var(--line);font-size:13px}
  /* Ведение: карточка задачи в выезжающей панели */
  .vbt-head{padding-right:64px}
  .vbt-marks{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
  .vbt-mark{font:500 12.5px/1 var(--sans);color:var(--muted);background:var(--paper);
    border:1px solid var(--line);padding:6px 11px;border-radius:var(--r-pill)}
  .vbt-mark.warn{background:#efe7d6;color:#8a6d2f;border-color:transparent}
  .vbt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
  .vbt-pane{flex:1;min-height:0;overflow-y:auto;padding:26px 36px 24px}
  .vbt-foot{flex:none;display:flex;gap:8px;align-items:center;
    padding:16px 36px;border-top:1px solid var(--line);background:var(--card-hi)}
  @media(max-width:640px){.vbt-pane{padding:22px}.vbt-foot{padding:14px 22px}}
  /* Плашка «поставить значок» внизу экрана */
  .pwa-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:300;
    transform:translateY(130%);opacity:0;transition:transform .35s var(--ease),opacity .35s var(--ease)}
  .pwa-bar.show{transform:none;opacity:1}
  .pwa-bar-in{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;
    background:var(--card-hi);border:1px solid var(--line-dark);box-shadow:0 20px 44px -22px rgba(24,22,15,.5)}
  .pwa-ic{flex:none;width:40px;height:40px;border-radius:10px}
  .pwa-txt{display:flex;flex-direction:column;min-width:0;flex:1}
  .pwa-txt strong{font-size:14px;font-weight:600;color:var(--ink);line-height:1.3}
  .pwa-txt span{font-size:12.5px;color:var(--muted);line-height:1.4}
  .pwa-later{flex:none;border:0;background:none;cursor:pointer;font-family:var(--sans);
    font-size:12.5px;color:var(--muted);padding:6px 4px}
  .pwa-later:hover{color:var(--ink)}
  @media(max-width:460px){
    .pwa-bar-in{display:grid;grid-template-columns:auto 1fr auto;gap:10px 12px;align-items:center}
    .pwa-ic{grid-row:1;grid-column:1}
    .pwa-txt{grid-row:1;grid-column:2/4}
    .pwa-bar-in .btn{grid-row:2;grid-column:2;justify-self:end}
    .pwa-later{grid-row:2;grid-column:3}
  }
  /* Значок приложения на телефоне */
  .pwa-install:empty{display:none}
  .pwa-install{flex-basis:100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
  .pwa-btn{border:1px solid var(--line-dark);background:var(--card-hi);color:var(--ink);
    font-family:var(--sans);font-size:13.5px;padding:8px 16px;border-radius:999px;cursor:pointer;
    transition:border-color .2s var(--ease),background .2s var(--ease)}
  .pwa-btn:hover{border-color:var(--ink);background:#fff}
  .pwa-note{font-size:12.5px;color:var(--muted)}
  /* Аккордеон настроек продуктов и условий */
  .acc{display:flex;flex-direction:column;gap:10px;margin-top:18px}
  .acc-i{padding:0;border:1px solid var(--line);border-radius:14px;background:var(--paper);overflow:hidden}
  .acc-i.open{border-color:var(--line-dark);background:var(--card-hi)}
  .acc-h{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 14px;width:100%;
    text-align:left;border:0;background:none;cursor:pointer;padding:16px 20px;font-family:var(--sans)}
  .acc-t{font-size:15.5px;font-weight:600;color:var(--ink);grid-column:1}
  .acc-s{font-size:13px;color:var(--muted);grid-column:1;line-height:1.4}
  .acc-x{grid-column:2;grid-row:1/3;width:10px;height:10px;border-right:1.5px solid var(--muted);
    border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .25s var(--ease);margin-right:4px}
  .acc-i.open .acc-x{transform:rotate(225deg)}
  .acc-b{display:none;padding:0 20px 20px}
  .acc-i.open .acc-b{display:block}
  .acc-b .pkg-settings{margin:0}
  .acc-b h4:first-child{margin-top:0!important}
  /* Продукты на странице специалиста */
  .pr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
  .pr{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px 22px;
    display:flex;flex-direction:column;min-width:0}
  .pr-k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
  .pr-t{font-family:var(--serif);font-size:20px;font-weight:500;line-height:1.2}
  .pr-d{font-size:14px;color:var(--text);line-height:1.55;margin-top:8px}
  .pr-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:12.5px;color:var(--muted)}
  .pr-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:14px}
  .pr-p{font-size:16px;font-weight:600;color:var(--ink)}
  /* Рабочая ширина: в кабинете страница занимает монитор целиком.
     Узкая колонка нужна для чтения текста, а не для доски и календаря. */
  body.work-wide #expert-body,
  body.work-wide #cabinet-body,
  body.work-wide .header .container{max-width:min(2200px,100%);padding-left:40px;padding-right:40px}
  @media(max-width:900px){
    body.work-wide #expert-body,
    body.work-wide #cabinet-body,
    body.work-wide .header .container{padding-left:20px;padding-right:20px}
  }
  /* Переключатель «отзывы / кейсы» в одном блоке */
  #prof-rc .rv-head{margin-bottom:16px}
  .rc-tabs{display:flex;gap:8px;margin:0 0 24px;flex-wrap:wrap}
  .rc-tab{border:1px solid var(--line);background:var(--paper);color:var(--muted);
    font-family:var(--sans);font-size:13.5px;padding:7px 16px;border-radius:999px;cursor:pointer;
    transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease)}
  .rc-tab:hover{border-color:var(--line-dark);color:var(--ink)}
  .rc-tab.on{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
  .rc-tab[hidden]{display:none}
  /* Подсказка, которую видит только сам эксперт на своей странице */
  .own-empty{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 18px;
    border:1px dashed var(--line-dark);border-radius:14px;background:var(--paper);
    font-size:13.5px;color:var(--muted);line-height:1.5}
  /* Кейсы и условия на странице специалиста */
  .cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
  .cs{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px 22px;min-width:0}
  .cs-t{font-family:var(--serif);font-size:19px;font-weight:500;line-height:1.2;margin-bottom:12px}
  .cs-line{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
  .cs-k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
  .cs-v{font-size:14px;color:var(--text);line-height:1.5}
  .cs-dur{margin-top:10px;font-size:12.5px;color:var(--muted)}
  .prof-terms{font-size:15px;color:var(--text);line-height:1.6}
  .prof-terms p{margin-bottom:10px}
  .my-cases{margin-top:34px}
  .my-cases h3{margin-bottom:4px}
  .mc-list{display:flex;flex-direction:column;gap:8px}
  .rvp-h2{font-family:var(--serif);font-size:26px;font-weight:500;margin:34px 0 16px}
  /* Чей ход в продаже */
  .crm-turn{flex:none;font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 9px;border-radius:999px;white-space:nowrap}
  .crm-turn.me{background:#efe6d3;color:#7a5f30}
  .crm-turn.them{background:var(--line-soft);color:var(--muted)}
  /* Постоянная комната встречи */
  .room-box{margin-top:18px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card-hi)}
  .room-box-t{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
  .room-box-s{margin-top:8px;font-size:12.5px;color:var(--muted);line-height:1.5}
  .room-link{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .room-link input{flex:1;min-width:180px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;
    background:var(--paper);font-family:var(--sans);font-size:13px;color:var(--text)}
  .room-link input:focus{outline:none;border-color:var(--line-dark)}
  /* Голосовое, фильтры входящих, поиск в диалоге */
  .voice-btn.rec{background:#f6e7e3;color:#9c3b30;width:auto;padding:0 10px;font-size:13px;font-weight:600}
  .att-voice{display:flex;align-items:center;gap:8px;margin:2px 0 4px}
  .att-voice audio{height:34px;max-width:240px}
  .att-secs{font-size:12px;color:var(--muted);flex:none}
  .ibx-filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
  .ibx-f{border:1px solid var(--line);background:var(--paper);color:var(--text);
    font-family:var(--sans);font-size:12.5px;padding:5px 11px;border-radius:999px;cursor:pointer;
    transition:border-color .2s var(--ease),background .2s var(--ease)}
  .ibx-f span{color:var(--muted);margin-left:3px}
  .ibx-f:hover{border-color:var(--line-dark)}
  .ibx-f.on{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}
  .ibx-f.on span{color:var(--on-dark-muted)}
  .ibx-until{flex:none;font-size:11.5px;color:var(--muted);white-space:nowrap}
  .ibx-when{white-space:nowrap}
  .ibx-status{max-width:150px}
  .ibx-foot{display:flex;align-items:center;gap:9px;margin-top:9px}
  .conv-find{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:10px}
  .conv-find input{width:170px;padding:6px 11px;border:1px solid var(--line);border-radius:999px;
    background:var(--paper);font-family:var(--sans);font-size:13px;color:var(--ink)}
  .conv-find input:focus{outline:none;border-color:var(--line-dark)}
  .conv-find span{font-size:12px;color:var(--muted);white-space:nowrap}
  .msg-line.find-dim{opacity:.35}
  .msg-line.find-hit .crm-note{box-shadow:0 0 0 2px var(--gold-line,rgba(168,137,92,.45))}
  .snz-quick{display:flex;gap:8px;flex-wrap:wrap}
  /* Вложения в переписке */
  .attach-inp{display:none}
  .attach-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border:0;background:none;padding:0;border-radius:9px;cursor:pointer;
    font-family:var(--sans);font-size:16px;line-height:1;
    color:var(--muted);transition:background .2s var(--ease),color .2s var(--ease)}
  .attach-btn:hover{background:var(--line-soft);color:var(--ink)}
  .att-photo{display:block;margin:2px 0 4px;border-radius:12px;overflow:hidden;max-width:280px}
  .att-photo img{width:100%;height:auto;display:block}
  .att-file{display:flex;align-items:center;gap:10px;margin:2px 0 4px;padding:9px 12px;
    border:1px solid var(--line);border-radius:12px;background:var(--card-hi);
    text-decoration:none;color:var(--ink);max-width:300px;transition:border-color .2s var(--ease)}
  .att-file:hover{border-color:var(--line-dark)}
  .att-ic{flex:none;font-size:16px}
  .att-main{display:flex;flex-direction:column;min-width:0}
  .att-name{font-size:13.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .att-size{font-size:12px;color:var(--muted)}
  /* Серии публикаций — квадраты с подписью */
  .soc-top{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
  .ser-block{margin-bottom:30px}
  .ser-head{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink);margin-bottom:14px}
  .ser-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:16px}
  .ser-sq{display:block;width:100%;text-align:left;border:0;background:none;padding:0;cursor:pointer;min-width:0}
  .ser-sqimg{position:relative;display:block;aspect-ratio:1/1;border-radius:14px;overflow:hidden;
    background:var(--line-soft);border:1px solid var(--line);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
  .ser-sq:hover .ser-sqimg{transform:translateY(-2px);box-shadow:var(--sh-card-hover)}
  .ser-sqimg img{width:100%;height:100%;object-fit:cover}
  .ser-sqtxt{display:flex;align-items:center;justify-content:center;height:100%;padding:14px;
    background:linear-gradient(160deg,#fffdf9,#f1ebdf)}
  .ser-sqtxt span{font-family:var(--serif);font-size:17px;line-height:1.2;color:var(--ink);text-align:center}
  .ser-sqn{position:absolute;right:8px;bottom:8px;min-width:22px;height:22px;padding:0 7px;
    display:flex;align-items:center;justify-content:center;border-radius:11px;
    background:rgba(24,22,15,.72);color:var(--on-dark);font-size:12px;font-weight:600}
  .ser-sqcap{margin-top:9px;font-size:14px;font-weight:600;color:var(--ink);line-height:1.3;
    min-height:37px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .ser-sqsub{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
  .ser-back{border:0;background:none;padding:0;margin-bottom:14px;cursor:pointer;
    font-family:var(--sans);font-size:14px;color:var(--muted);transition:color .2s var(--ease)}
  .ser-back:hover{color:var(--ink)}
  .ser-open-head{margin-bottom:18px}
  .ser-open-head h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:4px 0 0}
  .ser-open-sub{font-size:13px;color:var(--muted);margin-top:4px}
  .sub-notify{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:13.5px;color:var(--text);cursor:pointer}
  .sub-notify input[type=checkbox]{width:auto!important;flex:none;margin:0}
  @media(max-width:520px){.ser-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
  /* Меню «…» у публикации */
  .pmenu-btn{flex:none;border:0;background:none;cursor:pointer;color:var(--muted);
    font-size:18px;line-height:1;padding:4px 6px;border-radius:8px;transition:background .2s var(--ease),color .2s var(--ease)}
  .pmenu-btn:hover{background:var(--line-soft);color:var(--ink)}
  .pmenu{position:fixed;z-index:400;min-width:212px;background:var(--card-hi);
    border:1px solid var(--line);border-radius:12px;padding:6px;
    box-shadow:0 18px 40px -20px rgba(24,22,15,.45)}
  .pmenu-i{display:block;width:100%;text-align:left;border:0;background:none;cursor:pointer;
    font-family:var(--sans);font-size:14px;color:var(--text);padding:9px 12px;border-radius:8px;
    transition:background .15s var(--ease),color .15s var(--ease)}
  .pmenu-i:hover{background:var(--line-soft);color:var(--ink)}
  .pmenu-i.danger{color:#9c3b30}
  .pmenu-i.danger:hover{background:#f6e7e3;color:#8a3128}
  .ig-head .uava{flex:none}
  .ig-who{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
  .ig-who strong{font-size:14px;font-weight:600;cursor:pointer;line-height:1.25;letter-spacing:-.005em;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
  .ig-who strong:hover{color:var(--gold)}
  .ig-series{font-size:10.5px;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
  .ig-acts{display:flex;align-items:center;gap:2px;padding:11px 11px 3px}
  .ig-act{background:none;border:none;cursor:pointer;line-height:0;color:var(--ink);padding:5px 6px;border-radius:100px;transition:transform .18s var(--ease),color .2s,opacity .2s}
  .ig-act:hover{opacity:.5}
  .ig-act:active{transform:scale(.88)}
  .ig-svg{width:23px;height:23px;display:block}
  .ig-act.post-like.on,.post-like .ig-svg.is-on{color:#c0392b}
  .ig-save{margin-left:auto}
  .ig-save.on,.ig-save .ig-svg.is-on{color:var(--gold)}
  .ig-likes{padding:3px 17px 0;font-size:13.5px;font-weight:600;letter-spacing:-.005em}
  .ig-cap{padding:7px 17px 0}
  .ig-cap .post-body{margin:0;color:var(--text);font-size:14.5px;line-height:1.52}
  .ig-cap .post-body b{color:var(--ink);font-weight:600;margin-right:3px}
  .ig-cap{position:relative}
  /* «ещё» садится в конец обрезанной строки, а не отдельным словом снизу */
  .ig-cap .post-more{position:absolute;right:17px;bottom:0;padding:0 0 0 26px;color:var(--muted);
    font-size:14.5px;line-height:1.52;background:linear-gradient(90deg,transparent,var(--paper) 24%)}
  .ig-cap .post-more:hover{text-decoration:none;color:var(--ink)}
  .ig-comm{display:block;background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:14px;color:var(--muted);padding:7px 17px 0;text-align:left}
  .ig-comm:hover{color:var(--ink)}
  .ig-date{padding:11px 17px 15px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .post .post-comments:not([hidden]){padding:0 17px 16px}
  .post .post-locked,.post .post-meta{margin:0 17px 14px}
  .post:hover{border-color:var(--line-soft)}
  .post.is-locked{background:var(--bg)}
  .post-series{font-size:12px;color:var(--gold);font-weight:600;margin-bottom:8px;letter-spacing:.02em}
  .series-sec{display:flex;flex-direction:column;gap:16px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:8px 14px 16px;margin:18px 0;background:rgba(168,137,92,.04)}
  .series-sec-head{font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.02em;padding:10px 4px 12px;border-bottom:1px solid var(--line)}
  .series-sec .post{border-left:2px solid var(--gold-line)}
  .my-series{display:flex;flex-direction:column;gap:8px;margin:14px 0;border:1px solid var(--line);border-radius:var(--radius);padding:6px 12px 12px;background:rgba(168,137,92,.04)}
  .my-series-head{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:.02em;padding:8px 2px 10px;border-bottom:1px solid var(--line)}
  .post-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
  .post-top h4{font-size:18px;font-weight:600;margin:0;line-height:1.35}
  /* Метки доступа — подписи, а не кнопки: контур и капитель, чтобы на них не жали */
  .post-tag{flex:none;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
    padding:4px 9px;border-radius:4px;white-space:nowrap;background:none;border:1px solid var(--line-dark);color:var(--muted)}
  .post-tag.subs{border-color:rgba(74,63,94,.35);color:#4a3f5e}
  .post-tag.paid{border-color:var(--gold-line);color:#8a6d2f}
  .post-tag.channel{border-color:rgba(31,36,48,.4);color:#1f2430}
  .channel-offer{margin-top:10px;padding:14px;border:1px solid #2a2f3a;border-radius:14px;background:linear-gradient(180deg,#222734,#1c212c);color:#e8e6e1}
  .channel-offer.is-on{display:flex;align-items:center;justify-content:center;background:#1c212c}
  .channel-offer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
  .channel-badge{font-size:12px;font-weight:700;color:#e9c46a;letter-spacing:.02em}
  .channel-price{font-size:13px;font-weight:700;color:#fff}
  .channel-about{font-size:12.5px;line-height:1.45;color:#b9bcc4;margin:0 0 10px}
  .wrap-zone{border-radius:12px;padding:12px 14px;margin-bottom:12px}
  .wrap-zone__hd{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;margin-bottom:8px;letter-spacing:.01em}
  .wrap-zone--private{background:#f1efe8;border:1px solid #e3e0d6}
  .wrap-zone--private .wrap-zone__hd{color:#6c6a62}
  .wrap-zone--client{background:#fbf4e3;border:1px solid #ecdcae}
  .wrap-zone--client .wrap-zone__hd{color:#8a6d2f}
  .wrap-zone textarea{width:100%;font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);background:#fff;color:var(--ink);resize:vertical;min-height:62px;transition:border-color .25s}
  .wrap-zone textarea:focus{outline:none;border-color:var(--ink)}
  .wrap-zone .field{margin-bottom:10px}
  .wrap-zone .field:last-child{margin-bottom:0}
  .post-body{font-size:15px;line-height:1.6;color:var(--muted);margin:10px 0 0;white-space:pre-wrap}
  .post-body.clamp{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

  .post-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px;word-break:break-word}
  .cmt-bubble .post-link{color:var(--accent)}
  .pf-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .pf-prev{margin-top:10px;max-height:180px;border-radius:var(--radius);border:1px solid var(--line)}
  .post-more{background:none;border:none;color:var(--accent);font-weight:500;cursor:pointer;padding:4px 0 0;font-size:14px;font-family:var(--sans)}
  .post-more:hover{text-decoration:underline;text-underline-offset:2px}
  .post-media{display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--ink);background:none;cursor:pointer;font-family:var(--sans);border:1px solid var(--line-dark);border-radius:100px;padding:8px 18px;transition:border-color .25s}
  .post-media:hover{border-color:var(--ink)}
  .post-locked{margin-top:14px;font-size:13px;color:var(--muted);background:var(--bg);border:1px dashed var(--line-dark);border-radius:var(--radius);padding:12px 14px}
  .post-meta{margin-top:14px;font-size:13px;color:var(--muted)}

  .content-grid{display:grid;grid-template-columns:minmax(440px,560px) 1fr;gap:40px;align-items:start}
  .content-compose{border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;background:var(--paper)}
  .post-form .pf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .post-form .pf-row .field{margin-bottom:14px}
  .pf-actions{display:flex;align-items:center;gap:14px;margin-top:6px}
  .series-form{display:flex;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
  .series-form input{flex:1;font-family:var(--sans);font-size:14px;padding:11px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .content-list .my-post{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--radius);padding:15px 18px;margin-bottom:12px;background:var(--paper)}
  .my-post .mp-main strong{font-size:15px;font-weight:600}
  .my-post .mp-sub{font-size:13px;color:var(--muted);margin-top:3px}
  .my-post .badge{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
  .my-post.is-edit{cursor:pointer;transition:border-color .2s,box-shadow .2s}
  .my-post.is-edit:hover{border-color:var(--ink)}
  .my-post .mp-edit{color:var(--muted);font-size:15px;opacity:0;transition:opacity .2s}
  .my-post.is-edit:hover .mp-edit{opacity:1}
  .pe-actions{display:flex;align-items:center;gap:10px;margin-top:16px}
  .btn-del{margin-left:auto;background:none;border:none;color:#c0392b;cursor:pointer;font-family:var(--sans);font-size:14px;text-decoration:underline;text-underline-offset:2px}
  .btn-del:hover{color:#a5281b}
  @media (max-width:860px){.content-grid{grid-template-columns:1fr;gap:28px}}

  /* ===== Соцслой: подписка и лента клиента ===== */
  .prof-sub{margin-top:14px;text-align:center}
  .prof-sub .sub-on{font-size:14px;font-weight:600;color:#2f6b45;background:#e2ece3;border-radius:100px;padding:11px 18px}
  .prof-sub .sub-off{display:inline-block;margin-top:10px;font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .prof-sub .sub-off:hover{color:var(--ink)}
  .feed-wrap{display:flex;flex-direction:column;gap:20px;max-width:680px}
  .feed-item{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);overflow:hidden}
  .feed-item .post{border:none;border-radius:0;padding:0 24px 22px}
  .feed-author{display:flex;align-items:center;gap:12px;padding:18px 24px 14px;cursor:pointer;border-bottom:1px solid var(--line)}
  .feed-author:hover strong{color:var(--gold)}
  .feed-author .fa-ava{width:42px;height:42px;border-radius:50%;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:16px;flex:none}
  .feed-author strong{font-size:15px;font-weight:600;display:block}
  .feed-author .sub{font-size:13px;color:var(--muted)}

  /* ===== Соцслой: платный гейт ===== */
  .post-locked{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
  .post-unlock{flex:none}

  /* ===== Соцслой: действия, комментарии, модерация ===== */
  .post-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
  .post-date{font-size:13px;color:var(--muted)}
  .post-actions{display:flex;gap:6px}
  .post-act{background:none;border:none;cursor:pointer;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted);padding:6px 10px;border-radius:100px;transition:background .2s,color .2s}
  .post-act:hover{background:var(--bg);color:var(--ink)}
  .post-act.on{color:var(--gold)}
  .post-act.post-like.on{color:#c0392b}
  .post-actions{flex-wrap:wrap}
  .post-comments{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
  /* Универсальный аватар: фото или инициалы + кольцо по роли */
  .uava{position:relative;width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;overflow:hidden;background:var(--accent);color:var(--paper);font-family:var(--serif);font-weight:600;font-size:15px}
  .uava img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
  .uava.av-exp{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--gold)}
  .uava.av-client{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--accent)}
  .uava-sm{width:34px;height:34px;font-size:13px}
  .uava-md{width:48px;height:48px;font-size:17px}
  .uava-lg{width:96px;height:96px;font-size:34px}
  .prof-head .uava-lg{margin-right:4px}
  .comment-list{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
  .cmt{display:flex;gap:10px;align-items:flex-start;font-size:14px}
  .cmt.muted{opacity:.55}
  .cmt-ava{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:13px;flex:none;margin-top:2px}
  .cmt-ava.exp{background:var(--gold)}
  .cmt-main{flex:1;min-width:0}
  /* Комментарий без коробки: имя прямо в строке текста. Рамка вокруг каждого
     превращала обсуждение в стопку плашек и съедала место. */
  .cmt-text{margin:0;font-size:14px;line-height:1.5;color:var(--ink);
    white-space:pre-wrap;word-wrap:break-word}
  .cmt-text b{font-weight:600;margin-right:6px}
  .cmt-bubble{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:8px 14px}
  .cmt-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .cmt-head strong{font-size:13.5px;font-weight:600}
  .cmt-badge{font-size:11px;font-weight:600;color:var(--gold);margin-right:6px}
  .cmt-st{font-size:11px;font-weight:600;color:#8a6d2f;background:#efe7d6;border-radius:100px;padding:2px 9px}
  .cmt-bubble p{margin:3px 0 0;line-height:1.5;color:var(--ink);font-size:14px;white-space:pre-wrap;word-wrap:break-word}
  .cmt-actions{display:flex;align-items:center;gap:14px;margin:3px 0 0}
  .cmt-date{font-size:12px;color:var(--muted)}
  .cmt-mod{font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .cmt-mod:hover{color:var(--ink)}
  .cmt-like{background:none;border:none;padding:0;cursor:pointer;font-family:var(--sans);font-size:12px;color:var(--muted)}
  .cmt-like:hover{color:var(--ink)}
  .cmt-like.on{color:#c0392b}
  .share-link{display:flex;gap:8px;margin-bottom:14px}
  .share-link input{flex:1;font-family:var(--sans);font-size:13px;padding:10px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .share-nets{display:flex;gap:8px;flex-wrap:wrap}
  .share-net{flex:1;min-width:120px;text-align:center;padding:11px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);font-weight:500;font-size:14px;color:var(--ink);transition:border-color .25s;cursor:pointer;background:none;font-family:var(--sans)}
  .share-net:hover{border-color:var(--ink)}
  .share-sub{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:600;margin:18px 0 8px}
  .share-pick{display:flex;flex-direction:column;gap:8px;margin-top:10px}
  .share-pick-item{text-align:left;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;cursor:pointer;transition:border-color .2s}
  .share-pick-item:hover{border-color:var(--ink)}
  /* Пакеты сессий */
  .pkg-settings{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
  .pkg-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:7px 0;font-size:14px}
  .pkg-row .pkg-n{font-weight:600;min-width:90px}
  .pkg-row .pkg-calc{color:var(--muted);font-size:13px}
  .pkg-row input{font-family:var(--sans);padding:5px 8px;border:1px solid var(--line-dark);border-radius:8px;background:var(--bg);color:var(--ink)}
  .pay-opt{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 16px 18px;margin-bottom:14px;background:var(--paper)}
  .pay-opt .first-hint{margin-top:12px;font-size:13px;line-height:1.5;color:var(--muted);text-align:center}
  .pay-opt .po-head{font-size:13px;font-weight:700;letter-spacing:.02em;margin-bottom:10px;display:flex;align-items:center;gap:8px}
  .pay-opt .po-save{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:var(--gold);border-radius:100px;padding:2px 8px;font-weight:600}
  .prof-pkg{margin-top:14px;border:1px solid var(--gold-line);border-radius:var(--radius);padding:12px 14px;background:rgba(168,137,92,.05)}
  .prof-pkg .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:600;margin-bottom:8px}
  .pkg-buy{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line-dark);border-radius:var(--radius);padding:9px 12px;margin-bottom:8px;cursor:pointer;font-family:var(--sans);color:var(--ink);transition:border-color .2s}
  .pkg-buy:last-child{margin-bottom:0}
  .pkg-buy:hover{border-color:var(--ink)}
  .pkg-buy b{font-size:14px}
  .pkg-buy span{font-size:12px;color:var(--muted)}
  .pay-or{text-align:center;color:var(--muted);font-size:12px;margin-bottom:12px}
  /* Конструктор воронки (эксперт) */
  .fn-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .fn-status{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:100px;padding:2px 10px}
  .fn-status.on{color:#2e7d4f;border-color:#bfe0cc;background:#eef6f0}
  .fn-link{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--bg);border:1px solid var(--gold-line);border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;font-size:13px}
  .fn-link input{flex:1;min-width:200px;font-family:var(--sans);font-size:13px;padding:6px 10px;border:1px solid var(--line-dark);border-radius:8px;background:var(--paper);color:var(--ink)}
  /* Редактор воронки: шесть этапов, один на экране */
  .fnw{max-width:940px}
  .fnw-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
  .fnw-top h3{margin:0 0 4px;font-size:22px}
  .fnw-top .sub{margin:0;max-width:520px}
  .fnw-top-r{display:flex;align-items:center;gap:12px;flex:none}
  .fnw-bar{display:flex;gap:8px;margin:22px 0 20px;flex-wrap:wrap}
  .fnw-tab{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--paper);
    border-radius:100px;padding:8px 16px 8px 9px;font:inherit;font-size:14px;color:var(--text);cursor:pointer;transition:.15s}
  .fnw-tab:hover{border-color:var(--line-dark)}
  .fnw-tab .fnw-n{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
    background:var(--bg);border:1px solid var(--line);font-size:12.5px;color:var(--muted);flex:none}
  .fnw-tab.ok .fnw-n{background:var(--gold);border-color:var(--gold);color:#fff}
  .fnw-tab.on{border-color:var(--ink);background:var(--ink);color:#fff}
  .fnw-tab.on .fnw-n{background:rgba(255,255,255,.16);border-color:transparent;color:#fff}
  .fnw-body{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px 30px}
  .fnw-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap}
  .fnw-save{margin-top:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .fn-row{display:flex;gap:10px;flex-wrap:wrap}
  .fn-h{margin:0 0 6px;font-size:18px}
  .fn-sub{margin:0 0 16px;max-width:660px}
  .fn-hintline{color:var(--muted);font-size:12.5px;margin-top:6px;line-height:1.45}
  .fn-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .fn-pick.two{grid-template-columns:repeat(2,1fr)}
  /* Пять видов финала: на широком экране в ряд, дальше по два, на телефоне в столбик */
  .fn-pick.five{grid-template-columns:repeat(5,1fr)}
  .fn-pick.five .fn-pick-i b{font-size:15px}
  @media (max-width:1180px){.fn-pick.five{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:860px){.fn-pick.five{grid-template-columns:repeat(2,1fr)}}
  .fn-pick-i{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid var(--line-dark);
    background:var(--bg);border-radius:var(--radius-lg);padding:18px 20px;font:inherit;cursor:pointer;transition:.15s}
  .fn-pick-i b{font-size:16px}
  .fn-pick-i span{font-size:13.5px;color:var(--muted);line-height:1.45}
  .fn-pick-i:hover{border-color:var(--ink)}
  .fn-pick-i.on{border-color:var(--gold);background:rgba(168,137,92,.08);box-shadow:inset 0 0 0 1px var(--gold-line)}
  .fn-up{margin-bottom:16px}
  .fn-up>label{display:block;font-weight:600;font-size:13.5px;margin-bottom:7px}
  .fn-up-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .fn-up-or{color:var(--muted);font-size:13px}
  .fn-up-url{flex:1;min-width:220px;font-family:var(--sans);font-size:14px;padding:10px 12px;
    border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .fn-up-st{color:var(--muted);font-size:12.5px;margin-top:6px;min-height:1em}
  .fn-up-prev{margin-top:10px;max-width:360px;border-radius:var(--radius);overflow:hidden}
  .fn-up-prev img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:transparent}
  .fn-sub-card{margin-top:20px;border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;background:var(--bg)}
  .fn-check{display:flex;align-items:center;gap:10px;font-size:14.5px;cursor:pointer}
  .fn-check-list{list-style:none;padding:0;margin:0 0 20px}
  .fn-check-list li{display:flex;align-items:center;gap:12px;padding:9px 0;font-size:15px}
  .fn-check-list li span{width:20px;color:var(--muted)}
  .fn-check-list li.ok span{color:var(--gold)}
  .fn-check-list li button{background:none;border:none;padding:0;font:inherit;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .fn-vars{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;
    font-size:13px;color:var(--text-soft);line-height:1.6;margin-bottom:18px}
  .fn-vars b{color:var(--gold);font-weight:600}
  .fnhelp{padding:34px 38px 38px}
  .fnhelp h3{margin:0 0 6px;font-size:24px}
  .fnhelp h4{margin:24px 0 8px;font-size:16px}
  .fnhelp-list{margin:12px 0 0;padding-left:22px;line-height:1.6}
  .fnhelp-list li{margin-bottom:10px}
  .fnhelp-list.plain{list-style:none;padding-left:0}
  .fnhelp-list.plain li{padding-left:18px;position:relative}
  .fnhelp-list.plain li::before{content:"—";position:absolute;left:0;color:var(--gold)}
  .fnhelp-soon{margin-top:16px;border:1px dashed var(--line-dark);border-radius:var(--radius);padding:12px 14px;color:var(--muted);font-size:13.5px}
  /* Окно выбора мессенджера */
  .msg-wrap{padding:34px 36px 32px}
  .msg-wrap h3{margin:6px 0 6px;font-size:24px}
  .msg-q{font-weight:600;margin:18px 0 10px}
  .msg-pick{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
  .msg-b{border:1px solid var(--line-dark);background:var(--bg);border-radius:100px;padding:9px 18px;font:inherit;font-size:14px;cursor:pointer;transition:.15s}
  .msg-b:hover{border-color:var(--ink)}
  .msg-b.on{border-color:var(--gold);background:rgba(168,137,92,.1)}
  .msg-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
  .msg-acts .btn{width:auto;flex:0 0 auto}
  /* Урок аудио и текстом */
  .fnc-audio{margin:6px 0 4px}
  .fnc-audio audio{width:100%}
  .fnc-audio-lock{color:var(--muted);font-size:12px;margin-top:6px}
  .fnc-text{text-align:left;max-width:640px;margin:0 auto;font-size:16px;line-height:1.65}
  .fnc-text p{margin:0 0 14px}
  @media(max-width:760px){
    .fn-pick,.fn-pick.two,.fn-pick.five{grid-template-columns:1fr}
    .fnw-body{padding:20px 18px}
  }
  .fn-steps{display:flex;flex-direction:column;gap:14px;margin:14px 0}
  .fn-step{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--paper)}
  .fn-step-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
  /* В редакторе воронки .pf-row задумана как строка, но стиль был привязан только
     к форме публикации — поля вставали друг под друга. */
  .fn-step .pf-row,.fn-final-cfg .pf-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
  .fn-step .pf-row>.field,.fn-final-cfg .pf-row>.field{flex:1 1 200px;margin-bottom:14px}
  .fn-mail{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
  .fn-mail-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-weight:600;font-size:14px;margin-bottom:8px}
  .fn-mail-h .sub{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:2px}
  .fn-mail textarea{width:100%;font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink);resize:vertical}
  .fn-final{margin:16px 0;padding:12px 14px;border-left:3px solid var(--gold);background:rgba(168,137,92,.06);border-radius:var(--radius);font-size:14px}
  .fn-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
  .fn-hint{font-size:12.5px;color:#2e7d4f}
  /* Мини-лендинг воронки (вход) */
  /* Лендинг воронки: первый экран помещается на ноутбуке, дальше — блоки текста и пункты */
  .fnl{max-width:1120px;margin:0 auto;padding:0 0 70px}
  .fnl-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:52px;align-items:center;padding:30px 0 44px}
  .fnl-hero.no-media{grid-template-columns:1fr;max-width:760px;margin:0 auto;text-align:center;padding:60px 0 50px}
  .fnl-from{color:var(--muted);font-size:13.5px;margin-bottom:14px}
  .fnl-title{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.3vw,44px);line-height:1.14;margin:0 0 24px}
  .fnl-go{min-width:300px}
  .fnl-note{color:var(--muted);font-size:13px;margin-top:12px}
  .fnl-hero-media{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
  .fnl-hero-media img,.fnl-hero-media video{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:transparent;border-radius:0}
  .fnl-sec{padding:14px 0}
  .fnl-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
  .fnl-cols.one{grid-template-columns:1fr;max-width:820px}
  .fnl-cols>.fnl-card:last-child:nth-child(odd){grid-column:1/-1}
  .fnl-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px 26px;font-size:15.5px;line-height:1.62;color:var(--text)}
  .fnl-card p{margin:0 0 12px}
  .fnl-card p:last-child{margin-bottom:0}
  .fnl-intro{font-size:19px;line-height:1.5;margin:26px 0 20px;max-width:840px}
  .fnl-bullets{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .fnl-bullets li{display:flex;gap:16px;align-items:flex-start;background:var(--paper);border:1px solid var(--gold-line);border-radius:var(--radius-lg);padding:20px 22px}
  .fnl-bullets .n{font-family:var(--serif);font-size:20px;color:var(--gold);line-height:1.15;flex:none}
  .fnl-bullets .t{font-size:15.5px;line-height:1.5}
  .fnl-end{text-align:center;padding:44px 0 0}
  @media(max-width:900px){
    .fnl-hero{grid-template-columns:1fr;text-align:center;padding-top:20px}
    .fnl-hero-media{order:-1}
    .fnl-cols,.fnl-bullets{grid-template-columns:1fr}
    .fnl-go{min-width:0;width:100%}
  }
  /* Рекламный блок воронки в профиле */
  .prof-ad{background:linear-gradient(160deg,#f7f3ff,#fdf6ec);border:1px solid var(--gold-line);border-radius:var(--radius-lg);padding:18px;margin-top:14px}
  .prof-ad-badge{display:inline-block;background:var(--gold);color:#fff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;margin-bottom:10px}
  .prof-ad-title{font-size:17px;font-weight:700;line-height:1.3;margin-bottom:10px}
  .prof-ad-media{border-radius:12px;overflow:hidden;margin-bottom:10px}
  .prof-ad-text{font-size:14px;line-height:1.5;color:var(--ink);margin:0 0 12px}
  /* Прохождение воронки (клиент) */
  /* В воронке шапка и подвал сайта не показываются: ни поиска, ни кабинета,
     ни кнопки подбора специалиста — ничего, что уводит человека из воронки. */
  body.funnel-mode .nav,
  body.funnel-mode .header-actions,
  body.funnel-mode .footer{display:none}
  body.funnel-mode .logo{pointer-events:none;cursor:default}
  body.funnel-mode .header .container{justify-content:center}
  .fnc-wrap{max-width:760px;margin:0 auto;padding:30px 0 60px}
  .fnc-welcome{background:var(--paper);border:1px solid var(--gold-line);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:20px;font-size:15px;line-height:1.55}
  .fnc-head{display:flex;justify-content:center;align-items:center;gap:16px;color:var(--muted);font-size:13px;margin:18px 0 10px}
  .fnc-prog{font-weight:600;color:var(--gold)}
  .fnc-share{background:none;border:none;padding:0;font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
  .fnc-share:hover{color:var(--gold)}
  .fnc-locked{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;margin-bottom:18px;font-size:14px;color:var(--text-soft)}
  .fnc-back{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
  .fnc-back-t{font-size:15px;color:var(--text-soft);margin-bottom:12px}
  .fnc-wrap h1{font-size:clamp(26px,4vw,40px);margin:0 0 16px}
  .fnc-body{font-size:15px;line-height:1.6;color:var(--ink);margin:16px 0;white-space:pre-wrap}
  .fnc-task{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
  .fnc-task-q{font-weight:600;font-size:16px;margin-bottom:10px}
  .fnc-task textarea{width:100%;font-family:var(--sans);font-size:15px;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink);margin-bottom:12px;resize:vertical}
  .fnc-final{text-align:center;padding:30px 0}
  .fnc-mark{font-family:var(--serif);font-style:italic;font-size:56px;color:var(--gold);line-height:1}
  .fnc-final h1{margin:14px 0}
  /* воронка-клиент: новые элементы */
  .fnc-wrap{text-align:center}
  .fnc-wrap .post-embed,.fnc-wrap .post-embed-media,.fnc-wrap video,.fnc-wrap img{margin-left:auto;margin-right:auto}
  .fnc-sub2{color:var(--muted);font-size:15px;margin-bottom:4px}
  .fnc-balance{color:#c0392b;font-weight:600;font-size:15px;margin-bottom:4px}
  .fnc-mins{font-weight:600;margin-bottom:14px}
  .fnc-timer-wrap{margin:18px 0}
  .fnc-timer-lbl{color:var(--muted);font-size:14px;margin-bottom:6px}
  .fnc-timer{font-family:var(--serif);font-size:34px;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);display:inline-block;padding:8px 20px}
  .fnc-q{font-size:15px;margin:6px 0 12px;color:var(--ink)}
  .fnc-opts{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto 14px;text-align:left}
  .fnc-opt{display:flex;align-items:center;gap:10px;border:1px solid var(--line-dark);border-radius:var(--radius);padding:12px 16px;cursor:pointer;background:var(--paper);transition:border-color .2s}
  .fnc-opt:hover{border-color:var(--ink)}
  .fnc-task textarea{text-align:left}
  .fnc-offer{max-width:520px;margin:26px auto 0;border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px 30px 26px;background:var(--paper);box-shadow:var(--shadow);text-align:left}
  .fnc-offer-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-weight:700;margin-bottom:10px}
  .fnc-offer-name{font:600 23px/1.28 var(--sans);letter-spacing:-.01em;margin-bottom:6px}
  .fnc-offer-start{font-size:14px;color:var(--muted)}
  .fnc-bill{margin:20px 0 6px;border-top:1px solid var(--line)}
  .fnc-bill-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;font-size:15px;color:var(--text);border-bottom:1px solid var(--line)}
  .fnc-bill-row b{font-weight:600;white-space:nowrap}
  .fnc-bill-row.is-bonus{color:var(--gold)}
  .fnc-bill-row.is-bonus b{color:var(--gold)}
  .fnc-bill-row.is-total{border-bottom:none;padding-top:14px;font-size:16px;font-weight:600;color:var(--ink)}
  .fnc-bill-row.is-total b{font-size:28px;letter-spacing:-.02em}
  .fnc-consent{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--text);margin:16px 0 14px;line-height:1.45;cursor:pointer}
  .fnc-consent input{margin-top:2px;flex:none}
  .fnc-buy{width:100%}
  .fnc-secure{font-size:12px;color:var(--muted);margin-top:10px;text-align:center}
  .fnc-afterpay{font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-top:18px;line-height:1.55}
  .fnc-afterpay-h{font-weight:600;font-size:13px;margin-bottom:5px;color:var(--ink)}
  .fnc-wait{color:var(--muted);font-size:13px;margin-top:12px}
  .fnc-wait.is-hint{color:var(--gold)}
  .fnc-after{max-width:460px;margin:14px auto 0;font-size:14px;color:#2e7d4f;background:#eef6f0;border:1px solid #cfe6d8;border-radius:var(--radius);padding:12px 16px;line-height:1.5}
  /* воронка-конструктор */
  .fn-final-cfg{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;margin:16px 0;background:var(--paper)}
  .fn-bonus-info{font-size:13px;color:var(--muted);margin:6px 0 10px}
  .cmt-replies{display:flex;flex-direction:column;gap:14px;margin-top:14px;padding-left:18px;border-left:2px solid var(--line)}
  .cmt-rf{margin-top:10px;padding-left:44px}
  .comment-form{display:flex;gap:10px}
  .comment-form input{flex:1;font-family:var(--sans);font-size:14px;padding:10px 14px;border:1px solid var(--line-dark);border-radius:100px;background:var(--bg);color:var(--ink)}
  .comment-form input:focus{outline:none;border-color:var(--ink)}

  /* ===== Соцслой: комьюнити / пространства ===== */
  .spaces-hero{padding:60px 0 30px}
  .spaces-hero h1{margin:14px 0 12px}
  .spaces-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;padding-bottom:80px}
  .space-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;background:var(--paper);cursor:pointer;transition:border-color .3s,transform .35s var(--ease)}
  .space-card:hover{border-color:var(--line-soft);transform:translateY(-2px)}
  .sc-kind{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-weight:600;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .space-card.official{border-color:var(--gold-line);background:linear-gradient(180deg,rgba(168,137,92,.06),var(--paper))}
  .sc-official{color:var(--gold)}
  .sc-exponly{font-size:10px;color:var(--accent);background:#ece7f4;border-radius:100px;padding:2px 8px;letter-spacing:.04em}
  .space-card h3{font-size:20px;margin:8px 0 4px}
  .sc-topic{font-size:14px;color:var(--muted)}
  .sc-foot{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;font-size:13px;color:var(--muted)}
  .sc-joined{color:#2f6b45;font-weight:600}
  .space-wrap{padding:40px 0 90px}
  .space-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:14px 0 30px;padding-bottom:24px;border-bottom:1px solid var(--line)}
  .space-head h1{font-size:clamp(28px,4vw,44px);margin:6px 0 8px}
  .space-join{flex:none}
  .space-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:48px;align-items:start}
  .space-disc h3,.space-events h3{font-size:15px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 18px}
  .space-posts{display:flex;flex-direction:column;gap:16px}
  .crisis-note{margin-top:24px;font-size:12.5px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius);padding:12px 14px;line-height:1.5}
  .crisis-mini{margin-top:20px}
  .crisis-mini summary{cursor:pointer;font-size:12.5px;color:var(--muted);list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 0}
  .crisis-mini summary::-webkit-details-marker{display:none}
  .crisis-mini summary:hover{color:var(--ink)}
  .crisis-mini-body{margin-top:8px;font-size:12.5px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius);padding:12px 14px;line-height:1.55}
  .space-events{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;background:var(--paper)}
  .event-item{padding:14px 0;border-bottom:1px solid var(--line)}
  .event-item:last-of-type{border-bottom:none}
  .event-item.past{opacity:.6}
  .event-item .ev-when{font-size:12px;font-weight:600;color:var(--gold);letter-spacing:.02em}
  .event-item strong{display:block;font-size:15px;margin:4px 0}
  .event-item p{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.5}
  .event-form{display:flex;flex-direction:column;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
  .event-form input{font-family:var(--sans);font-size:14px;padding:10px 13px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  @media (max-width:860px){.space-grid{grid-template-columns:1fr;gap:32px}.space-head{flex-direction:column}}

  /* ===== Мессенджер: структурные сообщения ===== */
  .crm-note.struct .struct-card{display:flex;gap:12px;align-items:center;border:1px solid var(--line-dark);border-radius:var(--radius);padding:12px 14px;background:var(--paper);margin-top:4px}
  .struct-ic{font-size:20px;flex:none;line-height:1}
  .struct-main{display:flex;flex-direction:column;gap:8px;flex:1;align-items:flex-start}
  .struct-label{font-size:14px;font-weight:500;color:var(--ink)}
  .struct-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
  .struct-btn{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--line-dark);border-radius:100px;padding:7px 14px;cursor:pointer;transition:border-color .2s,color .2s}
  .struct-btn:hover{border-color:var(--ink);color:var(--ink)}
  .struct-pick{display:flex;gap:8px;margin-top:10px}
  .struct-pick select,.struct-pick input{flex:1;font-family:var(--sans);font-size:14px;padding:9px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}

  /* ===== Мессенджер: inbox, приватные заметки, шаблоны ===== */
  .inbox-list{display:flex;flex-direction:column;gap:10px;padding-top:8px}
  .inbox-row{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;background:var(--paper);cursor:pointer;transition:border-color .25s}
  .inbox-row:hover{border-color:var(--ink)}
  .inbox-row.active{border-color:var(--ink);background:var(--card-hi)}
  /* Двухпанельный инбокс (мессенджер-вид) */
  .ibx-extra{margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius);padding:10px 16px;background:var(--paper)}
  .ibx-extra summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accent);list-style:none}
  .ibx-extra summary::-webkit-details-marker{display:none}
  .ibx-extra summary::before{content:"＋ ";color:var(--gold)}
  .ibx-extra[open] summary::before{content:"− "}
  .inbox-2col{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}
  .inbox-left{min-width:0;max-height:72vh;overflow-y:auto;padding-right:4px;scrollbar-width:thin}
  .chat-day{text-align:center;margin:8px 0 2px}
  .chat-day span{display:inline-block;background:rgba(24,22,15,.5);color:#fff;font-size:11.5px;font-weight:500;padding:3px 12px;border-radius:100px}
  .inbox-right{display:flex;flex-direction:column;height:72vh;min-height:460px;max-height:90vh;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);overflow:hidden;resize:vertical}
  .ibx-pick{margin:auto;color:var(--muted);font-size:14px;padding:24px;text-align:center}
  .ibx-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
  .ibx-chat-head strong{font-size:15px}
  .inbox-right .ibx-chat-box{flex:1;max-height:none;padding:16px 18px}
  .inbox-right .crm-add{padding:12px 16px;border-top:1px solid var(--line);margin:0}
  @media (max-width:760px){.inbox-2col{grid-template-columns:1fr}.inbox-right{height:62vh}}
  .ibx-main{flex:1;min-width:0}
  .ibx-top{display:flex;align-items:center;gap:10px}
  .ibx-top strong{font-size:15px;font-weight:600}
  .ibx-unread{background:var(--gold);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
  .ibx-when{margin-left:auto;font-size:12px;color:var(--muted)}
  .ibx-prev{font-size:13px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ibx-status{font-family:var(--sans);font-size:12px;font-weight:600;padding:6px 10px;border:1px solid var(--line-dark);border-radius:100px;background:var(--bg);color:var(--ink);cursor:pointer;flex:none}
  .ibx-status.st-waiting{border-color:#c79a3a;color:#8a6d2f}
  .ibx-status.st-closed{opacity:.6}
  .ibx-status.st-snoozed{color:#4a3f5e}
  .crm-note.priv-note{background:#fbf4e2;border:1px dashed #d8c089;border-radius:var(--radius);padding:10px 12px}
  .crm-note.priv-note .crm-note-meta{color:#8a6d2f}
  .qr-box{margin-top:10px}
  .qr-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:6px}
  .qr-item span{cursor:pointer;font-size:14px;flex:1}
  .qr-item span:hover{color:var(--gold)}

  /* ===== Мессенджер: реакции, цитаты, статусы прочтения, поиск ===== */
  .msg-body{white-space:pre-wrap}
  .msg-tick{font-size:11px;color:var(--muted);margin-left:2px}
  .msg-tick.read{color:#3f8d5a}
  .msg-quote{border-left:3px solid var(--gold);padding:3px 10px;margin:2px 0 6px;font-size:12.5px;color:var(--muted);background:var(--bg);border-radius:4px}
  .msg-reacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
  .msg-reacts .rx{font-size:12px;border:1px solid var(--line-dark);border-radius:100px;padding:2px 9px;cursor:pointer;background:var(--paper);transition:border-color .2s}
  .msg-reacts .rx.mine{border-color:var(--gold);background:#fbf4e2}
  .msg-actions{display:flex;gap:4px;margin-top:6px;opacity:0;transition:opacity .2s;flex-wrap:wrap}
  .crm-note:hover .msg-actions{opacity:1}
  .crm-note.pinned{box-shadow:inset 2px 0 0 var(--gold)}
  .chat-pinned{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--gold-line);border-radius:var(--radius);padding:8px 12px;font-size:13px;color:var(--ink);margin-bottom:6px}
  .chat-pinned .cp-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
  .chat-pinned .cp-unpin{cursor:pointer;color:var(--accent);text-decoration:underline;font-size:12px;white-space:nowrap}
  .msg-edit-inp{width:100%;font-family:var(--sans);font-size:14px;padding:8px 10px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--paper);color:var(--ink);resize:vertical}
  .msg-edit-act{display:flex;gap:8px;margin-top:6px;align-items:center}
  .emoji-btn{background:none;border:1px solid var(--line-dark);border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:16px;line-height:1;transition:border-color .2s}
  .emoji-btn:hover{border-color:var(--ink)}
  .emoji-pop{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);max-width:280px}
  .emoji-i{background:none;border:none;cursor:pointer;font-size:19px;line-height:1;padding:3px;border-radius:6px;transition:background .15s}
  .emoji-i:hover{background:var(--bg)}
  .msg-act{cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px;line-height:1.2}
  .msg-act:hover{background:var(--bg)}
  .reply-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius);padding:8px 12px;margin:8px 0;font-size:13px;color:var(--muted)}
  .reply-bar a{cursor:pointer;font-size:16px;color:var(--muted)}
  .reply-bar a:hover{color:var(--ink)}
  .inbox-search{margin-bottom:14px}
  .inbox-search input{width:100%;font-family:var(--sans);font-size:14px;padding:11px 16px;border:1px solid var(--line-dark);border-radius:100px;background:var(--bg);color:var(--ink)}
  .inbox-search input:focus{outline:none;border-color:var(--ink)}

  /* ===== Мессенджер: авто-ответы ассистента ===== */
  .crm-note.assistant{background:#eef3f0;border-left:3px solid #6f9c83;border-radius:var(--radius);padding:10px 12px}
  .crm-note.assistant .crm-note-meta{color:#3f6b54}
  /* Чат «пузырями» (мессенджер-вид) */
  .msg-line{display:flex;width:100%}
  .msg-line.me{justify-content:flex-end}
  .msg-line.them{justify-content:flex-start}
  .msg-line.center{justify-content:center}
  .msg-line .crm-note{max-width:80%;min-width:0}
  .msg-line.center .crm-note{max-width:100%;text-align:center}
  .msg-line.me .crm-note{background:#ece7f4;border:1px solid #ddd4ec}
  .msg-line.me .crm-note .crm-note-meta{color:var(--muted)}
  .msg-line.them .crm-note{background:var(--paper);border:1px solid var(--line)}
  .msg-line.them .crm-note.assistant{background:#eef3f0;border:1px solid #cfe0d6;border-left:3px solid #6f9c83}
  @media (max-width:600px){.msg-line .crm-note{max-width:90%}}
  .ibx-hours{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:12px;flex-wrap:wrap}
  .ibx-hours input{width:58px;font-family:var(--sans);font-size:13px;padding:6px 8px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}

  /* ===== Мессенджер: звонок из чата + командный доступ ===== */
  .as-asst{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);cursor:pointer;margin-left:2px}
  .as-asst input{margin:0}

  /* ===== Мессенджер: аналитика чата ===== */
  .chat-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
  .chat-metrics .cm{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:var(--paper)}
  .chat-metrics .cm .v{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--ink)}
  .chat-metrics .cm .l{font-size:12.5px;color:var(--muted);margin-top:4px}
  @media (max-width:640px){.chat-metrics{grid-template-columns:1fr}}

  /* ===== Лоадер ЭКОСТА (золотая точка по орбите вокруг «Э») ===== */
  @keyframes ecSpin{ to{ transform:rotate(360deg); } }
  .ec-loader{ position:relative; width:60px; height:60px; }
  .ec-loader__ring{ position:absolute; inset:0; border:3px solid var(--line-soft); border-radius:var(--r-pill); }
  .ec-loader__orbit{ position:absolute; inset:0; animation:ecSpin 1.1s linear infinite; }
  .ec-loader__dot{ position:absolute; width:11px; height:11px; border-radius:var(--r-pill); }
  .ec-loader__dot--gold{ background:var(--gold); left:24.5px; top:-4px; }
  .ec-loader__dot--plum{ background:var(--plum); left:24.5px; bottom:-4px; }
  .ec-loader__glyph{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font:600 26px/1 var(--serif); color:var(--ink); padding-bottom:2px; }

  /* ===== Глобальный поиск по сайту ===== */
  .hdr-search{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;padding:6px 8px;border-radius:var(--r-pill);opacity:.75;transition:opacity .2s,background .2s}
  .hdr-search:hover{opacity:1;background:var(--bg)}
  .hdr-msg{position:relative;background:none;border:none;cursor:pointer;font-size:18px;line-height:1;padding:6px 8px;border-radius:var(--r-pill);opacity:.75;transition:opacity .2s,background .2s}
  .hdr-msg:hover{opacity:1;background:var(--bg)}
  .hdr-badge{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#c0392b;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--sans)}
  .search-box{padding:70px 22px 22px}
  .site-search-input{width:100%;font-family:var(--sans);font-size:17px;padding:15px 18px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink);margin-bottom:8px}
  .site-search-input:focus{outline:none;border-color:var(--ink)}
  #site-search-results{max-height:60vh;overflow-y:auto}
  /* Инлайн-медиа в посте — во всю ширину карточки, без скруглений и отступов */
  .post-embed{margin:0}
  .post .mp-frame,.post .post-embed{border-radius:0}
  .post-embed-media{width:100%;max-height:620px;object-fit:cover;background:#0c0c0c;border-radius:0;display:block;margin:0}
  /* Обложка видео: пока не нажали — картинка или тёмный фон с кнопкой «играть» */
  /* Согласия перед встречей и материалы встречи у специалиста */
  .room--consent{align-items:center;justify-content:center;padding:32px}
  .cns-card{width:100%;max-width:560px;background:var(--paper);border-radius:var(--radius-lg);padding:36px;box-shadow:var(--shadow);color:var(--ink)}
  .cns-item{display:flex;gap:12px;align-items:flex-start;padding:14px 0;cursor:pointer}
  .cns-item input{margin-top:4px;flex:none}
  .cns-item b{display:block;font-size:15px;margin-bottom:5px}
  .cns-text{display:block;font-size:13.5px;line-height:1.55;color:var(--muted)}
  /* Поле подписи: расписаться пальцем на телефоне или мышью на компьютере */
  .sign-pad{position:relative;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);overflow:hidden}
  .sign-pad canvas{display:block;width:100%;height:130px;touch-action:none;cursor:crosshair}
  .sign-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13.5px;color:var(--muted);pointer-events:none}
  .sign-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
  .sign-upload{position:relative;overflow:hidden;display:inline-flex;align-items:center}
  .sign-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
  /* Доска для рисования во время встречи */
  .bd-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 12px}
  .bd-c{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s}
  .bd-c:hover{transform:scale(1.1)}
  .bd-c.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper) inset}
  #bd-erase.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .bd-pad{border:1px solid var(--line-dark);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
  .bd-pad canvas{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}
  /* Таймер встречи в шапке комнаты */
  .room-timer{display:inline-flex;align-items:center;gap:8px;font:500 13px/1 var(--sans);color:var(--on-dark-muted);border:1px solid var(--on-dark-line);border-radius:100px;padding:9px 14px;margin-left:auto;margin-right:14px;white-space:nowrap}
  .room-timer .rt-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.7}
  .room-timer.is-soon{color:#e0b877;border-color:rgba(224,184,119,.4)}
  .room-timer.is-over{color:#d98b7f;border-color:rgba(217,139,127,.45)}
  /* Карточка клиента прямо в комнате */
  .sp-card{border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;background:var(--bg)}
  .sp-card-h{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px}
  .sp-goal{font-size:15px;margin-bottom:10px}
  .sp-prev{margin-bottom:10px}
  .sp-prev-t{font-size:13.5px;line-height:1.55;color:var(--text);margin-top:5px;white-space:pre-wrap}
  .sp-tasks,.sp-notes{margin-bottom:10px}
  .sp-task{display:flex;gap:9px;align-items:flex-start;font-size:14px;padding:5px 0;cursor:pointer}
  .sp-task input{margin-top:3px;flex:none}
  .sp-task.is-done span{color:var(--muted);text-decoration:line-through}
  .sp-note{font-size:13.5px;line-height:1.55;color:var(--text);padding:6px 0;border-bottom:1px solid var(--line-soft)}
  .sp-note:last-child{border-bottom:none}
  .sp-note-d{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}
  .room-rec{font-size:12.5px;color:var(--on-dark-muted);text-align:center;padding-top:10px}
  .room-rec.is-on{color:#d98b7f}
  .sp-warn{font-size:13.5px;line-height:1.55;color:var(--text);background:var(--bg);border:1px dashed var(--line-dark);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px}
  .sess-panel{width:100%;max-width:720px;margin:18px auto 28px;background:var(--paper);border-radius:var(--radius-lg);padding:24px 26px;color:var(--ink);text-align:left}
  .sp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
  .sp-who{font-size:14px;color:var(--muted)}
  .sp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13.5px;padding:7px 0;color:var(--text)}
  .sp-k{color:var(--muted)}
  .cns-ok{color:#3d7a4f;font-weight:600;font-size:13px}
  .cns-no{color:var(--muted);font-size:13px}
  .sp-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
  .sp-sel{font:500 13px/1 var(--sans);padding:10px 12px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg);color:var(--ink)}
  .sp-doc{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
  .sp-doc .lbl{font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}
  .sp-doc pre{white-space:pre-wrap;font:400 13px/1.6 var(--sans);color:var(--text);max-height:220px;overflow:auto;margin:0}
  /* Обложка поста без фото: заголовок антиквой на бумаге, пропорция 4:5 —
     ровно как карточка в ленте, только собранная платформой. */
  /* Плитка кликабельна целиком: пост открывается окном, а не разворачивается в сетке */
  .post{cursor:pointer}
  .post:hover{border-color:var(--line-dark)}
  .ig-media .pm-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;
    border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 2px 14px rgba(0,0,0,.35);pointer-events:none}
  .ig-media .pm-play::after{content:"";position:absolute;left:23px;top:18px;border-style:solid;
    border-width:11px 0 11px 17px;border-color:transparent transparent transparent #23201b}
  .ig-media video{pointer-events:none}
  /* Окно поста */
  /* Крестик поверх фото должен быть виден и на светлом кадре */
  .pm-modal .modal-close{background:rgba(251,249,245,.94);box-shadow:0 1px 8px rgba(0,0,0,.18);z-index:3}
  .pm-modal{--pmH:min(88vh,820px);max-width:1060px;width:min(96vw,1060px);padding:0;overflow:hidden;
    display:flex;flex-direction:column;max-height:var(--pmH)}
  .pm-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);
    min-height:0;max-height:var(--pmH);flex:1 1 auto;overflow:hidden}
  .pm-grid.no-media{grid-template-columns:minmax(0,1fr)}
  .pm-media{position:relative;background:#141210;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden}
  .pm-media>*{max-width:100%;max-height:var(--pmH)}
  .pm-media img,.pm-media video{display:block;width:100%;height:100%;object-fit:contain;max-height:none;margin:0}
  .pm-media .post-embed,.pm-media .mp-frame{width:100%;height:100%;margin:0;border-radius:0}
  .pm-side{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper)}
  .pm-head{display:flex;align-items:center;gap:11px;padding:16px 62px 16px 18px;border-bottom:1px solid var(--line);flex:none}
  .pm-media .post-cover{width:100%;height:100%}
  /* Высоту области чтения задаём явно: только на flex-сжатие полагаться нельзя —
     у контейнера с max-height ребёнок не ужимается и подвал уезжает за край. */
  .pm-scroll{flex:1 1 auto;min-height:0;max-height:calc(var(--pmH) - 152px);overflow-y:auto;padding:18px}
  .pm-title{margin:0 0 12px;font-size:19px;line-height:1.3}
  .pm-text{font-size:15px;line-height:1.62;color:var(--text)}
  .pm-text p{margin:0 0 14px}
  .pm-text p:last-child{margin-bottom:0}
  /* Пост без картинки — это чтение. Колонка узкая, строка короткая, абзацы дышат. */
  .pm-modal.is-text{max-width:780px}
  .pm-modal.is-text .pm-scroll{padding:26px 34px 30px}
  .pm-modal.is-text .pm-title{font-size:23px;line-height:1.25;margin-bottom:16px}
  .pm-modal.is-text .pm-text{font-size:16.5px;line-height:1.72}
  .pm-modal.is-text .pm-text p{margin:0 0 18px}
  .pm-comments{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
  .pm-foot{flex:none;border-top:1px solid var(--line);padding:6px 6px 12px}
  .pm-foot .ig-acts{padding:8px 12px}
  .pm-foot .ig-likes,.pm-foot .ig-date{padding:0 18px}
  @media(max-width:860px){
    .pm-modal{--pmH:92vh}
    .pm-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;overflow-y:auto}
    .pm-media{max-height:52vh}
    .pm-scroll{overflow:visible;max-height:none}
  }
  /* Медиа-квадрат карточки: у всех постов в ряду он одинаковый */
  .ig-media{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:var(--bg)}
  .ig-media>*{width:100%;height:100%}
  .ig-media img,.ig-media video,.ig-media iframe{display:block;width:100%;height:100%;object-fit:cover;max-height:none;margin:0;border:0}
  .ig-media .post-cover{height:100%}
  .ig-media .post-media{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;height:auto;margin:0}
  .post-lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:22px;
    background:linear-gradient(180deg,rgba(40,36,30,.28),rgba(40,36,30,.62));backdrop-filter:blur(3px);width:100%;height:100%}
  .pl-in{text-align:center;max-width:260px;display:flex;flex-direction:column;align-items:center;gap:12px}
  .pl-t{color:#fff;font-size:13.5px;line-height:1.45;text-shadow:0 1px 2px rgba(0,0,0,.3)}
  .post-lock .btn{white-space:nowrap}
  .series-sec-head .ss-kick,.my-series-head .ss-kick{display:inline-block;margin-right:8px;font-size:10.5px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--gold);font-weight:700}
  .post-cover{position:relative;width:100%;aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:42px 38px;background:linear-gradient(158deg,var(--card-hi) 0%,var(--bg) 100%)}
  .post-cover::after{content:"";position:absolute;inset:14px;border:1px solid rgba(168,137,92,.16);border-radius:6px;pointer-events:none}
  .pc-rule{width:46px;height:1px;background:var(--gold);opacity:.75}
  .pc-brand{font:600 10.5px/1 var(--sans);text-transform:uppercase;letter-spacing:.24em;color:var(--gold)}
  .pc-title{font-family:var(--serif);font-size:clamp(27px,5.2vw,36px);line-height:1.13;letter-spacing:-.012em;color:var(--ink);display:-webkit-box;-webkit-line-clamp:6;line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
  .mp-poster{cursor:pointer;background-size:cover;background-position:center;background-color:#15130f;display:flex;align-items:center;justify-content:center}
  .mp-poster.has-cover::after{content:"";position:absolute;inset:0;background:rgba(12,11,8,.25)}
  .mp-play{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;background:rgba(251,249,245,.94);color:#18160f;font-size:21px;line-height:1;display:flex;align-items:center;justify-content:center;padding-left:4px;box-shadow:0 10px 30px -12px rgba(0,0,0,.6);transition:transform .2s var(--ease)}
  .mp-poster:hover .mp-play{transform:scale(1.08)}
  .mp-open{position:absolute;left:0;right:0;bottom:0;z-index:2;font-size:12px;color:#f4f0e9;background:rgba(12,11,8,.6);padding:7px 10px;text-align:center}
  .mp-frame.vert{aspect-ratio:9/16;max-width:340px;margin-left:auto;margin-right:auto}
  .post-embed-media.vmedia-vert{max-width:340px;max-height:600px;margin-left:auto;margin-right:auto}
  /* Видео-плеер */
  .mp-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden}
  .mp-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .mp-video{width:100%;max-height:70vh;object-fit:contain;background:#000;border-radius:var(--radius);display:block}

  /* Компактный баннер «Бесплатная программа» — наверху страницы эксперта */
  .prof-ad-top{display:flex;align-items:center;gap:14px;min-width:0;background:#fbf4e3;border:1px solid #ecdcae;border-radius:14px;padding:12px 16px;margin:18px 0 4px;cursor:pointer;transition:border-color .2s}
  .prof-ad-top:hover{border-color:var(--gold)}
  .prof-ad-top .pat-badge{flex:none;font-size:12px;font-weight:600;color:#8a6d2f;background:#f3e6c4;border-radius:20px;padding:5px 11px}
  .prof-ad-top .pat-main{flex:1;min-width:0}
  .prof-ad-top .pat-title{font-size:15px;font-weight:600;line-height:1.25}
  .prof-ad-top .pat-text{font-size:13px;color:var(--muted);margin-top:2px}
  .prof-ad-top .pat-btn{flex:none}
  /* Баннер воронки в профиле: на узком экране бейдж и кнопка не давали тексту
     ужаться, и страницу уводило вбок. */
  .prof-ad-top{flex-wrap:wrap;min-width:0}
  .prof-ad-top .pat-main{flex:1 1 180px}
  .prof-ad-top .pat-title,.prof-ad-top .pat-text{overflow-wrap:anywhere}
  @media (max-width:560px){.prof-ad-top .pat-btn{width:100%}}
  .slots-prev>*,.prof-sub>*{min-width:0;max-width:100%}

  /* Публикации идут на всю ширину страницы, под колонкой с ценами — иначе
     три карточки в ряд не помещаются и превращаются в марки. */
  .prof-social-full{grid-column:1/-1}
  /* Лента публикаций: три карточки в ряд. Сетка живёт только на .post-feed-col —
     раньше она стояла ещё и на обёртке, и колонка внутри колонки сплющивала карточки. */
  .post-feed-col{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
  .post-feed-col .series-sec{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
  .post-feed-col .series-sec-head{grid-column:1/-1}
  @media (max-width:980px){
    .post-feed-col,.post-feed-col .series-sec{grid-template-columns:repeat(2,1fr);gap:20px}
  }
  @media (max-width:620px){
    .post-feed-col,.post-feed-col .series-sec{grid-template-columns:1fr}
  }

  /* Доска ведения (Фаза 2) — свободный канбан задач на клиента */
  .vb-head{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-bottom:18px}
  .vb-client{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
  .vb-client select{max-width:100%}
  .vb-goal{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .vb-client select{font-family:var(--sans);font-size:14px;padding:7px 10px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--paper);color:var(--ink)}
  .vb-goal{font-size:13px;color:var(--muted);margin-left:4px}
  .vb-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .vb-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-family:var(--sans);padding:6px 12px;border:1px solid var(--line-dark);border-radius:100px;background:var(--paper);color:var(--ink);cursor:pointer;transition:all .15s}
  .vb-chip:hover{border-color:var(--ink)}
  .vb-chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .vb-chip-add{color:var(--muted);border-style:dashed}
  .vb-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
  .vb-board{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:14px}
  .vb-col{flex:0 0 234px;background:#ece5d6;border:1px solid var(--line-dark);border-radius:var(--radius-lg);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:130px;transition:border-color .15s,background .15s}
  .vb-col.over{border-color:var(--gold);background:#e6ddc9}
  .vb-col.is-done-col{background:#e6e1d4}
  .vb-col-head{display:flex;align-items:center;gap:6px;justify-content:space-between;font-size:13px;font-weight:600;padding:2px 4px}
  .vb-col-head>span:first-child{min-width:0}
  .vb-col-n{font-size:12px;color:var(--muted);background:var(--paper);border-radius:100px;padding:1px 8px}
  .vb-col-body{display:flex;flex-direction:column;gap:8px;min-height:8px}
  .vb-empty{font-size:12px;color:var(--muted);text-align:center;padding:14px 0;border:1px dashed var(--line-dark);border-radius:var(--radius);opacity:.5}
  .vb-add{font-family:var(--sans);font-size:13px;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius);background:var(--paper);color:var(--ink);width:100%}
  .vb-add:focus{outline:none;border-color:var(--line-dark)}
  .vb-task{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;cursor:grab;transition:border-color .15s}
  .vb-task:hover{border-color:var(--line-dark)}
  .vb-task.dragging{opacity:.5}
  .vb-task.is-done{opacity:.55}
  .vb-task.is-done .vb-task-title{text-decoration:line-through;color:var(--muted)}
  .vb-task-top{display:flex;align-items:center;gap:7px;margin-bottom:5px}
  .vb-task-top input[type=checkbox]{cursor:pointer;flex:none}
  .vb-task-proj{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
  /* Проект меняется селектом прямо на карточке; кнопки колонки видны всегда,
     а не появляются на наведении — иначе о них невозможно догадаться. */
  .vb-projsel{font:500 11px/1 var(--sans);border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);padding:2px 4px;cursor:pointer;max-width:120px}
  .vb-projsel:hover,.vb-projsel:focus{border-color:var(--line-dark);color:var(--ink);outline:none}
  .vb-colbtn{width:22px;height:22px;border:1px solid transparent;border-radius:6px;background:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:0;transition:all .15s}
  .vb-colbtn:hover:not(:disabled){border-color:var(--line-dark);color:var(--ink)}
  .vb-colbtn:disabled{opacity:.25;cursor:default}
  .vb-colbtn-x:hover:not(:disabled){border-color:#c08d84;color:#9a4636}
  .vb-task-title{cursor:text}
  .vb-del{margin-left:auto;background:none;border:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;opacity:0;transition:opacity .15s}
  .vb-task:hover .vb-del{opacity:.6}
  .vb-del:hover{opacity:1}
  .vb-task-title{font-size:14px;line-height:1.4}
  .vb-addcol{flex:0 0 44px;align-self:stretch;background:var(--bg);border:1px dashed var(--line-dark);border-radius:var(--radius-lg);color:var(--muted);font-size:22px;cursor:pointer;min-height:130px}
  .vb-addcol:hover{border-color:var(--ink);color:var(--ink)}
  /* Режимы доски: по клиенту / сводная / завершённые */
  .cal-chip.task{background:transparent;border:1px dashed var(--line-dark);color:var(--ink)}
  .cal-chip.free{background:transparent;border:1px solid var(--line);border-left:3px solid #bdd3c4;color:var(--muted)}
  .cal-chip.free:hover{border-color:var(--line-dark)}
  .cal-freetog{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);cursor:pointer}
  .cal-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--muted);margin:0 0 14px}
  .cal-legend span{display:flex;align-items:center;gap:6px}
  .cal-legend .lg{width:12px;height:12px;border-radius:3px;display:inline-block}
  .cal-legend .lg-paid{background:#eaf5ee;border-left:3px solid #3fbf6f}
  .cal-legend .lg-unpaid{background:#faf4e4;border-left:3px solid #f0b24a}
  .cal-legend .lg-task{border:1px dashed var(--line-dark)}
  .cal-legend .lg-free{border:1px solid var(--line);border-left:3px solid #bdd3c4}
  #cal-sched{margin:0 0 18px}
  /* Между сеткой и подпиской нужен воздух — они слипались */
  .cal-feed{margin-top:34px}
  /* День */
  .cal-daylist{display:flex;flex-direction:column;gap:8px}
  .cal-dayrow{display:flex;gap:14px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}
  .cal-dayt{font-family:var(--serif);font-size:18px;flex:0 0 62px;color:var(--ink)}
  .cal-daych{flex:1;min-width:0}
  .cal-daych .cal-chip{white-space:normal}
  .cal-day-empty{border:1px dashed var(--line-dark);border-radius:var(--radius);padding:26px;text-align:center;color:var(--muted);font-size:14px}
  .cal-dayrow{cursor:pointer;position:relative}
  .cal-dayrow.is-free{background:transparent;border-style:dashed}
  .cal-dayrow:hover{border-color:var(--ink);background:var(--paper)}
  .cal-dayrow.is-now{border-color:var(--gold)}
  .cal-dayadd{font-size:13px;color:var(--muted)}
  /* Пересекающиеся дела стоят рядом, а не друг под другом */
  .cal-daych{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
  .cal-daych .cal-chip{flex:1 1 200px;min-width:0}
  .cal-dayplus{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:17px;line-height:1;opacity:0;pointer-events:none}
  .cal-dayrow:hover .cal-dayplus,.cal-wrow:hover .cal-dayplus{opacity:.55}
  .cal-wrow{cursor:pointer;position:relative}
  .cal-wrow:hover{background:var(--paper)}
  .cal-wevs{display:flex;flex-wrap:wrap;gap:8px}
  .cal-wevs .cal-chip{flex:0 1 auto}
  #cev-body .pf-row{display:flex;gap:12px}
  #cev-body .pf-row>.field{flex:1;min-width:0}
  /* Год */
  .cal-year{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
  .cal-mon{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:0;font-family:var(--sans)}
  .cal-mon:hover{border-color:var(--line-dark)}
  .cal-mon.has{background:#f3eee3}
  .cal-mon-n{font-family:var(--serif);font-size:19px;color:var(--ink)}
  .cal-mon-v{font-size:13.5px;color:var(--ink)}
  .cal-mon-f{font-size:12.5px;color:var(--muted)}
  .cal-chip.task.done{opacity:.5;text-decoration:line-through}
  .vb-modes{display:flex;gap:6px;flex-wrap:wrap}
  .vb-mode{font-family:var(--sans);font-size:13px;padding:7px 14px;border:1px solid var(--line-dark);border-radius:100px;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}
  .vb-mode:hover{border-color:var(--ink);color:var(--ink)}
  .vb-mode.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .vb-arch{font-family:var(--sans);font-size:12px;padding:6px 12px;border:1px solid var(--line-dark);border-radius:100px;background:transparent;color:var(--muted);cursor:pointer;margin-left:6px}
  .vb-arch:hover{border-color:var(--ink);color:var(--ink)}
  /* Колонка проектов и клиентов */
  .vb-col-proj{background:#efe9dc;flex:0 0 206px}
  .vb-proj{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);cursor:pointer;font-size:13px;transition:border-color .15s}
  .vb-proj:hover{border-color:var(--line-dark)}
  .vb-proj.on{border-color:var(--ink)}
  .vb-proj-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vb-proj-n{font-size:11px;color:var(--muted);flex:none}
  .vb-proj-edit{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:0 2px;opacity:0;flex:none}
  .vb-proj:hover .vb-proj-edit{opacity:.7}
  .vb-proj-edit:hover{opacity:1;color:var(--ink)}
  .vb-add-btn{text-align:left;border:1px dashed var(--line-dark);color:var(--muted);cursor:pointer;background:transparent}
  .vb-add-btn:hover{color:var(--ink);border-color:var(--ink)}
  /* Колонка заметок: клиент её не видит вообще */
  .vb-col.is-notes{background:var(--bg);border-style:dashed}
  .vb-note-hint{font-size:11px;line-height:1.45;color:var(--muted);padding:0 4px}
  /* Карточка: время, чей клиент, видимость */
  .vb-time{font-size:11.5px;color:var(--muted);margin-top:5px}
  .vb-who{display:inline-block;font-size:11px;color:var(--muted);margin-top:5px;border-top:1px solid var(--line);padding-top:4px;width:100%}
  .vb-eye{margin-left:auto;background:none;border:none;font-size:11px;line-height:1;cursor:pointer;color:var(--gold);padding:0 2px}
  .vb-eye.off{color:var(--muted)}
  .vb-task.is-hidden{border-style:dashed}
  .vb-ph{height:38px;border:1px dashed var(--gold);border-radius:var(--radius);background:rgba(168,137,92,.08)}
  .vbt-vis{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
  .vbp-palette{display:flex;gap:8px;flex-wrap:wrap}
  .vbp-sw{width:28px;height:28px;border-radius:8px;border:2px solid transparent;cursor:pointer;padding:0}
  .vbp-sw.on{border-color:var(--ink)}
  /* Проект — такая же карточка, как задача, и задача заводится прямо под ней */
  .vb-pcard{border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;cursor:pointer;transition:border-color .15s}
  .vb-pcard:hover{border-color:var(--line-dark)}
  .vb-pcard.on{border-color:var(--ink)}
  .vb-pedit{margin-left:auto;background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:0 2px;opacity:0}
  .vb-pcard:hover .vb-pedit{opacity:.7}
  .vb-pedit:hover{opacity:1;color:var(--ink)}
  .vb-pfoot{font-size:11.5px;margin-top:4px}
  .vb-padd{font-family:var(--sans);font-size:12px;padding:6px 8px;margin-top:8px;border:1px solid transparent;border-radius:var(--radius);background:var(--paper);color:var(--ink);width:100%}
  .vb-padd:focus{outline:none;border-color:var(--line-dark)}
  /* Цель работы с клиентом */
  .vb-goalrow{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 14px}
  .vb-goal-l{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold);flex:none}
  .vb-goal-v{font-size:15px;cursor:pointer;border-bottom:1px dashed var(--line-dark);min-width:0}
  .vb-goal-v:hover{border-bottom-color:var(--ink)}
  /* Повтор и занятое время */
  .vb-rep{color:var(--gold)}
  .vb-busy{margin-top:14px;padding:12px 14px;border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--bg)}
  .vb-busy ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;line-height:1.7}
  .vb-wk{margin:0;padding-left:18px;font-size:14px;line-height:1.7}
  .vb-tpls{display:flex;flex-direction:column;gap:8px}
  .vb-tpl{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
  .vb-filters{margin-bottom:16px}
  /* Пульс практики в сводке */
  .pls-focus{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:0 0 18px}
  .pls-focus-l{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}
  .pls-focus-v{font-size:16px}
  .pls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:24px}
  .pls-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;min-width:0}
  .pls-card.warn{border-color:#d8c08a}
  .pls-t{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
  .pls-v{font-family:var(--serif,Georgia,serif);font-size:30px;line-height:1.15;margin:6px 0 2px}
  .pls-s{font-size:13px;color:var(--muted)}
  .pls-x{font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.6}
  .pls-x2{margin-top:6px}
  .pls-up{color:#3f7a56}
  .pls-dn{color:#9a4636}
  .pls-lnk{font:inherit;background:none;border:none;border-bottom:1px dashed var(--line-dark);color:var(--ink);cursor:pointer;padding:0;margin:0 8px 4px 0}
  .pls-lnk:hover{border-bottom-color:var(--ink)}
  /* Карточка задачи: шаги и обсуждение */
  .vbt-subs{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}
  #vbt-body .vbt-sub,#vbt-drawer-body .vbt-sub,.vbt-sub{display:flex!important;align-items:center;gap:8px;font-size:14px;font-weight:400;padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin:0;text-transform:none;letter-spacing:normal;color:var(--ink)}
  .vbt-sub input[type=checkbox],.vbt-vis input[type=checkbox]{width:auto!important;min-width:0;flex:none;margin:0}
  .vbt-sub span{flex:1;min-width:0;width:auto}
  .vbt-sub .vb-del{margin-left:auto}
  .vbt-sub.is-done span{text-decoration:line-through;color:var(--muted)}
  .vbt-sub span{flex:1;min-width:0}
  .vbt-sub .vb-del{opacity:.4}
  .vbt-sub:hover .vb-del{opacity:.8}
  .vbt-cmts{display:flex;flex-direction:column;gap:8px;max-height:210px;overflow-y:auto;margin-bottom:8px}
  .vbt-cmt{font-size:14px;line-height:1.5;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px}
  .vbt-cmt-w{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px}
  .vb-marks{display:flex;gap:10px;font-size:11.5px;color:var(--muted);margin-top:5px;flex-wrap:wrap}
  .vb-prio{font-weight:500}
  /* Факты по клиенту в карточке */
  .crm-facts{display:flex;flex-direction:column;gap:8px;margin-top:14px}
  .crm-facts>div{display:flex;gap:12px;align-items:baseline;font-size:14px;line-height:1.5}
  .crm-facts .l{flex:0 0 150px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
  #vbt-body .pf-row,#vbt-drawer-body .pf-row{display:flex;gap:12px}
  #vbt-body .pf-row>.field,#vbt-drawer-body .pf-row>.field{flex:1;min-width:0}
  /* Поддержка */
  .sup-faq{margin-bottom:24px}
  .sup-grp{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-weight:600;margin:18px 0 4px}
  .sup-grp:first-child{margin-top:0}
  .sup-q{border-bottom:1px solid var(--line)}
  .sup-q summary{cursor:pointer;padding:12px 0;font-weight:500;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
  .sup-q summary::-webkit-details-marker{display:none}
  .sup-q summary::after{content:"+";color:var(--gold);font-size:20px;line-height:1;flex:none}
  .sup-q[open] summary::after{content:"\2212"}
  .sup-a{padding:0 0 14px;color:var(--muted);font-size:14px;line-height:1.6}
  .sup-contact{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}
  .sup-actions{display:flex;gap:10px;flex-wrap:wrap}
  .sup-crisis{border:1px solid var(--gold-line);border-radius:var(--radius);padding:16px 18px;background:rgba(168,137,92,.06)}
  .sup-crisis strong{display:block;margin-bottom:4px}
  .sup-crisis p{color:var(--muted);font-size:13.5px;margin:0 0 8px}
  .sup-crisis ul{margin:0;padding-left:18px;font-size:14px}
  .sup-crisis li{margin:2px 0}
  .ss-group{margin-top:14px}
  .ss-head{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-weight:600;margin:0 2px 8px}
  .ss-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);cursor:pointer;transition:background .15s}
  .ss-item:hover{background:var(--bg)}
  .ss-ava{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:14px;flex:none}
  .ss-ic{width:38px;height:38px;border-radius:var(--radius);background:var(--bg);display:grid;place-items:center;font-size:18px;flex:none}
  .ss-main{min-width:0}
  .ss-title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ss-sub{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Вопрос о согласии на рассылку тем, кто регистрировался раньше */
.cs-ask{display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  margin:0 0 22px;padding:16px 20px;border-radius:14px;
  background:var(--card);border:1px solid var(--line)}
.cs-ask-t{flex:1;min-width:220px}
.cs-ask-t strong{display:block;font-size:15px}
.cs-ask-t .sub{margin:4px 0 0;font-size:13px;line-height:1.45}
.cs-ask-a{display:flex;gap:10px;flex-shrink:0}
@media (max-width:560px){.cs-ask-a{width:100%}.cs-ask-a .btn{flex:1}}

/* ===== Короткие вертикальные видео ===== */
/* Визитка на карточке каталога */
.vcard-btn{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;
  font:600 12.5px/1 var(--sans);color:#fff;background:rgba(20,16,12,.62);
  border:1px solid rgba(255,255,255,.26);border-radius:100px;padding:7px 13px 7px 11px;
  cursor:pointer;backdrop-filter:blur(6px);transition:background .22s}
.vcard-btn:hover{background:rgba(20,16,12,.82)}
.vcard-tri{width:0;height:0;border-left:7px solid currentColor;
  border-top:4.5px solid transparent;border-bottom:4.5px solid transparent}
/* Визитка строкой в профиле */
.vcard-line{display:inline-flex;align-items:center;gap:8px;margin-top:10px;
  font:600 14px/1 var(--sans);color:var(--ink);background:none;cursor:pointer;
  border:1px solid var(--line-dark);border-radius:100px;padding:9px 18px 9px 15px;
  transition:border-color .25s}
.vcard-line:hover{border-color:var(--ink)}
/* Подборка вертикалок */
.sh-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
.sh-th{flex:0 0 auto;width:150px;background:none;border:none;padding:0;cursor:pointer;text-align:left;font-family:var(--sans)}
.sh-th-img{position:relative;display:block;width:150px;height:267px;border-radius:14px;overflow:hidden;
  background:#14100c;border:1px solid var(--line)}
.sh-th-img img,.sh-th-img video{width:100%;height:100%;object-fit:cover;display:block}
.sh-th-txt{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
  color:#c9bfae;font-size:13px}
.sh-th-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:46px;height:46px;border-radius:50%;background:rgba(20,16,12,.55);
  border:1px solid rgba(255,255,255,.3)}
.sh-th-play::after{content:"";position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);
  width:0;height:0;border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
.sh-th-cap{display:block;margin-top:8px;font-size:13.5px;line-height:1.3;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Смотрелка */
.sh-overlay.open{display:flex;align-items:center;justify-content:center;background:rgba(14,11,8,.93)}
.sh-stage{display:flex;align-items:center;justify-content:center}
.sh-box{position:relative;width:min(420px,92vw)}
.sh-video{width:100%;max-height:78vh;background:#000;border-radius:16px;display:block}
.sh-embed{width:100%}
.sh-embed .mp-frame{border-radius:16px;overflow:hidden}
.sh-title{font:600 16px/1.3 var(--sans)}
.sh-who{margin:3px 0 0;font-size:13px;color:#d6cdbd}
.sh-count{position:absolute;top:12px;right:14px;font:600 12px/1 var(--sans);color:#fff;
  background:rgba(0,0,0,.45);border-radius:100px;padding:5px 10px}
.sh-pip{position:absolute;top:18px;right:70px;height:40px;padding:0 16px;border-radius:999px;
  border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#f4f0e9;
  font:600 13px/1 var(--sans);cursor:pointer;z-index:3}
.sh-pip:hover{background:rgba(255,255,255,.2)}
.sh-pip[hidden]{display:none}
@media (max-width:760px){.sh-pip{top:12px;right:58px;height:34px;padding:0 12px;font-size:12px}}
.sh-close{position:absolute;top:18px;right:20px;width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.12);border:none;color:#fff;font-size:24px;line-height:1;cursor:pointer;z-index:2}
/* Стрелки стоят за пределами кадра, слева и справа от него. Раньше они
   лежали на видео и закрывали картинку, а до этого — по краям окна,
   и правую выдавливала панель комментариев. */
.sh-nav{flex:0 0 auto;width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.12);border:none;
  color:#fff;font-size:28px;line-height:1;cursor:pointer;backdrop-filter:blur(6px)}
.sh-nav:hover{background:rgba(255,255,255,.24)}
@media (max-width:760px){.sh-nav{display:none}.sh-close{top:12px;right:12px}}
/* Визитка в кабинете эксперта */
.vc-box{margin-bottom:22px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card)}
.vc-head h3{margin:0 0 4px}
.vc-head .sub{display:block;font-size:13px;line-height:1.45;margin-bottom:14px}
.vc-body{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.vc-th{position:relative;display:block;width:104px;height:185px;border-radius:12px;overflow:hidden;
  background:#14100c;border:1px solid var(--line);flex:0 0 auto}
.vc-th img,.vc-th video{width:100%;height:100%;object-fit:cover;display:block}
.vc-th--empty{display:flex;align-items:center;justify-content:center;color:#c9bfae;font-size:13px}
.vc-ctl{flex:1;min-width:240px}
.vc-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
video.pf-prev{max-width:220px;border-radius:10px;margin-top:10px;display:block}

/* Отклик кнопки на нажатие и на сохранение */
.btn--hit{animation:btnHit .26s var(--ease)}
@keyframes btnHit{0%{transform:scale(1)}38%{transform:scale(.955)}100%{transform:scale(1)}}
.btn--busy,.btn--done{pointer-events:none}
.btn--busy{opacity:.78}
.btn-spin{width:13px;height:13px;border-radius:50%;border:2px solid currentColor;
  border-top-color:transparent;animation:btnSpin .7s linear infinite;flex:0 0 auto}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.btn-tick{width:13px;height:13px;flex:0 0 auto;position:relative}
.btn-tick::after{content:"";position:absolute;left:3px;top:0;width:5px;height:10px;
  border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(42deg)}
/* Подтверждение — в палитре платформы: тёмная кнопка остаётся тёмной,
   меняется только надпись и галочка золотом. Зелёная таблетка здесь чужая. */
.btn--done{background:var(--ink);border-color:var(--ink);color:#f7f3ec}
.btn--done .btn-tick{color:var(--gold-light,#c7a878)}
.btn-ghost.btn--done{background:var(--card-hi,#f3efe8);color:var(--ink);border-color:var(--gold-line,rgba(168,137,92,.45))}
.btn-ghost.btn--done .btn-tick{color:var(--gold,#a8895c)}
@media (prefers-reduced-motion:reduce){
  .btn--hit{animation:none}
  .btn-spin{animation-duration:1.6s}
}

/* ===== Фото эксперта: кадрирование в едином формате ===== */
.ph-body{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.ph-now{flex:0 0 auto;width:132px}
.ph-now-t{font:600 11px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ph-card{display:block;width:132px;aspect-ratio:4/5;object-fit:cover;border-radius:12px;
  border:1px solid var(--line);background:var(--bg)}
.ph-ava{display:block;width:52px;height:52px;border-radius:50%;object-fit:cover;margin-top:10px;
  border:1px solid var(--line);background:var(--bg)}
.ph-cap{margin-top:8px;font-size:12px;line-height:1.35;color:var(--muted)}
.ph-ctl{flex:1;min-width:260px}
.ph-stage{position:relative;width:260px;max-width:100%;margin-top:14px}
#ph-canvas{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line);
  background:var(--bg);cursor:grab;touch-action:none}
#ph-canvas:active{cursor:grabbing}
/* Овал-подсказка: куда ставить голову. Он только показывает, в картинку не попадает. */
.ph-guide{position:absolute;left:50%;top:7%;width:46%;height:40%;transform:translateX(-50%);
  border:1.5px dashed rgba(255,255,255,.72);border-radius:50%;pointer-events:none;
  box-shadow:0 0 0 1px rgba(24,22,15,.18)}
.ph-zoom{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:13.5px;color:var(--muted)}
.ph-zoom input{flex:1;max-width:220px}
@media (max-width:560px){.ph-stage{width:100%}.ph-now{width:104px}.ph-card{width:104px}}

/* Кнопка на видео, обсуждение и действия в смотрелке */
.sh-player{position:relative}
.sh-cta{display:inline-flex;margin-top:12px;white-space:nowrap;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;text-decoration:none;
  box-shadow:0 10px 26px -12px rgba(0,0,0,.8)}
.sh-acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.sh-comments{margin-top:16px;max-height:40vh;overflow-y:auto;background:var(--paper);
  border-radius:14px;padding:16px 18px}
@media (max-width:760px){.sh-cta{bottom:50px}.sh-comments{max-height:46vh}}

/* ===== Смотрелка коротких видео =====
   Имя автора лежит сверху на кадре и ведёт в профиль, подпись и кнопка-ссылка —
   снизу на кадре, комментарии открыты панелью справа. На телефоне панель
   выезжает снизу по кнопке. */
/* Ширину задаёт содержимое: кадр, соседи и панель. Жёсткая ширина здесь
   раньше сдвигала всю смотрелку вправо — она не была по центру экрана. */
.sh-box{display:flex;align-items:flex-start;gap:0;width:auto;max-width:100%}
/* Лента: соседние ролики по краям и стрелки за пределами кадра.
   Внутри кадра стрелки закрывали картинку и спорили с панелью плеера. */
.sh-reel{display:flex;align-items:center;gap:12px;flex:0 0 auto}
/* Кадр и панель комментариев — один блок: соседи и стрелки стоят вокруг него */
.sh-main{display:flex;align-items:flex-start;flex:0 0 auto}
.sh-player{position:relative;border-radius:16px;overflow:hidden;flex:0 0 auto;
  background:#000;line-height:0;display:flex;align-items:center;justify-content:center}
.sh-box.has-side .sh-player{border-radius:16px 0 0 16px}
.sh-peek{flex:0 0 auto;width:104px;height:185px;padding:0;border:none;border-radius:12px;
  overflow:hidden;background:#000;opacity:.42;cursor:pointer;line-height:0;
  transition:opacity .2s var(--ease),transform .2s var(--ease)}
.sh-peek:hover{opacity:.85;transform:scale(1.04)}
.sh-peek img,.sh-peek video{width:100%;height:100%;object-fit:cover;display:block}
.sh-peek .sh-th-txt{width:100%;height:100%;display:grid;place-items:center;
  color:#cfc6b7;font:500 12px/1.3 var(--sans)}
/* Соседей показываем, только если им есть место: с панелью комментариев
   ряд шире, поэтому порог выше. Иначе лента полезла бы за край экрана. */
@media (max-width:1400px){.sh-box.has-side .sh-peek{display:none}}
@media (max-width:980px){.sh-peek{display:none}}
/* Рамка повторяет пропорции ролика — чёрных полос по краям быть не должно. */
.sh-video{display:block;width:auto;height:auto;max-width:min(430px,92vw);max-height:78vh;background:#000}
.sh-embed{width:min(430px,92vw)}
/* Автор */
.sh-head{position:absolute;left:0;right:0;top:0;padding:14px 16px 40px;line-height:1.3;
  background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent)}
.sh-author{display:inline-flex;align-items:center;gap:9px;background:none;border:none;
  padding:0;cursor:pointer;color:#fff;font:600 14.5px/1.2 var(--sans);
  text-shadow:0 1px 6px rgba(0,0,0,.6)}
.sh-author img{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none;
  border:1.5px solid rgba(255,255,255,.75)}
.sh-author:hover span{text-decoration:underline;text-underline-offset:3px}
.sh-role{margin:4px 0 0 41px;font:400 12px/1.3 var(--sans);color:rgba(255,255,255,.82);
  max-width:78%;text-shadow:0 1px 6px rgba(0,0,0,.6);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Подпись и кнопка */
.sh-over{position:absolute;left:0;right:0;bottom:0;padding:48px 16px 64px;color:#fff;
  background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,.36) 44%,transparent);
  pointer-events:none;line-height:1.35}
.sh-title{margin:6px 0 0 41px;font:400 13.5px/1.35 var(--sans);color:rgba(255,255,255,.9);
  text-shadow:0 1px 6px rgba(0,0,0,.6);max-width:78%;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;pointer-events:auto}
.sh-prof{white-space:nowrap}
.sh-cta{display:inline-flex;white-space:nowrap;max-width:100%;overflow:hidden;
  text-overflow:ellipsis;text-decoration:none;box-shadow:0 10px 26px -12px rgba(0,0,0,.85)}
.sh-count{position:absolute;top:14px;right:16px;font:600 12px/1 var(--sans);color:#fff;
  background:rgba(0,0,0,.45);border-radius:100px;padding:5px 10px;line-height:1}
/* Панель комментариев. Тёмная, как сама смотрелка: белое полотно рядом
   с видео било по глазам и перетягивало внимание с кадра. */
.sh-side{flex:0 0 352px;width:352px;align-self:stretch;max-height:78vh;display:flex;flex-direction:column;
  background:#16130f;color:#ece5d9;border-radius:0 16px 16px 0;padding:18px 20px 16px;overflow:hidden}
.sh-cm-h{display:flex;align-items:center;justify-content:space-between;
  font:600 12px/1 var(--sans);letter-spacing:.07em;text-transform:uppercase;
  color:rgba(236,229,217,.6);margin-bottom:14px;flex:none}
.sh-cm-x{display:none;background:none;border:none;font-size:24px;line-height:1;
  color:rgba(236,229,217,.7);cursor:pointer;padding:0 2px}
.sh-side .pm-comments{flex:1;min-height:0;overflow-y:auto;border-top-color:rgba(255,255,255,.12)}
.sh-side .pm-comments .sub,.sh-side .cmt-who,.sh-side .cmt-when{color:rgba(236,229,217,.55)}
.sh-side .cmt-text,.sh-side .pm-comments p{color:#ece5d9}
.sh-side input,.sh-side textarea{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.18);color:#ece5d9}
.sh-side input::placeholder,.sh-side textarea::placeholder{color:rgba(236,229,217,.45)}
.sh-side .btn-ghost{border-color:rgba(255,255,255,.24);color:#ece5d9}
.sh-side .btn-ghost:hover{background:rgba(255,255,255,.1)}
.sh-only-mob{display:none}
@media (max-width:980px){
  .sh-box{flex-direction:column}
  .sh-box.has-side .sh-player{border-radius:16px}
  .sh-only-mob{display:flex;position:absolute;right:10px;bottom:76px;
    flex-direction:column;align-items:center;gap:5px;width:56px;background:none;
    border:none;cursor:pointer;color:#fff;font:500 11.5px/1 var(--sans);
    text-shadow:0 1px 6px rgba(0,0,0,.6)}
  .sh-only-mob .sh-ic{width:42px;height:42px;border-radius:50%;background:rgba(20,16,12,.52);
    border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;backdrop-filter:blur(6px)}
  .sh-only-mob.on .sh-ic{background:rgba(20,16,12,.82)}
  .sh-ic-talk::after{content:"";width:17px;height:14px;border:2px solid #fff;border-radius:4px;
    box-shadow:-3px 7px 0 -5px #fff}
  .sh-side{position:fixed;left:0;right:0;bottom:0;width:auto;flex-basis:auto;
    max-height:64vh;border-radius:18px 18px 0 0;transform:translateY(102%);
    transition:transform .28s var(--ease);z-index:3;box-shadow:0 -18px 44px -20px rgba(0,0,0,.6)}
  .sh-side.open{transform:none}
  .sh-cm-x{display:block}
}

/* ===== Мини-плеер: видео продолжает идти при переходе на другую страницу ===== */
#miniplayer{position:fixed;right:20px;bottom:20px;z-index:120;width:248px;
  background:#14100c;border-radius:14px;overflow:hidden;
  box-shadow:0 26px 60px -22px rgba(0,0,0,.75);border:1px solid rgba(255,255,255,.12)}
#miniplayer[hidden]{display:none}
.mp-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:7px 8px 7px 10px;background:rgba(255,255,255,.06)}
.mp-btn{background:none;border:none;color:#e8e1d5;cursor:pointer;font-family:var(--sans)}
.mp-back{font:600 12px/1 var(--sans);letter-spacing:.02em}
.mp-back:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.mp-close{font-size:20px;line-height:1;padding:0 4px}
.mp-slot video{display:block;width:100%;height:auto;max-height:280px;background:#000}
.mp-cap{padding:8px 10px 10px;color:#cfc6b7;font:400 12px/1.35 var(--sans)}
.mp-who{display:block;background:none;border:none;padding:0;cursor:pointer;
  color:#fff;font:600 12.5px/1.3 var(--sans);text-align:left}
.mp-who:hover{text-decoration:underline;text-underline-offset:3px}
.mp-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mp-acts .btn{padding:6px 12px;font-size:12px}
/* Отдельное окно картинки-в-картинке: уголок занимает его целиком.
   Кадр тянется по остатку высоты, имя и кнопки всегда видны снизу. */
.pip-body{margin:0;background:#15130f;overflow:hidden}
.pip-body #miniplayer{position:static;width:100%;height:100vh;right:auto;bottom:auto;
  display:flex;flex-direction:column;border:0;border-radius:0;box-shadow:none}
.pip-body .mp-slot{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}
.pip-body .mp-slot video{width:100%;height:100%;max-height:none;object-fit:contain}
.pip-body .mp-cap{flex:0 0 auto}
.mp-ttl{display:block;margin-top:2px;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:560px){
  #miniplayer{right:10px;left:auto;bottom:10px;width:172px}
  .mp-slot video{max-height:210px}
}

/* ===== Мастер знакомства =====
   Окно поверх кабинета, а не отдельная дорога: «Закрыть» на месте всегда,
   ответы сохраняются на каждом шаге, вернуться можно с того же места. */
  body.su-lock{overflow:hidden}
  .su-ov{position:fixed;inset:0;z-index:2200;background:rgba(24,22,15,.52);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    display:flex;align-items:center;justify-content:center;padding:28px 16px;
    animation:fade .35s var(--ease)}
  .su-card{position:relative;width:min(680px,100%);max-height:calc(100vh - 56px);
    overflow:auto;background:var(--paper);border:1px solid var(--line);
    border-radius:var(--r-hero);box-shadow:var(--shadow);padding:38px 40px 30px}
  .su-x{position:absolute;top:16px;right:18px;background:transparent;border:0;
    font-family:var(--sans);font-size:12px;letter-spacing:.04em;color:var(--muted);
    cursor:pointer;padding:8px 10px;border-radius:var(--r-pill);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}
  .su-x:hover{color:var(--ink);background:var(--bg)}
  .su-prog{display:flex;gap:6px;margin:4px 0 26px;padding-right:90px}
  .su-prog i{flex:1;height:3px;border-radius:2px;background:var(--line-soft);transition:background var(--dur) var(--ease)}
  .su-prog i.done{background:var(--gold)}
  .su-prog i.now{background:var(--ink)}
  .su-t{font-family:var(--serif);font-size:34px;font-weight:500;line-height:1.1;letter-spacing:-.01em}
  .su-s{color:var(--muted);font-size:15px;line-height:1.55;margin-top:12px;max-width:52ch}
  .su-body{padding-bottom:6px}
  .su-field{margin-top:22px;flex:1;min-width:0}
  .su-field label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--muted);margin-bottom:9px}
  .su-field input,.su-field select,.su-sub-in{width:100%;font-family:var(--sans);font-size:15px;
    color:var(--ink);background:var(--card-hi);border:1px solid var(--line);
    border-radius:var(--radius);padding:13px 15px;transition:border-color var(--dur) var(--ease)}
  .su-field select{padding-right:34px}
  .su-field input:focus,.su-field select:focus,.su-sub-in:focus{outline:none;border-color:var(--ink)}
  .su-row{display:flex;gap:16px;align-items:flex-end}
  .su-first-row{margin-top:14px}
  .su-money{position:relative}
  .su-money span{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
  .su-money input{padding-right:34px}
  /* Браузерные стрелки числового поля упирались в обводку и в знак рубля.
     Убираем их: поле набирается с клавиатуры, стрелки тут ничего не дают. */
  .su-money input::-webkit-outer-spin-button,
  .su-money input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}
  .su-money input[type=number]{-moz-appearance:textfield;appearance:textfield}
  .su-sub-in{margin-top:10px;font-size:14px}
  .su-chips{display:flex;flex-wrap:wrap;gap:8px}
  .su-chip{font-family:var(--sans);font-size:14px;color:var(--text);background:transparent;
    border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:9px 16px;cursor:pointer;
    transition:all var(--dur) var(--ease)}
  .su-chip:hover{border-color:var(--ink);color:var(--ink)}
  .su-chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
  .su-opts{display:flex;flex-wrap:wrap;gap:10px}
  .su-opts--col{flex-direction:column;margin-top:24px}
  .su-opt{display:block;text-align:left;font-family:var(--sans);font-size:15px;font-weight:500;
    color:var(--ink);background:var(--card-hi);border:1px solid var(--line);
    border-radius:var(--radius);padding:15px 18px;cursor:pointer;
    transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
  .su-opt span{display:block;font-size:13px;font-weight:400;color:var(--muted);
    line-height:1.5;margin-top:5px}
  .su-opt:hover{border-color:var(--line-dark)}
  .su-opt.on{border-color:var(--ink);background:var(--bg);box-shadow:inset 0 0 0 1px var(--ink)}
  .su-wd{display:flex;flex-wrap:wrap;gap:8px}
  .su-wdb{width:52px;font-family:var(--sans);font-size:14px;color:var(--text);background:transparent;
    border:1px solid var(--line-dark);border-radius:var(--radius);padding:11px 0;cursor:pointer;
    transition:all var(--dur) var(--ease)}
  .su-wdb:hover{border-color:var(--ink)}
  .su-wdb.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
  .su-plan{list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:2px}
  .su-plan li{position:relative;padding:11px 0 11px 26px;font-size:15px;line-height:1.55;color:var(--text)}
  .su-plan li+li{border-top:1px solid var(--line-soft)}
  .su-plan li::before{content:"";position:absolute;left:4px;top:19px;width:6px;height:6px;
    border-radius:50%;background:var(--gold)}
  .su-log{margin-top:24px;min-height:120px;display:flex;flex-direction:column;gap:2px}
  .su-line{display:flex;gap:12px;align-items:flex-start;padding:10px 0;font-size:15px;
    line-height:1.5;color:var(--text);animation:fade .3s var(--ease)}
  .su-line+.su-line{border-top:1px solid var(--line-soft)}
  .su-tick{flex:0 0 auto;color:var(--gold);font-size:13px;line-height:1.7}
  .su-wait{margin-top:18px;color:var(--muted);font-size:14px}
  .su-err{margin-top:18px;color:#a4443a;font-size:15px}
  .su-done{margin-top:24px;display:flex;flex-direction:column;gap:2px}
  .su-done-i{display:flex;gap:12px;align-items:baseline;width:100%;text-align:left;
    background:transparent;border:0;border-radius:var(--radius);cursor:pointer;
    padding:13px 14px;font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--text);
    transition:background var(--dur) var(--ease)}
  .su-done-i:hover{background:var(--bg)}
  .su-done-i:hover .su-done-go{color:var(--ink)}
  .su-done-t{flex:1;min-width:0}
  .su-done-go{flex:0 0 auto;font-size:13px;color:var(--muted);white-space:nowrap;
    transition:color var(--dur) var(--ease)}
  .su-fc{margin-top:28px;padding:24px;background:var(--bg);border:1px solid var(--line-soft);
    border-radius:var(--radius-lg)}
  .su-fc h4{font-family:var(--serif);font-size:22px;font-weight:500}
  .su-fc-s{color:var(--muted);font-size:14px;line-height:1.55;margin-top:8px;max-width:56ch}
  .su-fc .su-field:first-of-type{margin-top:16px}
  .su-fc .btn{margin-top:18px}
  .su-fc-ok{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:var(--text)}
  .su-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;
    margin-top:30px;padding-top:22px;border-top:1px solid var(--line-soft)}
  .su-foot .btn:only-child{margin-left:auto}
  .su-foot .btn:disabled{opacity:.35;cursor:default}
  .su-foot .btn:disabled:hover{background:var(--ink)}
  .td-setup{margin-top:26px;font-size:14px}
  .td-setup a{border-bottom:1px solid var(--gold-line)}
  .td-setup a:hover{border-bottom-color:var(--ink)}
  @media (max-width:640px){
    .su-ov{padding:0;align-items:stretch}
    .su-card{max-height:100vh;border-radius:0;border:0;padding:30px 20px 24px;width:100%}
    .su-t{font-size:27px}
    .su-row{flex-direction:column;gap:0;align-items:stretch}
    .su-prog{padding-right:80px}
    .su-done-i{flex-wrap:wrap}
    .su-done-go{width:100%;padding-left:24px}
  }

/* ===== Группы, вебинары, марафоны =====
   Список групп — не таблица, а карточки с цифрами, которые эксперт спрашивает
   у себя сам: сколько записалось, сколько заплатило, сколько дошло. */
  .g-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;margin-top:4px}
  .g-i{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
    padding:22px 24px;cursor:pointer;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
  .g-i:hover{border-color:var(--line-dark);box-shadow:var(--sh-card-hover)}
  .g-i-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
  .g-i h4{font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.2}
  .g-i-sub{color:var(--muted);font-size:13px;margin-top:6px}
  .g-seat{flex:0 0 auto;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
    color:var(--muted);border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:5px 11px;white-space:nowrap}
  .g-nums{display:flex;gap:22px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}
  .g-n{display:flex;flex-direction:column;gap:2px}
  .g-n b{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1}
  .g-n span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .g-n.accent b{color:var(--gold)}
  .g-bar{align-items:center}
  .g-back{background:transparent;border:0;font-family:var(--sans);font-size:14px;color:var(--muted);
    cursor:pointer;padding:6px 0;transition:color var(--dur) var(--ease)}
  .g-back:hover{color:var(--ink)}
  .g-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding-left:4px}
  .g-title b{font-size:16px;font-weight:600}
  .g-title .sub{font-size:13px}
  .g-acts{display:flex;gap:10px;flex-wrap:wrap}
  .g-row{display:flex;gap:14px}
  .g-row .field{flex:1;min-width:0}
  .g-modal-body h3{font-family:var(--serif);font-size:26px;font-weight:500;margin-bottom:16px}
  .g-modal-body .modal-acts{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
  @media (max-width:640px){
    .g-list{grid-template-columns:1fr}
    .g-nums{gap:16px}
    .g-n b{font-size:20px}
    .g-row{flex-direction:column;gap:0}
    .g-bar{flex-wrap:wrap}
    .g-title{width:100%;padding-left:0;order:3}
  }
  .g-inv{display:block;width:100%;margin-top:10px;font-family:var(--sans);font-size:12px;
    color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:var(--r-pill);
    padding:7px 10px;cursor:pointer;transition:all var(--dur) var(--ease)}
  .g-inv:hover{border-color:var(--ink);color:var(--ink)}
  .g-inv:disabled{opacity:.6;cursor:default;border-color:var(--line-soft)}

/* Экран дня: задачи вёдрами по срочности, а не списком с датами. */
  .td-buckets{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
  .td-b{min-width:0}
  .td-b-h{display:flex;align-items:center;justify-content:space-between;gap:8px;
    font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
    padding-bottom:9px;margin-bottom:4px;border-bottom:2px solid var(--line-soft)}
  .td-b-h span{font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:0;
    text-transform:none;color:var(--ink)}
  .td-b.late .td-b-h{border-bottom-color:#c0705f;color:#a4553f}
  .td-b.now .td-b-h{border-bottom-color:var(--gold)}
  .td-b.soft .td-b-h{border-bottom-color:var(--line-dark)}
  @media (max-width:640px){ .td-buckets{grid-template-columns:1fr;gap:22px} }
  .tabs-pick{display:flex;flex-wrap:wrap;gap:10px 22px;margin:16px 0 4px}
  .tabs-i{display:flex;align-items:center;gap:9px;font-size:15px;color:var(--text);cursor:pointer}
  .tabs-i input{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}
  .tabs-note{margin:10px 0 16px;font-size:13px}
  .ret-box{margin-top:22px}
  .ret-list li{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr) minmax(0,1.4fr);
    gap:14px;align-items:baseline}
  .ret-why{color:var(--text);font-size:14px}
  .ret-last{color:var(--muted);font-size:13px}
  .ret-list li.link{cursor:pointer}
  .ret-list li.link:hover .reg-who{color:var(--gold)}
  @media (max-width:760px){
    .ret-list li{grid-template-columns:1fr;gap:4px}
  }

/* ===== Моя страница — редактор =====
   Всё, из чего состоит публичная страница, в одном месте: тексты слева,
   фото и видео-визитка справа, рядом кнопка посмотреть результат. */
  .mp-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start}
  .mp-main-col{min-width:0;display:flex;flex-direction:column;gap:18px}
  .mp-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
    padding:26px 28px}
  .mp-h{font-family:var(--serif);font-size:22px;font-weight:500;margin-bottom:4px}
  .mp-hint{display:block;font-size:13px;line-height:1.5;margin:6px 0 2px}
  .mp-card .field{margin-top:16px}
  .mp-card .field label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;
    text-transform:uppercase;color:var(--muted);margin-bottom:8px}
  .mp-card input,.mp-card textarea{width:100%;font-family:var(--sans);font-size:15px;color:var(--ink);
    background:var(--card-hi);border:1px solid var(--line);border-radius:var(--radius);
    padding:13px 15px;line-height:1.55;transition:border-color var(--dur) var(--ease)}
  .mp-card textarea{resize:vertical;min-height:64px}
  .mp-card input:focus,.mp-card textarea:focus{outline:none;border-color:var(--ink)}
  .mp-row{display:flex;gap:16px}
  .mp-row .field{flex:1;min-width:0}
  .mp-row .mp-exp{flex:0 0 130px}
  .mp-card .su-chips{margin-bottom:0}
  .mp-save{display:flex;align-items:center;gap:16px;padding-top:4px}
  .mp-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:18px;min-width:0}
  .mp-see{width:100%}
  @media (max-width:1100px){
    .mp-grid{grid-template-columns:minmax(0,1fr)}
    .mp-side{position:static;flex-direction:row;flex-wrap:wrap}
    .mp-side .vc-box{flex:1 1 300px}
    .mp-see{width:auto}
  }
  @media (max-width:640px){
    .mp-card{padding:20px 18px}
    .mp-row{flex-direction:column;gap:0}
    .mp-row .mp-exp{flex:1}
    .mp-side{flex-direction:column}
    .mp-side .vc-box{flex:1 1 auto;min-width:0}
  }

/* ===== Создание публикации: формат плитками, свои кнопки файлов =====
   Вертикальное видео — самый ходовой формат у эксперта, оно не должно
   лежать галочкой в конце формы. Формат выбирается первым движением. */
  .pf-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .pf-k{display:flex;flex-direction:column;gap:2px;text-align:left;font-family:var(--sans);
    background:var(--card-hi);border:1px solid var(--line);border-radius:var(--radius);
    padding:13px 15px;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
  .pf-k:hover{border-color:var(--line-dark)}
  .pf-k.on{border-color:var(--ink);background:var(--bg);box-shadow:inset 0 0 0 1px var(--ink)}
  .pf-k-i{font-size:16px;line-height:1;color:var(--gold);margin-bottom:5px}
  .pf-k-t{font-size:14.5px;font-weight:600;color:var(--ink)}
  .pf-k-s{font-size:12.5px;color:var(--muted);line-height:1.4}
  .pf-hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
  .pf-file-btn{font-family:var(--sans);font-size:13.5px;color:var(--ink);background:transparent;
    border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:9px 18px;cursor:pointer;
    transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);white-space:nowrap}
  .pf-file-btn:hover{border-color:var(--ink);background:var(--bg)}
  .pf-file-name{font-size:13px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pf-note{font-size:13px;line-height:1.5;margin:0 0 8px}
  @media (max-width:640px){
    .pf-kinds{grid-template-columns:1fr}
  }
  .pf-k-i svg{display:block}
  .post-form .sub{font-size:13px;line-height:1.5;display:block}
  .post-form .pf-upload+.sub{margin-top:8px}

/* ===== Куда делись люди — цифры воронки =====
   Важно не число, а место обрыва: где полоска резко короче предыдущей,
   там эксперта и перестают смотреть. */
  .fn-st{margin-top:30px;padding-top:24px;border-top:1px solid var(--line-soft)}
  .fn-walk{margin-top:14px}
  .fn-bar{margin-top:14px}
  .fn-bar-h{display:flex;align-items:baseline;gap:10px;font-size:14px;color:var(--text);margin-bottom:6px}
  .fn-bar-h span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .fn-bar-h b{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--ink)}
  .fn-bar-h em{font-style:normal;font-size:12.5px;color:var(--muted);min-width:38px;text-align:right}
  .fn-bar-l{height:8px;border-radius:4px;background:var(--line-soft);overflow:hidden}
  .fn-bar-l i{display:block;height:100%;border-radius:4px;background:var(--ink);
    transition:width var(--dur-slow) var(--ease)}
  .fn-bar.soft .fn-bar-h{color:var(--muted)}
  .fn-bar.soft .fn-bar-l i{background:var(--line-dark)}
  .fn-bar.win .fn-bar-l i{background:var(--gold)}
  .fn-bar.win .fn-bar-h b{color:var(--gold)}
  .fn-st-foot{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:22px;padding-top:16px;
    border-top:1px solid var(--line-soft);font-size:13.5px;color:var(--muted)}
  .pay-second{margin-top:10px}
  /* Скрытое поле файла не должно растягивать страницу: оно лежит вне потока,
     а более поздние правила вроде .mp-card input задавали ему ширину 100%. */
  input.pf-hidden-file{position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;border:0!important;opacity:0;pointer-events:none;overflow:hidden;
    clip:rect(0 0 0 0);clip-path:inset(50%)}
  @media (max-width:640px){
    /* Узкая колонка: блоки фото и визитки не должны распирать страницу. */
    .ph-ctl{min-width:0}
    .pf-upload{row-gap:8px}
    .pf-file-name{white-space:normal;word-break:break-word}
  }
  /* Длинная надпись кнопки не должна распирать колонку: у .btn стоит
     white-space:nowrap, а фраза в ней длиннее телефонного экрана. */
  .mp-see{white-space:normal;text-align:center;line-height:1.4;padding-top:14px;padding-bottom:14px}

/* ===== Выпадающие списки: своя стрелка, с отступом от обводки =====
   Родная стрелка браузера прижата вплотную к правой границе поля и
   padding-right её не двигает — она рисуется поверх. Поэтому родную
   убираем совсем и рисуем свою, с воздухом от края. Правило общее
   на всю платформу: так ведут себя все списки, а не один экран. */
  select{
    -webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
    background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23746f63' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat:no-repeat!important;
    background-position:right 15px center!important;
    background-size:11px 7px!important;
    padding-right:40px!important;
  }
  select::-ms-expand{display:none}
  /* Мелкие списки внутри плотных блоков — стрелка ближе, но не вплотную. */
  .crm-add select,.vb-client select,.struct-pick select{
    background-position:right 11px center!important;padding-right:32px!important}

/* ===== Обратная связь после встречи и управление отзывами ===== */
.fb-form{max-width:640px;margin:0 auto;padding:0 2px}
.fb-q{margin-bottom:26px}
.fb-q-l{font-size:16px;font-weight:500;margin-bottom:12px;color:var(--ink)}
.fb-sc{display:flex;gap:6px;flex-wrap:wrap}
.fb-n{flex:1 1 0;min-width:40px;padding:12px 0;border:1px solid var(--line-dark);background:var(--card-hi);
  border-radius:var(--radius);font-size:15px;color:var(--ink);cursor:pointer;transition:.2s var(--ease)}
.fb-n:hover{border-color:var(--ink)}
.fb-n.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.fb-ends{display:flex;justify-content:space-between;margin-top:7px;font-size:12.5px;color:var(--muted)}
.fb-opts{display:flex;gap:8px;flex-wrap:wrap}
.fb-o{padding:11px 18px;border:1px solid var(--line-dark);background:var(--card-hi);border-radius:100px;
  font-size:14px;color:var(--ink);cursor:pointer;transition:.2s var(--ease)}
.fb-o:hover{border-color:var(--ink)}
.fb-o.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
@media(max-width:560px){.fb-n{min-width:0;padding:10px 0;font-size:14px}}

.fbs{display:grid;grid-template-columns:minmax(0,1fr) 120px 78px;gap:12px;align-items:center;margin-bottom:10px}
.fbs-l{font-size:14px;color:var(--text);min-width:0}
.fbs-bar{height:6px;border-radius:999px;background:var(--line-soft);overflow:hidden}
.fbs-bar i{display:block;height:100%;background:var(--gold)}
.fbs-v{font-size:15px;font-weight:600;text-align:right;white-space:nowrap}
.fbs-v small{font-weight:400;color:var(--muted);font-size:12px}
.fb-went{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.fb-w{display:inline-block;font-size:13px;color:var(--text);border:1px solid var(--line-dark);
  border-radius:100px;padding:5px 12px;margin:6px 6px 0 0}
.fb-t{margin-top:12px;padding-left:12px;border-left:2px solid var(--line-dark)}
.fb-t p{font-size:14.5px;color:var(--text);margin-top:3px}
@media(max-width:620px){.fbs{grid-template-columns:minmax(0,1fr) 70px}.fbs-bar{display:none}}

.mr-head{font-size:13px;color:var(--muted);margin-bottom:10px}
.mr{border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px;background:var(--card-hi)}
.mr-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.mr-stars{color:var(--gold);font-size:13px;letter-spacing:.06em}
.mr-date{font-size:12.5px;color:var(--muted)}
.mr-sw{margin-left:auto;font-size:13px;color:var(--text);display:inline-flex;align-items:center;gap:7px;cursor:pointer}
.mr-text{font-size:14.5px;color:var(--text);margin-bottom:8px}
.mr-adds{font-size:12.5px;margin-bottom:8px}
.mr-case-have{border-left:2px solid var(--gold-line);padding-left:11px;margin:8px 0}
.mr-case-have p{font-size:14px;color:var(--text);margin-top:2px}
.mr-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}

.rvc-add,.rvc-case{margin-top:11px;padding-left:12px;border-left:2px solid var(--line-dark)}
.rvc-case{border-left-color:var(--gold-line)}
.rvc-add-k{display:block;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.rvc-add p,.rvc-case p{font-size:14.5px;color:var(--text);margin-top:3px}
.rvc-case-h{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:8px}

/* ===== Доска ведения: правки по задачам Павла от 10.10 ===== */
.qcap textarea{flex:1;max-width:560px;font-family:var(--sans);font-size:14px;line-height:1.45;padding:11px 14px;
  border:1px solid var(--line-dark);border-radius:var(--radius);background:var(--card-hi);color:var(--ink);
  resize:none;overflow:hidden;min-height:44px}
.qcap textarea:focus{outline:none;border-color:var(--ink)}
@media (max-width:640px){.qcap textarea{max-width:none;flex:1 0 100%}}
/* название на карточке — не больше трёх строк, всё остальное внутри */
.vb-task .vb-task-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.vb-task .vb-task-title.vb-editing{display:block;-webkit-line-clamp:unset;overflow:visible}
.vb-task{position:relative}
.vb-tren{position:absolute;top:6px;right:6px;width:26px;height:26px;border:none;border-radius:6px;background:transparent;
  color:var(--muted);font-size:14px;cursor:pointer;opacity:0;transition:opacity .15s}
.vb-task:hover .vb-tren{opacity:1}
.vb-tren:hover{background:rgba(24,22,15,.06);color:var(--ink)}
@media (hover:none){.vb-tren{opacity:.6}}
.vb-editing{outline:none;background:#fff;border-radius:4px;box-shadow:0 0 0 2px var(--ink);padding:1px 3px;cursor:text}
/* проекты: перетаскивание */
.vb-pcard.dragging{opacity:.45}
.vb-pcard.drop-before{box-shadow:0 -3px 0 var(--ink)}
.vb-pcard.drop-after{box-shadow:0 3px 0 var(--ink)}
/* фильтр по проекту — одна плашка с выпадающим списком */
.vb-filters{position:relative}
.vb-caret{font-size:10px;color:var(--muted);margin-left:2px}
.vb-pmenu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;display:flex;flex-wrap:wrap;gap:7px;
  max-width:min(560px,92vw);padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 18px 40px -22px rgba(24,22,15,.45)}
.vb-pmenu[hidden]{display:none}
.vb-arch-del{color:#9a3b2f}
/* подпись под отзывом: имя с фото, имя с буквой или без имени */
.rv-sign{margin:4px 0 18px}
.rv-sign-l{display:block;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.rv-sign-opts{display:flex;gap:8px;flex-wrap:wrap}
.rv-ph{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.rv-ph img,.rv-ph-0{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none}
.rv-ph-0{display:inline-flex;align-items:center;justify-content:center;background:var(--line-soft);color:var(--muted);font-weight:600}
.rvc-who{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.rvc-about{font-size:12.5px;color:var(--muted)}
/* файл тащат мышью — подсвечиваем, куда он ляжет */
.drop-on{outline:2px dashed var(--gold);outline-offset:6px;border-radius:var(--radius);background:rgba(168,137,92,.06)}
/* личная ссылка */
.ref-line{margin-top:14px}
.ref-l{font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.ref-row{display:flex;gap:8px;align-items:center}
.ref-url{flex:1;min-width:0;font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid var(--line-dark);
  border-radius:var(--radius);background:var(--card-hi);color:var(--ink)}
.ref-hint{font-size:13px;margin-top:6px}
.ref-stats{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px;font-size:14px;color:var(--text)}
.ref-stats b{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--ink);margin-right:3px}
.ref-people{margin-top:10px}
.ref-opts{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:560px){.ref-row{flex-wrap:wrap}.ref-row .btn{width:100%}}

/* Как проходит первая сессия */
.fsa-steps{list-style:none;display:grid;gap:10px;margin:14px 0}
.fsa-steps li{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;padding:14px 16px;border-radius:14px;background:var(--paper);border:1px solid var(--line)}
.fsa-n{width:32px;height:32px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.fsa-steps b{display:block;font-size:15.5px;margin-top:5px}
.fsa-steps p{margin:4px 0 0;font-size:14.5px;line-height:1.55;color:var(--muted)}
.fsa-p{font-size:15px;line-height:1.6;margin:10px 0}
.fsa-c{gap:6px;margin:10px 0}
.fsa-c li{grid-template-columns:28px 1fr;gap:10px;padding:10px 12px}
.fsa-c .fsa-n{width:26px;height:26px;border-radius:8px;font-size:12.5px}
.fsa-c b{font-size:14px;margin-top:3px}.fsa-c p{font-size:13.5px}
.fsa-box{margin:0 0 16px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fff}
.fsa-box summary{cursor:pointer;font-weight:700;font-size:14.5px}
.fsa-after{margin:4px 0 8px;text-align:left}
.fsa-after h4{font-size:15px;margin:0 0 4px}
