@font-face { font-family: 'Jost'; font-weight: 300; font-display: swap; src: url(/fonts/jost-cyrillic-300-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Jost'; font-weight: 400; font-display: swap; src: url(/fonts/jost-cyrillic-400-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Jost'; font-weight: 500; font-display: swap; src: url(/fonts/jost-cyrillic-500-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Jost'; font-weight: 300; font-display: swap; src: url(/fonts/jost-latin-300-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-weight: 400; font-display: swap; src: url(/fonts/jost-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Jost'; font-weight: 500; font-display: swap; src: url(/fonts/jost-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --accent: #F6B8C8; --glass: .55; --glass-rgb: 58, 42, 48;
  --head: #3B2830; --head-sub: #4E3540; --btn: #1E1A1C; --btn-fg: #FFFFFF; --on-accent: #3B2830;
  --line: rgba(255, 255, 255, .15); --muted: rgba(255, 255, 255, .86); --cap: rgba(255, 255, 255, .84);
  --safe-t: env(safe-area-inset-top, 0px); --safe-b: env(safe-area-inset-bottom, 0px);
  color-scheme: light;
}
body.night { --accent: #F7C1CF; --glass: .5; --glass-rgb: 34, 28, 34; --head: #FFFFFF; --head-sub: rgba(255, 255, 255, .9); --btn: #F7C1CF; --btn-fg: #231C21; --on-accent: #231C21; color-scheme: dark; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; font-family: 'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif; color: #FFFFFF; background: #E6B4BF; -webkit-font-smoothing: antialiased; -webkit-tap-highlight-color: transparent; }
body.night { background: #6E6584; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }
a { color: inherit; }

.scene { position: fixed; inset: 0; z-index: 0; overflow: hidden; }
.scene-svg { width: 100%; height: 100%; display: block; }
#root { position: relative; z-index: 1; }

/* ---------- раскладка ---------- */
.page { position: relative; }
.page.phone { padding: calc(56px + var(--safe-t)) 20px calc(110px + var(--safe-b)); max-width: 560px; margin: 0 auto; }
.page.tablet { padding: calc(44px + var(--safe-t)) 28px calc(120px + var(--safe-b)); max-width: 1000px; margin: 0 auto; }
.page.laptop { padding: 24px; }
.lay { max-width: 1480px; margin: 0 auto; display: flex; gap: 20px; align-items: flex-start; }
.lay > .side { flex: 0 0 236px; position: sticky; top: 24px; }
.lay > .main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.stack { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.tablet .stack { gap: 14px; }
.laptop .stack { gap: 16px; }
.stack.narrow { max-width: 640px; }
.cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; margin-top: 18px; }
.cols3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; align-items: start; }
.dare-wrap { padding-bottom: 24px; }

/* ---------- шапка ---------- */
.head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 16px; }
.tablet .head, .laptop .head { align-items: flex-end; }
.laptop .head { padding: 8px 4px 0; }
.head h1 { margin: 0; font-weight: 300; font-size: 44px; line-height: 1; letter-spacing: -0.02em; color: var(--head); }
.tablet .head h1 { font-size: 56px; }
.laptop .head h1 { font-size: 64px; line-height: .95; letter-spacing: -0.03em; }
.head-sub { margin: 4px 0 0; font-size: 15px; color: var(--head-sub); }
.tablet .head-sub, .laptop .head-sub { font-size: 16px; margin-top: 6px; }
.brand { font-size: 15px; font-weight: 500; letter-spacing: .02em; color: var(--head); margin-bottom: 10px; }
.fab { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--btn); color: var(--btn-fg); display: grid; place-items: center; flex: none; }
.pill-btn { height: 44px; padding: 0 18px; border-radius: 22px; border: 0; background: var(--btn); color: var(--btn-fg); font-size: 15px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-decoration: none; flex: none; }
.pill-btn.dark { background: #1E1A1C; color: #FFFFFF; }
.pill-btn.sm { height: 40px; padding: 0 14px; font-size: 14px; }
.pill-btn.wide { width: 100%; margin-top: 16px; }
.pill-btn.file { cursor: pointer; margin-top: 4px; }
.pill-btn:disabled { opacity: .6; }
.sync { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; border: 0; background: rgba(255, 255, 255, .18); color: var(--head); font-size: 12.5px; height: 26px; padding: 0 10px; border-radius: 13px; }
body.night .sync { background: rgba(0, 0, 0, .18); }
.card .sync { color: #FFFFFF; background: rgba(255, 255, 255, .12); margin: 0; }
.sync i { width: 7px; height: 7px; border-radius: 50%; background: #B9D4A6; }
.sync-syncing i { background: #F6E08C; }
.sync-offline i { background: #E6DCE0; }
.sync-error i { background: #F08FA6; }

/* ---------- стекло и карточки ---------- */
.glass { background: rgba(var(--glass-rgb), var(--glass)); -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%); border: 1px solid rgba(255, 255, 255, .26); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .32), 0 18px 40px -22px rgba(70, 30, 45, .55); }
body.night .glass { border-color: rgba(255, 255, 255, .22); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .24), 0 20px 44px -24px rgba(10, 5, 10, .7); }
.card { border-radius: 26px; padding: 14px 16px 16px; color: #FFFFFF; min-width: 0; }
.card-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 36px; }
.card-h.tight { margin: -8px -10px -6px 0; }
.hdr-r { display: flex; align-items: center; gap: 2px; }
.cap { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--cap); }
.cap.sub { display: block; margin: 14px 0 8px; }
.muted { font-size: 13px; color: var(--muted); font-weight: 400; }
.dim { color: rgba(255, 255, 255, .72); }
.big-n { font-size: 17px; color: #FFFFFF; font-weight: 400; }
.ell { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grow { flex: 1; min-width: 0; }
.empty { border-top: 1px solid var(--line); padding: 14px 0 6px; font-size: 14px; color: var(--muted); }
.lead { font-size: 15px; line-height: 1.45; margin: 10px 0; }
.icon-btn { border: 0; background: none; padding: 0; color: #FFFFFF; width: 44px; height: 44px; display: grid; place-items: center; flex: none; }
.ghost-btn { height: 36px; padding: 0 14px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, .36); background: transparent; color: #FFFFFF; font-size: 13px; flex: none; }
.link-btn { border: 0; background: none; color: #FFFFFF; text-decoration: underline; text-underline-offset: 3px; font-size: 14px; padding: 8px 0; }
.chev { margin-left: auto; opacity: .8; font-size: 18px; transition: transform .2s; }
.chev.open { transform: rotate(90deg); }

/* ---------- свёрнутые строки ---------- */
.row-card { width: 100%; border-radius: 22px; min-height: 56px; padding: 0 12px 0 16px; display: flex; align-items: center; gap: 12px; text-align: left; color: #FFFFFF; }
.row-t { flex: 1; font-size: 15px; }
.done-chip { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px; border-radius: 14px; background: var(--accent); color: var(--on-accent); font-size: 12.5px; flex: none; }

/* ---------- кольца ---------- */
.ring-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 10px; }
.ring-g { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ring-t { font-size: 15px; }
.ring-svg { width: 100%; max-width: 132px; aspect-ratio: 1; align-self: center; }
.ring-rows { display: flex; flex-direction: column; gap: 4px; }
.ring-row { display: flex; align-items: center; gap: 7px; font-size: 13px; }
.ring-row i { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.ring-row .ell { flex: 1; }
.ring-row .v { color: rgba(255, 255, 255, .88); white-space: nowrap; }

/* ---------- аффирмация ---------- */
.affirm { border-radius: 26px; padding: 16px 18px; background: #1E1A1C; display: flex; gap: 14px; align-items: flex-start; box-shadow: 0 20px 40px -22px rgba(40, 20, 30, .7); }
.affirm-i { width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .1); display: grid; place-items: center; flex: none; color: var(--accent); }
.affirm p { margin: 6px 0 0; font-size: 20px; font-weight: 300; line-height: 1.25; }
.affirm p.dim { font-size: 16px; }

/* ---------- утро и вечер ---------- */
.sleep { display: flex; align-items: flex-end; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
.big-l { font-size: 32px; font-weight: 300; line-height: 1; }
.sleep-f { display: flex; gap: 10px; flex-wrap: wrap; }
.sleep-f label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.scale { display: flex; gap: 8px; justify-content: space-between; max-width: 300px; }
.sc { width: 44px; height: 44px; border-radius: 50%; font-size: 15px; border: 1px solid rgba(255, 255, 255, .36); background: transparent; color: #FFFFFF; padding: 0; }
.sc.on { border-color: var(--accent); background: var(--accent); color: var(--on-accent); }
.inp { width: 100%; height: 44px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .26); background: rgba(255, 255, 255, .08); color: #FFFFFF; font-size: 16px; padding: 0 14px; }
.inp.t { width: 118px; }
.inp.ta { height: auto; padding: 12px 14px; resize: vertical; }
.inp::placeholder { color: rgba(255, 255, 255, .72); }
.inp[type=date], .inp[type=time], .inp[type=month] { color-scheme: dark; }
.inp.sel { appearance: none; -webkit-appearance: none; }
.inp.sel option { color: #231C21; }
.steps { display: flex; gap: 12px; align-items: flex-end; }
.steps > div { flex: 1; min-width: 0; }
.steps .muted { padding-bottom: 12px; }
.chk-line { display: flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 6px; font-size: 14px; cursor: pointer; }
.chk-line input { width: 22px; height: 22px; margin: 0; accent-color: var(--accent); }

/* ---------- задачи ---------- */
.tasks { padding: 12px 16px 6px; }
.task { display: flex; align-items: center; gap: 10px; min-height: 50px; border-top: 1px solid var(--line); }
.chk { border: 0; background: none; padding: 0; color: var(--on-accent); width: 44px; height: 44px; margin: 0 -6px 0 -8px; display: grid; place-items: center; flex: none; }
.chk span { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid rgba(255, 255, 255, .78); }
.task.done .chk span { border-color: var(--accent); background: var(--accent); }
.task-b { flex: 1; min-width: 0; padding: 6px 0; }
.task-t { font-size: 15px; overflow-wrap: anywhere; }
.task.done .task-t { text-decoration: line-through; color: rgba(255, 255, 255, .82); }
.task-m { font-size: 12.5px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.task-m i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.task-add { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 8px 0 12px; }
.foot { border-top: 1px solid var(--line); padding: 10px 0 8px; font-size: 13px; color: var(--muted); }
.foot b { color: #FFFFFF; font-weight: 500; }

/* ---------- привычки ---------- */
.habits { padding: 12px 14px 6px; }
.hb-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 4px; margin-top: 4px; }
.hb { border: 0; background: none; padding: 0; color: #FFFFFF; display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 0; }
.hb span { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .08); }
.hb.on span { border-color: var(--accent); background: var(--accent); color: var(--on-accent); box-shadow: 0 0 18px -2px var(--accent); }
.hb em { font-style: normal; font-size: 11.5px; color: rgba(255, 255, 255, .92); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.line-btn { color: #FFFFFF; border: 0; border-top: 1px solid var(--line); background: none; width: 100%; min-height: 44px; padding: 0 2px; display: flex; align-items: center; gap: 8px; text-align: left; font-size: 14px; }
.habits .line-btn:first-of-type { margin-top: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 0 12px; }
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-radius: 18px; border: 1px solid rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .08); color: #FFFFFF; font-size: 13.5px; }
.chip.on { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.chip .dim { color: inherit; opacity: .7; }

/* ---------- отказы ---------- */
.dare { padding: 4px 14px; }
.dare-i { display: flex; align-items: center; gap: 12px; min-height: 68px; }
.dare-i + .dare-i { border-top: 1px solid var(--line); }
.mini-ring { flex: none; }
.dare-n { font-size: 22px; font-weight: 300; line-height: 1.15; }
.dark-round { border: 0; padding: 0; width: 44px; height: 44px; border-radius: 50%; background: #1E1A1C; color: #FFFFFF; font-size: 14px; flex: none; }
.dare.full { padding: 14px 20px 18px; }
.dare-full { display: flex; flex-wrap: wrap; gap: 24px; }
.dare-a { flex: 4 1 480px; min-width: 0; }
.dare-b { flex: 1 1 200px; min-width: 0; }
.dare-h { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.cells { display: grid; gap: 2px; }
.cells i { aspect-ratio: 1; border-radius: 1.5px; background: rgba(255, 255, 255, .17); }
.cells i.c-d { background: rgba(255, 255, 255, .88); }
.cells i.c-t { background: var(--accent); }

/* ---------- деньги ---------- */
.money-r { margin-top: 12px; }
.money-r + .money-r { margin-top: 14px; }
.money-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 14px; }
.money-v { font-size: 24px; font-weight: 300; white-space: nowrap; }
.bar { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .2); overflow: hidden; margin-top: 8px; }
.bar i { display: block; height: 100%; border-radius: 3px; background: var(--accent); box-shadow: 0 0 12px var(--accent); }

/* ---------- нижняя панель и боковое меню ---------- */
.tabbar { position: fixed; z-index: 5; left: 20px; right: 20px; bottom: calc(20px + var(--safe-b)); height: 64px; border-radius: 32px; background: #1E1A1C; display: flex; align-items: center; justify-content: space-around; box-shadow: 0 18px 40px -16px rgba(40, 20, 30, .6); max-width: 520px; margin: 0 auto; }
.page.tablet ~ .tabbar { max-width: 440px; bottom: calc(28px + var(--safe-b)); }
.tab { border: 0; padding: 0; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: transparent; color: rgba(255, 255, 255, .82); }
.tab.on { background: #FFFFFF; color: #1E1A1C; }
.side { border-radius: 28px; padding: 22px 12px; display: flex; flex-direction: column; gap: 2px; }
.side-brand { font-size: 20px; font-weight: 500; letter-spacing: .02em; padding: 0 14px 18px; }
.side nav { display: flex; flex-direction: column; gap: 2px; }
.nav-i { border: 0; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 0 14px; border-radius: 22px; font-size: 15px; text-align: left; background: transparent; color: rgba(255, 255, 255, .92); }
.nav-i.on { background: rgba(255, 255, 255, .92); color: #3B2830; }
.nav-i:not(.on):hover { background: rgba(255, 255, 255, .1); }
.side-cap { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .82); padding: 14px 14px 6px; }
.side-tog { display: flex; align-items: center; width: 100%; border: 0; background: none; text-align: left; cursor: pointer; min-height: 40px; }
.side-tog .chev { font-size: 15px; }
.side-sub { display: flex; flex-direction: column; gap: 2px; }
.nav-sum { color: rgba(255, 255, 255, .78); }
.nav-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; margin: 0 5px; }
.side-bottom { margin-top: 16px; padding-top: 10px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; }

/* ---------- шторка ---------- */
.sheet-bg { position: fixed; inset: 0; z-index: 8; background: rgba(30, 20, 26, .35); }
.sheet { position: fixed; z-index: 9; left: 12px; right: 12px; bottom: calc(12px + var(--safe-b)); max-width: 560px; margin: 0 auto; border-radius: 28px; padding: 18px 18px 20px; max-height: 80vh; overflow: auto; }
.sheet-x { position: absolute; top: 6px; right: 6px; }
.sheet .cap { margin: 4px 0 10px; }
.sheet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.sheet-i { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 84px; padding: 14px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, .26); background: rgba(255, 255, 255, .08); color: #FFFFFF; font-size: 15px; text-align: left; }
.sheet-list { display: flex; flex-direction: column; margin-bottom: 8px; }
.sheet-row { display: flex; align-items: center; min-height: 48px; border: 0; border-top: 1px solid var(--line); background: none; color: #FFFFFF; font-size: 15px; text-align: left; padding: 0 2px; }
.sheet-row:first-child { border-top: 0; }

/* ---------- формы в шторке ---------- */
.sheet-form { display: flex; flex-direction: column; }
.fld { display: block; }
.fld .cap.sub { margin: 12px 0 6px; }
.form-btns { display: flex; gap: 10px; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.ghost-btn.danger { border-color: rgba(255, 170, 185, .6); color: #FFD3DC; }
.row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.row3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.list-row { display: flex; align-items: center; gap: 10px; min-height: 48px; border-top: 1px solid var(--line); padding: 6px 0; }
.list-row:first-of-type { border-top: 0; }
.list-row .grow > div:first-child { font-size: 15px; overflow-wrap: anywhere; }
.list-row .sub-l { font-size: 12.5px; color: var(--muted); }
.tag { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 11px; background: rgba(255, 255, 255, .14); font-size: 12px; white-space: nowrap; }
.stat { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.stat b { font-size: 26px; font-weight: 300; line-height: 1.1; }
.stat span { font-size: 12.5px; color: var(--muted); }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 10px; }

/* ---------- настройки ---------- */
.segs { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.seg { height: 40px; padding: 0 16px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, .34); background: transparent; color: #FFFFFF; font-size: 14px; }
.seg.on { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }

/* ---------- настройки: переключатели, акцент, стекло ---------- */
.st-form .card { padding-bottom: 18px; }
.st-sw { display: flex; align-items: center; gap: 12px; min-height: 52px; border-top: 1px solid var(--line); }
.st-sw .grow > div:first-child { font-size: 15px; }
.switch { border: 0; background: none; padding: 0; width: 56px; height: 44px; display: grid; place-items: center; flex: none; }
.switch span { width: 46px; height: 28px; border-radius: 14px; background: rgba(255, 255, 255, .22); display: flex; align-items: center; padding: 3px; justify-content: flex-start; transition: background .2s; }
.switch.on span { background: var(--accent); justify-content: flex-end; }
.switch i { width: 22px; height: 22px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 2px 6px rgba(0, 0, 0, .25); }
.st-acc { display: flex; gap: 14px; }
.acc { width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .3); padding: 0; }
.acc.on { border-color: #FFFFFF; box-shadow: 0 0 0 3px rgba(30, 26, 28, .55); }
.cap.sub.st-range-h { display: flex; justify-content: space-between; gap: 8px; }
.st-range { width: 100%; accent-color: var(--accent); height: 32px; }
.st-split { display: flex; height: 10px; border-radius: 5px; overflow: hidden; background: rgba(255, 255, 255, .15); margin-bottom: 4px; }
.st-split i { display: block; height: 100%; }
.st-aff-today { margin-top: 12px; padding: 14px 16px; border-radius: 18px; background: #1E1A1C; }
.st-aff-today > div:last-child { font-size: 18px; font-weight: 300; line-height: 1.3; margin-top: 4px; }
.st-aff-n { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 4px; }
.st-aff-rows { display: flex; flex-direction: column; margin-bottom: 8px; }
.st-aff-row { display: flex; align-items: center; gap: 6px; border-top: 1px solid var(--line); }
.st-aff-row:first-child { border-top: 0; }
.st-aff-t { flex: 1; min-width: 0; min-height: 52px; border: 0; background: none; color: #FFFFFF; font-size: 15px; line-height: 1.3; text-align: left; padding: 10px 2px; display: flex; flex-direction: column; gap: 3px; }
.st-aff-t .sub-l { font-size: 12.5px; opacity: .6; }
.st-aff-row.off .st-aff-t { opacity: .45; }

/* ---------- вход ---------- */
.login { min-height: 100vh; display: grid; place-items: center; padding: calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b)); }
.login-card { width: 100%; max-width: 420px; padding: 24px 22px 18px; }
.login-brand { font-size: 44px; font-weight: 300; letter-spacing: -0.02em; line-height: 1; margin-bottom: 4px; }
.login-msg { min-height: 20px; font-size: 14px; margin: 12px 0 4px; }

/* ---------- уведомление ---------- */
.toast { position: fixed; z-index: 20; left: 50%; bottom: calc(100px + var(--safe-b)); transform: translate(-50%, 20px); opacity: 0; pointer-events: none; background: #1E1A1C; color: #FFFFFF; padding: 12px 18px; border-radius: 18px; font-size: 14px; max-width: calc(100vw - 40px); transition: opacity .2s, transform .2s; box-shadow: 0 18px 40px -16px rgba(40, 20, 30, .6); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

@media (min-width: 1100px) { .toast { bottom: 32px; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
@media (max-width: 380px) { .page.phone { padding-left: 14px; padding-right: 14px; } .hb span { width: 42px; height: 42px; } .sc { width: 40px; height: 40px; } }
