    .natal-shell .natal-hero-v2{
      --nk-blue:#264D7E; --nk-blue-deep:#0E2440;
      --nk-cta:#2C6CB0;  --nk-cta-d:#1E4F84;
      --nk-line:#E8E4DA; --nk-tint:#FBFAF6; --nk-ink:#26241F; --nk-ink-soft:#4A4740;
      --nk-muted:#86827A; --nk-faint:#AEA99D;
      --nk-shadow-lg:0 2px 4px rgba(38,36,31,.04),0 24px 60px -28px rgba(38,36,31,.32);
      --nk-shadow:0 1px 2px rgba(38,36,31,.06),0 10px 24px -16px rgba(38,36,31,.20);
      --nk-display:"Forum",Georgia,serif;
      --nk-sans:"Manrope",-apple-system,BlinkMacSystemFont,sans-serif;
      display:block;
      /* ширина наследуется от .natal-wrap (144rem + wrapper-offset, 1-в-1 с .wrap темы) */
      /* Уменьшаем нижний отступ hero-секции - .natal-section по умолчанию
         даёт большой padding-bottom var(--section-py), из-за чего между
         блоком чипов «Недавние карты» и нижней секцией .natal-result-section
         образуется большой воздух. */
      padding-bottom:16px !important;
    }
    .natal-shell .natal-hero-v2 .nk-tophero{
      display:grid; grid-template-columns:1.5fr 1fr; gap:20px; align-items:stretch; margin-bottom:18px;
    }
    @media(max-width:860px){ .natal-shell .natal-hero-v2 .nk-tophero{grid-template-columns:1fr} }
    .natal-shell .natal-hero-v2 .nk-tophero__l{
      background:#fff; border:1px solid var(--nk-line); border-radius:26px;
      padding:54px 50px; box-shadow:var(--nk-shadow-lg);
      display:flex; flex-direction:column; justify-content:center;
    }
    @media(max-width:580px){ .natal-shell .natal-hero-v2 .nk-tophero__l{padding:34px 26px} }
    .natal-shell .natal-hero-v2 .nk-tophero__l h1{
      font:400 clamp(36px,4.4vw,56px)/1.05 var(--nk-display);
      color:var(--nk-ink); margin:0 0 18px; letter-spacing:-.01em;
    }
    .natal-shell .natal-hero-v2 .natal-h1-accent{font-style:normal; color:var(--nk-blue)}
    .natal-shell .natal-hero-v2 .nk-tophero__l .lead{
      font:400 18px/1.62 var(--nk-sans); color:var(--nk-ink-soft); margin:0 0 24px; max-width:54ch;
    }
    @media(max-width:580px){ .natal-shell .natal-hero-v2 .nk-tophero__l .lead{font-size:16px} }
    .natal-shell .natal-hero-v2 .natal-hero-toc{margin-top:0}

    .natal-shell .natal-hero-v2 .nk-tophero__r{
      position:relative; overflow:hidden;
      background:linear-gradient(155deg, var(--nk-blue) 0%, var(--nk-blue-deep) 100%);
      border-radius:26px; padding:32px 28px;
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      text-align:center; min-height:360px;
    }
    .natal-shell .natal-hero-v2 .nk-tophero__top{
      position:absolute; top:24px; left:0; right:0; text-align:center;
      font:600 12px/1 var(--nk-sans); letter-spacing:.24em; text-transform:uppercase;
      color:rgba(243,234,212,.62);
    }
    .natal-shell .natal-hero-v2 .nk-tophero__cap{
      font:600 12px/1.6 var(--nk-sans); letter-spacing:.2em; text-transform:uppercase;
      color:rgba(243,234,212,.72); margin-top:14px;
    }
    .natal-shell .natal-hero-v2 .nk-tophero__r::before{
      content:""; position:absolute; inset:0; pointer-events:none;
      background:
        radial-gradient(1.2px 1.2px at 12% 18%, rgba(243,234,212,.55) 50%, transparent 51%),
        radial-gradient(1px 1px at 88% 24%, rgba(243,234,212,.45) 50%, transparent 51%),
        radial-gradient(1.4px 1.4px at 22% 80%, rgba(243,234,212,.55) 50%, transparent 51%),
        radial-gradient(1px 1px at 86% 82%, rgba(243,234,212,.45) 50%, transparent 51%),
        radial-gradient(1px 1px at 50% 6%, rgba(243,234,212,.40) 50%, transparent 51%),
        radial-gradient(1px 1px at 6%  50%, rgba(243,234,212,.30) 50%, transparent 51%),
        radial-gradient(1px 1px at 94% 60%, rgba(243,234,212,.30) 50%, transparent 51%);
    }
    .natal-shell .natal-hero-v2 .nk-wheel{width:280px; height:280px; display:block; color:#F3EAD4}
    @media(max-width:580px){ .natal-shell .natal-hero-v2 .nk-wheel{width:230px; height:230px} }

    /* ===== Форма в Ba Zi-эстетике (overrides существующих .natal-* стилей) ===== */
    .natal-shell .natal-hero-v2 .nk-form-card{
      background:#fff; border:1px solid var(--nk-line); border-radius:24px;
      padding:34px 32px 22px; box-shadow:var(--nk-shadow-lg);
    }
    @media(max-width:580px){ .natal-shell .natal-hero-v2 .nk-form-card{padding:22px 18px 14px; border-radius:18px} }
    .natal-shell .natal-hero-v2 .nk-form-card .natal-form-host{
      background:transparent !important; border:0 !important; padding:0 !important;
      box-shadow:none !important; margin:0 !important; border-radius:0 !important;
    }
    .natal-shell .natal-hero-v2 .natal-field-key{
      font:700 14px/1 var(--nk-sans) !important; letter-spacing:.16em; text-transform:uppercase;
      color:var(--nk-faint) !important;
    }
    .natal-shell .natal-hero-v2 .natal-field input,
    .natal-shell .natal-hero-v2 .natal-field select,
    .natal-shell .natal-hero-v2 .natal-city-wrap input[type="text"]{
      background:var(--nk-tint) !important; border:1px solid var(--nk-line) !important; border-radius:12px !important;
      height:54px !important; font:500 15px/1 var(--nk-sans) !important; color:var(--nk-ink) !important;
      padding:0 16px !important;
    }
    .natal-shell .natal-hero-v2 .natal-field input:focus,
    .natal-shell .natal-hero-v2 .natal-field select:focus,
    .natal-shell .natal-hero-v2 .natal-city-wrap input:focus{
      border-color:var(--nk-cta) !important; box-shadow:0 0 0 3px rgba(44,108,176,.14) !important;
    }
    .natal-shell .natal-hero-v2 .natal-field input::placeholder,
    .natal-shell .natal-hero-v2 .natal-city-wrap input::placeholder{color:#6F6A60; opacity:1; font-weight:500}

    /* Радио-чипы «Точность времени» - другой тип контрола, чем поля.
       Пилюли (border-radius:999), белый фон, кружок-индикатор слева, content-ширина.
       Над ними - подпись-legend для пояснения что это группа выбора. */
    .natal-shell .natal-hero-v2 .natal-field-fieldset{
      display:flex !important; flex-wrap:wrap; gap:8px !important;
      padding:0; border:0; margin:0;
    }
    .natal-shell .natal-hero-v2 .natal-field-fieldset legend{
      display:block !important; width:100%; padding:0; margin:0 0 8px;
      font:700 14px/1 var(--nk-sans) !important; letter-spacing:.16em;
      text-transform:uppercase; color:var(--nk-faint) !important;
    }
    .natal-shell .natal-hero-v2 .natal-radio{
      flex:0 0 auto; position:relative; cursor:pointer;
      padding:0 18px 0 12px; height:42px;
      background:#fff; border:1.5px solid var(--nk-line); border-radius:999px;
      display:inline-flex !important; align-items:center; gap:9px !important;
      font:600 13.5px/1 var(--nk-sans); color:var(--nk-muted);
      transition:background .18s, color .18s, border-color .18s, box-shadow .18s, transform .12s;
    }
    /* Кружок-индикатор перед текстом */
    .natal-shell .natal-hero-v2 .natal-radio::before{
      content:''; flex:none; width:16px; height:16px;
      background:#fff; border:1.5px solid #C8C2B0; border-radius:50%;
      transition:background .18s, border-color .18s, box-shadow .18s;
    }
    .natal-shell .natal-hero-v2 .natal-radio input[type="radio"]{
      position:absolute !important; opacity:0 !important; width:0 !important; height:0 !important;
      margin:0 !important; padding:0 !important; pointer-events:none;
    }
    .natal-shell .natal-hero-v2 .natal-radio:hover{
      border-color:var(--nk-cta); color:var(--nk-ink); transform:translateY(-1px);
    }
    .natal-shell .natal-hero-v2 .natal-radio:hover::before{border-color:var(--nk-cta)}
    .natal-shell .natal-hero-v2 .natal-radio:has(input[type="radio"]:checked){
      background:var(--nk-cta); border-color:var(--nk-cta); color:#fff;
      box-shadow:0 2px 6px rgba(44,108,176,.22), 0 10px 22px -10px rgba(44,108,176,.34);
    }
    .natal-shell .natal-hero-v2 .natal-radio:has(input[type="radio"]:checked)::before{
      background:#fff; border-color:#fff;
      box-shadow:inset 0 0 0 4px var(--nk-cta);
    }
    .natal-shell .natal-hero-v2 .natal-radio:has(input[type="radio"]:checked):hover{transform:none}

    /* CTA "Построить карту" */
    .natal-shell .natal-hero-v2 .natal-submit{
      background:var(--nk-cta) !important; color:#fff !important; border:0 !important; border-radius:13px !important;
      height:54px; padding:0 32px; font:600 16px/1 var(--nk-sans) !important; cursor:pointer;
      box-shadow:0 2px 4px rgba(44,108,176,.18), 0 12px 28px -8px rgba(44,108,176,.34) !important;
      transition:.18s;
    }
    .natal-shell .natal-hero-v2 .natal-submit:hover{
      background:var(--nk-cta-d) !important; transform:translateY(-1px);
      box-shadow:0 4px 8px rgba(30,79,132,.24), 0 18px 36px -10px rgba(30,79,132,.42) !important;
    }
    .natal-shell .natal-hero-v2 .natal-submit:active{transform:scale(.98)}

    /* ===== Новая раскладка формы (после restructureForm в JS) =====
       Row 1: Имя | День | Месяц | Год
       Row 2: Час | Минута | Город | Построить карту
       Row 3: чекбокс + кнопка Доп. параметры (на всю ширину)
       Row 4: раскрывающийся блок (manual + houseSystem + zodiac, на всю ширину) */
    @media (min-width:860px){
      .natal-shell .natal-hero-v2 .natal-form-grid{
        grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.5fr) !important;
        grid-template-areas:
          "name name day  month year"
          "hour minute city city submit"
          "turow turow turow turow turow"
          "more more more more more" !important;
        gap:18px 16px !important;
      }
      .natal-shell .natal-hero-v2 .nk-cell--name   { grid-area:name }
      .natal-shell .natal-hero-v2 .nk-cell--day    { grid-area:day }
      .natal-shell .natal-hero-v2 .nk-cell--month  { grid-area:month }
      .natal-shell .natal-hero-v2 .nk-cell--year   { grid-area:year }
      .natal-shell .natal-hero-v2 .nk-cell--hour   { grid-area:hour }
      .natal-shell .natal-hero-v2 .nk-cell--minute { grid-area:minute }
      .natal-shell .natal-hero-v2 .nk-cell--city   { grid-area:city }
      /* submit-ячейка прижимается к верху, но смещена padding-top'ом на
         высоту лейбла (13px) + gap (6px) - чтобы верх кнопки совпадал
         с верхом инпута «Место рождения», а не падал ниже из-за высокого
         ряда (cityMeta под инпутом растягивает строку). */
      .natal-shell .natal-hero-v2 .nk-cell--submit { grid-area:submit; align-self:start; padding-top:19px; }
      .natal-shell .natal-hero-v2 .nk-tu-row       { grid-area:turow }
      .natal-shell .natal-hero-v2 .nk-more-body    { grid-area:more }
    }
    /* Мобильная раскладка:
         Row 1: Имя (full)
         Row 2: День | Месяц (день 2 кол / месяц 4 кол - там «07·Июль»)
         Row 3: Год | Час | Минута (поровну, 2/2/2)
         Row 4: Город (full)
         Row 5: Построить карту (full)
         Row 6: tu-row (full)
         Row 7: Дополнительные параметры (full) */
    @media (max-width:859px){
      .natal-shell .natal-hero-v2 .natal-form-grid{
        grid-template-columns:repeat(6, minmax(0,1fr)) !important;
        grid-template-areas:
          "name name name name name name"
          "day day month month month month"
          "year year hour hour minute minute"
          "city city city city city city"
          "submit submit submit submit submit submit"
          "turow turow turow turow turow turow"
          "more more more more more more" !important;
        gap:14px 8px !important;
      }
      .natal-shell .natal-hero-v2 .nk-cell--name   { grid-area:name }
      .natal-shell .natal-hero-v2 .nk-cell--day    { grid-area:day }
      .natal-shell .natal-hero-v2 .nk-cell--month  { grid-area:month }
      .natal-shell .natal-hero-v2 .nk-cell--year   { grid-area:year }
      .natal-shell .natal-hero-v2 .nk-cell--hour   { grid-area:hour }
      .natal-shell .natal-hero-v2 .nk-cell--minute { grid-area:minute }
      .natal-shell .natal-hero-v2 .nk-cell--city   { grid-area:city }
      .natal-shell .natal-hero-v2 .nk-cell--submit { grid-area:submit; align-self:auto; padding-top:0; }
      .natal-shell .natal-hero-v2 .nk-tu-row       { grid-area:turow }
      .natal-shell .natal-hero-v2 .nk-more-body    { grid-area:more }
    }

    /* Ячейка: label сверху, контрол снизу */
    .natal-shell .natal-hero-v2 .nk-cell{ display:flex; flex-direction:column; gap:6px; min-width:0; }
    .natal-shell .natal-hero-v2 .nk-cell__key{
      font:700 13px/1 var(--nk-sans);
      letter-spacing:.16em; text-transform:uppercase; color:var(--nk-faint);
    }
    /* В ячейке cs-trigger/combo занимают всю ширину */
    .natal-shell .natal-hero-v2 .nk-cell .cs-trigger{ width:100%; box-sizing:border-box; min-width:0; }

    /* Text-инпуты в ячейке (Имя, Город) - тот же стиль что у cs-trigger
       (после restructureForm они вне .natal-field, поэтому общий natal-* стиль не цепляется).
       :not(.nk-combo__inp) - чтобы не задеть текстовый input внутри nk-combo (он прозрачный) */
    .natal-shell .natal-hero-v2 .nk-cell input[type="text"]:not(.nk-combo__inp){
      background:var(--nk-tint) !important; border:1px solid var(--nk-line) !important; border-radius:12px !important;
      height:54px !important; width:100% !important; box-sizing:border-box;
      font:500 15px/1 var(--nk-sans) !important; color:var(--nk-ink) !important;
      padding:0 16px !important; outline:none;
    }
    .natal-shell .natal-hero-v2 .nk-cell input[type="text"]:not(.nk-combo__inp):focus{
      border-color:var(--nk-cta) !important; box-shadow:0 0 0 3px rgba(44,108,176,.14) !important;
    }
    .natal-shell .natal-hero-v2 .nk-cell input[type="text"]:not(.nk-combo__inp)::placeholder{
      color:#6F6A60; opacity:1; font-weight:500;
    }
    /* city-input-wrap должен занимать полную ширину ячейки (для позиционирования suggestion list) */
    .natal-shell .natal-hero-v2 .nk-cell--city .natal-city-input-wrap{ position:relative; width:100%; }

    /* Submit на всю ширину своей ячейки */
    .natal-shell .natal-hero-v2 .nk-cell--submit{ display:flex; }
    .natal-shell .natal-hero-v2 .nk-cell--submit .natal-submit{
      width:100% !important; max-width:none !important; height:54px;
      margin:0 !important;
    }

    /* tuRow: [«Текущее время» + «Указать точные координаты»] слева, [кнопка] справа */
    .natal-shell .natal-hero-v2 .nk-tu-row{
      display:flex; align-items:center; justify-content:space-between;
      gap:14px; flex-wrap:wrap; margin-top:6px;
    }
    .natal-shell .natal-hero-v2 .nk-tu-row__checks{
      display:inline-flex; align-items:center; gap:14px 22px; flex-wrap:wrap;
    }
    /* disabled-инпут «Город» при включённых ручных координатах + иконка замка справа */
    .natal-shell .natal-hero-v2 .nk-cell input[type="text"].nk-input-disabled{
      opacity:.55 !important; pointer-events:none; cursor:not-allowed;
      padding-right:44px !important;
      background:#F0EDE5 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386827A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='10' width='16' height='11' rx='2.4'/><path d='M8 10V7a4 4 0 0 1 8 0v3'/><circle cx='12' cy='15.5' r='1.2' fill='%2386827A'/></svg>") no-repeat right 14px center / 18px 18px !important;
    }
    /* При активном «Указать точные координаты» скрываем плашку cityMeta
       (страна / координаты / TZ - они теряют смысл, т.к. использоваться будут ручные) */
    .natal-shell .natal-hero-v2 .natal-form.nk-coords-on .natal-city-meta{display:none !important}
    .natal-shell .natal-hero-v2 .nk-check{
      display:inline-flex; align-items:center; gap:11px; cursor:pointer;
      font:500 15px/1.3 var(--nk-sans); color:var(--nk-ink); user-select:none;
      position:relative;
    }
    .natal-shell .natal-hero-v2 .nk-check input{
      position:absolute !important; opacity:0 !important; pointer-events:none;
      width:0; height:0; margin:0;
    }
    .natal-shell .natal-hero-v2 .nk-check-box{
      width:20px; height:20px; border:1.5px solid var(--nk-line); border-radius:6px;
      display:inline-flex; align-items:center; justify-content:center;
      background:#fff; color:transparent; transition:.15s; flex:none;
    }
    .natal-shell .natal-hero-v2 .nk-check-box svg{ width:12px; height:12px; }
    .natal-shell .natal-hero-v2 .nk-check input:checked + .nk-check-box{
      background:var(--nk-cta); border-color:var(--nk-cta); color:#fff;
    }
    .natal-shell .natal-hero-v2 .nk-more{
      display:inline-flex; align-items:center; gap:8px;
      font-family:var(--nk-sans); font-size:13.5px; font-weight:600;
      color:var(--nk-cta); background:#fff; border:1px solid var(--nk-line);
      padding:9px 15px; border-radius:10px; cursor:pointer; transition:.18s;
      flex:0 0 auto;
    }
    .natal-shell .natal-hero-v2 .nk-more:hover{ border-color:var(--nk-cta); color:var(--nk-cta-d); }
    .natal-shell .natal-hero-v2 .nk-more-gear{ width:16px; height:16px; color:var(--nk-cta); flex:none; display:inline-flex; }
    .natal-shell .natal-hero-v2 .nk-more.is-open .nk-more-gear svg{ transform:rotate(45deg); transition:transform .25s ease; }

    /* Раскрывающийся блок «Дополнительные параметры».
       row-gap 18px - чтобы расстояние между «Города нет в списке» и
       «Система домов / Зодиак» совпадало с межрядным расстоянием
       основной формы (gap:18px 16px). */
    .natal-shell .natal-hero-v2 .nk-more-body{
      display:grid; grid-template-columns:repeat(3,1fr); gap:18px 22px;
      padding:0 4px; max-height:0; overflow:hidden;
      transition:max-height .38s ease, padding .28s ease, margin-top .28s ease;
      margin-top:0;
    }
    .natal-shell .natal-hero-v2 .nk-more-body.is-open{
      max-height:800px; padding:8px 4px 18px; margin-top:6px; overflow:visible;
    }
    .natal-shell .natal-hero-v2 .nk-more-body > *{ min-width:0; }
    @media (max-width:980px){ .natal-shell .natal-hero-v2 .nk-more-body{ grid-template-columns:repeat(2,1fr); } }
    @media (max-width:580px){ .natal-shell .natal-hero-v2 .nk-more-body{ grid-template-columns:1fr; } }

    /* «Города нет в списке» внутри moreBody занимает всю строку */
    .natal-shell .natal-hero-v2 .nk-more-body .natal-manual-toggle,
    .natal-shell .natal-hero-v2 .nk-more-body .natal-manual-block{ grid-column:1 / -1; }

    /* Плавная анимация раскрытия/закрытия блока ручного ввода координат.
       natal-form.js использует manualBlock.hidden = true/false. Браузерный
       default для [hidden] - display:none, который не транзишится. Мы:
       1) переопределяем display:none -> display:block через !important
       2) скрытое состояние [hidden]: max-height:0 + opacity:0 + paddings 0
       3) открытое :not([hidden]): max-height:600 + opacity:1 + natural margin
       Стрелка-чевр-он у тоггла - крутится через .is-open. */
    .natal-shell .natal-hero-v2 .natal-manual-block{
      display:block !important;
      overflow:hidden;
      transition:max-height .42s cubic-bezier(.4,0,.2,1),
                 opacity .3s ease,
                 margin-top .32s ease,
                 padding .32s ease;
      will-change:max-height, opacity;
    }
    .natal-shell .natal-hero-v2 .natal-manual-block[hidden]{
      max-height:0 !important;
      opacity:0 !important;
      margin-top:0 !important;
      padding-top:0 !important; padding-bottom:0 !important;
      pointer-events:none;
    }
    .natal-shell .natal-hero-v2 .natal-manual-block:not([hidden]){
      max-height:800px;
      opacity:1;
    }
    .natal-shell .natal-hero-v2 .natal-manual-toggle-arrow{
      transition:transform .25s cubic-bezier(.4,0,.2,1);
    }

    /* "Города нет в списке" - в стиле .more */
    .natal-shell .natal-hero-v2 .natal-manual-toggle{
      font:600 13.5px/1 var(--nk-sans) !important; color:var(--nk-cta) !important;
      background:#fff !important; border:1px solid var(--nk-line) !important; border-radius:10px !important;
      padding:9px 15px !important;
    }
    .natal-shell .natal-hero-v2 .natal-manual-toggle:hover{border-color:var(--nk-cta) !important; color:var(--nk-cta-d) !important}

    /* Автокомплит города */
    .natal-shell .natal-hero-v2 .natal-city-list{
      background:#fff; border:1px solid var(--nk-line); border-radius:12px;
      box-shadow:var(--nk-shadow-lg); padding:6px; margin-top:4px;
    }
    .natal-shell .natal-hero-v2 .natal-city-item{
      padding:10px 12px; border-radius:8px; font:500 15px/1.2 var(--nk-sans); color:var(--nk-ink);
    }
    .natal-shell .natal-hero-v2 .natal-city-item:hover{background:var(--nk-tint)}
    .natal-shell .natal-hero-v2 .natal-city-country{color:var(--nk-muted); font:500 14px/1 var(--nk-sans)}

    /* ===== Чипы «Недавние карты» 1-в-1 с /bazi/ ===== */
    .natal-shell .natal-hero-v2 .nk-recent{margin-top:22px; padding:0 4px}
    .natal-shell .natal-hero-v2 .nk-recent-head{
      display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px;
    }
    .natal-shell .natal-hero-v2 .nk-recent-key{
      font:700 14px/1 var(--nk-sans); letter-spacing:.18em; text-transform:uppercase; color:var(--nk-faint);
    }
    .natal-shell .natal-hero-v2 .nk-recent-clear{
      display:inline-flex; align-items:center; gap:7px;
      font:600 14px/1 var(--nk-sans); color:var(--nk-cta);
      background:transparent; border:0; padding:0; cursor:pointer; transition:color .14s;
    }
    .natal-shell .natal-hero-v2 .nk-recent-clear:hover{color:var(--nk-cta-d)}
    .natal-shell .natal-hero-v2 .nk-recent-clear svg{width:14px; height:14px; fill:currentColor}
    .natal-shell .natal-hero-v2 .nk-recent-chips{display:flex; flex-wrap:wrap; gap:10px}
    .natal-shell .natal-hero-v2 .nk-chip{
      display:inline-flex; align-items:center; gap:10px;
      background:#fff; border:1px solid var(--nk-line); border-radius:999px;
      padding:11px 18px; font:600 14px/1 var(--nk-sans); color:var(--nk-ink);
      cursor:pointer; transition:.16s;
      box-shadow:var(--nk-shadow);
    }
    .natal-shell .natal-hero-v2 .nk-chip:hover{border-color:var(--nk-cta); color:var(--nk-cta-d); transform:translateY(-1px)}
    .natal-shell .natal-hero-v2 .nk-chip-meta{font:500 13px/1 var(--nk-sans); color:var(--nk-muted)}

    /* ===== ПК-combobox для день/месяц/год/час/минута (можно вводить текстом) =====
       Mobile: показываем cs-trigger (модальная шторка), combo скрыт.
       Desktop: combo (input + dropdown), cs-trigger скрыт.
       Селекторы покрывают и оригинальный контекст (.natal-date-pieces),
       и новые ячейки после restructureForm (.nk-cell--piece). */
    @media (min-width:861px){
      .natal-shell .natal-hero-v2 .natal-date-pieces .cs-trigger,
      .natal-shell .natal-hero-v2 .nk-cell--piece .cs-trigger{display:none !important}
      .natal-shell .natal-hero-v2 .natal-date-pieces .nk-combo,
      .natal-shell .natal-hero-v2 .nk-cell--piece .nk-combo{display:flex !important}
    }
    @media (max-width:860px){
      .natal-shell .natal-hero-v2 .natal-date-pieces .nk-combo,
      .natal-shell .natal-hero-v2 .nk-cell--piece .nk-combo{display:none !important}
    }

    /* После restructureForm полностью скрываем оригинальный fieldset
       с радио «Время известно» (Точно/Приблизительно/Не знаю) -
       вместо него работает чекбокс «Не известное время (полдень)». */
    .natal-shell .natal-hero-v2 .natal-form .natal-field-fieldset{display:none !important}

    /* Пропорции дата-полей 1-в-1 с /bazi/: день/месяц/год = 1fr/1.4fr/1fr,
       вместо натальных 84px/1fr/110px (где день/год становятся мизерными) */
    .natal-shell .natal-hero-v2 .natal-date-pieces{
      grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr) !important;
      gap:10px;
    }
    .natal-shell .natal-hero-v2 .natal-date-pieces--time{
      grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    }

    .natal-shell .natal-hero-v2 .nk-combo{
      position:relative; display:flex; align-items:center; min-width:0;
      background:var(--nk-tint); border:1px solid var(--nk-line); border-radius:12px;
      height:54px; width:100%; box-sizing:border-box;
      transition:border-color .14s, background .14s, box-shadow .14s;
    }
    .natal-shell .natal-hero-v2 .nk-combo:hover{border-color:var(--nk-cta)}
    .natal-shell .natal-hero-v2 .nk-combo.is-open,
    .natal-shell .natal-hero-v2 .nk-combo:focus-within{
      border-color:var(--nk-cta); background:#fff; box-shadow:0 0 0 3px rgba(44,108,176,.14);
    }
    /* !important перекрывает общий .natal-field input override (иначе инпут
       получает собственный фон/борт и визуально отрывается от стрелки) */
    .natal-shell .natal-hero-v2 .nk-combo .nk-combo__inp{
      flex:1 1 0 !important; min-width:0 !important;
      border:0 !important; outline:0 !important;
      background:transparent !important; box-shadow:none !important; border-radius:0 !important;
      font:500 15px/1 var(--nk-sans) !important; color:var(--nk-ink) !important;
      height:100% !important; padding:0 0 0 16px !important;
    }
    .natal-shell .natal-hero-v2 .nk-combo .nk-combo__inp:focus{box-shadow:none !important}
    .natal-shell .natal-hero-v2 .nk-combo .nk-combo__inp::placeholder{color:#6F6A60; opacity:1; font-weight:500}
    .natal-shell .natal-hero-v2 .nk-combo__arrow{
      display:inline-flex; align-items:center; justify-content:center;
      width:36px; height:100%; flex:0 0 36px;
      border:0; background:transparent; color:var(--nk-muted); cursor:pointer;
      transition:color .14s, transform .14s;
    }
    .natal-shell .natal-hero-v2 .nk-combo:hover .nk-combo__arrow,
    .natal-shell .natal-hero-v2 .nk-combo.is-open .nk-combo__arrow{color:var(--nk-ink)}
    .natal-shell .natal-hero-v2 .nk-combo.is-open .nk-combo__arrow{transform:rotate(180deg)}
    .natal-shell .natal-hero-v2 .nk-combo__list{
      display:none; position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:30;
      margin:0; padding:6px; list-style:none;
      background:#fff; border:1px solid var(--nk-line); border-radius:12px;
      box-shadow:var(--nk-shadow-lg); max-height:280px; overflow-y:auto;
    }
    .natal-shell .natal-hero-v2 .nk-combo.is-open .nk-combo__list{display:block}
    .natal-shell .natal-hero-v2 .nk-combo__item{
      padding:10px 12px; border-radius:8px; font:500 15px/1.2 var(--nk-sans); color:var(--nk-ink);
      cursor:pointer; transition:background .12s;
    }
    .natal-shell .natal-hero-v2 .nk-combo__item.is-active{background:var(--nk-tint)}
    .natal-shell .natal-hero-v2 .nk-combo__item.is-selected{background:var(--nk-cta); color:#fff}
    .natal-shell .natal-hero-v2 .nk-combo__item.is-selected.is-active{background:var(--nk-cta-d)}
    .natal-shell .natal-hero-v2 .nk-combo__empty{padding:10px 12px; color:var(--nk-muted); font:500 14px/1.4 var(--nk-sans)}

    /* Скрываем секцию результата пока пользователь не нажал «Построить карту».
       .natal-result стартует с hidden, natal-app.js снимает атрибут после
       первого runCompute. Скрываем и обёртку-секцию через :has(), чтобы
       исчезли её padding/margin/border - страница не оставляла пустого места. */
    .natal-shell .natal-result-section:has(.natal-result[hidden]){
      display:none !important;
    }

    /* ============================================================
       Перекрашиваем тулбар натальной карты (даты-степперы, слайдер,
       «Сегодня», селекты Дома/Зодиак, пилюли-чекбоксы Хирон/Лилит/...
       и панель транзит-контролов) из тёплой охры (#CC9E4A) в нашу
       синюю палитру. Большинство правил используют CSS-переменные
       (--air, --air-soft, --air-deep, --accent) с fallback - достаточно
       переопределить эти переменные на .natal-shell. Прицельные правила
       нужны только для хардкод-rgba(204,158,74,...) (tint background)
       и rgba(168,12,18,...) (red tint у year-step).
       ============================================================ */
    .natal-shell{
      --air:      #2C6CB0; /* было #CC9E4A - mid blue */
      --air-soft: #5085C0; /* было #DDB76E - blue hover */
      --air-deep: #1E4F84; /* было #8A6B2A - deep blue */
      --accent:      #264D7E; /* было #C8121A red - заменили на нашу синюю акцент */
      --accent-dark: #1A3F66; /* было #8A6B2A */
    }
    /* Панель «Дата транзита»: глубокий синий градиент, ключевые кнопки белые. */
    .natal-shell .natal-tb-transit-controls{
      background: linear-gradient(155deg, #1E4F84 0%, #143765 100%) !important;
      border: 1px solid #0F2A4C !important;
      box-shadow: 0 6px 20px -10px rgba(14,36,64,0.4) !important;
      color: #fff;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-label{
      color: rgba(255,255,255,0.82) !important;
    }
    /* Инпут даты внутри панели */
    .natal-shell .natal-tb-transit-controls .natal-tb-date-input{
      background: rgba(255,255,255,0.12) !important;
      border-color: rgba(255,255,255,0.38) !important;
      color: #fff !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-input:focus{
      border-color: #fff !important;
      background: rgba(255,255,255,0.20) !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-input::-webkit-calendar-picker-indicator{
      filter: invert(1) brightness(2);
      cursor: pointer;
    }
    /* Одинарные стрелки (день/месяц вперёд-назад) - полупрозрачные, не доминируют */
    .natal-shell .natal-tb-transit-controls .natal-tb-date-step{
      background: rgba(255,255,255,0.10) !important;
      border-color: rgba(255,255,255,0.32) !important;
      color: #fff !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-step:hover{
      background: rgba(255,255,255,0.22) !important;
      border-color: rgba(255,255,255,0.7) !important;
      color: #fff !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-step-month{
      background: rgba(255,255,255,0.10) !important;
    }
    /* Year-step (« и ») и «Сегодня» - КЛЮЧЕВЫЕ КНОПКИ, белая заливка */
    .natal-shell .natal-tb-transit-controls .natal-tb-step-year,
    .natal-shell .natal-tb-transit-controls .natal-tb-date-today{
      background: #fff !important;
      border-color: #fff !important;
      color: #1E4F84 !important;
      font-weight: 700;
      box-shadow: 0 2px 6px rgba(14,36,64,0.25) !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-step-year:hover,
    .natal-shell .natal-tb-transit-controls .natal-tb-date-today:hover{
      background: #F2F6FB !important;
      border-color: #F2F6FB !important;
      color: #143765 !important;
      transform: translateY(-1px);
      box-shadow: 0 4px 12px rgba(14,36,64,0.35) !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-today:disabled,
    .natal-shell .natal-tb-transit-controls .natal-tb-date-today.is-disabled{
      background: rgba(255,255,255,0.6) !important;
      border-color: rgba(255,255,255,0.6) !important;
      color: rgba(30,79,132,0.7) !important;
      opacity: 0.55 !important;
      box-shadow: none !important;
      transform: none !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-today svg{ color: currentColor; }
    /* Слайдер */
    .natal-shell .natal-tb-transit-controls .natal-tb-date-slider{
      background: linear-gradient(to right,
                  rgba(255,255,255,0.15),
                  rgba(255,255,255,0.60) 50%,
                  rgba(255,255,255,0.15)) !important;
      background-clip: content-box !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-slider:focus-visible{
      box-shadow: 0 0 0 2px rgba(255,255,255,.45) !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-date-slider-thumb{
      background: #fff !important;
      border-color: #1E4F84 !important;
      box-shadow: 0 2px 8px rgba(14,36,64,0.45) !important;
    }
    .natal-shell .natal-tb-transit-controls .natal-tb-slider-label{
      color: rgba(255,255,255,0.82) !important;
    }

    /* Year-step ВНЕ панели транзитов (если используется отдельно) - синяя тема. */
    .natal-shell .natal-tb-step-year{
      background: rgba(38,77,126,0.08) !important;
      border-color: var(--accent) !important;
      color: var(--accent) !important;
    }
    .natal-shell .natal-tb-step-year:hover{
      background: var(--accent) !important;
      color: #fff !important;
    }
    .natal-shell .natal-tb-step-month{
      background: rgba(44,108,176,0.06) !important;
    }
    .natal-shell .natal-tb-toggle:has(input:checked){
      background: rgba(44,108,176,0.10) !important;
      border-color: var(--air) !important;
    }
    .natal-shell .natal-tb-date-slider:focus-visible{
      box-shadow: 0 0 0 2px rgba(44,108,176,.35) !important;
    }
    /* В fs-overlay этот тулбар тоже встречается - правила выше через
       .natal-shell уже их покрывают (натальная страница => .natal-shell
       включена через body.natal-page родителем). */

    /* ============================================================
       Fullscreen-оверлей натальной карты: адаптив под популярные разрешения.
       Базовый layout (natal-chart.css): 3 колонки 380px / 1fr / 380px,
       --fs-chart-side: min(90vh, calc(100vh - 40px), 1100px).
       Проблема: на 1496×846 центральная колонка (~648px) меньше квадрата
       карты (~762px от 90vh) - чарт наезжает на правую панель.
       Решение: добавляем ограничение по ширине через calc(100vw - ...)
       в --fs-chart-side + сжимаем боковые колонки на средних экранах +
       поднимаем breakpoint single-column с 900px до 1080px.
       ============================================================ */
    @media (max-width:1599px){
      .natal-fs-overlay{
        grid-template-columns:minmax(220px,320px) minmax(0,1fr) minmax(280px,340px) !important;
        gap:20px !important;
        --fs-chart-side:min(88vh, calc(100vh - 40px), calc(100vw - 740px), 1000px) !important;
      }
    }
    @media (max-width:1366px){
      .natal-fs-overlay{
        grid-template-columns:minmax(200px,280px) minmax(0,1fr) minmax(260px,310px) !important;
        gap:16px !important;
        --fs-chart-side:min(86vh, calc(100vh - 40px), calc(100vw - 640px), 900px) !important;
      }
    }
    @media (max-width:1199px){
      .natal-fs-overlay{
        grid-template-columns:minmax(180px,240px) minmax(0,1fr) minmax(240px,280px) !important;
        gap:14px !important;
        --fs-chart-side:min(84vh, calc(100vh - 40px), calc(100vw - 560px), 800px) !important;
      }
    }
    /* Ниже 1080px - переход на single-column (поверх существующего max-width:900) */
    @media (max-width:1079px){
      .natal-fs-overlay{
        grid-template-columns:1fr !important;
        grid-template-rows:auto minmax(0,1fr) auto !important;
        gap:12px !important;
        --fs-chart-side:min(86vh, calc(100vh - 40px), calc(100vw - 40px), 800px) !important;
        overflow-y:auto !important;
        padding:14px max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)) !important;
      }
      .natal-fs-overlay .natal-fs-toolbar-wrap{ max-height:none; }
    }
