/* ═══════════════════════════ ОСНОВА: каркас страницы, кнопки, поля, панели ═══════════════════════════ */
@font-face{font-family:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('/app/assets/fonts/onest-400-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('/app/assets/fonts/onest-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Comfortaa';font-style:normal;font-weight:300 700;font-display:swap;src:url('/app/assets/fonts/comfortaa-300-700-cyrillic.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Comfortaa';font-style:normal;font-weight:300 700;font-display:swap;src:url('/app/assets/fonts/comfortaa-300-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg)}
body{font-family:Onest,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:linear-gradient(180deg,#141126 0%,#0b0a14 70%);background-attachment:fixed;min-height:100dvh;overscroll-behavior-y:none}
/* ── фон обложки: орбы, ночные облака и живое небо с настоящими созвездиями ── */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}
.orb-1{width:56vw;height:56vw;max-width:760px;max-height:760px;top:-22vw;left:50%;transform:translateX(-50%);background:radial-gradient(circle,#6d5bd0 0%,transparent 65%);animation:drift 22s ease-in-out infinite}
.orb-2{width:34vw;height:34vw;max-width:460px;max-height:460px;bottom:-12vw;right:-8vw;background:radial-gradient(circle,rgba(217,184,104,.5) 0%,transparent 65%);animation:drift2 26s ease-in-out infinite}
.cloud{position:absolute;border-radius:50%;filter:blur(110px);opacity:.22;animation:cloudtone 64s ease-in-out infinite;will-change:opacity,transform}
.cloud-1{width:70vw;height:26vw;top:6%;left:-18vw;background:radial-gradient(ellipse,rgba(141,130,190,.5) 0%,transparent 68%)}
.cloud-2{width:60vw;height:22vw;bottom:2%;right:-20vw;animation-delay:-31s;background:radial-gradient(ellipse,rgba(120,132,190,.42) 0%,transparent 68%)}
.sky{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity 2.4s ease}
.sky.on{opacity:1}
/* реальные созвездия тише за рабочим содержимым */
@keyframes drift{0%,100%{transform:translate(-50%,0) scale(1)}50%{transform:translate(-46%,4%) scale(1.06)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4%,-5%) scale(1.08)}}
@keyframes cloudtone{0%,100%{opacity:.18;transform:translateX(0) scale(1)}50%{opacity:.34;transform:translateX(3%) scale(1.07)}}
/* ── луна с обложки: настоящая фаза на сегодня, дыхание и искры ── */
.mark{display:inline-block;line-height:0;animation:float 8s ease-in-out infinite;filter:drop-shadow(0 8px 40px rgba(217,184,104,.28));will-change:transform}
.moon-img{display:block;animation:moonbreathe 7s ease-in-out infinite}
.moon-sm{width:46px;height:46px;flex:0 0 46px;display:block;filter:drop-shadow(0 4px 18px rgba(217,184,104,.28))}
@keyframes moonbreathe{0%,100%{filter:brightness(1) saturate(1);opacity:.92}50%{filter:brightness(1.18) saturate(1.12);opacity:1}}
@keyframes float{0%,100%{transform:translateY(-6px)}50%{transform:translateY(8px)}}
.spark{position:absolute;width:5px;height:5px;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle,#fff8e6 0%,rgba(244,223,168,.7) 45%,transparent 70%)}
.spark.s1{top:6%;right:10%;animation:sparkle 4.6s ease-in-out infinite}
.spark.s2{bottom:14%;left:4%;animation:sparkle 5.8s ease-in-out 1.9s infinite}
.spark.s3{top:38%;right:-4%;animation:sparkle 6.7s ease-in-out 3.4s infinite}
@keyframes sparkle{0%,100%{opacity:0;transform:scale(.4)}8%{opacity:1;transform:scale(1.25)}22%{opacity:0;transform:scale(.5)}}
@media(prefers-reduced-motion:reduce){
  .mark,.moon-img,.spark,.orb,.cloud{animation:none!important}
}
.wrap{position:relative;z-index:1;max-width:520px;margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom))}
h1,h2,.serif{font-family:Onest,ui-sans-serif,system-ui,sans-serif;font-weight:600;letter-spacing:-.01em;margin:0}
h1{font-size:28px;line-height:1.12}
h2{font-size:22px;line-height:1.2}
.wordmark{font-family:"Comfortaa",ui-rounded,Onest,system-ui,sans-serif;font-weight:300;letter-spacing:.01em}
p{margin:0;color:var(--muted);line-height:1.62;font-size:16px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:var(--gold);display:block}
.card{background:var(--glass-bg);border:1px solid var(--line);border-radius:var(--r-xl);padding:20px;box-shadow:var(--glass-shadow);backdrop-filter:none;-webkit-backdrop-filter:none}
.card+.card{margin-top:var(--s3)}
.sec{margin-top:var(--s5)}
.row{display:flex;align-items:center;gap:12px}
.grow{flex:1;min-width:0}
.btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:62px;padding:0 20px;border:0;border-radius:var(--r-pill);background:linear-gradient(135deg,#f0d79a 0%,#d9b868 55%,#b98f3e 100%);color:#1c1430;font:inherit;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 12px 34px rgba(217,184,104,.3);transition:transform var(--t-fast) var(--sp),opacity var(--t)}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.45;box-shadow:none}
.btn.ghost{background:rgba(255,255,255,.06);box-shadow:none;border:1px solid var(--line);color:var(--text)}
.btn.sm{min-height:44px;font-size:15px;width:auto;padding:0 18px}
.field{display:grid;gap:7px;margin-bottom:14px}
.field label{font-size:13px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
input,textarea{width:100%;min-height:54px;border-radius:var(--r-m);border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);padding:14px 16px;color:var(--strong);font:inherit;font-size:16px;outline:none}
textarea{min-height:104px;resize:none;line-height:1.55}
input:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(217,184,104,.15)}
input::placeholder,textarea::placeholder{color:var(--faint)}
.chips{display:flex;gap:8px;padding-bottom:4px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips.flow{flex-wrap:wrap;overflow:visible}
.chips.flow .chip{font-size:14px;padding:10px 13px}
.chip{flex:0 0 auto;border-radius:var(--r-pill);border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);font:inherit;cursor:pointer}
.chip.on{background:rgba(217,184,104,.16);border-color:rgba(217,184,104,.55)}
.view{display:none;animation:in var(--t) var(--sp)}
.view.on{display:block}
@keyframes in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.rise{animation:in var(--t-slow) var(--sp) both;animation-delay:calc(var(--i,0)*40ms)}
/* карта дня */
.daycard{margin:14px auto 0;perspective:1000px;cursor:pointer}
.dc-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s var(--sp)}
/* карта — предмет: до открытия лежит чуть наклонно и дышит светом, открывается — выравнивается */
.daycard{transition:transform .6s var(--sp)}
.daycard:not(.flip){transform:rotate(-3deg)}
.dc-back-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.daycard.flip .dc-in{transform:rotateY(180deg)}
.dc-f{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r-xl);display:grid;place-items:center;text-align:center}
.dc-back img{filter:drop-shadow(0 6px 22px rgba(217,184,104,.35))}
.dc-back{background:#141126;border:1px solid rgba(240,215,154,.35);box-shadow:0 30px 70px rgba(11,10,20,.7),0 0 40px -10px rgba(240,215,154,.35);overflow:hidden;padding:0}
.dc-front{transform:rotateY(180deg);background:linear-gradient(160deg,#1d1738,#0b0a14);box-shadow:0 30px 70px rgba(11,10,20,.65)}
.glow{animation:breathe 5s ease-in-out infinite}
@keyframes breathe{0%,100%{filter:drop-shadow(0 14px 34px rgba(217,184,104,.24))}50%{filter:drop-shadow(0 18px 52px rgba(240,215,154,.38))}}
/* настроение */
.bar{height:7px;border-radius:var(--r-pill);background:rgba(255,255,255,.09);overflow:hidden;flex:1}
.bar i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,#b98f3e,#f0d79a);transition:width .6s var(--sp)}
.barrow{display:flex;align-items:center;gap:10px;font-size:14px;margin-top:9px}
.barrow .l{width:92px;color:var(--muted)}
.barrow .v{width:34px;text-align:right;font-size:12px;color:var(--muted)}
.msg{font-size:14px;line-height:1.5;margin-top:10px;min-height:1px}
.msg.err{color:var(--warn)}
.big{font-family:Onest,ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:52px;line-height:1;text-align:center;color:var(--gold);margin:6px 0}
.list{display:grid;gap:var(--s2)}
.item{padding:14px 16px;border-radius:var(--r-m);background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border:1px solid var(--line);box-shadow:inset 0 1px rgba(255,255,255,.09),inset 0 -1px rgba(3,2,10,.2);backdrop-filter:none;-webkit-backdrop-filter:none}
.item b{display:block;font-weight:600;font-size:15px;margin-bottom:3px}
.item small{color:var(--faint);font-size:13px}
.toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translate(-50%,-16px);z-index:300;background:rgba(29,23,56,.94);border:1px solid rgba(217,184,104,.4);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:11px 18px;border-radius:var(--r-pill);font-size:14px;opacity:0;transition:var(--t) var(--sp);pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.split{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:var(--s4) 0 var(--s3)}
.ring{display:flex;flex-direction:column;align-items:center;gap:5px}
/* позвать партнера после расчета совместимости — отделено линией от результата */
.compat-invite{border-top:1px solid var(--line);padding-top:var(--s4)}
/* ── Карточка дня по шагам: один вопрос на экран ── */
.day-card .dc-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.day-card .dc-head .text-action{min-height:32px;padding:0;font-size:13px}
.dc-dots{display:flex;gap:6px;margin:10px 0 14px}
.dc-dots i{flex:0 0 22px;height:4px;border-radius:2px;background:var(--line)}
.dc-dots i.done{background:rgba(217,184,104,.45)}
.dc-dots i.on{background:var(--gold)}
.dc-names{display:flex;flex-wrap:wrap;gap:0 6px;margin:-8px 0 14px;font-size:12px;color:var(--faint);line-height:1.5}
.dc-names span.on{color:var(--gold-2);font-weight:600}
.dc-names span.done{color:var(--muted)}
.dc-names i{font-style:normal;color:var(--line)}
.dc-echo{margin:0 0 8px;font-size:13px;color:var(--muted);line-height:1.45}
.dc-echo b{color:var(--text-2);font-weight:500}
/* строка «Вечером записываю: …» под карточкой и предложение шага после сохранения */
.evening-set{margin:10px 2px 0;font-size:13px;color:var(--muted);line-height:1.6}
.evening-set b{font-weight:500;color:var(--text-2)}
.evening-set .es-label{color:var(--faint)}
.evening-set .text-action{min-height:28px;padding:0 0 0 6px;font-size:13px}
.evening-set .chip.fixed{opacity:.75}
.dc-offer{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--selected);border:1px solid rgba(217,184,104,.35);font-size:14px;line-height:1.5;color:var(--text-2)}
.dc-offer p{margin:0}
.dc-offer .eyebrow{margin-bottom:4px}
html[data-theme] body.inner .dc-offer p.hint{margin:0;font-size:13px;line-height:1.45;color:var(--muted);font-weight:400}
.dc-offer-actions{margin-top:10px}
.dc-q{margin:0 0 12px;font-size:21px;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--text)}
.dc-wrap{position:relative}
.dc-wrap textarea{width:100%;padding-right:48px}
.dc-mic{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:var(--selected);border:1px solid rgba(217,184,104,.45);color:var(--gold-2);display:grid;place-items:center;cursor:pointer;padding:0}
.dc-mic svg{width:18px;height:18px;display:block}
.dc-mic.on{background:var(--gold);color:#1d1738;animation:dcPulse 1.2s ease-in-out infinite}
@keyframes dcPulse{50%{box-shadow:0 0 0 6px rgba(217,184,104,.25)}}
.dc-hint{margin:8px 0 0;font-size:13px;color:var(--faint);line-height:1.45}
/* фото дня: камера рядом с микрофоном, превью под полем, полное — в дне для чтения, миниатюра — в строке дня */
.dc-wrap.with-cam textarea{padding-right:92px}
.dc-cam{right:52px}
.dc-photo{display:flex;align-items:center;gap:12px;margin-top:10px}
.dc-photo:empty{display:none}
.dc-photo-row .chip{display:inline-flex;align-items:center;gap:6px}
.dc-photo-row .chip svg{width:16px;height:16px}
.dc-photo img{width:72px;height:72px;border-radius:12px;object-fit:cover;display:block;box-shadow:0 6px 16px -8px rgba(0,0,0,.7)}
.dc-photo .hint{flex:1;margin:0}
.dc-photo .text-action{min-height:32px;padding:0}
body.inner :is(.day-card,.wpane) .dc-photo-full{display:block;width:100%;height:auto;max-height:280px;object-fit:cover;border-radius:16px;margin:12px 0 0;box-shadow:0 10px 28px -14px rgba(0,0,0,.7)}
.day-row.has-photo{grid-template-columns:40px minmax(0,1fr) 44px}
.day-row img.ph{width:44px;height:44px;border-radius:10px;object-fit:cover;display:block}
.dc-skip{display:block;text-align:center}
.dc-secondary{display:flex;justify-content:center;gap:22px;margin-top:2px}
.dc-secondary .text-action{min-height:36px}
.wg-art{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:var(--r-l);margin:0 0 16px;box-shadow:0 14px 34px -18px rgba(0,0,0,.8)}
.home-art{width:100%;max-height:200px;object-fit:cover;border-radius:14px;margin:0 0 10px}
.push-row small{display:block;grid-column:1/span 2;font-size:13px;color:var(--muted);line-height:1.4}
.home-action{margin:14px 0 0}
.ha{padding:16px 18px}
.ha .eyebrow{display:block}
.ha-q{margin:6px 0 10px;font-size:18px;font-weight:600;line-height:1.35;color:var(--text)}
.ha .field{margin:0 0 10px}
.ha textarea{min-height:48px}
.ha .answer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0}
.ha .entry-text{margin:0 0 8px}
.week-daylink{font:inherit;cursor:pointer}
.week-carried .t2{margin:6px 0 0}
.thought{margin:14px 0 4px;padding:14px;border-radius:14px;background:var(--selected);border:1px solid rgba(217,184,104,.3);text-align:left}
.thought-q{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--text)}
.thought .field{margin:0 0 8px}
.thought textarea{min-height:48px}
.thought .entry-text{margin:0 0 8px;font-size:15px;line-height:1.5;color:var(--text)}
.thought .answer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0}
.thought .saved-state,.ha .saved-state{margin:0}
.wg-foot{padding:18px 0 8px;display:flex;justify-content:center}
.wg-return{min-height:48px;padding:0 26px;border-radius:999px;font-weight:600}
.wg-return:active{transform:scale(.98)}
.dc-echo-q{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:10px 12px;border-radius:14px;background:rgba(245,242,234,.05);border:1px solid var(--line)}
.dc-echo-q>span{font-size:13px;color:var(--muted);flex:1 1 100%}
/* праздник: луна разгорается, искры разлетаются, подпись проявляется */
.dc-party{position:relative;min-height:230px;display:grid;place-items:center;text-align:center;overflow:hidden}
.dc-party .moon{width:88px;height:88px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#f8ecc8,#ecd28d 55%,#c9a24b);animation:dcMoon 1.5s var(--sp) forwards}
@keyframes dcMoon{0%{transform:scale(.15);opacity:0}45%{transform:scale(1.1);opacity:1}65%{transform:scale(.96)}100%{transform:scale(1);box-shadow:0 0 70px 18px rgba(240,215,154,.28)}}
.dc-party .ring{position:absolute;left:50%;top:44%;width:88px;height:88px;margin:-44px;border-radius:50%;border:2px solid rgba(240,215,154,.7);opacity:0;animation:dcRing 1.6s ease-out .25s forwards}
.dc-party .ring.r2{animation-delay:.6s;border-width:1px}
@keyframes dcRing{0%{transform:scale(.4);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.dc-party .spark{position:absolute;left:50%;top:44%;width:7px;height:7px;margin:-3.5px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 8px rgba(240,215,154,.9);opacity:0;animation:dcSpark 1.6s ease-out forwards;animation-delay:var(--w)}
.dc-party .spark.s{width:4px;height:4px;margin:-2px;background:#fff}
@keyframes dcSpark{0%{transform:rotate(var(--a)) translateY(0) scale(.3);opacity:0}25%{opacity:1}100%{transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1);opacity:0}}
.dc-party p{position:absolute;left:0;right:0;bottom:14px;margin:0;font-size:18px;font-weight:600;opacity:0;animation:dcText .6s ease .8s forwards}
@keyframes dcText{to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  .dc-party *{animation:none!important;opacity:1!important;transform:none!important}
}
/* день записан — читается как текст */
.dc-read{margin:14px 0 0;font-size:16px;line-height:1.6;white-space:pre-line}
.dc-read small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:3px;white-space:normal}
.dc-read .q{display:block;color:var(--muted);margin-bottom:2px}
.dc-moods{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.dc-moods i{font-style:normal;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--selected);color:var(--gold-2);border:1px solid rgba(217,184,104,.35)}
.dc-morning{border-left:2px solid var(--gold);padding:6px 12px;margin:12px 0 0;font-size:13px;color:var(--muted);line-height:1.5}
.dc-morning b{display:block;color:var(--text);font-weight:500;font-size:15px}
.dc-morning .dc-lunar{display:block;margin-top:4px;color:var(--faint)}
.day-row .t p.quiet{color:var(--faint)}
.dc-quiet{margin:12px 0 0;font-size:13px;color:var(--faint);line-height:1.5}
.dc-bridge{margin-top:14px;padding:12px 14px;border-radius:14px;background:rgba(245,242,234,.05);border:1px solid var(--line);font-size:14px;color:var(--muted);line-height:1.5}
.dc-bridge b{color:var(--text-2);font-weight:500}
.dc-warm{margin:14px 0 0;font-size:15px;color:var(--text-2);line-height:1.5}
.dc-x{margin-left:8px;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--faint);font:inherit;font-size:14px;line-height:1;cursor:pointer;vertical-align:middle;padding:0}
.dc-moods .dc-x{align-self:center}
.day-nav .text-action{padding:0}
/* ── прошлые дни: полоска настроения и строки ── */
.past-days .sec-head{display:flex;justify-content:space-between;gap:10px}
.past-days .sec-head .text-action{min-height:32px;padding:0;font-size:13px}
.days-strip{display:flex;gap:5px}
.days-strip i{flex:1;height:22px;border-radius:7px;background:rgba(245,242,234,.06)}
.days-strip i.today{box-shadow:inset 0 0 0 1px var(--gold)}
.days-strip i.t-plus{background:rgba(159,230,189,.32)}
.days-strip i.t-zero{background:rgba(217,184,104,.32)}
.days-strip i.t-minus{background:rgba(255,179,179,.26)}
.days-strip i.t-own{background:rgba(233,199,126,.3)}
.days-list{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:var(--surface)}
.days-list .hint{margin:0}
.day-row{display:grid;grid-template-columns:36px minmax(0,1fr) 14px;column-gap:10px;align-items:center;width:100%;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.day-row:last-child{border-bottom:0}
.day-row .n{text-align:center}
.day-row .n b{display:block;font-size:17px;font-weight:600;line-height:1}
.day-row .n small{display:block;font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.day-row .t{min-width:0}
.day-row .t p{margin:0;line-height:1.4;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-row .t small{display:block;font-size:12px;color:var(--faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-row .t small em{font-style:normal;color:var(--gold-2)}
.day-row.empty .t p{color:var(--faint)}
.day-row .a{color:var(--faint);font-size:18px}
#days-box .days-strip{margin:4px 0 14px}
#days-box .days-list{margin-top:4px;border-radius:0;border-left:0;border-right:0}
#days-box .btn{margin-top:12px}
.days-month{padding:16px 0 6px!important;letter-spacing:.08em;text-transform:uppercase}
#days-box .days-list .days-month:first-child{padding-top:4px!important}
/* открытый день */
.dayview .dc-read{margin-top:16px}
body.inner .wpane .dayview .dc-read small{color:var(--gold);font-size:11px}
/* карточка уведомления на «Сегодня»: заголовок пуша и его текст построчно, как в самом уведомлении */
.push-note{margin-top:var(--s3);border-color:rgba(217,184,104,.35)}
.push-note .eyebrow{margin-bottom:6px}
.push-note b{display:block;font-size:17px;font-weight:600;line-height:1.4}
.push-note p{margin:8px 0 0;white-space:pre-line;color:var(--text-2);font-size:15px;line-height:1.55}
.push-note .text-action{margin-top:4px;padding-left:0}
/* «Поделиться» и «Скопировать» — во всю ширину, одна под другой (.btn.sm сужает) */
.ring svg{transform:rotate(-90deg)}
.ring .val{font-size:12px;color:var(--violet-2)}
.ring .lbl{font-size:11px;color:var(--muted)}
.ring circle.v{stroke-dasharray:151;stroke-dashoffset:151;transition:stroke-dashoffset .8s var(--sp)}
.sug{position:relative}
.sug-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;box-shadow:0 22px 60px rgba(11,10,20,.7);display:none}
.sug-list.on{display:block}
.sug-list button{display:block;width:100%;text-align:left;padding:13px 16px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);font:inherit;font-size:15px;cursor:pointer}
.sug-list button:last-child{border-bottom:0}
.sug-list button:hover,.sug-list button.hl{background:rgba(217,184,104,.14)}
.sug-list small{display:block;color:var(--faint);font-size:13px;margin-top:2px}
.geo{font-size:13px;color:var(--faint);margin-top:6px;min-height:1px}
.consent a{color:var(--gold-2);text-decoration:underline;text-underline-offset:3px}
.geo b{color:var(--violet-2);font-weight:600}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
.back{display:inline-flex;align-items:center;gap:7px;font-size:15px;color:var(--gold-2);background:none;border:0;padding:8px 0;cursor:pointer;font-family:inherit;min-height:44px}
/* анкета: без прокрутки на обычном телефоне — шапка в одну строку, поля ниже */
.onb-head{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:2px 0 8px;text-align:left}
.onb-head img{grid-row:span 2}
.onb-head h1{line-height:1.1}
.onb-head p{margin:2px 0 0}
#v-onb .field{gap:4px;margin-bottom:8px}
#v-onb input{min-height:44px;padding:10px 14px;border-radius:var(--r-s)}
#v-onb .geo{margin:3px 0 0}
#v-onb #o-go{min-height:54px}
/* «уже пользовались» — строкой под анкетой, а не отдельной карточкой */
#v-onb #o-back{background:none;border:0;box-shadow:none;padding:4px 0 0;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 10px;text-align:center}
#v-onb #o-back p{margin:0;font-size:13px}
#v-onb #o-back p+p{display:none}
#v-onb #o-auth{display:contents}
#v-onb #o-auth .btn.ghost.sm{width:auto!important;min-height:36px;padding:0 14px;margin-top:0!important}
#v-onb #o-auth .field,#v-onb #o-auth .btn:not(.sm),#v-onb #o-auth .msg{flex:1 1 100%}
#v-onb #o-auth .field{text-align:left}
#v-onb.on{margin-bottom:-16px}
/* нижний отступ обертки не должен давать пустую прокрутку */
/* ── iOS-оболочка (App Store) ──
   Правило 3.1.1 запрещает внешние оплаты и цены на цифровое внутри приложения,
   правило 2.1 — разделы «скоро» и пустые экраны. Поэтому в сборке для App Store
   не показываем платежное: остается только работающее.
   Установка PWA внутри приложения тоже ни к чему. */
/* ── натальная карта ── */
.nt{width:100%;border-collapse:collapse;margin-top:8px}
.nt th{text-align:left;border-bottom:1px solid var(--line)}
.nt td{border-bottom:1px solid var(--line);vertical-align:top}
/* ── чат с поддержкой ── */
.dot{top:8px;right:10px;width:9px;height:9px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 3px rgba(11,10,20,.9)}
.sup-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.sup-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 14px;border-radius:var(--r-m);background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--text);font:inherit;text-align:left;cursor:pointer;width:100%}
.sup-item b{font-size:15px;display:block}
.sup-item small{color:var(--faint);font-size:13px}
.sup-item .badge{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--bg);background:var(--gold-2);border-radius:var(--r-pill);padding:2px 8px}
.thread{display:flex;flex-direction:column;gap:8px;max-height:46dvh;overflow:auto;margin-top:12px;padding:12px;border-radius:var(--r-m);background:rgba(255,255,255,.04);border:1px solid var(--line)}
.thread .m{max-width:84%;padding:9px 12px;border-radius:var(--r-m);font-size:15px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.thread .m.user{align-self:flex-end;background:rgba(217,184,104,.18);border:1px solid rgba(217,184,104,.35)}
.thread .m.support{align-self:flex-start;background:rgba(255,255,255,.08)}
.thread .m small{display:block;color:var(--faint);font-size:12px;margin-bottom:3px}
.sup-status{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--line);font-size:13px;color:var(--muted)}
/* ── вход в приложение ── */
body.hello .wrap{max-width:1180px;min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom))}
#v-hello.on{position:relative;display:grid;grid-template-rows:auto auto auto auto;align-content:space-between;row-gap:24px;min-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
#v-hello .hello-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
#v-hello .hero{display:block;font-size:clamp(30px,8.2vw,38px);line-height:1.15;white-space:nowrap}
#v-hello .o-wrap{position:relative;display:inline-block}
#v-hello .hero .mark{position:absolute;left:var(--mx,50%);top:var(--my,50%);width:var(--ms,.9em);height:var(--ms,.9em);margin:0;transform:translate(-50%,-50%);animation:none;line-height:0}
#v-hello .hero .moon-img{width:100%;height:100%}
#v-hello .hello-login{flex-shrink:0;min-width:72px;min-height:44px;padding:10px 16px;border:1px solid rgba(255,255,255,.18);border-radius:var(--r-pill);background:rgba(11,10,20,.8);color:var(--text);font:inherit;font-size:15px;cursor:pointer}
#v-hello .hello-login:hover{background:rgba(34,29,51,.95);text-decoration:underline;text-underline-offset:4px}
#v-hello button:focus-visible{outline:2px solid var(--gold-2);outline-offset:5px}
#v-hello .hello-content h2{font-size:clamp(25px,6.8vw,32px);line-height:1.2;font-weight:500;text-wrap:balance}
#v-hello .gifts{padding:0;list-style:none;display:grid}
#v-hello .gift{display:flex}
#v-hello .gift .ico{flex:0 0 24px;color:var(--muted)}
#v-hello .gift b{display:block}
#v-hello .gift small{display:block}
/* «Обо мне»: карточка человека над списком разборов */
.me-card{display:grid;gap:4px;width:100%;margin:14px 0 0;padding:18px 18px 16px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--ck-radius,20px);color:var(--text);cursor:pointer;font:inherit;-webkit-appearance:none;appearance:none}
.me-card .me-name{font-size:22px;line-height:1.2;font-weight:600;letter-spacing:-.01em}
.me-card .me-line{font-size:15px;line-height:1.45;color:var(--text-2);font-weight:500}
.me-card .me-sub{line-height:1.4;color:var(--muted)}
.me-card .me-memo{margin-top:6px;font-size:14px;line-height:1.45;color:var(--text-2)}
.me-card:active{background:var(--selected)}
/* анкета по шагам: вопрос, поле, «Дальше»; вспомогательные действия — тонкой строкой под кнопкой */
.ob-card .ob-step .field{margin:0 0 14px}
.ob-card .ob-step .field input:not([type=checkbox]){font-size:17px}
.ob-card .ob-step .btn{width:100%}
.ob-card .dc-skip{margin-top:6px}
.ob-card .consent{margin:4px 0 14px}
.ob-card #o-mailfield{margin-bottom:14px}
#v-hello .hello-live{letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2);font-weight:600}
#v-hello .hello-ritual{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
#v-hello .hello-free{margin:12px 0 0;text-align:center;color:var(--muted)}
#v-hello .trust{max-width:440px;color:var(--muted);text-wrap:balance}
/* Светлая сторона Луны остается справа, вне основной текстовой колонки. */
.heromoon{pointer-events:none}
.heromoon img{width:100%;height:100%;display:block;object-fit:contain}
body.hello .orb{opacity:.25}
body.hello .cloud{display:none}
body.hello :is(.orb,.moon-img){animation:none}
body.hello .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,10,20,.7),rgba(11,10,20,.5) 60%,rgba(11,10,20,.08))}
@media(min-width:600px) and (max-width:899px){
  body.hello .wrap{padding-left:40px;padding-right:40px}
}
@media(max-height:700px){
  #v-hello .hello-content{padding-top:32px;padding-bottom:32px}
  #v-hello .gifts{margin-top:22px;gap:18px}
  #v-hello .cta{margin-top:28px}
}
.acct{width:44px;height:44px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--line);box-shadow:var(--glass-shadow);color:var(--gold);font:inherit;font-weight:700;font-size:15px;cursor:pointer;display:grid;place-items:center}
.news-dot{position:absolute;right:1px;top:1px;width:9px;height:9px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 3px var(--bg),0 0 12px rgba(240,215,154,.55)}
.account-group>.eyebrow{margin-bottom:10px}
/* сотрудникам и админам — обратный путь в кабинеты прямо с главной; кнопка не сдвигает статичный экран */
.cabs{position:absolute;right:52px;top:0;height:44px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border-radius:var(--r-pill);background:var(--glass-bg);border:1px solid rgba(217,184,104,.45);box-shadow:var(--glass-shadow);color:var(--gold-2);font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap}
.cabs[hidden]{display:none}
#v-home .row.hdr .cabs,#v-home .row.hdr .acct{flex:0 0 auto}
#v-home .row.hdr .acct{position:relative;top:auto;right:auto}
#v-home .row.hdr{gap:8px}
#v-home .row.hdr .grow{min-width:0}
#v-home .row.hdr h1{overflow-wrap:anywhere}
@media(max-width:600px){
  .cabs{width:42px;padding:0;justify-content:center;font-size:0;gap:0}
  .cabs::before{content:'';width:20px;height:20px;background:var(--gold);-webkit-mask:url(/app/assets/brand/icons/users.svg?v=2) center/contain no-repeat;mask:url(/app/assets/brand/icons/users.svg?v=2) center/contain no-repeat}
}
.moonline{display:flex;align-items:center;gap:12px;margin-top:14px;background:none;border:0;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;width:100%}
.moonline p{font-size:16px;color:var(--text)}
.moonline small{display:block}
.zsym{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.18em;fill:none;stroke:var(--gold-2);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px rgba(240,215,154,.35))}
/* ── отдельные рубашки и ряд камней: выбор руками ── */
.picker{text-align:center;padding:6px 0 2px}
.picker-q{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--text)}
.fan-rows{display:grid;gap:2px}
.fan{display:flex;justify-content:center;align-items:flex-end;padding:14px 6px 8px;min-height:110px;--w:46px;--a:calc(26deg / var(--n))}
/* базовая карточка; для Таро и рун ниже — отдельные неперекрывающиеся раскладки */
.fan-card{position:relative;flex:0 0 auto;width:var(--w);aspect-ratio:200/360;margin-left:var(--ml,calc(var(--w) * -.42));padding:0;border:0;background:none;border-radius:6px;transform-origin:50% 230%;transform:rotate(calc((var(--i, 0) - (var(--n) - 1) / 2) * var(--a)));transition:transform .28s var(--sp),filter .28s;cursor:pointer;filter:drop-shadow(0 6px 12px rgba(0,0,0,.6))}
.fan-card:first-child{margin-left:0}
.fan-card img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px;border:1px solid rgba(240,215,154,.35)}
.fan-card:hover{transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * var(--a))) translateY(-10px)}
.fan-card.on{transform:rotate(calc((var(--i) - (var(--n) - 1) / 2) * var(--a))) translateY(-22px);filter:drop-shadow(0 0 18px rgba(240,215,154,.7));z-index:2}
.fan-card.on img,.fan-card.on .stone-back{border-color:var(--gold-2)}
.pick-n{position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--gold);color:#1d1738;font-size:12px;font-weight:700;line-height:20px;display:none}
.fan-card.on .pick-n:not(:empty){display:block}
.picker.tarot .fan{align-items:center;flex-wrap:wrap;gap:10px;padding:12px 4px 8px;min-height:0}
.picker.tarot .fan-card{width:58px;aspect-ratio:200/360;margin-left:0;transform:none;transform-origin:center;border-radius:8px}
.picker.tarot .fan-card img{border-radius:8px}
.picker.tarot .fan-card:hover{transform:translateY(-6px) scale(1.03)}
.picker.tarot .fan-card.on{transform:translateY(-8px) scale(1.06);filter:drop-shadow(0 0 16px rgba(240,215,154,.72));z-index:2}
.picker.rune .fan{align-items:center;flex-wrap:wrap;gap:8px;padding:10px 0 6px;min-height:0}
.picker.rune .fan-card{width:44px;aspect-ratio:44/60;margin-left:0;transform:none;transform-origin:center}
.picker.rune .fan-card:hover{transform:translateY(-6px)}
.picker.rune .fan-card.on{transform:translateY(-10px) scale(1.06)}
.stone-back{display:block;width:100%;height:100%;border-radius:50%/48%;background:radial-gradient(circle at 40% 32%,#3a2f68,#1a1533 60%,#0f0c1e);border:1px solid rgba(240,215,154,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.picker.done .fan-card:not(.on){opacity:0;transform:translateY(12px)}
.picker.done .fan-card.on{transition:transform .4s var(--sp),opacity .3s}
.rune-thumb{width:40px;height:40px;border-radius:50%;overflow:hidden;flex:0 0 auto;box-shadow:0 0 14px -4px rgba(240,215,154,.5)}
.rune-thumb img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.35)}
.card-thumb{width:34px;height:56px;border-radius:5px;overflow:hidden;flex:0 0 auto;box-shadow:0 6px 14px -6px rgba(0,0,0,.8),0 0 16px -6px rgba(240,215,154,.5);transform:rotate(-4deg)}
.card-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.ico{display:inline-block;flex:0 0 auto;background:var(--gold);-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.ico.yes-no{--m:url(/app/assets/brand/icons/yes-no.svg)}
.ico.rune{--m:url(/app/assets/brand/icons/rune.svg)}
.ico.tarot{--m:url(/app/assets/brand/icons/tarot.svg)}
.ico.wish{--m:url(/app/assets/brand/icons/spark.svg)}
.ico.moon{--m:url(/app/assets/brand/icons/moon.svg?v=2)}
.ico.journal{--m:url(/app/assets/brand/icons/journal.svg)}
.ico.compatibility{--m:url(/app/assets/brand/icons/compatibility.svg)}
.ico.numerology{--m:url(/app/assets/brand/icons/numerology.svg)}
.ico.person{--m:url(/app/assets/brand/icons/person.svg)}
.ico.orbit{--m:url(/app/assets/brand/icons/orbit.svg)}
.ico.users{--m:url(/app/assets/brand/icons/users.svg)}
.ico.calendar{--m:url(/app/assets/brand/icons/calendar.svg)}
.ico.heart{--m:url(/app/assets/brand/icons/heart.svg)}
.ico.flag{--m:url(/app/assets/brand/icons/flag.svg)}
.ico.question{--m:url(/app/assets/brand/icons/question.svg)}
.ico.chat{--m:url(/app/assets/brand/icons/chat.svg)}
.ico.share{--m:url(/app/assets/brand/icons/share.svg)}
.ico.pen{--m:url(/app/assets/brand/icons/pen.svg)}
.ico.mail{--m:url(/app/assets/brand/icons/mail.svg)}
.ico.bell{--m:url(/app/assets/brand/icons/bell.svg)}
.ico.smile{--m:url(/app/assets/brand/icons/smile.svg)}
.ico.check{--m:url(/app/assets/brand/icons/check.svg)}
.ico.list{--m:url(/app/assets/brand/icons/list.svg)}
.ico.exit{--m:url(/app/assets/brand/icons/exit.svg)}
.ico.star{--m:url(/app/assets/brand/icons/spark.svg)}
/* плитки разделов */
.wids{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.wid{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:15px 14px;border-radius:var(--r-l);background:var(--glass-bg);border:1px solid var(--line);width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform var(--t-fast) var(--sp)}
.wid:active{transform:scale(.98)}
.wid .ico{width:26px;height:26px;margin-bottom:4px}
.wid b{display:block;font-size:15px;font-weight:650;color:var(--text);line-height:1.3}
.wid span{display:block;font-size:13px;color:var(--muted);line-height:1.45}
.stubtext{color:var(--faint);font-size:16px;text-align:center;margin-top:44px}
/* виджет: на телефоне во весь экран, на широком — панель по центру */
.wg-bg{position:fixed;inset:0;z-index:150;display:none;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.wg-bg.on{display:block;animation:fade var(--t) ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.wg{position:absolute;inset:0;overflow:auto;padding:calc(16px + env(safe-area-inset-top)) 18px calc(40px + env(safe-area-inset-bottom))}
.wg-head{display:flex;justify-content:space-between;gap:12px}
.wg-x{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--text);font-size:24px;line-height:1;cursor:pointer;flex:0 0 auto}
.wg-body{margin-top:22px}
body.wg-open{overflow:hidden}
.app-nav{position:fixed;z-index:120;left:50%;bottom:calc(8px + env(safe-area-inset-bottom));transform:translateX(-50%);width:min(430px,calc(100% - 24px));height:auto;padding:5px;display:none;grid-template-columns:repeat(4,1fr);gap:3px;border:1px solid rgba(255,255,255,.13);border-radius:var(--r-xl);background:rgba(19,16,34,.78);box-shadow:inset 0 1px rgba(255,255,255,.15),0 16px 48px rgba(0,0,0,.45);backdrop-filter:none;-webkit-backdrop-filter:none}
body.inner{overscroll-behavior-x:none}
body.inner .app-nav{display:grid}
.app-nav button{border:0;border-radius:var(--r-l);background:transparent;color:var(--faint);font:inherit;font-size:11px;line-height:1.1;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 2px;text-align:center;cursor:pointer}
.app-nav button .ico{width:21px;height:21px;background:var(--faint)}
.app-nav button.on .ico{background:var(--gold-2)}
body.nav-swipe-next .view.on{animation:nav-swipe-next .24s var(--sp)}
body.nav-swipe-prev .view.on{animation:nav-swipe-prev .24s var(--sp)}
@keyframes nav-swipe-next{from{opacity:.55;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes nav-swipe-prev{from{opacity:.55;transform:translateX(-24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){body.nav-swipe-next .view.on,body.nav-swipe-prev .view.on{animation:none}}
#v-ask>.back,#v-history>.back,#v-about>.back{display:none}
#v-account>.back,#v-news>.back{margin-bottom:6px}
.danger-zone{padding-top:20px;border-top:1px solid var(--line)}
.danger-zone>.eyebrow{color:var(--muted);margin-bottom:10px}
/* на телефоне навигации внизу нет: разделы открываются с главной */
/* ── широкий экран (≥900px): два формата, а не растянутый телефон. Контейнер во всю ширину до 1180px,
   плитки раскладываются по ширине; формы (анкета, вход) остаются колонкой — им ширина ни к чему ── */
@media(min-width:900px){
  h1{font-size:36px}
  #v-onb.on,#v-login.on{max-width:520px;margin:0 auto}
  .chip:hover{border-color:rgba(217,184,104,.45)}
  .btn.ghost:hover{background:rgba(255,255,255,.1)}
  .wid:hover{border-color:rgba(217,184,104,.6)}
  /* вход: шапка на всю ширину, содержание слева, Луна справа */
  /* вход: на широком экране приложение показывается в корпусе телефона (frame.css) — тот же макет, что на телефоне */
  #v-home h1{font-size:34px;max-width:760px}
  #v-home .row.hdr{gap:12px;align-items:flex-start}
  .moonline{max-width:560px;margin-top:18px}
  /* разделы: плитки по ширине, сколько влезает по 230px; последний ряд растягивается */
  .wids{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:28px}
  .wg{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,92vw);border-radius:var(--r-sheet);border:1px solid var(--line);padding:24px 26px 30px;box-shadow:0 40px 90px rgba(11,10,20,.7)}
}
@media(min-width:1400px){
  .heromoon{width:1200px;height:1200px;left:calc(50% - 120px);top:calc(50% - 600px)}
}
/* ── карта дня: иллюстрация аркана на лицевой стороне ── */
.daycard{width:196px;height:368px}
.dc-front{padding:0;overflow:hidden;border:1px solid rgba(217,184,104,.55)}
.dc-front img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--r-xl)}
@media(min-width:900px){
  .daycard{width:224px;height:420px}
}
.kw{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:7px;line-height:1.5}
.today{color:var(--strong);font-size:15px;margin-bottom:8px}
.card p+p{margin-top:10px}
.card h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:16px 0 6px;font-weight:800}
.card h3:first-child,.card p+h3:first-of-type{margin-top:0}
.card>h3:first-child{margin-top:0}
.card.memory{border-color:rgba(217,184,104,.35)}
/* сворачиваемое «читать полностью» */
.ln-topics{margin:10px 0 4px}
.ln-topics .chip.meta{opacity:.85}
.ln-all{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:14px;color:var(--faint)}
.ln-all button{font:inherit;font-size:14px;cursor:pointer;min-height:36px}
.hbars .l{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.hbars .l:last-child{border-bottom:0}
.hbars b{font-weight:600;white-space:nowrap}
.ln-sec{margin:16px 0 6px;font-weight:800}
.ln-hidden{margin-top:6px}
.ln-hidden details{border-top:1px solid var(--line)}
.ln-hidden summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:800}
.ln-hidden summary::-webkit-details-marker{display:none}
.ln-hidden summary::after{content:'+';margin-left:auto;color:var(--gold-2);font-size:16px;letter-spacing:0}
.ln-hidden details[open] summary::after{content:'–'}
.ln-hidden details[open] summary{color:var(--gold)}
.more{margin-top:var(--s3)}
.morebtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;color:var(--gold-2);font:inherit;font-size:14px;cursor:pointer}
.morebtn svg{transition:transform var(--t) var(--sp)}
.more.on .morebtn svg{transform:rotate(180deg)}
.morebody{display:none;padding-top:8px}
.morebody p+p{margin-top:10px}
.morebody h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:16px 0 6px;font-weight:800}
.more.on .morebody{display:block;animation:in var(--t) var(--sp)}
/* действия под результатом: второстепенные, не спорят с основным */
.resrow{justify-content:center}
.resrow .btn.sm{min-height:40px;font-size:14px;padding:0 16px;font-weight:600}
.resrow .btn.ghost.sm{color:var(--muted)}
/* руна: камень из книги */
.stone{width:150px;height:150px;border-radius:var(--r-sheet);margin:4px auto 10px;display:block;box-shadow:0 18px 40px -16px rgba(0,0,0,.75)}
/* схема расклада: где лежит какая карта или руна */
.lay{display:grid;gap:12px;justify-content:center;margin:8px auto 16px;width:fit-content}
.lay .c{position:relative;display:grid;place-items:center}
.lay .c button{position:relative;background:none;border:0;padding:0;cursor:pointer;display:block}
.lay .thumb{width:58px;height:109px;border-radius:var(--r-xs);object-fit:cover;display:block;border:1px solid rgba(217,184,104,.35);box-shadow:0 8px 18px -8px rgba(0,0,0,.8)}
.lay .num{position:absolute;top:-7px;left:-7px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:var(--bg);font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.lay .c.p2{z-index:2}
.lay .c.p2 .thumb{transform:rotate(90deg);opacity:.94}
.lay .c.p2 .num{top:auto;bottom:-7px;left:auto;right:-7px}
.glyph{width:58px;height:58px;border-radius:var(--r-m);background:linear-gradient(150deg,#2a2150,#0b0a14);border:1px solid rgba(217,184,104,.4);display:grid;place-items:center}
.glyph svg{width:34px;height:34px}
.glyph.lg{margin:var(--s1) auto var(--s3);width:90px;height:90px}
/* позиции расклада */
.pos{display:flex;gap:12px;align-items:flex-start;transition:border-color var(--t-slow)}
.pos.hl{border-color:rgba(217,184,104,.7)}
.pos .thumb{width:64px;height:120px;border-radius:var(--r-xs);object-fit:cover;flex:0 0 64px;border:1px solid rgba(217,184,104,.35)}
.pos .glyph{flex:0 0 58px}
.pos b{display:block;font-size:16px;color:var(--gold);font-weight:650;margin-top:var(--s2)}
.pos .pn{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:800;line-height:1.35}
.pos .pn small{display:block;letter-spacing:0;text-transform:none;font-weight:400;color:var(--faint);font-size:13px;margin-top:2px}
.laydesc{font-size:14px;margin-top:10px;color:var(--muted)}
.laydesc b{color:var(--strong);font-weight:600}
/* история: запись раскрывается в тот же вид, что и свежий результат */
.histhead{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.histhead>span{min-width:0}
.histhead b{display:block;font-weight:600;margin-bottom:3px}
.histhead svg{flex:0 0 auto;color:var(--faint);transition:transform var(--t) var(--sp)}
.hist.on .histhead svg{transform:rotate(180deg);color:var(--gold)}
.histbody{display:none;margin-top:12px}
.hist.on .histbody{display:block;animation:in var(--t) var(--sp)}
.hist .card{background:rgba(255,255,255,.04);box-shadow:none;padding:16px}
/* открытка на iOS без системного меню: показываем картинку, ее можно зажать */
.pc-bg{position:fixed;inset:0;z-index:200;background:rgba(11,10,20,.94);display:none;padding:calc(20px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));overflow:auto}
.pc-bg.on{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.pc-bg img{max-height:68vh;max-width:100%;border-radius:var(--r-l);box-shadow:0 30px 80px rgba(0,0,0,.7)}
/* личный год: иллюстрация, планета и энергия, описание с подзаголовками, списками и таблицами из файла */
.yr-img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--r-s);background:var(--field);border:1px solid rgba(217,184,104,.25)}
.yr-cap{text-align:center}
.yr-art h4{font-size:16px;font-weight:600;color:var(--text);line-height:1.35;margin:20px 0 4px}
.yr-art .yr-cap+h4,.yr-art>h4:first-child{margin-top:0}
.yr-art p{font-size:15px;line-height:1.6;margin:10px 0 0;color:var(--text-2)}
.yr-art b{display:inline;font-size:inherit;margin:0;color:var(--strong);font-weight:600}
/* выделение внутри строки, а не заголовок карточки */
.yr-art ul,.yr-art ol{margin:8px 0 0;padding-left:22px;color:var(--text-2);font-size:15px;line-height:1.6}
.yr-art li{margin-top:6px}
.yr-art li::marker{color:var(--gold)}
.yr-art ul ul{margin-top:4px;padding-left:18px}
.yr-art{min-width:0}
/* карточка в сетке не растягивается под широкую таблицу — таблица прокручивается внутри */
.yr-art a{color:var(--gold-2);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
/* ссылки на источники — как в файле */
/* лунный день: полоска всех 30 дней, над главой — номер дня и ее тема */
.ln-days{margin-top:6px}
.ln-days .chip{min-width:44px;text-align:center}
.ln-eb{letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.yr-art .ln-eb{margin-top:14px}
.yr-art .ln-title{font-weight:600;color:var(--text);margin:4px 0 0}
.yr-tw{overflow-x:auto;margin-top:12px;-webkit-overflow-scrolling:touch}
.yr-t{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45;min-width:420px}
.yr-t th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);text-align:left;padding:6px 8px 8px;border-bottom:1px solid rgba(217,184,104,.35);vertical-align:bottom}
.yr-t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--text-2)}
.yr-t tr>*:first-child{color:var(--text);font-weight:600;padding-left:0}
.yr-t tr>*:last-child{padding-right:0}
/* ── напоминания: переключатель, время, регулярность ── */
.sw{border-radius:var(--r-pill);position:relative;cursor:pointer;padding:0;transition:background var(--t)}
.sw i{position:absolute;border-radius:50%;transition:transform var(--t) var(--sp),background var(--t)}
.sw.on{background:rgba(217,184,104,.35);border-color:rgba(217,184,104,.6)}
.sw.on i{transform:translateX(18px);background:var(--gold-2)}
.rem-head{display:flex}
.rem-actions{margin-top:12px}
.rem-actions .btn{min-height:44px}
.rem-lbl{flex:1;min-width:0;background:none;border:0;padding:0;text-align:left;color:inherit;font:inherit}
.rem-lbl b{display:block;font-weight:650}
.rem-lbl small{display:block;margin-top:2px}
.rem-body{animation:in var(--t) var(--sp)}
.rem-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rem-row label{letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.rem-row input[type=time]{width:auto;font-size:18px;color-scheme:dark}
.rem-status{margin-top:10px}
.hint{font-size:13px;color:var(--faint);line-height:1.45}
/* отступы по шкале и роли текста — вместо inline-стилей в шаблонах */
.mt-0{margin-top:0!important}
.mt-1{margin-top:var(--s1)!important}
.mt-2{margin-top:var(--s2)!important}
.mt-3{margin-top:var(--s3)!important}
.mt-4{margin-top:var(--s4)!important}
.mt-5{margin-top:var(--s5)!important}
.mb-0{margin-bottom:0!important}
.mb-2{margin-bottom:var(--s2)!important}
.mb-3{margin-bottom:var(--s3)!important}
.mb-4{margin-bottom:var(--s4)!important}
.center{text-align:center}
.left{text-align:left}
.italic{font-style:normal}
.title-gold{font-family:Onest,ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:22px;line-height:1.25;color:var(--gold)}
.num-mark{font-family:Onest,ui-sans-serif,system-ui,sans-serif;font-weight:600;font-size:36px;line-height:1.1;color:var(--gold);width:44px;flex:0 0 44px;text-align:center}
.row.top{align-items:flex-start;gap:var(--s4)}
.sub{color:var(--muted);font-weight:400;font-size:13px}
.code-input{letter-spacing:8px;text-align:center;font-size:22px}
.consent{display:flex;gap:var(--s3);align-items:flex-start;color:var(--muted);cursor:pointer}
.consent input{width:20px;flex:0 0 20px;margin-top:2px;accent-color:var(--gold)}
/* ── привычки ── */
.hb{display:flex}
.hb-check{flex:0 0 34px;background:transparent;color:var(--bg);cursor:pointer;display:grid;place-items:center;font-weight:800;margin-top:2px;padding:0}
.hb.on .hb-check{background:var(--gold)}
.hd-row{display:flex;gap:6px;margin-top:8px}
.hd{width:30px;height:40px;border:0;background:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--faint);font:inherit;font-size:11px}
.hd::before{content:'';width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(217,184,104,.5);box-sizing:border-box}
.hd.on::before{background:var(--gold);border-color:var(--gold)}
.hd.today{color:var(--gold-2)}
.hd.today::before{box-shadow:0 0 0 3px rgba(217,184,104,.2)}
/* ── отчет по настроениям ── */
.mr-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px}
.mr-day{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 0;border-radius:var(--r-s)}
.mr-day.today{background:rgba(217,184,104,.1)}
.mr-empty{width:30px;height:30px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.18);display:block}
/* ── небо ── */
.skyev.now{border-color:rgba(217,184,104,.5)}
.skyev b{margin-bottom:2px}
/* ── главная: шесть квадратов, три в ряд ── */
.acct{overflow:visible}
.acct-content{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:inherit}
/* ── круг эмоций Плутчика ── */
.mfam{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.mfam:first-child{border-top:0;padding-top:0}
.mfam .fname{width:84px;flex:0 0 84px;font-size:12px;color:var(--faint);letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding-top:9px;line-height:1.2}
.mfam .chips{flex:1}
.mchip{border-color:var(--c,var(--line))}
.mchip.on{background:color-mix(in srgb,var(--c,var(--gold)) 28%,transparent);border-color:var(--c,var(--gold));color:var(--strong)}
.mpick{display:flex;align-items:center;gap:12px;padding:12px 14px;background:rgba(255,255,255,.05)}
.mpick svg{flex:0 0 40px}
/* ── «что вас беспокоит»: свой запрос и плашки ── */
.hubq textarea{min-height:84px}
/* ── привычки: регулярность и награды ── */
.hb-rule{display:inline-block;border-radius:var(--r-pill);vertical-align:middle}
.hb-edit{display:none;margin-top:10px}
.hb.editing .hb-edit{display:block}
/* ── желания: фото ── */
/* ── аккаунт: фото ── */
.avatar{width:84px;height:84px;border-radius:50%;overflow:hidden;background:var(--glass-bg);border:1px solid rgba(217,184,104,.45);display:grid;place-items:center;color:var(--gold);font-size:30px;font-weight:700;flex:0 0 84px}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
/* ── новое в приложении ── */
/* «Установить на телефон» ведет на инструкцию /app/install (в Chrome на телефоне — сразу системный диалог); уже установленным не нужна:
   оболочке App Store и приложению, открытому с экрана «Домой» */
.ios-shell #t-install{display:none!important}
@media(display-mode:standalone){
  #t-install{display:none!important}
}
a.wid,a.later-row{text-decoration:none}
/* Микровзаимодействия команд: один короткий золотой отклик вместо постоянной анимации. */
:is(.wid,.moonline){position:relative;isolation:isolate;overflow:hidden;transition:transform var(--t) var(--sp),border-color var(--t) ease,background-color var(--t) ease,box-shadow var(--t) ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:is(.wid){backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:var(--glass-shadow),inset 0 0 0 .5px rgba(255,255,255,.07)}
:is(.wid,.moonline)::after{content:'';position:absolute;z-index:0;left:var(--tap-x,50%);top:var(--tap-y,50%);width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,rgba(255,244,207,.42) 0,rgba(217,184,104,.18) 38%,transparent 72%);opacity:0;transform:translate(-50%,-50%) scale(.2);pointer-events:none}
:is(.wid,.moonline)>*{position:relative;z-index:1}
:is(.wid,.moonline).reward::after{animation:reward-ring .58s var(--sp)}
:is(.wid,.moonline).reward>.ico{animation:reward-icon .5s var(--sp)}
@keyframes reward-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}22%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(18)}}
@keyframes reward-icon{0%,100%{transform:none}42%{transform:translateY(-2px) scale(1.1);filter:drop-shadow(0 0 9px rgba(240,215,154,.55))}}
.command-enter{animation:command-enter var(--t) var(--sp) backwards}
@keyframes command-enter{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.wg-bg.on .wg{animation:panel-open var(--t-slow) var(--sp)}
@keyframes panel-open{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){
  :is(.wid,.moonline):hover{transform:translateY(-2px);border-color:rgba(217,184,104,.58);box-shadow:var(--glass-shadow),0 16px 34px -22px rgba(240,215,154,.75)}
  :is(.wid):hover::before{opacity:.72}
}
:is(.wid,.moonline):active{transform:scale(.98)}
:is(.wid,.moonline):focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  :is(.wid,.moonline)::after{display:none}
  :is(.wid,.moonline):hover{transform:none}
}
.hb-entry{display:grid}
.hb-columns{align-items:start}
.hb-columns .hb-rule{margin:0}
.mfam{flex-wrap:wrap}
.mfam .chips{min-width:180px}
.mchip{min-height:40px}
/* Спокойные поверхности для чтения, стекло — у навигации и коротких действий. */
[hidden]{display:none!important}
body.inner :is(.card,.item,.wid){backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
body.inner :is(.orb,.cloud){animation:none}
:is(button,input,textarea,summary,a):focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
.text-action{display:inline-flex;align-items:center;gap:8px;font:inherit;cursor:pointer;text-align:left}
.text-action.secondary{color:var(--muted)}
.nowrap{white-space:nowrap}
.text-action:disabled{opacity:.55;cursor:default}
.utility-actions{display:flex;gap:6px 20px;flex-wrap:wrap;align-items:center;margin-top:16px;padding-top:8px;border-top:1px solid var(--line)}
.utility-actions .ico{width:17px;height:17px}
#v-home #h-date{color:var(--muted)}
/* ── Герой «Сегодня»: Луна с настоящей фазой (moon-logo.js), под ней фаза и лунный день антиквой, имя и транзитная Луна,
   ближайшие фазы; полоска недели — семь маленьких лун. Все — одна кнопка, ведет в лунный день ── */
.home-hero{position:relative;display:grid;justify-items:center;width:100%;margin:0;padding:6px 0 2px;background:none;border:0;color:var(--text);text-align:center;cursor:pointer;font:inherit;-webkit-appearance:none;appearance:none}
.home-hero .hero-glow{position:absolute;left:50%;top:150px;width:min(460px,120vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(240,215,154,.20),rgba(240,215,154,.07) 40%,transparent 68%);pointer-events:none;z-index:0}
.moon-hero-cv{position:relative;z-index:1;display:block;width:min(300px,80vw);height:auto;aspect-ratio:1;margin:-14px 0 -20px}
/* диск ≈ 204 px — шаг под Луной виден без прокрутки на 390×844 */
/* диск ≈ 68 % стороны холста — 218 px; остальное — нимб */
.hero-phase{position:relative;z-index:1;display:block;font-size:22px;line-height:1.25;font-weight:600;letter-spacing:-.01em;color:var(--text);text-wrap:balance;padding:0 8px}
@media(max-width:400px){
  .hero-phase{font-size:20px}
}
.hero-me{position:relative;z-index:1;display:block;margin-top:6px;font-size:14px;line-height:1.4;font-weight:500;color:var(--text-2)}
.hero-next{position:relative;z-index:1;display:block;margin-top:6px;font-size:11px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hero-me[hidden],.hero-next[hidden]{display:none}
.home-hero:active .moon-hero-cv{transform:scale(.985)}
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin:6px 0 0;padding:0 2px}
.ws-day{display:grid;justify-items:center;gap:1px;padding:5px 0 4px;border-radius:12px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.ws-day.future{cursor:default;opacity:.55}
button.ws-day:active{background:var(--selected)}
.ws-day.on{background:var(--selected)}
.ws-day canvas{width:26px;height:26px;display:block}
.ws-day i{font-style:normal;font-size:11px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ws-day small{font-size:12px;line-height:1.3;color:var(--muted)}
.ws-day.on i,.ws-day.on small{color:var(--gold-2);font-weight:600}
html[data-theme=light] .home-hero .hero-glow{background:radial-gradient(circle,rgba(42,33,80,.08),transparent 62%)}
.daily-statement{margin:26px 0 8px;max-width:820px}
.daily-statement #h-wish{font-size:clamp(21px,3vw,28px);line-height:1.45;letter-spacing:-.015em;color:var(--text);margin-top:10px;text-wrap:pretty}
.daily-statement .text-action{margin-top:4px}
.wg-bg{background:rgba(6,5,13,.78)}
.wg{scroll-padding-top:94px}
.wg-head{position:sticky;top:calc(-16px - env(safe-area-inset-top));z-index:8;padding:16px 0 12px;border-bottom:1px solid var(--line);align-items:center}
.wg-head h2{font-size:24px;line-height:1.3}
.wg-head .eyebrow{color:var(--muted)}
.wg-tools{margin:12px 0 20px}
.wg-tools:empty{display:none}
.rem-summary{justify-content:flex-start;max-width:100%}
.rem-summary .ico{width:17px;height:17px;flex:0 0 17px;background:var(--muted)}
.rem-summary>span:last-child{margin-left:auto}
#rem-all .rem-summary{margin-top:12px}
.wg-tools .rem-body{padding:16px;margin-top:10px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--field)}
.practice-question{font-size:21px;line-height:1.45;color:var(--text);margin:16px 0;font-weight:500}
.practice-card{margin-top:16px}
.practice-card h3.practice-question{margin:0 0 12px;font-size:21px;line-height:1.45;font-weight:500;color:var(--text);text-transform:none;letter-spacing:normal}
.practice-card .field{margin-top:16px}
.practice-progress{margin:16px 0}
.saved-state{font-size:13px;line-height:1.5;margin:16px 0 10px;padding-left:12px}
.entry-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}
.observation,.practice-create{margin-top:20px}
:is(.observation,.practice-create)>summary{min-height:44px;padding:10px 0;cursor:pointer;color:var(--gold-2);font-size:14px;line-height:1.5}
:is(.observation,.practice-create)[open]>summary{margin-bottom:8px}
.segmented{display:flex;gap:4px;padding:4px;border-radius:var(--r-m);margin:20px 0 16px;border:1px solid var(--line)}
.segmented button{flex:1;min-width:0;min-height:44px;padding:8px 10px;border:0;border-radius:var(--r-s);background:none;color:var(--muted);font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.segmented button[aria-selected=true]{box-shadow:0 1px 3px #0003}
.mood-own-row{margin-top:20px}
.mood-own-row label{font-size:13px;color:var(--muted);display:block;margin-bottom:8px}
.mood-own-row input{min-width:0}
.mood-own-row .btn{flex:0 0 auto}
.mpick.saved-state{border-radius:var(--r-s);border:1px solid var(--line);border-left:2px solid var(--ok);color:var(--text);margin:16px 0}
.mpick.saved-state small{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:4px}
.emotion-families{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.emotion-family{display:flex;align-items:center;gap:9px;min-height:64px;border-radius:var(--r-m);padding:12px;border:1px solid var(--line);color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.emotion-family svg{flex:0 0 28px}
.emotion-family>span:last-child{margin-left:auto;color:var(--muted)}
.emotion-family.on{border-color:var(--c)}
.mood-shades{padding:16px;border:1px solid var(--line);border-radius:var(--r-m);margin:4px 0 12px}
.mood-shades .chips{margin-top:12px}
.mchip{min-height:44px;font-size:14px}
.mood-picker .mfam{gap:10px;display:block;padding:14px 0}
.mood-picker .mfam .fname{display:block;width:auto;margin-bottom:10px;padding:0;color:var(--muted)}
.hb-check{min-height:44px;flex-basis:44px;border-radius:var(--r-m)}
.hb b.hb-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(70px,.75fr);gap:10px}
.hb-columns .hb-rule{background:none;padding:0;overflow-wrap:anywhere}
.hd-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}
.hd{width:100%;min-height:44px}
.hb .icon-action{min-width:40px;flex:0 0 40px}
.hb .grow{overflow-wrap:anywhere}
.add-action{margin-top:12px}
@media(hover:hover) and (pointer:fine){
  body.inner :is(.wid,.moonline):hover{transform:translateY(-2px);border-color:rgba(236,231,249,.32);box-shadow:none}
  body.inner :is(.text-action,.emotion-family):hover{color:var(--strong)}
  body.inner :is(.wid,.moonline):active{transform:scale(.98)}
}
@media(max-width:370px){
  .emotion-family svg{width:22px;flex-basis:22px}
  .hb{gap:8px;padding:12px}
  .hb b.hb-columns{grid-template-columns:1fr}
  .hb .icon-action{min-width:32px;flex-basis:32px}
  .mood-own-row .row{flex-wrap:wrap}
  .mood-own-row input{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .wg-bg.on .wg{translate:none}
  body.inner :is(.wid,.moonline):hover{transform:none}
}
@media(prefers-reduced-transparency:reduce){
  body.inner :is(.app-nav,.rem-summary,.acct,.wg-x){background:#28233c;backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* Четыре маршрута: день, вопрос, записи, личное. */
#v-home.on{display:block;min-height:0}
#v-home .hdr h1{margin-top:var(--s1)}
#v-home .morning-picker{margin-top:22px}
.section-caption{margin-top:8px;font-size:14px;color:var(--muted);line-height:1.5}
.feature-group,.account-group{margin-top:30px}
.feature-group>h2,.account-group>h2{font-size:18px;line-height:1.4;font-weight:600}
.feature-group>.wids,.account-group>.wids{margin-top:12px}
body.inner #home-sky .moonline{cursor:pointer}
#home-sky .moonline .grow{min-width:0;display:grid;gap:5px}
#home-sky .moonline b{font-size:14px;line-height:1.5;font-weight:500}
#home-sky .moonline small{font-size:12px;line-height:1.5;margin:0;color:var(--muted)}
#home-sky .lunar-advice{font-size:13px;line-height:1.5;color:var(--muted)}
.lunar-arrow{flex:0 0 auto;color:var(--gold-2);font-size:20px}
#home-sky .moonline::after{display:none}
.profile-summary{margin-top:20px}
.profile-summary h2{font-size:22px;margin-bottom:16px}
.profile-summary>p{margin-top:14px;font-size:14px}
:is(.lunar-period,.lunar-library)>summary{cursor:pointer}
.upcoming{margin-top:20px}
.danger-zone{margin-top:44px}
.danger-zone .warn{margin-top:20px}
.question-entry{grid-template-columns:1fr}
.question-entry .wid{min-height:100px}
.quick-moods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.quick-mood{display:flex;align-items:center;gap:10px;min-height:70px;padding:14px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--text);font:inherit;font-size:15px;text-align:left;cursor:pointer}
.quick-mood.on{border-color:var(--gold);background:var(--selected)}
.quick-mood .ico{width:30px;height:30px;background:var(--muted)}
#hub-chips{margin-top:16px}
#hub-opts .chips{margin:12px 0 20px}
.hubq .field{margin:24px 0 0}
#hub-res{margin-top:20px}
.material-note{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.material-note a{color:var(--muted)}
.lunar-heading h3{margin:16px 0 0}
.lunar-heading .practice-question{margin:6px 0}
.lunar-library,.lunar-period{margin-top:18px}
#ln-preview{padding-top:8px}
body.inner .utility-actions .text-action{color:var(--muted)}
@media(min-width:900px){
  .profile-summary{max-width:660px}
}
@media(max-width:370px){
  .quick-mood{font-size:14px}
}
@media(hover:hover) and (pointer:fine){
  body.inner .wid:hover,.quick-mood:hover{border-color:rgba(217,184,104,.5)}
}
/* Стили приложения одним файлом (19.09): токены — theme.css, разметка экранов — <style> в index.html, здесь — все остальное
   в прежнем порядке каскада. Правило нового кода: не добавлять четвертый слой — править существующее правило. */
/* ═══════════════════════════ ЭКРАНЫ И ФОРМЫ ═══════════════════════════ */
/* Reading layout and controls; moon-glass.css supplies the final day/night material. */
body:not(.inner){color-scheme:dark}
html[data-theme] body.inner{color:var(--text)}
body.inner :is(.card,.item,.wid){background:var(--surface);border-color:var(--line)}
body.inner :is(input,textarea,select){color:var(--text);font-size:17px}
body.inner :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
body.inner textarea{line-height:1.65;min-height:160px;resize:none;overflow:hidden}
body.inner :is(.hint,.section-caption,.practice-progress,.rem-status,.wid>span,.field label,.text-action,.rem-summary,.segmented button,.emotion-family,.mchip,.mood-own-row label,.hb-rule,.chip,.btn.sm,.observation>summary,.practice-create>summary){font-size:16px;line-height:1.5}
body.inner .wpane :is(.hint,.msg,.saved-state){font-size:16px!important;color:var(--muted)}
body.inner .wpane :is(h2,h3,b,strong,label){color:var(--text)}
body.inner .wpane small,.timeline-kind,.timeline-day{color:var(--muted)}
.wg,.wg-head{background:var(--sheet)}
.wg-tools .rem-body,.emotion-family,.mood-shades,.segmented{background:var(--field)}
.segmented button[aria-selected=true]{background:var(--selected);color:var(--text)}
#tone-box .answer-form,#journal-card{background:transparent;border:0;box-shadow:none;padding:0}
.answer-form .field{margin:20px 0 0}
.answer-actions{position:sticky;bottom:0;z-index:9;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--sheet);border:0}
.answer-actions .btn{width:100%}
#v-practice{max-width:760px;margin:0 auto;min-height:80dvh;padding-bottom:60px}
.practice-header{padding:0 0 24px}
.practice-header h1{margin:12px 0 0;font-size:clamp(26px,4vw,36px)}
.practice-header .back{font-size:16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;color:var(--text)}
#practice-body{min-width:0}
#practice-tools:empty{display:none}
#practice-tools{margin:0 0 24px}
#practice-tools .rem-body{display:none}
/* Каталог инструментов: карточки по разделам, у каждой «Посмотреть» и «Добавить/Убрать»; вход — обычная плитка внизу Дневника */
.timeline{max-width:780px;margin:0 auto}
.timeline-entry{border:0;border-bottom:1px solid var(--line);padding:20px 0;overflow-wrap:anywhere}
.timeline-entry p{white-space:pre-wrap;margin:8px 0 0}
.timeline-empty{padding:32px 0}
.mr-day{color:var(--text);font:inherit;border:0;cursor:pointer;background:var(--field);min-height:72px;min-width:0}
.wish-form{padding:0;background:none;border:0;box-shadow:none}
.wish-form label{display:block;margin-bottom:8px;font-size:16px}
#w-text{width:100%;min-width:0}
.wish-create-actions{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:16px 0 24px;flex-wrap:wrap}
#wish-preview img{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:var(--r-m);margin-top:16px;background:var(--field)}
.wish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px!important}
.wish-card{overflow:hidden}
.wish-picture{display:block;width:100%;border:0;padding:0;cursor:pointer;color:var(--muted);font:inherit;font-size:16px}
.wish-picture img{width:100%;height:100%;object-fit:cover;display:block}
.wish-copy p{margin:0 0 12px;white-space:pre-wrap}
.wish-copy .text-action{font-size:15px}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.theme-option{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.theme-option>span{display:grid;place-items:center;font-size:32px;margin-bottom:12px;border-radius:var(--r-s)}
.theme-option[aria-pressed=true]{outline:2px solid var(--gold);outline-offset:2px}
html[data-theme=light] body.inner :is(.app-nav,.rem-summary,.acct,.wg-x){color:var(--text)}
html[data-theme=light] body.inner :is(.orb,.cloud){opacity:.035}
html[data-theme=light] body.inner :is(.wid,.card,.item,.wpane,.profile-summary,.timeline) :is(p,span,small,label){color:var(--text)}
html[data-theme=light] body.inner :is(.hint,.section-caption,.geo,.wid>span,.wpane small,.timeline-kind,.timeline-day,.rem-status,.rem-summary){color:var(--muted)!important}
html[data-theme=light] body.inner :is(.hb,.rem-body,.mood-picker,.observation,.practice-create,.quick-mood,.mchip,.histbody){background:var(--surface);color:var(--text);border-color:var(--line)}
html[data-theme=light] body.inner :is(.chip,.mchip,.hd,.icon-action,.morebtn,.histhead,.quick-mood,.rowbtn){color:var(--text);border-color:var(--line)}
html[data-theme=light] body.inner :is(.chip.on,.mchip.on,.chip[aria-pressed=true],.hd.on,.quick-mood.on){background:var(--selected);color:var(--text);border-color:var(--gold-2)}
html[data-theme=light] body.inner :is(.text-action,.emotion-family):hover{color:var(--text)}
body.inner .app-nav button{min-width:0}
body.inner .toast{background:var(--selected);color:var(--text);border-color:var(--line);font-size:16px}
body.inner .morebtn{font-size:16px;min-height:44px}
.mr-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:16px}
.mr-month-days .mr-day{border-radius:var(--r-s);padding:8px 2px}
@media(min-width:760px){
  .wg{max-height:min(88vh,var(--visible-height,88vh))}
}
@media(max-width:759px){
  .wg{height:var(--visible-height,100dvh);bottom:auto}
  .wg-head{top:calc(-16px - env(safe-area-inset-top))}
  .wg{padding-bottom:env(safe-area-inset-bottom)}
  .wish-grid{grid-template-columns:1fr}
  .theme-options{gap:8px}
  .theme-option{padding:8px}
  .theme-option>span{height:90px}
  .app-nav{padding-bottom:env(safe-area-inset-bottom)}
  body.practice-open:has(textarea:focus) .app-nav{visibility:hidden}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .wish-card,.timeline-entry{animation:none}
}
body.inner :is(#v-ask,#v-history,#v-news){max-width:820px;margin-inline:auto}
body.inner :is(h1,#v-home .hdr h1){font-size:32px;line-height:1.2;letter-spacing:-.035em;font-weight:600}
body.inner .view>h1{margin-bottom:18px}
body.inner :is(.hint,.section-caption){text-wrap:pretty}
body.inner :is(.wpane,.grow,.account-personal,.account-settings){min-width:0}
body.inner .wpane :is(p,.entry-text){overflow-wrap:anywhere}
body.inner .wpane p+p{margin-top:14px}
body.inner :is(.wpane h3,.field label){text-transform:none;letter-spacing:0}
/* One clear action; secondary actions remain quiet but easy to hit. */
body.inner .btn{padding:13px 20px;line-height:1.45}
body.inner :is(.text-action,.back,.linkbtn){min-height:44px;line-height:1.5}
body.inner .text-action.secondary{color:var(--muted)}
body.inner button{touch-action:manipulation}
body.inner :is(button,summary,a):focus-visible{outline:3px solid var(--focus);outline-offset:4px}
body.inner :is(input,textarea,select):focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus);box-shadow:0 0 0 5px color-mix(in srgb,var(--focus) 10%,transparent)}
body.inner :is(button:disabled,input:disabled){cursor:not-allowed}
body.inner .utility-actions{justify-content:flex-start}
body.inner .utility-actions+.utility-actions{margin-top:4px;border:0;padding-top:0}
body.inner .saved-state{padding:12px 16px;border:1px solid color-mix(in srgb,var(--ok) 30%,transparent);border-radius:var(--r-m);background:color-mix(in srgb,var(--ok) 7%,var(--surface));color:var(--ok)!important}
body.inner .saved-state:empty{display:none}
body.inner .toast{border-radius:var(--r-m);padding:12px 18px;line-height:1.5;box-shadow:0 8px 32px #0002;max-width:min(480px,calc(100% - 32px))}
/* Destination cards: generous text and a consistent directional cue. */
body.inner .wids{gap:18px}
body.inner .wid{position:relative}
/* размеры, поля и переходы плиток — moon-glass.css */
body.inner .wid>span.destination-arrow{right:18px;top:22px;pointer-events:none}
/* Today: one focal card, then quick actions and personal practices. */
body.inner #home-sky .moon-sm{margin-top:4px}
body.inner #home-sky .lunar-arrow{align-self:center}
/* Choosing a method reads as three equal options, without an orphan card. */
body.inner .method-grid .wid{gap:4px 16px}
/* The diary is a reading surface. Filters never conceal available record types. */
body.inner .timeline-entry{padding:22px 0}
body.inner .timeline-empty{padding:28px 24px;background:var(--surface);border:1px dashed var(--control-border);border-radius:var(--r-l);margin:20px 0}
body.inner .wish-copy{padding:24px}
body.inner .wish-copy p{font-weight:500}
body.inner .wish-picture:not(:has(img)){aspect-ratio:auto;min-height:140px}
body.inner .wish-create-actions{gap:12px}
/* Profile and app settings form two stable groups on wide screens. */
body.inner .profile-summary{margin-top:0;max-width:none}
body.inner .profile-summary h2{letter-spacing:-.025em}
body.inner .danger-zone{gap:0}
body.inner .danger-zone .eyebrow{color:var(--muted);margin-bottom:10px}
/* Forms use one surface and labels directly attached to their fields. */
body.inner .field{gap:10px;margin-bottom:28px}
body.inner :is(input:not([type=checkbox]),select){min-height:52px;border-radius:var(--radius-control);padding:13px 15px;max-width:100%}
body.inner textarea{scroll-margin:110px 0;max-width:100%}
body.inner .wpane>.card:only-child,body.inner #w-ask>.card,body.inner #sup-box>.card,body.inner #gr-box>.practice-card{padding:0}
body.inner #gr-box .practice-question{margin-top:0}
body.inner #hb-new-form{padding:22px}
body.inner #hb-new-form h3{margin:0 0 20px;font-size:20px}
body.inner #hb-new-form .hint{margin:16px 0}
body.inner .segmented{margin:0 0 20px;border:0;padding:5px;border-radius:var(--r-m)}
body.inner .segmented button{border-radius:var(--r-s);min-height:46px}
body.inner .hb{border-radius:var(--r-l);gap:16px;align-items:flex-start}
body.inner .hb-check{border:1.5px solid var(--control-border);width:44px;height:44px;min-width:44px}
body.inner .hb.on{border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}
body.inner .hb.on .hb-check{color:var(--bg);background:var(--ok);border-color:var(--ok)}
body.inner .hb .icon-action{min-width:44px;min-height:44px}
body.inner .practice-header{padding-bottom:32px}
body.inner .practice-header h1{margin-top:16px}
body.inner #practice-tools{margin-bottom:24px}
body.inner #as-box .practice-card{padding:24px}
body.inner #as-box .bar{height:5px;border-radius:var(--r-pill);background:var(--selected)}
body.inner #as-box .bar i{background:var(--gold-2);border-radius:inherit}
body.inner :is(.observation,.practice-create)>summary{font-size:16px}
body.inner .emotion-family,body.inner .quick-mood{min-height:72px;padding:16px;border-radius:var(--r-l)}
body.inner .mood-shades{background:var(--accent-soft);border:0;padding:20px}
body.inner .mood-own-row{margin:20px 0}
body.inner .rem-head{align-items:flex-start;gap:14px}
body.inner .rem-head .sw{flex:0 0 50px;width:50px;height:44px;min-height:44px;margin:0;border:0;box-sizing:border-box;background:transparent;box-shadow:none}
body.inner .rem-head .sw::before{content:'';position:absolute;inset:8px 0;background:var(--selected);border:1px solid var(--control-border);border-radius:var(--r-pill);pointer-events:none}
body.inner .rem-head .sw i{top:12px;left:4px;width:20px;height:20px;background:var(--muted)}
body.inner .rem-head .sw.on::before{background:var(--gold-2);border-color:var(--gold-2)}
body.inner .rem-head .sw.on i{transform:translateX(22px);background:var(--bg)}
body.inner .rem-body{padding:18px;margin-top:14px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--field)}
body.inner #rem-all>.card{padding:20px;border-radius:var(--r-l)}
body.inner .rem-row label{font-size:16px}
body.inner :is(.nt,.barrow,.sup-item b){font-size:16px;line-height:1.55}
body.inner .nt th{font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted)}
body.inner .nt :is(th,td){padding:12px 6px}
body.inner .thread .m{font-size:17px;line-height:1.65;background:var(--surface);color:var(--text);padding:14px 16px}
body.inner .thread .m.user{background:var(--accent-soft)}
body.inner .sup-item{border-radius:var(--r-l);padding:18px}
/* Short settings are sheets; longer content keeps the full reading height. */
body.inner .wg{border-radius:var(--r-sheet);scroll-padding-top:100px}
body.inner .wg-head{gap:24px}
body.inner .wg-x{min-width:44px;width:44px;height:44px;font-size:26px;flex:0 0 44px}
body.inner .wg-tools{margin:-6px 0 24px}
html[data-theme] body.inner .theme-option.dark>span{color:#f5f2ea}
html[data-theme] body.inner .theme-option.light>span{color:#2a2150}
html[data-theme] body.inner .theme-option.system>span{color:#d9b868}
/* The entry keeps its moon and copy; the form gains the same readable controls. */
body:not(.inner) :is(#v-onb,#v-login) .card{backdrop-filter:none}
body:not(.inner) :is(#v-onb,#v-login) .field{gap:10px;margin-bottom:28px}
body:not(.inner) :is(#v-onb,#v-login) .field label{letter-spacing:0;text-transform:none}
body:not(.inner) :is(#v-onb,#v-login) input:not([type=checkbox]){min-height:52px;border-radius:var(--r-m);background:#100d1a}
body:not(.inner) #v-onb .onb-head{margin-bottom:28px}
body:not(.inner) #v-onb #o-back{background:none;border:0;padding-inline:0}
body:not(.inner) #v-hello .trust{font-size:14px}
body:not(.inner):not(.hello) .bg{display:none}
@media(hover:hover) and (pointer:fine){
  body.inner :is(.wid,.quick-mood,.emotion-family):hover{background:var(--hover);border-color:var(--control-border);transform:translateY(-2px)}
  body.inner :is(.btn,.text-action,.back):hover{filter:brightness(1.04)}
  body.inner .text-action:hover{color:var(--text)}
}
@media(min-width:900px){
  body.inner .wrap{padding:48px 48px 120px}
  /* аккаунт: две колонки одной высоты — раскладка в moon-glass.css («Аккаунт») */
  body.inner .method-grid .wid{gap:16px}
  body.inner .method-grid .wid>span.destination-arrow{top:22px;right:18px}
}
/* «Обо мне»: на телефоне плитки в один столбец — «Совместимость» и «Нумерология» в полстолбца не помещаются и резались */
@media(max-width:759px){
  body.inner .wg{border-radius:0;padding:calc(20px + env(safe-area-inset-top)) 20px env(safe-area-inset-bottom)}
  body.inner .wg-head{top:calc(-20px - env(safe-area-inset-top));padding-top:20px}
  body.inner #wg:is([data-kind=appearance],[data-kind=tools],[data-kind=askDate]) .wg{height:auto;max-height:calc(var(--visible-height,100dvh) - 20px);bottom:var(--keyboard-gap,0px);top:auto;border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom))}
  /* safe-area учтена один раз — в bottom (index.html .app-nav) */
  body.inner .wpane .hb-entry{grid-template-columns:1fr;gap:0}
  body.inner .wish-create-actions .btn{flex:1}
}
@media(max-width:370px){
  body.inner .emotion-family{padding:12px 10px;gap:8px}
  body.inner :is(#hb-new-form,#as-box .practice-card){padding:18px}
  body.inner .hb{padding:14px;gap:10px}
}
@media(prefers-reduced-motion:reduce){
  body.inner :is(.wid,.quick-mood,.emotion-family):hover{transform:none}
}
@media(prefers-reduced-transparency:reduce){
  body.inner :is(.app-nav,.rem-summary,.acct,.wg-x){background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* Each form step has its own space; the shared auth flow also serves the profile. */
body .auth-flow>.field{margin:0;gap:10px}
body .auth-flow .auth-submit{margin-top:24px;min-height:60px;font-size:18px}
body .auth-flow .auth-secondary{width:100%;margin-top:14px;min-height:48px}
body .auth-flow .auth-sent{margin:0 0 28px;font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.auth-flow .msg{margin-top:16px}
.auth-flow .msg:empty{display:none}
body:not(.inner) #v-login{padding-block:12px 40px}
body:not(.inner) #v-login>.back{margin-bottom:28px;min-height:44px}
body:not(.inner) #v-login>.eyebrow{margin:0 0 12px}
body:not(.inner) #v-login>h1{margin:0}
body:not(.inner) #v-login>.login-intro{margin-top:24px}
body:not(.inner) #v-login>.card{margin-top:40px;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}
body:not(.inner) #v-login input{min-height:60px;background:rgba(27,22,43,.8);border-color:rgba(240,233,255,.26);border-radius:var(--r-l)}
body:not(.inner) #v-login .auth-submit{border-radius:var(--r-l);min-height:64px;box-shadow:inset 0 1px 0 #ffffff59,0 12px 30px -18px #edc67670}
body:not(.inner) #v-login .auth-secondary{border:0;background:none;box-shadow:none}
body:not(.inner) #v-onb #o-form{padding:28px}
body:not(.inner) #v-onb #o-back{margin-top:32px;gap:16px}
body.inner .wpane>.sec{margin-top:32px}
body.inner .wpane>.list,body.inner #rem-all{gap:16px}
body.inner .wpane>.card+.card{margin-top:20px}
@media(min-width:900px){
  body:not(.inner) #v-login{padding-top:24px}
}
@media(max-width:599px){
  body.inner .wids{gap:14px}
  body:not(.inner) #v-onb #o-form{padding:24px 20px}
}
/* The code after registration uses the same open layout as the returning-user flow. */
body:not(.inner) #v-onb .onb-head{display:block}
body:not(.inner) #v-onb .onb-head h1{font-size:37px;line-height:1.5;margin-bottom:12px}
body:not(.inner) #v-onb #o-codebox{padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;margin-top:40px}
body:not(.inner) #v-onb.verifying-email .onb-head p{display:none}
body:not(.inner) #v-onb.verifying-email .onb-head{margin-top:28px;margin-bottom:0}
body:not(.inner) #v-onb #o-codebox .field{margin:0;gap:12px}
body:not(.inner) #v-onb #o-codebox input{min-height:68px}
body:not(.inner) #v-onb #o-codebox .auth-submit{margin-top:32px;min-height:64px}
body:not(.inner) #v-onb #o-codebox .auth-secondary{margin-top:20px;min-height:48px;border:0;background:none;box-shadow:none}
/* Роли текста и компактный ввод: явная роль элемента сильнее общих правил чтения (они заменили inline-стили) */
.t2{color:var(--text-2)!important}
.strong{color:var(--strong)!important}
.faint{color:var(--faint)!important}
.t-gold{color:var(--gold)!important}
/* экран трёх напоминаний после анкеты */
.rhythm-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);cursor:pointer}
.rhythm-row:first-child{border-top:0}
.rhythm-row input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;accent-color:var(--gold)}
.rhythm-row .grow{min-width:0}
.rhythm-row b{display:block;font-weight:600}
.rhythm-row small{display:block;line-height:1.4;color:var(--muted)}
.rhythm-row input[type=time]{width:auto;flex:0 0 auto}
.rhythm-card .btn{margin-top:18px;width:100%}
/* мастер после анкеты: два шага */
.rhythm-card>.eyebrow{display:block;margin-bottom:6px}
.rhythm-card .rh-title{margin:0 0 6px;font-size:22px;line-height:1.2;font-weight:600}
.rhythm-card>.hint{margin:0 0 6px}
.rh-list{margin-top:6px}
.rhythm-row small{text-wrap:pretty}
.rhythm-card .utility-actions{justify-content:center;margin-top:6px}
#v-rhythm .onb-head p{color:var(--muted)}
/* ── Подсказки по приложению (tour.js): затемнение, кольцо вокруг элемента, карточка «N / 8» ── */
.tour{position:fixed;inset:0;z-index:400}
.tour[hidden]{display:none}
.tour-scrim{position:fixed;inset:0;background:rgba(8,7,16,.6)}
.tour-scrim[hidden]{display:none}
.tour-ring{position:fixed;border:2px solid var(--gold-2);border-radius:20px;pointer-events:none;box-shadow:0 0 0 200vmax rgba(8,7,16,.6),0 0 0 6px rgba(240,215,154,.16);transition:left var(--t-slow) var(--sp),top var(--t-slow) var(--sp),width var(--t-slow) var(--sp),height var(--t-slow) var(--sp)}
.tour-card{position:fixed;box-sizing:border-box;padding:18px 20px 16px;border-radius:22px;background:var(--sheet);border:1px solid var(--line);box-shadow:0 24px 60px rgba(0,0,0,.45);color:var(--text);transition:left var(--t-slow) var(--sp),top var(--t-slow) var(--sp)}
.tour-step{display:block;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--gold-2)}
.tour-text{margin:10px 0 0;font-size:17px;line-height:1.45;text-wrap:pretty}
.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}
.tour-skip{font:inherit;font-size:15px;cursor:pointer}
.tour-next{min-height:44px;padding:10px 24px;border:0;border-radius:999px;background:var(--gold-2);color:#1c1430;font:inherit;font-size:16px;font-weight:600;cursor:pointer}
.tour-next:focus-visible,.tour-skip:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
html[data-theme=light] .tour-next{color:#fff}
html[data-theme=light] .tour-card{box-shadow:0 24px 60px rgba(42,33,80,.25)}
@media(prefers-reduced-motion:reduce){
  .tour-ring,.tour-card{transition:none}
}
/* ═══════════════════════════ МАТЕРИАЛ: НОЧЬ, СВЕТ, СТЕКЛО, СВЕТЛАЯ ТЕМА ═══════════════════════════ */
/* Lunario's material layer. Layout, forms and saved data remain in experience.*. */
html[data-theme] body.inner{background:var(--moon-ground);background-attachment:fixed}
/* Soft light sits behind the content, including the email/code screens. */
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 42% 44% at 93% 74%,rgba(217,184,104,.12),transparent 100%),radial-gradient(ellipse 32% 30% at 4% 18%,rgba(240,215,154,.07),transparent 100%)}
body.hello::before{z-index:0;mix-blend-mode:screen}
html[data-theme=light] body.inner::before{opacity:1;background:radial-gradient(ellipse 36% 45% at 100% 65%,rgba(109,91,208,.10),transparent 100%),radial-gradient(ellipse 30% 24% at 3% 20%,rgba(255,255,255,.50),transparent 100%)}
body.inner .bg .orb{opacity:.24}
body.inner .bg .cloud{opacity:.14}
body.inner .sky.on{display:block;opacity:.48}
body.hello .sky.on{opacity:.10}
html[data-theme=light] body.inner .sky.on{opacity:.22}
body.inner .wrap{max-width:1240px}
body.inner .view>h1,body.inner .practice-header h1{font-family:Onest,ui-sans-serif,system-ui,sans-serif}
/* Материал плиток (.wid) задаёт блок «стекла» ниже (:is(...) с #v-hello — специфичность с ID); здесь — только то, что не плитка */
body.inner .wid{gap:12px}
body.inner .wid .ico{background-color:var(--gold-2);filter:drop-shadow(0 0 7px #d8b96b24)}
html[data-theme] body.inner .btn:not(.ghost){background:var(--moon-control);border:1px solid #f7e3b54d;color:#1c1430;box-shadow:inset 0 1px 0 #fff7df8c,0 6px 22px -12px #e2bd6970}
body.inner .text-action.secondary{color:var(--muted)}
body.inner :is(input,textarea,select){border-color:var(--line);background:var(--field);box-shadow:inset 0 1px 3px #0000000a}
body.inner :is(input,textarea,select):focus-visible{border-color:var(--gold);outline-color:var(--focus)}
/* The moon is decorative; the existing calculated phase remains in “Луна и небо”. */
.compact-brand{display:inline-flex;align-items:baseline;font:300 37px/1.5 Comfortaa,sans-serif;letter-spacing:-1.3px;margin:0 0 12px;color:var(--text)}
.compact-brand .o-wrap{position:relative;display:inline-block;isolation:isolate}
.compact-brand .o-glyph{position:relative;z-index:2}
.compact-brand .o-wrap .mark{position:absolute;left:var(--mx,50%);top:var(--my,50%);width:var(--ms,48px);height:var(--ms,48px);margin:0;transform:translate(-50%,-50%);animation:none;z-index:1;filter:drop-shadow(0 0 10px #d9b86840)}
.compact-brand .moon-img{width:100%;height:100%;animation:moonbreathe 7s ease-in-out infinite}
.section-brand{display:none}
/* кружок аккаунта в шапке разделов — на всех вкладках, кроме главной (там свой) и самого аккаунта */
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-acct{display:none;position:relative;top:auto;right:auto;flex:0 0 auto;margin-bottom:12px}
body.inner:has(:is(#v-ask,#v-history,#v-about).on) .section-acct{display:grid}
.widget-brand{display:flex;width:max-content;margin-bottom:14px}
body.inner #v-home .hdr{position:relative;z-index:2}
/* заголовок экрана только для читалок: на главной и в аккаунте он визуально не нужен */
body.inner :is(#v-home .hdr .sr-only,#v-account>h1.sr-only){position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
body.inner #h-date{font-weight:400;text-transform:none}
body.inner #h-acct{width:44px;height:44px;font-weight:600}
body.inner .acct,body.inner .avatar{background:var(--moon-panel) padding-box,var(--moon-edge) border-box;border:1px solid transparent;box-shadow:var(--moon-shadow);color:var(--gold-2)}
.home-intro{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:32px;overflow:visible;margin:0;padding:28px 0 36px;min-height:0}
body.inner .home-intro .daily-statement{order:1;margin:0;max-width:none;position:relative}
body.inner .home-intro #h-wish{font-family:Onest,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em;text-wrap:pretty;overflow-wrap:anywhere;color:var(--text)}
/* поля, отступы и материал — в блоке «Сегодня» ниже */
/* Reading surfaces are dense and quiet, with a warm edge rather than nested glass. */
body.inner .wg,body.inner .wg-head{background:var(--sheet)}
body.inner .wg{border-color:var(--line);box-shadow:0 24px 80px #0005,inset 0 1px 0 #fff3d712}
body.inner .wg-head{border-color:var(--line)}
body.inner .wg-head h2{font-weight:600}
body.inner .wpane .practice-question{font-family:Onest,ui-sans-serif,system-ui,sans-serif;font-weight:600}
body.inner .answer-actions{background:var(--sheet)}
body.inner .timeline-entry{background:var(--moon-reader);border:1px solid var(--line);border-radius:var(--r-l);padding:28px;margin-bottom:18px;box-shadow:inset 0 1px 0 #fff2d20a}
body.inner .timeline-empty{background:var(--moon-reader);border:1px solid var(--line);box-shadow:var(--moon-shadow)}
body.inner .wish-picture:not(:has(img)){background:var(--moon-empty);border-bottom:1px solid var(--line)}
body.inner :is(.hb,.practice-card){border-color:var(--line);background:var(--surface)}
body.inner :is(.emotion-family,.quick-mood){border-color:var(--line);background:var(--surface)}
body.inner :is(.emotion-family.on,.quick-mood.on){background:var(--selected);border-color:var(--gold)}
body.inner .hb.on{border-color:color-mix(in srgb,var(--ok) 38%,transparent)}
html[data-theme] body.inner .app-nav{backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-theme] body.inner :is(.rem-summary,.wg-x){color:var(--muted)}
body.inner .theme-option.light>span{background:linear-gradient(135deg,#f5f2ea,#e4ddf4)}
body.inner .theme-option.dark>span{background:linear-gradient(135deg,#141126,#0b0a14)}
body.inner .theme-option.system>span{background:linear-gradient(90deg,#f0edf8 50%,#141126 50%)}
body:not(.inner) #v-onb .card{background:linear-gradient(135deg,#1d1738,#141126)}
@media(min-width:900px){
  .home-intro{padding-top:28px;padding-bottom:40px}
}
@media(max-width:599px){
  .home-intro{margin:0}
  body.inner .timeline-entry{padding:22px}
}
@media(hover:hover) and (pointer:fine){
  /* подъём и тень плиток при наведении — в блоке «стекла» ниже */
  body.inner :is(.text-action,.back):hover{color:var(--gold-2)}
}
@media(prefers-reduced-motion:reduce){
  body.inner :is(.wid):hover{transform:none}
}
@media(prefers-reduced-transparency:reduce){
  html[data-theme] body.inner :is(.app-nav,.rem-summary,.wg-x){background:var(--sheet);backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* Приветствие распределяется по высоте экрана; на низких экранах доступна прокрутка. */
#v-hello .hello-header{position:relative;z-index:1;margin:0;padding:0;background:none}
#v-hello .hello-header{grid-row:1}
/* Низкий экран (320×568, телефон боком): приветствие прокручивается — шапка с «Войти» остается сверху, иначе вход уезжал
   за край вместе с логотипом (check-brand, 17.10) */
@media (max-height:700px){#v-hello .hello-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:3;padding-block:8px;background:linear-gradient(var(--bg) 75%,transparent)}}
#v-hello .hello-about{grid-row:2;display:grid;gap:24px}
#v-hello .hello-stage{padding:8px 0 0}
#v-hello .hello-content{width:100%;max-width:none;margin:0;padding:0;min-width:0}
#v-hello .hello-lead{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px}
#v-hello .heromoon{display:none;position:relative;inset:auto;transform:none;width:56px;height:auto;aspect-ratio:1;margin:0;opacity:.94}
#v-hello .heromoon img{filter:drop-shadow(0 0 32px #f2d18d24)}
#v-hello .hello-content .hello-claim{margin:0;color:#f5f2ea;font-size:clamp(21px,5.8vw,26px);line-height:1.16;text-wrap:balance}
html[data-skin] #v-hello .hello-description{margin:8px 0 0;color:#c9c4d4;font-size:15px;line-height:1.4;text-wrap:pretty}
#v-hello .hello-description strong{color:#f5f2ea;font-weight:500}
#v-hello .gifts{margin:0;gap:14px}
#v-hello .hello-ritual{margin:22px 0 -6px}
#v-hello .hello-live{margin:-6px 0 0}
#v-hello .gift{gap:14px;align-items:flex-start}
#v-hello .gift b{font-size:17px;font-weight:600;color:#f5f2ea;line-height:1.35}
#v-hello .gift small{font-size:15px;line-height:1.4;color:var(--muted);margin-top:1px}
#v-hello .gift .ico{width:22px;height:22px;flex-basis:22px;margin-top:3px;background-color:#f0d79a;filter:drop-shadow(0 0 10px #f0d79a26)}
body.hello .section-head{display:none}
#v-hello .hello-oracle{grid-row:3;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:18px 20px;border:1px solid #ffffff12;border-radius:20px;background:#ffffff04}
#v-hello .hello-oracle-copy{min-width:0}
#v-hello .hello-oracle h3{margin:0 0 8px;color:#f0d79a;font-size:18px;font-weight:600;letter-spacing:.12em}
#v-hello .hello-oracle-copy p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}
#v-hello .hello-oracle-copy .hello-dice-result{min-height:22px;margin-top:8px;color:#f5f2ea;font-weight:600}
#v-hello .hello-dice-button{flex:0 0 118px;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:108px;padding:2px 0;border:0;border-radius:18px;background:transparent;color:#f0d79a;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
#v-hello .hello-dice-button:disabled{cursor:wait;opacity:1}
#v-hello .hello-dice-scene{display:grid;place-items:center;width:96px;height:80px;perspective:550px}
#v-hello .hello-dice-cube{position:relative;display:block;width:72px;height:72px;transform-style:preserve-3d;transform:rotateX(-16deg) rotateY(-24deg)}
#v-hello .hello-dice-face{position:absolute;inset:0;display:grid;place-items:center;border:1px solid #e9d8af99;border-radius:14px;background:linear-gradient(140deg,#564966,#262033 72%);box-shadow:inset 0 1px 12px #f0d79a26;color:#f5e3b6;font-size:25px;font-weight:600;backface-visibility:hidden}
#v-hello .dice-front{transform:translateZ(36px);font-size:23px}
#v-hello .dice-back{transform:rotateY(180deg) translateZ(36px)}
#v-hello .dice-right{transform:rotateY(90deg) translateZ(36px)}
#v-hello .dice-left{transform:rotateY(-90deg) translateZ(36px)}
#v-hello .dice-top{transform:rotateX(90deg) translateZ(36px)}
#v-hello .dice-bottom{transform:rotateX(-90deg) translateZ(36px)}
#v-hello .hello-dice-action{font-size:13px;line-height:20px;text-underline-offset:4px}
#v-hello .hello-dice-button:hover .hello-dice-action{text-decoration:underline}
#v-hello .hello-inside{grid-row:6;display:flex;align-items:center;justify-content:center;gap:9px;min-height:42px;margin:0;border:1px solid #ffffff2b;border-radius:var(--r-pill);color:#f5f2ea;text-decoration:none;font-size:14px;background:#0b0a143d}
#v-hello .hello-inside:hover{background:#ffffff12}
#v-hello .hello-inside:focus-visible{outline:2px solid var(--gold-2);outline-offset:4px}
#v-hello .hello-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;gap:22px 16px}
#v-hello .hello-paths li{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:0}
#v-hello .hello-paths li:nth-child(even){padding-left:0}
html[data-skin] #v-hello .hello-paths p{margin:0;min-width:0;font-size:13px;line-height:1.35;color:#c9c4d4}
#v-hello .hello-paths strong{display:block;margin-bottom:2px;font-size:14px;line-height:1.3;font-weight:500;color:#f5f2ea}
/* узкий телефон (320): «Совместимость» шире колонки на 9 px — переносим по слогам, а не выносим за край (check-design, 17.10) */
#v-hello .hello-paths :is(strong,p){overflow-wrap:anywhere;hyphens:auto}
#v-hello .hello-path-label{margin-bottom:2px;font-size:14px;line-height:1.3;color:#f5f2ea}
#v-hello .hello-paths p>span{display:block}
#v-hello .hello-path-icon{flex:0 0 21px;padding-top:1px;color:#e2cc98}
#v-hello .hello-path-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
#v-hello .hello-future{margin:0;padding:0;background:none;border:0}
#v-hello .hello-future h3{margin:0 0 12px;font-size:19px;line-height:1.35;font-weight:500;color:#f0d79a}
html[data-skin] #v-hello .hello-future p{margin:0;color:#c9c4d4;font-size:13px;line-height:1.45;text-wrap:pretty}
#v-hello .hello-bottom-cta{position:relative;flex-shrink:0;gap:14px;color:#f5f2ea}
body.hello #v-hello .trust{grid-row:8;margin:0;font-size:11px;line-height:1.35;text-align:center;align-self:end}
body.hello::before{background:radial-gradient(ellipse 90% 25% at 20% 76%,rgba(240,215,154,.25),transparent 100%),radial-gradient(ellipse 70% 32% at 110% 24%,rgba(240,215,154,.16),transparent 100%)}
@media(max-width:370px){
  #v-hello .gift{gap:12px}
}
/* На особенно низких экранах сохраняем все содержание и уплотняем вертикальный ритм. */
@media(max-height:640px){
  body.hello .wrap{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  #v-hello .hello-stage{padding-top:4px}
  #v-hello .hello-content .hello-claim{font-size:19px}
  #v-hello .heromoon{width:44px}
  html[data-skin] #v-hello .hello-description{margin-top:3px;font-size:13px}
  #v-hello .hello-about{gap:16px}
  #v-hello .hello-oracle{padding:6px 0}
  #v-hello .hello-dice-button{min-height:94px}
  #v-hello .hello-dice-scene{height:68px}
  #v-hello .hello-paths li{padding-top:8px;padding-bottom:7px}
  #v-hello .hello-future{padding:0}
}
@media(prefers-reduced-motion:reduce){
  .compact-brand .moon-img{animation:none!important}
  #v-hello .cta .btn{transition:none}
  #v-hello .cta .btn::after{display:none}
  #v-hello .cta .btn:hover{transform:none}
}
@media(prefers-reduced-transparency:reduce){
  #v-hello .cta .btn{background:#302742;backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* Readability: original ivory and gold, stronger Onest; metadata remains quieter. */
body{font-size:18px;font-weight:500}
body.inner .wid b{font-weight:600;line-height:1.45;letter-spacing:-.01em}
body.inner .wid>span:not(.dot):not(.destination-arrow){font-weight:500}
body.inner :is(.hint,.section-caption,.practice-progress,.rem-status,.field label,.hb-rule,.rem-lbl small,#profile-summary){font-size:17px;font-weight:500;color:var(--muted);line-height:1.65}
body.inner :is(.field label,.text-action,.back,.rem-summary,.segmented button,.emotion-family,.mchip,.chip,.observation>summary,.practice-create>summary){font-size:17px;font-weight:600;color:var(--text)}
body.inner .wpane :is(.hint,.msg){font-size:17px!important}
body.inner #home-sky .moonline :is(b,.lunar-advice){color:var(--text)}
body.inner #home-sky .moonline b{font-weight:600}
/* подписи вкладок в две строки («Свериться с собой»): 13px, иконки выровнены по верху, всё в 70px панели */
html[data-theme] body.inner .app-nav button{text-align:center}
body:not(.inner) :is(#v-onb,#v-login) :is(p,.field label,.geo){font-size:18px;font-weight:500;line-height:1.65}
body:not(.inner) :is(#v-onb,#v-login) .field label{font-weight:600;color:var(--text)}
body:not(.inner) :is(#v-onb,#v-login) input:not([type=checkbox]){font-size:18px;font-weight:500}
body:not(.inner) :is(#v-onb,#v-login) .btn{font-weight:600}
body:not(.inner) #v-hello .hello-login{font-size:18px;font-weight:600}
body:not(.inner) #v-hello .trust{color:var(--muted);font-weight:500}
/* Glass follows the brief without backdrop filtering: a highlight over a dense base.
   Edge reflections and shadows provide depth; only toast and widget scrim may blur. */
:is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline){isolation:isolate;overflow:hidden;background:var(--glass-bg);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid transparent;background-clip:padding-box;background-color:var(--glass-base);box-shadow:var(--glass-shadow);--glass-x:50%;--glass-y:0%;--glass-edge:0;transition:transform var(--t) var(--sp),box-shadow var(--t) ease}
/* Explicit containing blocks keep reflections inside controls without backdrop-filter. */
body.inner :is(.rem-summary,#home-sky .moonline,.wg-x){position:relative}
:is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline)::before{content:'';display:block;position:absolute;inset:0;border-radius:inherit;padding:1px;z-index:-1;background:conic-gradient(from calc(var(--glass-edge) * 1deg) at var(--glass-x) var(--glass-y),rgba(255,255,255,.75) 0deg,rgba(244,223,168,.55) 40deg,rgba(255,255,255,.08) 110deg,rgba(255,255,255,.05) 220deg,rgba(244,223,168,.35) 300deg,rgba(255,255,255,.75) 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:1;box-shadow:none;transform:none;animation:none}
:is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline)::after{content:'';display:block;position:absolute;inset:-40%;border-radius:inherit;z-index:-1;pointer-events:none;background:radial-gradient(circle at var(--glass-x) var(--glass-y),rgba(255,255,255,.28) 0%,rgba(244,223,168,.14) 18%,transparent 46%);opacity:0;transition:opacity var(--t-slow) ease;transform:none;animation:none}
@media(hover:hover) and (pointer:fine){
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline):hover::after{opacity:1}
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .rem-summary):hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),inset 0 -1px 0 rgba(0,0,0,.18),0 18px 44px -14px rgba(217,184,104,.4)}
}
:is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .rem-summary):active{transform:scale(.98)}
/* Daylight glass: a dense light base, white bevel and a violet shadow.
   Diary cards share the material but stay still while reading. */
html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card){isolation:isolate;background:var(--moon-panel);background-clip:padding-box;background-color:var(--glass-base);border:1px solid rgba(255,255,255,.75);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:var(--glass-shadow);--glass-x:30%;--glass-y:0%;--glass-edge:0}
html[data-theme=light] body.inner :is(.timeline-entry,.timeline-empty,.profile-summary,.wish-card){position:relative;overflow:hidden}
html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card)::before{content:'';display:block;position:absolute;inset:0;border-radius:inherit;padding:2px;z-index:-1;pointer-events:none;background:conic-gradient(from calc(var(--glass-edge) * 1deg) at var(--glass-x) var(--glass-y),#fff 0deg,#ffffffa6 55deg,#ffffff0a 120deg,#2a215033 210deg,#ffffff66 285deg,#fff 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:1;box-shadow:none;transform:none;animation:none}
html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card)::after{content:'';display:block;position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;background:radial-gradient(300px circle at var(--glass-x) var(--glass-y),#ffffff85,transparent 72%);opacity:.28;transition:opacity var(--t) ease;transform:none;animation:none}
html[data-theme=light] body.inner :is(.ico,.app-nav .on .ico){background-color:var(--gold-2);filter:none}
html[data-theme=light] body.inner :is(.eyebrow,.big,.avatar,.acct,.kw,.timeline-kind,.card-question h3,.lunar-arrow,.app-nav button.on,.timeline-filters [aria-pressed=true],.entries-tabs [aria-selected=true],.chip.on,.chip[aria-pressed=true]){color:var(--text)}
html[data-theme=light] body.inner .btn:not(.ghost) :is(span,.ico){color:#f5f2ea}
html[data-theme=light] body.inner .btn:not(.ghost) .ico{background-color:#f5f2ea}
html[data-theme=light] body.inner :is(.timeline-filters .chip,.entries-tabs button,.btn.ghost){backdrop-filter:none;-webkit-backdrop-filter:none}
html[data-theme=light] body.inner .compact-brand .mark{filter:none}
html[data-theme=light] body.inner .compact-brand .moon-img{animation:none}
html[data-theme=light] body.inner .wpane .msg.err{color:var(--text)!important;background:#e9e2f4;border-inline-start:3px solid #8272b4;padding:12px 16px;border-radius:var(--r-s)}
html[data-theme=light] body.inner .bar{background:#2a215014}
html[data-theme=light] body.inner .bar i{background:linear-gradient(90deg,#2a2150,#8272b4)}
@media(hover:hover) and (pointer:fine){
  html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.profile-summary,.wish-card):hover::after{opacity:.72}
  html[data-theme=light] body.inner :is(.wid,.rem-summary):hover{box-shadow:inset 1px 1px 0 #fff,inset -1px -1px 0 #2a21501c,0 18px 36px -18px #2a215057}
  html[data-theme=light] body.inner :is(.text-action,.back):hover{color:var(--text)}
}
@media(prefers-reduced-motion:reduce){
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .rem-summary){transition:none}
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .rem-summary):is(:hover,:active){transform:none}
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline)::after{display:none}
}
@media(prefers-reduced-transparency:reduce){
  :is(#v-hello .welcome-primary,body.inner .wid,body.inner body.inner .app-nav,body.inner .rem-summary,body.inner .acct,body.inner .wg-x,body.inner #home-sky .moonline){background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media(prefers-reduced-motion:reduce){
  html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card)::after{display:none}
}
@media(prefers-reduced-transparency:reduce){
  html[data-theme=light] body.inner :is(.wid,.app-nav,.rem-summary,.acct,.wg-x,#home-sky .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card){background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* The account status dot lives outside the avatar and must not be clipped by the glass. */
html[data-theme] body.inner #h-acct{overflow:visible}
html[data-theme] body.inner #h-acct::after{inset:0;clip-path:circle(50%)}
/* Restored prompts stay readable; history separates questions from daily cards. */
body.inner .card-question{margin:28px 0;padding:0}
body.inner .card-question h3{color:var(--gold-2);margin-bottom:10px}
body.inner .entries-tabs{margin:0 0 24px;display:flex;flex-wrap:wrap;gap:6px;background:none}
body.inner .entries-tabs button{flex:1 1 auto;min-height:48px;white-space:normal;padding:10px 14px;border:1px solid var(--line)}
body.inner #entries-more{margin-top:24px;width:100%}
/* Restored shortcuts and progress use the same materials in both themes. */
body.inner .forecast-bars{display:grid;gap:12px;margin:28px 0}
body.inner .forecast-bars .barrow{margin:0;gap:12px}
body.inner .forecast-bars .l{flex:0 0 100px;color:var(--text);font-size:16px}
body.inner .forecast-bars .v{flex:0 0 42px;color:var(--text);font-size:16px;font-weight:600}
body.inner .practice-ideas{margin:18px 0}
body.inner .practice-ideas summary{cursor:pointer}
body.inner .practice-ideas .chips{margin:12px 0}
body.inner .ask-quick-dates{margin:0 0 24px}
body.inner .hd::before{border-color:var(--control-border)}
body.inner .hd.planned:not(.on)::before{background:var(--selected)}
body.inner .hd.rest:not(.on)::before{border-style:dashed;opacity:.5;box-shadow:none}
body.inner .hd.on::before{background:var(--gold);border-color:var(--gold)}
/* ── Аккаунт: экран настроек. Шапка компактная, профиль в одну строку, каждая группа — одна стеклянная панель
   с рядами по 64px и тонкими разделителями; «Управление аккаунтом» — такая же группа. Ряды не «взлетают» при наведении,
   а подсвечиваются; раскрытие «Данных для расчётов» и вход на экран — по общему ритму движения (--t, --sp) ── */
/* на телефоне — столбик: профиль, приложение, помощь, управление аккаунтом (последним — там удаление); колонки из разметки не участвуют */
#v-account .account-layout{display:flex;flex-direction:column;gap:28px;margin-top:6px}
/* сразу после логотипа: заголовка и «назад» на экране нет, назад — вкладка «Сегодня» */
#v-account .account-col{display:contents}
#ag-profile{order:1}
#ag-app{order:2}
#ag-help{order:3}
#ag-manage{order:4}
/* профиль */
body.inner #v-account .profile-summary{padding:20px}
#v-account .profile-head{display:flex;align-items:center;gap:16px}
body.inner #v-account .avatar{width:64px;height:64px;flex:0 0 64px;font-size:26px;font-weight:600}
#v-account .profile-id{min-width:0;flex:1}
body.inner #v-account .profile-summary h2{margin:0;font-size:22px;line-height:1.2;overflow-wrap:anywhere}
body.inner #v-account #profile-summary{margin:4px 0 0;font-size:15px;line-height:1.5}
#v-account .profile-actions{display:flex;flex-wrap:wrap;gap:0 20px;margin-top:10px}
#ac-photo-actions{display:contents}
body.inner #v-account .profile-actions .text-action{min-height:40px;padding:6px 0;font-size:16px;font-weight:600;color:var(--gold-2)}
body.inner #v-account .profile-actions .text-action.secondary{font-weight:500;color:var(--muted)}
#v-account .profile-note{margin:-2px 0 0;font-size:14px;line-height:1.5;color:var(--faint)}
#v-account .profile-note[hidden]{display:none}
/* группы */
body.inner #v-account .account-group{margin-top:0}
body.inner #v-account .account-group>h2{margin:0 0 10px 2px}
#v-account .profile-block>h2{display:none}
body.inner #v-account .danger-zone{padding-top:0;border-top:0}
@media(hover:hover) and (pointer:fine){
}
@media(min-width:900px){
  /* две колонки одной высоты: слева Профиль и Управление аккаунтом, справа Приложение и Помощь. Верх, низ и края
     совпадают; в более короткой колонке нижняя панель дотягивается до общей линии — её ряды делят лишние пиксели поровну */
  #v-account .account-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:stretch;margin-top:2px}
  body.inner:has(#v-account.on) .wrap{padding-top:32px}
  /* четыре панели целиком над навигацией на экране 900px высотой */
  #v-account .account-col{display:flex;flex-direction:column;gap:28px;min-width:0}
  #v-account .account-col>.account-group:last-child{flex:1;display:flex;flex-direction:column}
  #v-account .profile-block>h2{display:block}
}
/* каталог инструментов: подписи разделов золотой капителью, карточки как панели */
/* утро на «Сегодня»: вопрос с плитками-ответами, лента выбранного, остальное — маленькими квадратами */
body.inner .morning-picker h2{line-height:1.3;margin:0}
body.inner .morning-picker .chips{margin:0}
body.inner .mini-grid .wid,body.inner .mini-grid .moonline{flex-direction:column;justify-content:center;gap:8px;cursor:pointer}
body.inner .mini-grid .moonline .moon-sm{width:28px;height:28px;flex:0 0 28px}
body.inner .mini-grid .moonline .grow{flex:0 0 auto}
/* Сегодня — одна геометрия: шапка, вопрос утра, «Ваше утро» и квадраты стоят на одних левом и правом краях,
   плитки в ряду — одной высоты (общий верх и общий низ), поля внутри карточек одинаковые — 24px */
body.inner .morning-picker #morning-q~.hint{margin:6px 0 14px;font-size:14px;line-height:1.5}
/* сильнее общего правила .hint с #profile-summary в :is() */
body.inner .morning-picker .chips{padding-bottom:0}
body.inner #morning-feed{align-items:stretch}
body.inner #morning-feed>*{max-width:none}
/* плитка ленты: колонка под иконку такая же, как под луну, — текст во всех плитках начинается с одной линии;
   заголовок и подпись держатся вместе по центру, а не расползаются по высоте */
/* заголовки соседних плиток — на одной линии */
body.inner #home-sky .moonline :is(b,.lunar-advice){font-size:18px;line-height:1.45}
/* стрелки — только у строк-переходов; плитки утра — контент */
/* в светлой теме подписи всех плиток ряда — одним цветом */
body.inner .mini-grid{grid-auto-rows:1fr}
/* квадрат Луны — тот же материал, что у соседей, без отступов-пережитков и с подписью тем же кеглем */
body.inner #morning-more .moonline{margin:0;max-width:none;background:var(--glass-bg);border:1px solid transparent;box-shadow:var(--glass-shadow)}
body.inner .mini-grid .moonline .grow{font-size:13px;line-height:1.25}
body.inner .mini-grid .moonline b{font-size:13px}
/* на телефоне четыре или два оставшихся квадрата — ровными рядами, а не 3 + 1 (число квадратов ставит paintMorning) */
body.inner .mini-grid[data-count="1"]{grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){
  /* сколько бы ни осталось — ряд от края до края */
  body.inner #morning-feed{grid-auto-rows:1fr}
  body.inner #morning-feed>:last-child:nth-child(odd){grid-column:1/-1}
  /* нечётная последняя — во всю ширину, без пустого угла */
}
/* строка над настроем: тема дня и её источник */
body.inner #h-theme{display:block;margin-bottom:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
body.inner #h-theme[hidden]{display:none}
/* свёрнутый вопрос утра — одна строка; развёрнутый — с «Готово» и пустым состоянием */
body.inner .morning-summary{display:grid;column-gap:14px;row-gap:2px;align-items:center;width:100%;text-align:left;color:var(--text);font:inherit;cursor:pointer}
body.inner .morning-summary .eyebrow{grid-column:1;margin:0}
body.inner .morning-summary b{grid-column:1;font-weight:600;line-height:1.4}
body.inner .morning-summary .text-action{grid-column:2;grid-row:1/span 2;min-height:0;padding:0;pointer-events:none}
body.inner .picker-actions{display:flex;justify-content:flex-end;margin-top:6px}
body.inner .picker-actions:empty{display:none}
/* вечером и по воскресеньям — тихие строки под сетками */
body.inner .home-later{display:grid}
body.inner .later-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:2px;align-items:center;width:100%;text-align:left;color:var(--text);font:inherit;cursor:pointer}
body.inner .later-row .eyebrow{grid-column:1;margin:0}
body.inner .later-row b{grid-column:1;font-weight:600;line-height:1.4}
body.inner .later-row .later-go{grid-column:2;grid-row:1/span 2;color:var(--gold-2)}
/* пришли из утреннего уведомления — первая плитка на секунду подсвечена */
body.inner .from-push{box-shadow:var(--glass-shadow),0 0 0 2px var(--gold);transition:box-shadow .6s ease}
/* без связи — строка под шапкой */
body.inner .offline-note{margin:0 0 14px}
/* плитка Луны: в ленте — фаза и лунный день, в квадрате — «Луна» и та же фаза строкой значения */
body.inner .mini-grid .moonline .moon-title{display:block}
body.inner .mini-grid .moonline #h-moon{display:none}
/* на десктопе квадраты показывают сегодняшнее значение: имя карты, руну, событие неба, тон дня, вопрос */
@media(min-width:900px){
  body.inner .mini-grid .wid,body.inner .mini-grid .moonline{gap:6px}
}
/* шапка: кружок аккаунта на одной линии с вордмарком на любой ширине */
body.inner #v-home .row.hdr{align-items:flex-start}
/* низ страницы: один отступ под навигацию вместо двух (76 + 112) */
body.inner{padding-bottom:0}
@media(max-width:599px){
  /* настрой на телефоне — три строки, а не четыре: луна чуть меньше, кегль по ширине экрана */
  .home-intro{grid-template-columns:minmax(0,1fr) clamp(82px,24vw,100px);gap:12px}
}
/* карточка дня в Дневнике: ячейки-вопросы, настроение чипами, привычки и аскеза строками */
body.inner .day-card h2{font-size:22px;margin:4px 0 14px}
body.inner .day-card .field label{font-size:15px;font-weight:600;line-height:1.4;color:var(--text);margin-bottom:6px}
body.inner .day-card .field label span{font-weight:500;color:var(--muted)}
body.inner .day-card textarea{min-height:56px;font-size:16px}
body.inner .dc-own input{font-size:15px}
body.inner .dc-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:16px}
body.inner .dc-row:first-child{border-top:0}
body.inner .dc-row .grow{min-width:0}
body.inner .dc-row small{display:block;font-size:13px;color:var(--muted)}
body.inner .dc-check{width:26px;height:26px;flex:0 0 26px;border-radius:8px;border:1px solid var(--control-border);background:transparent;color:var(--text);font:inherit;font-size:15px;cursor:pointer}
body.inner .dc-check[aria-pressed=true]{background:var(--selected);border-color:var(--gold)}
body.inner .dc-ask{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
body.inner .dc-ask:first-child{border-top:0}
body.inner .dc-ask .grow{flex:1 1 100%}
body.inner .dc-ask input{font-size:15px}
body.inner .day-card .answer-actions{margin-top:18px}
body.inner #dc-state:empty{display:none}
/* ячейка — грид: ряд подсказок с прокруткой не должен раздвигать колонку до своей полной ширины */
body.inner .day-card .field{grid-template-columns:minmax(0,1fr)}
/* под настроем на «Сегодня»: сохранить открыткой на экран, поделиться */
/* текст кнопок — по левому краю настроя */
body.inner .hero-actions .text-action{font-size:14px}
body.inner .hero-actions:empty{display:none}
/* на телефоне обе кнопки в одну строку рядом с луной */
/* «Моя неделя: про что она» — по воскресеньям плитка сверху Дневника, внутри — пять частей карточками */
body.inner .week-top{display:block;width:100%;text-align:left;margin-top:18px;padding:18px 20px;border-radius:var(--r-l);background:var(--moon-panel) padding-box,var(--moon-edge) border-box;background-color:var(--glass-base);border:1px solid transparent;box-shadow:var(--moon-shadow);color:var(--text);font:inherit;cursor:pointer}
body.inner .week-top b{display:block;font-size:19px;font-weight:600;margin:4px 0 2px}
body.inner .week-top .hint{margin:0}
body.inner .week-nav{justify-content:space-between;margin:0 0 12px}
body.inner .week-nav .eyebrow{margin:0}
body.inner .week-part{margin-bottom:12px}
body.inner .week-part h3{margin:0 0 6px}
body.inner .week-part .hint{margin-top:6px}
body.inner .week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:10px 0 4px}
body.inner .week-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
body.inner .week-col.future{opacity:.35}
body.inner .week-dow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
body.inner .week-mood-list p{margin:6px 0 0}
body.inner .week-mood-list b{display:inline-block;min-width:34px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
body.inner .week-quote{margin:10px 0 0;padding:10px 14px;border-left:2px solid var(--gold);background:var(--moon-reader);border-radius:0 12px 12px 0}
body.inner .week-quote small{display:block;color:var(--muted)}
body.inner .week-quote p{margin:4px 0 0;white-space:pre-wrap}
body.inner .week-echo{padding:12px 0;border-top:1px solid var(--line)}
body.inner .week-echo:first-of-type{border-top:0}
body.inner .week-echo small{display:block;color:var(--muted)}
body.inner .week-echo p{margin:4px 0}
body.inner .week-when{display:inline-block;min-width:64px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
body.inner .week-echo .chips{margin-top:8px}
body.inner .week-row{display:flex;align-items:center;gap:12px;padding:10px 0}
body.inner .week-row:first-of-type{border-top:0}
body.inner .week-row .grow{min-width:0}
body.inner .week-row small{display:block;color:var(--muted)}
body.inner .week-dots{display:flex;gap:5px;flex:0 0 auto}
body.inner .week-dot{width:10px;height:10px;border-radius:50%;border:1px solid var(--control-border);background:transparent}
body.inner .week-dot.done{background:var(--gold);border-color:var(--gold)}
body.inner .week-dot.due{border-style:dashed}
body.inner .week-dot.missed{background:var(--line);border-color:transparent}
body.inner .week-dot.none{opacity:.25}
body.inner #wk-reflect-state:empty{display:none}
/* лента по дням: день — одна карточка, записи внутри разделены линиями */
/* ═══════════════ Каркас на телефоне и плоский материал светлой темы (ревью 17.09) ═══════════════
   Порядок важен: блок стоит последним и намеренно повторяет специфичность блока «стекла» (:is() с #home-sky …),
   чтобы победить его порядком, а не ещё большим весом. Тёмная тема меняется только там, где сказано «обе темы». */
/* ── Строки-переходы (обе темы): иконка · заголовок · подпись в одну строку · «›», один контейнер с разделителями —
      тот же формат, что в Аккаунте; списки «Обо мне», способы «Свериться», «Инструменты» Дневника ── */
@media(hover:hover) and (pointer:fine){
}
/* ── Нижняя навигация (обе темы): 60px + safe-area один раз, иконки 24, подпись 11px (у «Свериться с собой» две строки),
      активный пункт — цветом, без заливки ── */
html[data-theme] body.inner .app-nav{height:auto}
/* «Свериться с собой» — колонка шире, подпись в одну строку */
html[data-theme] body.inner .app-nav button{justify-content:center;line-height:1.15}
/* низ страницы = навигация (62) + зазор (8) + воздух (18); фокус в поле не уводит его под плашку */
html:has(body.inner){scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}
body.inner textarea{scroll-margin-block:110px 130px}
/* кнопка «Запомнить этот день» — липкая НАД навигацией */
body.inner .day-card .answer-actions{position:sticky;bottom:calc(78px + env(safe-area-inset-bottom));z-index:9;padding:8px 0 4px;background:var(--glass-base);border-radius:12px}
/* ── Шапка вкладок: заголовок 28px + тихая подпись + аватар в той же строке; вордмарк — только на «Сегодня» ── */
body.inner:not(:has(#v-home.on)) .section-brand{display:none}
body.inner:has(:is(#v-ask,#v-history,#v-about).on) .section-head{height:0;margin:0}
body.inner:has(:is(#v-ask,#v-history,#v-about).on) .section-acct{position:absolute;margin:0;z-index:3}
body.inner :is(#v-ask,#v-history,#v-about)>h1{margin:0 56px 0 0;padding-top:2px}
body.inner :is(#v-ask,#v-history,#v-about)>h1+.section-caption,body.inner #v-about>.section-caption{margin:4px 56px 0 0;font-size:14px;line-height:1.45;font-weight:500;color:var(--muted)}
body.inner :is(#v-ask,#v-history,#v-about)>h1+*:not(.section-caption),body.inner :is(#v-ask,#v-history,#v-about)>.section-caption+*{margin-top:18px}
/* ── Единые размеры контролов (обе темы): чипы 36px/13px, кнопки, текстовые действия ── */
html[data-theme] body.inner :is(.chip,.chips .chip,.chips.flow .chip,.timeline-filters .chip){line-height:1.35;border-radius:var(--r-pill);white-space:normal}
html[data-theme] body.inner .chips{gap:6px}
html[data-theme] body.inner .chips.flow{row-gap:6px}
html[data-theme] body.inner .chips:not(.flow){flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:0}
html[data-theme] body.inner .chips:not(.flow)::-webkit-scrollbar{display:none}
html[data-theme] body.inner .chips:not(.flow) .chip{white-space:nowrap;flex:0 0 auto}
html[data-theme] body.inner .btn.sm{padding:0 14px}
html[data-theme] body.inner .text-action{font-weight:500}
html[data-theme] body.inner .text-action.secondary{color:var(--muted)}
/* ── Секции и типографика на телефоне: семь ступеней кегля, стык блоков 28px ── */
body.inner :is(.feature-group>h2,.account-group>h2,.past-days .sec-head>h2){margin:0}
/* надзаголовки обычным регистром — капитель золотом остаётся только у темы дня над настроем */
body.inner :is(.morning-summary,.later-row,.week-top) .eyebrow{font-weight:500}
@media(max-width:599px){
  body.inner .day-card .field label{font-size:15px;line-height:1.4}
  body.inner .day-card textarea{min-height:48px;padding:12px 14px}
  body.inner .day-card h2{font-size:22px;margin:2px 0 10px}
  .home-intro{padding:12px 0 18px}
}
/* ── Светлая тема: плоский материал. Специфичность (1,3,2) — та же, что у «Daylight glass» выше, позже в файле → побеждает ── */
html[data-theme=light] body.inner :is(.wid,.morning-summary,.later-row,.rem-summary,.acct,.wg-x,#home-sky .moonline,#morning-more .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card){background:var(--surface);border:1px solid var(--line);box-shadow:var(--glass-shadow)}
html[data-theme=light] body.inner :is(.wid,.morning-summary,.later-row,.rem-summary,.acct,.wg-x,#home-sky .moonline,#morning-more .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card)::before,
html[data-theme=light] body.inner :is(.wid,.morning-summary,.later-row,.rem-summary,.acct,.wg-x,#home-sky .moonline,#morning-more .moonline,.timeline-entry,.timeline-empty,.profile-summary,.wish-card)::after{content:none}
@media(hover:hover) and (pointer:fine){
  html[data-theme=light] body.inner :is(.wid,.rem-summary,#home-sky .moonline,#morning-more .moonline):hover{background:var(--surface);border-color:var(--control-border);box-shadow:var(--glass-shadow);transform:none}
}
html[data-theme=light] body.inner :is(.wid,.rem-summary,#home-sky .moonline,#morning-more .moonline):active{transform:scale(.985)}
html[data-theme=light] body.inner .btn:not(.ghost){background:#2a2150;color:#fff;border:0;box-shadow:none}
html[data-theme=light] body.inner :is(.chip,.timeline-filters .chip,.entries-tabs button){background:transparent;border:1px solid var(--line);color:var(--text);box-shadow:none}
/* «Сегодня» на телефоне: тема и настрой — слева от луны, действия с открыткой — строкой на всю ширину под ними */
@media(max-width:599px){
  .home-intro{grid-template-areas:"theme moon" "wish moon" "actions actions";grid-template-rows:auto auto auto;align-items:center}
  body.inner #h-theme{grid-area:theme;align-self:end;font-size:11px;letter-spacing:.08em}
  body.inner .home-intro #h-wish{align-self:start}
  body.inner .hero-actions .text-action{min-height:36px;font-size:14px}
}
/* ═══════════════════════════ КОМПАКТНЫЙ ВИД — как выглядит приложение; префикс html[data-skin=compact] держит приоритет над блоками выше (без него каскад расходится — проверено) ═══════════════════════════ */
/* ═══════════ «Компактный вид» — основной вид с 17.09; «Обычный» — по выбору (Аккаунт → Оформление, или ?skin=classic) ═══════════
   По референсам владелицы (17.09): всё — списками и строками, а не плакатами; иконка в кружке слева, заголовок 16,
   подпись 13 в одну строку, «›» справа; надзаголовки секций — мелкой капителью; карточки плоские с тонкой линией;
   навигация прижата к низу на всю ширину; настрой дня — 21px, без точки, в карточке, а не на полэкрана.
   Всё под html[data-skin=compact]; выключено — ни одно правило не действует. Палитра — токены Лунарио, только структура. */
html[data-skin=compact]{--ck-radius:20px;--ck-row:64px}
html[data-skin=compact] body.inner{line-height:1.5}
html[data-skin=compact] body.inner .wrap{padding-top:calc(16px + env(safe-area-inset-top));padding-inline:16px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
@media(min-width:600px){
  html[data-skin=compact] body.inner .wrap{padding-inline:24px}
}
/* ── материал: плоская карточка, тонкая линия, без скоса, блика и тени ── */
background:var(--surface);
border:1px solid var(--line);
box-shadow:none;
border-radius:var(--ck-radius)}
html[data-skin=compact] body.inner :is(.wid,.rem-summary,.acct,.wg-x,#home-sky .moonline,#morning-more .moonline,.timeline-entry,.profile-summary,.wish-card)::before,
html[data-skin=compact] body.inner :is(.wid,.rem-summary,.acct,.wg-x,#home-sky .moonline,#morning-more .moonline,.timeline-entry,.profile-summary,.wish-card)::after{content:none}
html[data-skin=compact] body.inner .wid:hover,html[data-skin=compact] body.inner .wid:active{transform:none;box-shadow:none}
html[data-theme=light][data-skin=compact]{--surface:#fff;--line:rgba(42,33,80,.10)}
/* ── типографика: семь ступеней ── */
html[data-skin=compact] body.inner :is(#v-ask,#v-history,#v-about)>h1{font-size:24px;margin-right:52px}
html[data-skin=compact] body.inner :is(.feature-group>h2,.account-group>h2,.past-days .sec-head>h2){line-height:1.3;font-weight:700;text-transform:uppercase;color:var(--muted)}
html[data-skin=compact] body.inner :is(.feature-group,.account-group){margin-top:24px}
/* ── «Сегодня»: шапка компактная, настрой — карточкой с маленькой луной, а не на полэкрана ── */
html[data-skin=compact] body.inner #v-home .compact-brand{font-size:26px;line-height:1.2}
html[data-skin=compact] body.inner #v-home .hdr{margin-bottom:4px}
html[data-skin=compact] body.inner .home-intro{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"art" "theme" "wish" "actions";gap:4px 14px;align-items:center;margin:14px 0 0;padding:16px 18px}
html[data-skin=compact] body.inner .home-intro .daily-statement{display:contents}
html[data-skin=compact] body.inner .home-art{grid-area:art;margin:0 0 6px}
html[data-skin=compact] body.inner #h-theme{grid-area:theme;margin:0;font-size:11px;letter-spacing:.12em;color:var(--gold)}
html[data-skin=compact] body.inner .home-intro #h-wish{grid-area:wish;font-size:21px;line-height:1.35;font-weight:600;margin:0}
html[data-skin=compact] body.inner .hero-actions{grid-area:actions;margin:6px 0 0;gap:2px 16px;justify-content:flex-start}
html[data-skin=compact] body.inner .hero-actions .text-action{min-height:32px;padding:4px 0;font-size:13px}
html[data-skin=compact] body.inner .hero-actions .ico{display:none}
html[data-skin=compact] body.inner .morning-summary{margin-top:10px;padding:12px 16px;grid-template-columns:minmax(0,1fr) auto}
html[data-skin=compact] body.inner .morning-summary .eyebrow{text-transform:uppercase;color:var(--muted)}
html[data-skin=compact] body.inner .morning-summary b{font-size:15px}
html[data-skin=compact] body.inner .morning-summary .text-action{font-size:13px;color:var(--gold-2)}
html[data-skin=compact] body.inner .morning-picker{padding:16px 18px}
html[data-skin=compact] body.inner .morning-picker h2{font-size:17px}
html[data-skin=compact] body.inner .home-later{gap:8px}
/* ── контролы: чипы 32px, кнопки 48px пилюлей, активный чип — заливка акцента с тёмным текстом (как в референсе) ── */
html[data-skin=compact] body.inner :is(.chip,.chips .chip,.chips.flow .chip,.timeline-filters .chip){min-height:32px;padding:6px 12px;font-size:13px;font-weight:500;border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:none}
/* активный чип: первый вариант в :is() задаёт специфичность выше базового правила строкой выше — иначе выбранное не отличить */
html[data-skin=compact] body.inner :is(.chips.flow .chip.on,.chip.on,.chip[aria-pressed=true],.timeline-filters [aria-pressed=true],.entries-tabs [aria-selected=true]){background:var(--gold-2);border-color:var(--gold-2);color:#1c1430;font-weight:600}
html[data-skin=compact] body.inner .btn{min-height:48px;border-radius:999px;font-size:15px;font-weight:600}
html[data-skin=compact] body.inner .btn.sm{min-height:36px}
html[data-skin=compact] body.inner .text-action{font-size:14px;min-height:36px}
/* ── Дневник: карточка дня плотнее ── */
html[data-skin=compact] body.inner .day-card{padding:16px 18px}
html[data-skin=compact] body.inner .day-card h2{font-size:19px;margin:2px 0 8px}
html[data-skin=compact] body.inner .day-card .field{margin:12px 0 0;gap:6px}
html[data-skin=compact] body.inner .day-card .field label{font-size:14px;line-height:1.35;font-weight:600}
html[data-skin=compact] body.inner .day-card textarea{min-height:44px;padding:10px 12px;font-size:15px;border-radius:14px}
html[data-skin=compact] body.inner .question-entry .wid{display:grid;grid-template-columns:40px minmax(0,1fr) 12px;column-gap:14px;min-height:72px;align-items:center}
html[data-skin=compact] body.inner .question-entry .wid .ico{grid-row:1/span 2;justify-self:center;width:22px;height:22px;margin:0}
html[data-skin=compact] body.inner .question-entry .wid b{grid-column:2;font-size:17px;padding:0}
html[data-skin=compact] body.inner .question-entry .wid>span:not(.destination-arrow){grid-column:2;color:var(--muted)}
/* ── навигация: прижата к низу на всю ширину, скруглённый верх, иконки 24 и подписи 11 ── */
html[data-skin=compact] body.inner .app-nav{left:0;right:0;bottom:0;transform:none;width:100%;border-radius:24px 24px 0 0;border:1px solid var(--line);border-bottom:0;padding:8px 6px calc(6px + env(safe-area-inset-bottom));gap:0;background:var(--surface);box-shadow:0 -8px 30px -20px rgba(0,0,0,.5)}
html[data-skin=compact] body.inner .app-nav button{min-height:46px;gap:4px;font-weight:500;color:var(--muted);border-radius:12px;padding:2px}
html[data-skin=compact] body.inner .app-nav .ico{width:24px;height:24px}
html[data-skin=compact] body.inner .app-nav button.on{color:var(--gold-2);font-weight:600;background:none;box-shadow:none}
html[data-skin=compact] body.inner .app-nav button.on .ico{background-color:var(--gold-2)}
html[data-skin=compact] body.inner .acct{width:38px;height:38px}
html[data-skin=compact] body.inner:has(:is(#v-ask,#v-history,#v-about).on) .section-acct{top:calc(15px + env(safe-area-inset-top));right:16px;width:38px;height:38px}   /* центр кружков — на линии центра заголовка вкладки */
@media(min-width:600px){
  html[data-skin=compact] body.inner:has(:is(#v-ask,#v-history,#v-about).on) .section-acct{right:24px}
}
html[data-skin=compact] body.inner #v-home #h-acct{margin-top:0}
/* ── Панели-виджеты (карта дня, руна, лунный день, разбор вопроса, «Моя неделя», настройки): та же сетка, что и экраны ── */
html[data-skin=compact] body.inner .wg{padding-inline:16px;font-size:15px;line-height:1.5}
html[data-skin=compact] body.inner .wg-head h2{font-size:20px;line-height:1.25;letter-spacing:-.015em}
html[data-skin=compact] body.inner .wg-head{padding-bottom:14px;margin-bottom:18px}
html[data-skin=compact] body.inner .wg-eb{font-size:11px;letter-spacing:.12em}
html[data-skin=compact] body.inner .wpane .card{padding:16px}
html[data-skin=compact] body.inner :is(.wpane h3,.item b,.histhead b,.rem-lbl b){font-size:16px;line-height:1.35}
html[data-skin=compact] body.inner .wpane .practice-question{font-size:18px!important}
html[data-skin=compact] body.inner :is(.wpane p,.wpane li,.entry-text,.wpane .today){font-size:15px;line-height:1.55}
html[data-skin=compact] body.inner :is(.hint,.section-caption,.field label,.saved-state,.wpane small){line-height:1.5}
html[data-skin=compact] body.inner .title-gold{font-size:20px}
html[data-skin=compact] body.inner .big{font-size:40px}
html[data-skin=compact] body.inner .wpane textarea,html[data-skin=compact] body.inner .wpane input:not([type=checkbox]):not([type=radio]):not([type=time]){font-size:15px;padding:10px 12px;border-radius:14px}
html[data-skin=compact] body.inner .week-part h3{font-size:16px}
html[data-skin=compact] body.inner .rem-summary{padding:12px 16px}
/* Аккаунт: профиль и группы */
html[data-skin=compact] body.inner .profile-summary>p{font-size:13px}
/* ── Онбординг, вход и экран трёх напоминаний: та же типографика ── */
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) h1:not(.wordmark){font-size:26px;line-height:1.2}
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) :is(p,li,label){font-size:15px;line-height:1.5}
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) .hint{font-size:13px}
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) .btn{min-height:48px;font-size:15px;border-radius:999px}
html[data-skin=compact] #v-hello .cta .btn{min-height:56px;font-size:17px}
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) .card{padding:16px;border-radius:var(--ck-radius);border:1px solid var(--line);box-shadow:none}
html[data-skin=compact] .rhythm-row{padding:10px 0}
html[data-skin=compact] .rhythm-row b{font-size:15px}
html[data-skin=compact] .rhythm-row small{font-size:13px}
html[data-skin=compact] .rhythm-row input[type=time]{padding:6px 8px;font-size:15px}
html[data-skin=compact] :is(#v-hello,#v-onb,#v-login,#v-rhythm) .compact-brand{font-size:28px}
/* ── Навигация: «Свериться с собой» в одну строку — колонка шире, подписи не переносятся ── */
html[data-skin=compact] body.inner .app-nav{grid-template-columns:1fr 1fr 1.5fr 1fr}
@media(min-width:360px){
  html[data-skin=compact] body.inner .app-nav button{white-space:nowrap}
}
/* ── Пустая лента Дневника — подсказка строкой, не карточка ── */
html[data-skin=compact] body.inner #timeline-list .timeline-empty,html[data-skin=compact] body.inner :is(#timeline-list) .timeline-empty::before{background:none;border:0;box-shadow:none;padding:6px 4px;margin:0;font-size:14px;line-height:1.5;color:var(--muted);content:none}
/* специфичность с ID — как у блока стекла, позже в каскаде */
/* ── Светлая тема: активный чип — мягкое золото (как голубой в референсе, но в палитре Лунарио) ── */
html[data-theme=light][data-skin=compact] body.inner :is(.chips.flow .chip.on,.chip.on,.chip[aria-pressed=true],.timeline-filters [aria-pressed=true],.entries-tabs [aria-selected=true]){background:#efe0b3;border-color:#e4cf95;color:#2a2150}
html[data-theme=light][data-skin=compact]{--selected:rgba(217,184,104,.22)}
html[data-theme=light][data-skin=compact] body.inner .app-nav button.on{color:#2a2150}
/* ── Каскадные поправки по ревью 17.09: капитель в Аккаунте, отступ строк в «Уведомлениях», подсказки в панелях,
   точка новостей на кружке аккаунта, подписи строк «Ещё про этот день» ── */
html[data-skin=compact] body.inner #v-account .account-group>h2{line-height:1.3;text-transform:uppercase;color:var(--muted)}
html[data-skin=compact] body.inner .wpane .item{padding:12px 16px}
html[data-skin=compact] body.inner .mini-grid .wid>span:not(.dot){text-align:left}
/* строка «напоминания не подключены» — сразу под настроем дня, той же формы, что «Вечер» */
html[data-skin=compact] body.inner .home-push{margin-top:12px}
html[data-skin=compact] body.inner .home-push .later-row{border-color:rgba(240,215,154,.35)}
/* ═══════════════════════════ ЕДИНЫЙ СТИЛЬ (решение владелицы 19.09, вечер) ═══════════════════════════
   Плоские сине-черные карточки (#1d1738 — фон из слоя «ночь, свет, стекло»), стекло — только у главного действия каждой вкладки
   наверху (как «День записан» в слое «каркас»); все строки ниже — плоские, компактные. Без курсива, подписи 14px, ничего мельче 12px,
   приглушенные цвета светлее — ЦА тревожная, бледный мелкий текст раздражает. Практики в Дневнике — строками, как все.
   Блок временно лежит поверх прежних слоев; при схлопывании файла сольется с ними. */
html[data-theme=dark][data-skin=compact]{--surface:#1d1738;--line:rgba(245,242,234,.13);--muted:#dcd6ee;--faint:#b4adcf;--selected:rgba(217,184,104,.16)}
/* плоский материал — правило компактного вида, потерявшее селектор в v97, восстановлено */
html[data-skin=compact] body.inner :is(.wid,.card,.morning-summary,.morning-picker,.day-entry,.timeline-entry,.wish-card,.rem-summary,#home-sky .moonline,#morning-more .moonline,.push-note,.home-intro,.dayview,.tool-card){background:var(--surface);border:1px solid var(--line);box-shadow:none;border-radius:var(--ck-radius)}
/* стекло — главное действие вкладки: «День записан» и вопрос дня на «Сегодня», строка над записью и карточка шагов в Дневнике, «Моя неделя»,
   «Ответить себе на вопрос», карточка человека на «Обо мне», профиль в Аккаунте */
html[data-skin=compact] body.inner .later-row{background:var(--surface);border:1px solid var(--line);box-shadow:none;border-radius:var(--ck-radius)}
/* подсказки, «вчера», «завтра» — плоские строки */
html[data-skin=compact] body.inner :is(#home-action .later-row,#diary-action .later-row,.card.ha,#day-card:not(.done),#week-top,.question-entry .wid,.me-card,.profile-summary){background:var(--glass-bg);border:1px solid rgba(245,242,234,.16);box-shadow:var(--glass-shadow);border-radius:var(--ck-radius)}
html[data-skin=compact] body.inner .day-card .later-row{background:var(--card-2);margin-top:12px}
html[data-skin=compact] body.inner .later-row{padding:14px 20px}
html[data-skin=compact] body.inner .later-row .eyebrow{text-transform:none;font-weight:500;color:var(--muted)}
html[data-skin=compact] body.inner .later-row b{font-size:16px}
html[data-skin=compact] body.inner .diary-action{margin:14px 0 0}
html[data-skin=compact] body.inner .diary-action+.day-card{margin-top:12px}
html[data-skin=compact] body.inner .question-entry .wid{padding:16px 18px}
/* типографика: тело 16, подписи 14, капитель 12 */
html[data-skin=compact] body.inner{font-size:16px}
html[data-skin=compact] body.inner :is(.feature-group>h2,.account-group>h2,.past-days .sec-head>h2,#v-account .account-group>h2){font-size:12px;letter-spacing:.1em}
html[data-skin=compact] body.inner :is(.eyebrow,.wg-eb,.dc-label,.timeline-day,.morning-summary .eyebrow,#h-theme,.kw){font-size:12px;letter-spacing:.1em}
html[data-skin=compact] body.inner #h-date{font-size:13px}
html[data-skin=compact] body.inner :is(.question-entry .wid)>span:not(.dot):not(.destination-arrow),
html[data-skin=compact] body.inner :is(#morning-feed,#morning-more)>.moonline :is(small,.lunar-advice){font-size:14px;line-height:1.4}
html[data-skin=compact] body.inner :is(.section-caption,.hint,.field label,.saved-state,.wpane small,.wpane p.hint,.profile-summary>p,.me-card .me-sub,.morning-picker .hint,.hero-actions .text-action,.morning-summary .text-action,.later-row .later-go,.theme-option,.week-quote p,.dc-read .q,.ha .saved-state,.timeline-empty,.day-row .t p,.dc-quiet,.dc-lunar,.profile-note){font-size:14px}
html[data-skin=compact] body.inner .app-nav button{font-size:12px}
html[data-skin=compact] body.inner .btn.sm{font-size:14px}
/* ── Кнопки вместо текстовых ссылок (решение владелицы 20.09): любое действие — закругленная плашка, текстовых ссылок в приложении нет.
   Главное действие — золотая (.btn), остальные — синяя с золотой окантовкой (.btn.ghost). Классы .text-action в разметке больше не используются ── */
html[data-theme] body.inner .btn.ghost{background:var(--surface);border:1px solid var(--gold);color:var(--text);box-shadow:none}
body.inner .btn.ghost.sm{font-weight:500}
body.inner .btn.sm{width:auto}
/* ряды действий: плашки в строку, без линии сверху */
body.inner :is(.utility-actions,.dc-secondary,.dc-done-actions,.day-nav,.week-nav,.rem-actions,.form-actions,.hero-actions,.dc-offer-actions,.profile-actions){display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:0;padding-top:0}
body.inner .utility-actions{margin-top:16px}
body.inner .utility-actions+.utility-actions{margin-top:10px}
.form-actions{margin-top:12px}
body.inner .dc-secondary{justify-content:center;margin-top:10px}
body.inner .day-nav{justify-content:space-between;margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}
body.inner .dc-actions .dc-skip{width:100%;margin-top:0;color:var(--muted)}
/* «Пропустить» — под главной кнопкой шага */
body.inner .back{border:1px solid var(--gold);border-radius:var(--r-m);background:var(--surface);padding:8px 16px}
.morebtn{border:1px solid var(--gold);border-radius:var(--r-m);background:var(--surface);padding:10px 16px;margin-top:12px}
/* «Читать полностью» — плашка во всю ширину */
.week-daylink,.ln-all button{border:1px solid var(--gold);border-radius:var(--r-pill);background:var(--surface);padding:4px 10px;color:var(--text)}
/* дата в «Что отозвалось», «Показать все» у тем */
.past-days .sec-head{align-items:center}
.sec-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.hb-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
/* при правке привычки — название и «Удалить» в заглавной строке */
.hb-head b{font-size:16px;line-height:1.5}
body.inner .morning-summary .btn.ghost.sm{grid-column:2;grid-row:1/span 2;margin:0;pointer-events:none}
/* «Изменить» внутри свернутого утреннего выбора — плашкой справа */
.evening-set{margin-top:12px}
.evening-set .chips{margin-bottom:0}
.tour-skip{min-height:44px;padding:10px 18px;border:1px solid var(--gold);border-radius:var(--r-pill);background:var(--surface);color:var(--text)}
/* «Пропустить» в подсказках — тоже плашка */
.day-card .dc-head .btn{white-space:nowrap;flex:0 0 auto}
/* «К сегодня» рядом с датой — в одну строку */
/* раскрывающиеся разделы (details/summary) — тоже плашки: «Примеры аскез», «Добавить наблюдение», «Период и место расчета», «Все 30 лунных дней» */
body.inner :is(.practice-ideas,.observation,.practice-create,.lunar-period,.lunar-library)>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--gold);border-radius:var(--r-m);background:var(--surface);color:var(--text);font-size:15px;font-weight:500;line-height:1.4;list-style:none;cursor:pointer}
body.inner :is(.practice-ideas,.observation,.practice-create,.lunar-period,.lunar-library)>summary::-webkit-details-marker{display:none}
body.inner :is(.practice-ideas,.observation,.practice-create,.lunar-period,.lunar-library)>summary::after{content:'⌄';color:var(--gold-2);line-height:1}
body.inner :is(.practice-ideas,.observation,.practice-create,.lunar-period,.lunar-library)[open]>summary{margin-bottom:12px}
body.inner :is(.practice-ideas,.observation,.practice-create,.lunar-period,.lunar-library)[open]>summary::after{content:'⌃'}
body.inner .ln-hidden summary{border:1px solid var(--line);border-radius:var(--r-m);padding:11px 14px;margin-top:8px;background:var(--surface)}
/* ── Шапка (решение владелицы 20.09): справа вверху два кружка — шестеренка (панель «Оформление»: светлая, темная, как на устройстве)
   и буква имени (дверь в «Аккаунт»); «← Назад» из аккаунта возвращает на ту вкладку, откуда пришли ── */
.head-tools{align-items:center;gap:8px;flex:0 0 auto}
#v-home .head-tools{display:flex}
.head-tools.section-acct{display:none}   /* на «Сегодня» и в аккаунте — своя шапка или ничего; на трех вкладках — в углу */
html[data-skin=compact] body.inner:has(:is(#v-ask,#v-history,#v-about).on) .head-tools.section-acct{display:flex;width:auto;height:auto}
.acct.gear-btn{padding:0;color:var(--muted)}
.acct.gear-btn svg{width:21px;height:21px;display:block}
#v-account .practice-header{margin-bottom:0;padding-bottom:12px}
#v-account #profile-email{margin:2px 0 0;font-size:15px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
#v-account .ac-auth{margin-top:14px;padding:16px}
.theme-options{margin:8px 0 0}
/* ── Подпункты везде — квадратами по два в ряд (решение владелицы 20.09; главная плашка вкладки наверху остается): «Свериться с собой»,
   Практики, «Обо мне», Аккаунт, «Мое утро» и «Еще про этот день». Строки-списки компактного вида сняты ── */
body.inner .wids.tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:12px}
body.inner .wids.tiles .wid{min-height:118px;padding:16px;gap:10px;justify-content:flex-start}
body.inner .wids.tiles .wid>span:not(.dot){font-size:13px;line-height:1.4;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.inner .wids.tiles .wid .dot{position:absolute;right:14px;top:14px}
body.inner .wid.warn,body.inner .wid.warn b{color:var(--warn)}
body.inner .wid.warn .ico{background-color:var(--warn)}
body.inner #v-account .account-group>.wids{margin-top:0}
body.inner #morning-feed{gap:12px}
/* квадрат Луны: диск, «Луна» и фаза с лунным днем; период и совет — в панели лунного дня, не в плитке */
body.inner .mini-grid .moonline #h-moon{display:block;font-size:13px;line-height:1.4;color:var(--muted);font-weight:500}
body.inner .mini-grid .moonline :is(#h-lunar,.lunar-advice,.lunar-arrow){display:none}
body.inner .mini-grid .wid>span:not(.dot){font-size:13px;line-height:1.4;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* действие в строке-плашке («Дописать», «Открыть», «Включить») — тоже кнопкой, а не словом со стрелкой */
body.inner .later-row .later-go{justify-self:end;align-self:center;padding:8px 14px;border:1px solid var(--gold);border-radius:var(--r-m);background:var(--surface);color:var(--text);font-size:14px;font-weight:500;line-height:1.3;white-space:nowrap}
/* лунные дни этих суток — ряд чипов над заголовком лунного дня */
.ln-today{margin:0 0 14px}
/* свечение за Луной на «Сегодня» шире экрана телефона (120vw) и давало горизонтальную прокрутку — страница «уезжала» вправо; обрезаем по краю */
.wrap{overflow-x:clip}
.practice-header .practice-eb{display:block;margin-top:16px}   /* раздел над названием страницы практики — та же крошка, что у панелей */
body.inner .practice-header .practice-eb+h1{margin-top:4px}
/* ── Сетка плиток (решение владелицы 20.09): две колонки одной ширины, ряд — одной высоты, ряды и полоски на одних левом и правом краях;
   нечетная последняя плитка — на всю ширину, чтобы не было дыр; история (не инструмент) — полоской внизу ── */
body.inner :is(.wids.tiles,.wids.mini-grid)>:last-child:nth-child(odd){grid-column:1/-1}
body.inner .wids.strip{grid-template-columns:minmax(0,1fr);gap:12px}
body.inner .wids.strip .wid{display:grid;grid-template-columns:24px minmax(0,1fr) 14px;column-gap:14px;row-gap:2px;align-items:center;min-height:64px;padding:12px 16px}
body.inner .wids.strip .wid .ico{grid-column:1;grid-row:1/span 2;width:22px;height:22px;margin:0}
body.inner .wids.strip .wid b{grid-column:2;grid-row:1}
body.inner .wids.strip .wid>span:not(.dot){grid-column:2;grid-row:2;font-size:13px;line-height:1.4;color:var(--muted)}
body.inner .wids.strip .wid::after{content:'›';grid-column:3;grid-row:1/span 2;align-self:center;font-size:22px;line-height:1;color:var(--muted);opacity:.7}
body.inner .wids.tiles+.wids.strip,body.inner .wids.strip{margin-top:12px}
/* ── Плитка — одна геометрия на все экраны (доводка 20.09): сетка из трех рядов — гнездо под иконку 40px, название, подпись;
   названия соседних плиток начинаются на одной линии, подписи не длиннее двух строк, ряд — одной высоты ── */
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid,body.inner .wids.mini-grid>.moonline{display:grid;grid-template-rows:32px minmax(0,1fr) auto 36px;grid-template-columns:minmax(0,1fr);align-items:center;justify-items:start;row-gap:4px;height:100%;min-height:0;padding:16px;margin:0;text-align:left}   /* ряд сетки — ровно 160px; иконка вверху, название на одной линии у всех (под ним всегда место в две строки подписи), подпись прижата к низу */
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>.ico{grid-row:1;width:26px;height:26px;margin:0}
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>b{grid-row:3;align-self:end;font-size:16px;line-height:1.3}
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>span:not(.dot):not(.card-thumb):not(.rune-thumb){grid-row:4;align-self:start;font-size:13px;line-height:1.4;color:var(--muted)}
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>.card-thumb{grid-row:1;width:20px;height:32px;transform:none;border-radius:3px}
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>.rune-thumb{grid-row:1;width:32px;height:32px}
body.inner :is(.wids.tiles,.wids.mini-grid)>.wid>.rune-thumb[hidden]{display:none}
body.inner .wids.mini-grid>.moonline .moon-sm{grid-row:1;width:32px;height:32px;flex:0 0 32px;margin:0}
body.inner .wids.mini-grid>.moonline .grow{grid-row:3/span 2;display:grid;grid-template-rows:auto 36px;row-gap:4px;align-content:end;min-width:0}
body.inner .wids.mini-grid>.moonline #h-moon{align-self:start}
body.inner .wids.mini-grid>.moonline .moon-title{font-size:16px;line-height:1.3}
body.inner .wids.mini-grid>.moonline #h-moon{margin:0}
body.inner .wids.mini-grid>.moonline .lunar-arrow{display:none}
body.inner :is(.wids.tiles,.wids.mini-grid){gap:12px;grid-auto-rows:160px}   /* ряд — ровно 160px: квадраты одной высоты на всех экранах */
/* кружки шапки — 40px везде, центр на линии центра заголовка: на «Сегодня» — вордмарка, на вкладках — h1 */
body.inner .head-tools .acct{width:40px;height:40px}
body.inner #v-home .head-tools{margin-top:-6px}

/* Первый экран виден до ответа API; переход в анкету доступен после загрузки профиля. */
#v-hello .startup-note{font-size:13px;line-height:1.5;color:var(--muted,#aaa);text-align:center;margin:0}
#v-hello .startup-note a{color:inherit;text-decoration:underline;white-space:nowrap}
#v-hello .startup-note[hidden]{display:none}

/* Расчет свернут; персональные тексты читаются сразу, с абзацами из редакции. */
.natal-chart{border:1px solid var(--line);border-radius:18px;margin-bottom:20px;overflow:hidden}
.natal-chart>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;min-height:52px;cursor:pointer;list-style:none;font-weight:700}
.natal-chart>summary::-webkit-details-marker{display:none}
.natal-chart>summary::after{content:'+';margin-left:auto;color:var(--gold-2);font-size:22px}
.natal-chart[open]>summary::after{content:'−'}
.natal-chart-body{padding:0 16px 20px;overflow-x:auto}
.natal-descriptions{display:grid;gap:12px}
.natal-description{padding:0;overflow:hidden}
.natal-description>summary{display:flex;align-items:center;gap:12px;padding:18px 20px;min-height:52px;cursor:pointer;list-style:none;font-size:17px;font-weight:700;line-height:1.4}
.natal-description>summary::-webkit-details-marker{display:none}
.natal-description>summary::after{content:'+';flex:0 0 auto;margin-left:auto;color:var(--gold-2);font-size:22px}
.natal-description[open]>summary::after{content:'−'}
.natal-description-body{padding:0 20px 18px}
.natal-description h3{font-size:20px;line-height:1.35;margin:2px 0 14px;color:var(--gold-2)}
.natal-description h4{font-size:14px;line-height:1.5;margin:22px 0 8px;color:var(--gold-2)}
.natal-description p{font-size:15px;line-height:1.7;margin:0 0 12px;white-space:pre-line}
.natal-description p:last-child{margin-bottom:0}

/* Разговор и раскрываемые источники используют типографику приложения. */
.rag-panel{margin:16px 0;padding:20px;border:1px solid var(--line,rgba(255,255,255,.16));border-radius:24px;background:rgba(255,255,255,.035)}
.rag-panel[hidden],#rag-entry[hidden]{display:none}
.rag-turn{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.rag-question{font-weight:600}.rag-answer,.rag-source{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.rag-source{font-size:14px;opacity:.85}.rag-turn details{margin:10px 0}.rag-turn summary{cursor:pointer}.rag-turn details button{margin:8px 4px 0 0;text-align:left;white-space:normal}
.rag-panel form{display:grid;gap:12px;margin-top:20px}.rag-panel textarea{width:100%;box-sizing:border-box;resize:vertical}.rag-panel .btn{min-height:44px}

/* Цифровая карта: те же раскрывающиеся описания, что у натальной карты. */
#w-birth-box { display: grid; gap: 12px; }
#digital-birth-results, #digital-personal-results { display: grid; gap: 12px; }
#digital-personal-results[hidden] { display: none; }
.digital-reading > summary { display: flex; align-items: center; gap: 12px; }
.digital-number { display: inline-grid; place-items: center; flex: 0 0 36px; height: 36px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 20px; }
.digital-star { display: block; width: min(100%, 320px); margin: 16px auto; color: var(--gold); }
.digital-star path { fill: none; stroke: currentColor; stroke-width: 1.2; opacity: .6; }
.digital-star .digital-outline { opacity: .2; }
.digital-star circle { fill: var(--bg, #0f1423); stroke: currentColor; }
.digital-star text { fill: currentColor; text-anchor: middle; font-size: 20px; font-family: inherit; }
.digital-trace { margin-top: 16px; }
.digital-trace p { overflow-wrap: anywhere; }
.digital-form input[aria-invalid="true"] { border-color: #d68b8b; }
.digital-notice { margin: 0 0 8px; font-size: 13px; line-height: 1.55; font-weight: 400; }

/* «Сегодня»: смысл и действие до календаря, выбранное до дополнительных материалов. */
body.inner #v-home .home-hero{grid-template-columns:80px minmax(0,1fr) 20px;gap:8px;justify-items:start;text-align:left;padding:4px 0;margin:4px 0}
body.inner #v-home .moon-hero-cv{width:80px;height:80px;margin:0}
body.inner #v-home .home-hero .hero-glow{left:40px;top:44px;width:140px}
body.inner #v-home .home-moon-copy{display:grid;gap:3px;align-self:center}
body.inner #v-home .home-moon-copy .eyebrow{font-size:11px;margin:0;color:var(--muted)}
body.inner #v-home .hero-phase{padding:0;font-size:16px;line-height:1.4;text-wrap:pretty}
body.inner #v-home .home-moon-arrow{align-self:center;color:var(--gold-2)}
html[data-skin=compact] body.inner #v-home .home-intro{grid-template-areas:"wish" "actions" "art";margin:8px 0 0;padding:14px 16px;gap:4px}
body.inner #v-home .home-intro .home-art{margin:8px 0 0;max-height:120px}
html[data-skin=compact] body.inner #v-home .hero-actions .btn{min-height:32px;padding:4px 14px;font-size:13px}
body.inner #v-home .home-action{margin-top:10px}
body.inner #v-home .week-strip{margin-top:14px;padding-top:8px;border-top:1px solid var(--line)}
body.inner #v-home .morning-summary{margin-top:20px}
body.inner #v-home #home-sky{margin-top:16px}
body.inner #v-home :is(#morning-feed,#morning-more){grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:8px}
body.inner #v-home :is(#morning-feed,#morning-more)>:is(.wid,.moonline){grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;gap:3px 12px;align-content:center;min-height:82px;height:auto;padding:14px 16px}
body.inner #v-home :is(#morning-feed,#morning-more)>.wid>b{grid-column:2;grid-row:1;align-self:end;font-size:16px;line-height:1.35}
body.inner #v-home :is(#morning-feed,#morning-more)>.wid>span:not(.dot):not(.card-thumb):not(.rune-thumb){grid-column:2;grid-row:2;font-size:14px;line-height:1.4}
body.inner #v-home :is(#morning-feed,#morning-more)>.wid>:is(.ico,.card-thumb,.rune-thumb){grid-column:1;grid-row:1/span 2;align-self:center;justify-self:center}
body.inner #v-home :is(#morning-feed,#morning-more)>.moonline .moon-sm{grid-column:1;grid-row:1/span 2;align-self:center;margin:0}
body.inner #v-home :is(#morning-feed,#morning-more)>.moonline .grow{grid-column:2;grid-row:1/span 2;grid-template-rows:auto auto;gap:3px;align-content:center}
body.inner #v-home :is(#morning-feed,#morning-more)>.moonline #h-moon{font-size:14px;line-height:1.4;font-weight:400;color:var(--muted)}
body.inner #v-home #morning-rest{margin-top:16px}
.morning-more-summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 14px;list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:16px;font-weight:600}
.morning-more-summary::-webkit-details-marker{display:none}
.morning-more-summary::after{content:'+';margin-left:auto;color:var(--gold-2);font-size:22px;line-height:1}
#morning-rest[open]>.morning-more-summary::after{content:'−'}
.morning-more-count{font-size:13px;font-weight:400;color:var(--muted)}
#morning-rest[open] #morning-more{margin-top:8px}
body.inner #v-home #morning-chips{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
body.inner #v-home #morning-chips .morning-choice{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:3px 10px;width:100%;min-height:68px;padding:12px 14px;text-align:left;white-space:normal;border-radius:14px}
body.inner #v-home .morning-choice b{grid-column:1;font-size:15px;line-height:1.35}
body.inner #v-home .morning-choice span{grid-column:1;font-size:13px;font-weight:400;line-height:1.4}
body.inner #v-home .morning-choice::after{content:'+';grid-column:2;grid-row:1/span 2;align-self:center;justify-self:center;font-size:20px}
body.inner #v-home .morning-choice[aria-pressed=true]::after{content:'✓'}
body.inner #v-home .home-later{margin-top:12px}
@media(max-width:359px){
  body.inner #v-home .home-hero{grid-template-columns:56px minmax(0,1fr) 18px}
  body.inner #v-home .moon-hero-cv{width:56px;height:56px}
  html[data-skin=compact] body.inner #v-home .home-intro{padding:12px 14px}
  html[data-skin=compact] body.inner #v-home .home-intro #h-wish{font-size:18px}
  body.inner #v-home .ha{padding:12px 14px}
  body.inner #v-home .ha-q{font-size:16px}
}

/* Нижние ссылки собраны вместе; свободная высота распределяется между смысловыми блоками. */
#v-hello .hello-footer{grid-row:4;display:grid;gap:10px}
#v-hello .hello-footer .hello-inside,body.hello #v-hello .hello-footer .trust{grid-row:auto}

/* Быстрая запись и возвращение к собственным словам в Дневнике. */
body.inner .diary-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
body.inner .diary-shortcuts .btn{flex:1;white-space:nowrap}
body.inner .diary-search{display:grid;gap:10px;margin-bottom:20px}
body.inner .diary-search label{font-size:14px;color:var(--text-2)}
body.inner .diary-search .row{gap:8px;flex-wrap:wrap}
body.inner .diary-search input{min-width:0;flex:1;width:100px}
body.inner .diary-search select{min-width:0;flex:1;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}
body.inner .day-row .t{min-width:0}
body.inner .day-row .t p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.4}
body.inner .day-row .t small{white-space:normal;line-height:1.4}
body.inner .dc-actions{flex-wrap:wrap}
body.inner .dc-optional{margin:16px 0 10px}
body.inner #w-days .diary-search .search-note{font-size:13px;line-height:1.45;margin:0;color:var(--muted)}
body.inner #w-days .days-month{font-size:12px;letter-spacing:.06em}
body.inner #w-days #days-result-count{font-size:14px;line-height:1.4}

/* Первый визит: один основной путь к профилю, продолжение после пробного броска. */
#v-hello .hello-start{display:grid;gap:8px}
#v-hello .hello-start .btn{width:100%;min-height:46px;background:linear-gradient(135deg,#f0d79a,#c9a85e);color:#211b30;border:0;font-size:16px;font-weight:600}
html[data-skin] #v-hello .hello-start p{margin:0;font-size:13px;line-height:1.4;color:#c9c4d4;text-align:center}
#v-hello .hello-oracle{display:grid;grid-template-columns:minmax(0,1fr) 118px}
#v-hello .hello-continue{grid-column:1/-1;display:grid;justify-items:start;gap:8px}
#v-hello .hello-continue[hidden]{display:none}
html[data-skin] #v-hello .hello-continue p{margin:0;color:#c9c4d4;font-size:13px;line-height:1.4}
#v-hello .hello-continue .btn{min-height:44px;color:#f0d79a;border-color:#d9b86866}
#v-login .login-new{margin:24px 0;display:grid;gap:8px}
#v-login .login-new p{margin:0}
html[data-skin] #v-onb .onb-intro{margin:18px 0;font-size:14px;line-height:1.5;color:var(--muted)}
/* Вход по почте не работает (сбой на нашей стороне): честная строка вместо формы, «Проверить еще раз» только читает состояние */
.auth-flow .auth-off-title{margin:0;font-size:20px;line-height:1.35;font-weight:600;color:var(--text)}   /* --text и --muted ночные и на экранах до входа в светлой теме (theme.css body:not(.inner)); --strong и --text-2 там не переопределены */
.auth-flow .auth-off-text{margin:10px 0 0;font-size:16px;line-height:1.55;color:var(--muted)}
.auth-flow .auth-exit{width:100%;margin-top:12px;min-height:52px}
.auth-flow .auth-recheck{width:100%;margin-top:24px;min-height:52px}
.auth-flow .auth-wait{margin:0}
#v-login.mail-off .login-intro{display:none}
/* шаг кода: «Письмо могло задержаться», «Не пришло? Проверьте папку «Спам».» и «Прислать еще раз» с отсчетом */
.auth-flow .auth-note{margin:16px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}
.auth-flow .auth-late{margin:-12px 0 24px}
.auth-flow .auth-note+.auth-secondary{margin-top:8px}
.auth-flow [aria-busy=true]{cursor:wait}
/* на анкете при выключенной почте строка о входе заменяет «Уже пользовались?» */
#v-onb #o-back.mail-off>p{display:none}
#v-onb #o-back .auth-off-note{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}
/* вход нашел прежний аккаунт, а на устройстве есть записи без входа: на экране только вопрос о переносе (paintAuth, step transfer) */
#v-login.auth-asking>.back,#v-login.auth-asking .login-intro,#v-login.auth-asking .login-new,
#v-onb.auth-asking>.back,#v-onb.auth-asking .onb-intro,#v-onb.auth-asking #o-form,#v-onb.auth-asking #o-back>p{display:none}
/* удаление не подтвердилось — строка остается до следующей попытки */
#v-account .ac-del-note{margin:16px 0 0;font-size:15px;line-height:1.55;color:var(--text-2)}
