:root{
  --bg:#F6F5F2; --ink:#26212B; --muted:#837D8C; --card:#fff; --line:#E5E1D9;
  --candy:#E8336D; --sea:#00A6A6; --sun:#FFC53D; --warn:#FFF3D6; --danger:#C62828;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{
  font-family:'Manrope',system-ui,sans-serif;background:var(--bg);color:var(--ink);
  font-size:15px;line-height:1.35;
  /* приложение не резиновое по горизонтали: сетка дня и лента прокручиваются
     внутри своих контейнеров, а страница целиком — нет */
  overflow-x:hidden;
}
button,input,select{font:inherit;color:inherit}
/* Кнопки на телефоне — не меньше 44 px по высоте: всё, что меньше,
   промахивается пальцем, а промах здесь стоит отменённой брони. */
button{min-height:44px;cursor:pointer}

/* ── ЭКРАНЫ ВХОДА ──────────────────────────────────────────────────── */
.screen{display:none;min-height:100dvh;padding:calc(var(--safe-t) + 8vh) 22px calc(var(--safe-b) + 24px)}
.screen.on{display:block}
.brandmark{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.brandmark img{width:44px;height:44px;border-radius:12px}
.brandmark b{font-size:19px;letter-spacing:.2px}
.brandmark span{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
.field{margin-bottom:12px}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:5px}
.field input{
  width:100%;border:1.5px solid var(--line);border-radius:12px;padding:13px 14px;
  background:var(--card);font-weight:600;
}
.field input:focus{outline:none;border-color:var(--candy)}
.btn{
  width:100%;background:var(--candy);color:#fff;border:none;border-radius:12px;
  padding:14px;font-weight:800;letter-spacing:.2px;
}
.btn[disabled]{opacity:.5}
.btn.ghost{background:none;color:var(--muted);font-weight:700}
.btn.line{background:var(--card);color:var(--ink);border:1.5px solid var(--line)}
.err{color:var(--danger);font-size:13px;font-weight:700;margin-top:12px;min-height:18px}
.hint{color:var(--muted);font-size:12.5px;margin-top:14px}

/* PIN. Точки — это не поле ввода: на телефоне нужен крупный набор цифр,
   а не клавиатура поверх половины экрана. */
.pin-dots{display:flex;gap:14px;justify-content:center;margin:26px 0 22px}
.pin-dots i{width:15px;height:15px;border-radius:50%;border:2px solid var(--line);background:none}
.pin-dots i.on{background:var(--candy);border-color:var(--candy)}
.pin-dots.bad i{border-color:var(--danger)}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:300px;margin:0 auto}
.keys button{
  background:var(--card);border:1.5px solid var(--line);border-radius:14px;
  padding:16px 0;font-size:21px;font-weight:800;min-height:58px;
}
.keys button.dim{background:none;border-color:transparent;font-size:14px;color:var(--muted);font-weight:700}
.pin-title{text-align:center;font-size:17px;font-weight:800}
.pin-sub{text-align:center;color:var(--muted);font-size:13px;margin-top:6px}

/* ── ПРИЛОЖЕНИЕ ────────────────────────────────────────────────────── */
#app{display:none;padding-bottom:calc(var(--safe-b) + 74px)}
.top{
  position:sticky;top:0;z-index:30;background:var(--ink);color:#fff;
  padding:calc(var(--safe-t) + 10px) 14px 10px;
}
.top .line1{display:flex;align-items:center;gap:10px}
.top .line1 b{font-size:16px;flex:1}
.top .who{font-size:12px;opacity:.7;font-weight:700}
.seg{display:flex;background:rgba(255,255,255,.13);border-radius:11px;padding:3px;margin-top:9px}
.seg button{flex:1;border:none;background:none;color:#fff;padding:8px 4px;font-weight:700;
  border-radius:9px;opacity:.65;font-size:13.5px;min-height:38px}
.seg button.on{background:var(--candy);opacity:1}
.daybar{display:flex;align-items:center;gap:8px;margin-top:9px}
.daybar button{background:rgba(255,255,255,.13);border:none;color:#fff;border-radius:10px;
  width:42px;min-height:42px;font-size:17px;font-weight:800}
/* Дата — кнопка: нажатие открывает календарь месяца (30.09.2026).
   `.daybar .d` сильнее `.daybar button`, поэтому квадрат стрелки
   сюда не перетекает. */
.daybar .d{flex:1;width:auto;background:none;text-align:center;font-weight:800;font-size:14.5px;
  padding:2px 6px}
.daybar .d small{display:block;font-weight:600;opacity:.65;font-size:11.5px}
.daybar .d .ci{display:inline-flex;vertical-align:-2px;margin-right:6px;opacity:.8}

/* ── КАЛЕНДАРЬ МЕСЯЦА (30.09.2026) ─────────────────────────────────── */
.cal-ovl{position:fixed;inset:0;background:rgba(38,33,43,.45);z-index:40;display:none}
.cal-ovl.on{display:block}
/* Прозрачный щит на долю секунды после выбора дня — см. closeCal() */
.cal-ovl.shield{background:transparent}
.cal{position:fixed;left:8px;right:8px;z-index:41;background:var(--card);border-radius:16px;
  padding:10px 10px 12px;box-shadow:0 12px 40px rgba(0,0,0,.22);display:none;overflow:auto;
  max-width:460px;margin:0 auto}
.cal.on{display:block}
.cal-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.cal-hd b{flex:1;text-align:center;font-size:16px;font-weight:800}
.cal-hd button{width:44px;border:1.5px solid var(--line);background:var(--card);border-radius:11px;
  font-size:18px;font-weight:800}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-grid .cw{text-align:center;font-size:11px;font-weight:800;color:var(--muted);padding:2px 0}
.cc{border:1.5px solid var(--line);background:var(--card);border-radius:10px;padding:4px 2px 5px;
  display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:48px}
.cc .n{font-size:13.5px;font-weight:800;line-height:1.1}
.cc.we .n{color:var(--candy)}
.cc.past{opacity:.5}
.cc.today{border-color:var(--sea)}
.cc.sel{border-color:var(--candy);box-shadow:inset 0 0 0 1.5px var(--candy)}
.cc .occ{display:flex;flex-direction:column;gap:2px}
.cc .lr{display:flex;align-items:center;gap:1.5px}
.cc .lb{font-style:normal;font-size:8.5px;font-weight:800;color:var(--muted);width:8px;line-height:1}
.cc .lr.cur .lb{color:var(--candy)}
.cc .dot{width:7px;height:7px}
.cc .off{color:var(--danger);font-size:9px;line-height:1}
.cal-ft{display:flex;align-items:center;gap:8px;margin-top:9px}
.cal-ft .legend{flex:1;margin:0;gap:4px 9px;font-size:11px}
.cal-ft button{border:1.5px solid var(--sea);background:var(--sea);color:#fff;border-radius:11px;
  padding:0 14px;font-weight:800;font-size:13.5px;flex:none}
.cal-note{font-size:12px;font-weight:700;color:var(--danger);margin-top:7px}
.cal-note:empty{display:none}
.wrap{padding:14px}
.tab{display:none}
.tab.on{display:block}
h2{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;
   letter-spacing:.4px;margin:2px 0 9px}
.newbk{
  width:100%;background:var(--candy);color:#fff;border:none;border-radius:13px;
  padding:14px;font-weight:800;font-size:15px;margin-bottom:13px;
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.sum{display:flex;gap:8px;margin-bottom:14px}
.sum div{flex:1;background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:9px 10px}
.sum b{display:block;font-size:17px;font-weight:800}
.sum span{font-size:11px;color:var(--muted);font-weight:700}
.slot{margin-bottom:14px}
.slot .sh{display:flex;align-items:baseline;gap:8px;margin-bottom:7px}
.slot .sh b{font-size:17px;font-weight:800}
.slot .sh span{font-size:12px;color:var(--muted);font-weight:700}
/* minmax(0,…) и min-width:0 — не косметика (17.09.2026): без них колонка
   грида растёт по самой длинной строке, и комментарий в одну строку
   с многоточием распирал плитку комнаты — вторая комната уезжала за край
   экрана, а за ней и вся страница. Сторож —
   test_mobile_long_comment_does_not_widen_the_day. */
.rooms{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.room{background:var(--card);border:1.5px solid var(--line);border-radius:13px;padding:9px;
  min-height:74px;display:flex;flex-direction:column;gap:6px;min-width:0}
.room .rt{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}
.room.closed{background:repeating-linear-gradient(45deg,#fdf1f4,#fdf1f4 8px,#fbe3ea 8px,#fbe3ea 16px)}
.bk{border-radius:10px;padding:8px 9px;border:1.5px solid #BCE4E2;background:#EFF9F8;
  font-size:12.5px;line-height:1.3;text-align:left;width:100%;min-height:auto;display:block}
.bk.pend{background:var(--warn);border-color:#F1D48A}
.bk.lead{background:#F1EDFD;border-color:#D4C8F5}
.bk b{display:block;font-size:13px;margin-bottom:2px}
.bk .st{font-size:11px;font-weight:800;display:block;margin-top:3px}
.bk .st.paid{color:var(--sea)} .bk .st.wait{color:#A66B00} .bk .st.hero{color:var(--candy)}
.bk .st.nohero{color:#D11A2A;font-weight:800}
.empty{color:var(--muted);font-size:12.5px;margin:auto;text-align:center}
.note{background:var(--warn);border:1.5px solid var(--sun);border-radius:12px;
  padding:10px 12px;font-size:13px;font-weight:600;margin-bottom:12px}
.note.bad{background:#FDEBEF;border-color:#F3B9CB}

/* лента 14 дней */
.rib{display:flex;flex-direction:column;gap:7px}
.rday{background:var(--card);border:1.5px solid var(--line);border-radius:13px;padding:9px 11px;
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;min-height:auto}
.rday.today{border-color:var(--sea)}
.rday .dt{font-weight:800;font-size:13.5px;width:74px;flex:none}
.rday .dt small{display:block;font-weight:600;color:var(--muted);font-size:11px}
.rday .locs{flex:1;display:flex;flex-direction:column;gap:4px}
.rday .lrow{display:flex;align-items:center;gap:5px}
.rday .lbl{font-size:10.5px;font-weight:800;color:var(--muted);width:12px;flex:none}
.dot{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.10);flex:none}
.dot.free{background:#DFF3F2} .dot.part{background:var(--sun)} .dot.full{background:var(--candy)}
.dot.closed{background:repeating-linear-gradient(45deg,var(--candy),var(--candy) 3px,#fff 3px,#fff 6px)}
.dot.none{background:transparent;border-style:dashed}
.rday .mny{font-size:12px;font-weight:800;color:var(--muted);flex:none}
.legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.legend span{display:flex;align-items:center;gap:5px}

/* нижняя панель */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:35;background:var(--card);
  border-top:1.5px solid var(--line);display:flex;padding-bottom:var(--safe-b);
}
.tabbar button{flex:1;background:none;border:none;padding:9px 0 7px;font-size:11px;
  font-weight:800;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px}
.tabbar button.on{color:var(--candy)}
/* ⚠️ Без этой строки атрибут `hidden` на кнопке НЕ РАБОТАЕТ. Он прячет
   элемент правилом display:none из стилей браузера, а любое авторское
   display (у нас flex выше) его перебивает — и вкладка «Деньги» осталась
   бы видна оператору. Та же порода, что display:'' у #app. */
.tabbar button[hidden]{display:none}
.tabbar .ic{display:flex;align-items:center;justify-content:center;height:21px}

/* карточка брони — лист снизу */
.sheet{
  position:fixed;inset:0;z-index:60;background:var(--bg);
  transform:translateY(100%);transition:transform .22s ease;
  display:flex;flex-direction:column;
}
.sheet.on{transform:none}
.sheet .hd{
  background:var(--ink);color:#fff;padding:calc(var(--safe-t) + 10px) 14px 11px;
  display:flex;align-items:center;gap:10px;
}
.sheet .hd b{flex:1;font-size:15px}
.sheet .hd button{background:rgba(255,255,255,.14);border:none;color:#fff;border-radius:10px;
  width:40px;min-height:40px;font-size:17px;font-weight:800}
.sheet .bd{flex:1;overflow:auto;padding:14px 14px calc(var(--safe-b) + 24px)}
.card{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:13px;margin-bottom:11px}
.card h3{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;
  letter-spacing:.3px;margin-bottom:9px}
.kv{display:grid;grid-template-columns:96px 1fr;gap:6px 10px;font-size:13.5px}
.kv .k{color:var(--muted);font-weight:700}
.kv .v{font-weight:700}
.calls{display:flex;gap:8px;margin-top:11px}
.calls a{
  flex:1;text-align:center;text-decoration:none;border-radius:12px;padding:12px 6px;
  font-weight:800;font-size:13.5px;background:var(--sea);color:#fff;
  display:flex;align-items:center;justify-content:center;min-height:44px;
}
.calls a.wa{background:#EFF9F8;color:#00776F;border:1.5px solid #BCE4E2}
.msg{white-space:pre-wrap;font-size:13px;background:var(--bg);border:1px solid var(--line);
  border-radius:11px;padding:11px;margin-bottom:9px}
.rowbtns{display:flex;gap:8px;flex-wrap:wrap}
.rowbtns button{flex:1;min-width:130px;border-radius:11px;border:1.5px solid var(--line);
  background:var(--card);font-weight:700;padding:11px 8px;font-size:13px}
.rowbtns + .rowbtns{margin-top:8px}
.rowbtns button:disabled{opacity:.5}
/* строка состава брони (0046): услуга слева, «Убрать» справа */
.adrow{display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:6px 0;font-size:13.5px;border-bottom:1px solid var(--line)}
.adrow button{border-radius:11px;border:1.5px solid #F3C9C9;background:var(--card);
  color:var(--danger);font-weight:700;padding:8px 12px;font-size:13px;flex:0 0 auto}
.log{font-size:12px;color:var(--muted)}
.log div{padding:3px 0}
.toast{
  position:fixed;left:50%;bottom:calc(var(--safe-b) + 86px);transform:translateX(-50%);
  background:var(--ink);color:#fff;padding:11px 18px;border-radius:12px;font-weight:700;
  font-size:13.5px;opacity:0;transition:opacity .2s;z-index:99;pointer-events:none;
  max-width:92vw;text-align:center;
}
.toast.on{opacity:1}
.spin{text-align:center;color:var(--muted);font-size:13px;padding:26px 0;font-weight:700}

/* закрытая бронь остаётся в сетке, но гасим её: она уже не работа */
.bk.done{background:#F2F1EE;border-color:var(--line);opacity:.75}
.bk .st.done{color:var(--muted)}
/* Комментарий к брони (16.09.2026): в сетке — одной строкой, целиком —
   в карточке. Ячейка на телефоне узкая, абзац её раздул бы. */
.bk .kid{font-weight:700}
.bk.cont{background:#F6F6F4;border-style:dashed;color:var(--muted)}
.bk .cm{display:block;margin-top:3px;font-size:11.5px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cmbox{width:100%;font:inherit;font-size:14px;border:1.5px solid var(--line);border-radius:11px;
  padding:10px 11px;margin-bottom:9px;resize:vertical;background:var(--card);color:var(--ink)}

/* ── ЗАДАЧИ ──────────────────────────────────────────────────────── */
.task{background:var(--card);border:1.5px solid var(--line);border-left:5px solid var(--candy);
  border-radius:14px;padding:12px;margin-bottom:10px}
.task .when{font-weight:800;font-size:13.5px}
.task .who{font-size:13px;margin-top:3px}
.task .prog{font-size:13.5px;margin-top:7px;font-weight:700}
.task .call{font-size:12.5px;color:var(--muted);margin-top:5px}
.task .flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.flag{font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px;background:var(--warn);color:#A66B00}
.flag.red{background:#FDEBEF;color:#B01B4C}
.flag.sea{background:#EFF9F8;color:#00776F}
.task .pick{display:grid;gap:7px;margin-top:10px}
.task select{width:100%;border:1.5px solid var(--line);border-radius:11px;padding:11px;
  background:var(--card);font-weight:600;min-height:44px}
.task .acts{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.task .acts button{flex:1;min-width:140px;border-radius:11px;padding:11px 8px;font-weight:800;
  font-size:13px;border:1.5px solid var(--line);background:var(--card)}
.task .acts button.go{background:var(--sea);color:#fff;border-color:var(--sea)}
.task .acts button.warn{color:var(--danger);border-color:#F3C9C9}
.badge[hidden]{display:none}
.badge{display:inline-block;min-width:17px;padding:0 5px;background:var(--candy);color:#fff;
  font-size:10.5px;font-weight:800;border-radius:999px;line-height:17px;text-align:center;
  position:absolute;top:2px;right:50%;transform:translateX(22px)}
.tabbar button{position:relative}

/* ── СВОДКА СОБСТВЕННИКА ─────────────────────────────────────────── */
.per{display:flex;background:var(--card);border:1.5px solid var(--line);border-radius:12px;
  padding:3px;margin-bottom:13px}
.per button{flex:1;border:none;background:none;border-radius:9px;padding:9px 4px;
  font-weight:800;font-size:13px;color:var(--muted);min-height:40px}
.per button.on{background:var(--ink);color:#fff}
.big{background:var(--card);border:1.5px solid var(--line);border-radius:14px;
  padding:14px;margin-bottom:10px}
.big .lbl{font-size:11.5px;font-weight:800;color:var(--muted);text-transform:uppercase;
  letter-spacing:.3px}
.big .val{font-size:29px;font-weight:800;line-height:1.1;margin-top:5px}
.big .sub{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:5px}
.delta{font-size:12.5px;font-weight:800;margin-top:7px}
.delta.up{color:#00776F} .delta.down{color:var(--danger)} .delta.flat{color:var(--muted)}
.pair{display:flex;gap:9px;margin-bottom:10px}
.pair .big{flex:1;margin-bottom:0}
.pair .val{font-size:21px}
.bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin-top:9px}
.bar i{display:block;height:100%;background:var(--candy);border-radius:99px}
.rows{display:grid;gap:8px;margin-top:9px}
.row2{display:flex;align-items:baseline;gap:9px;font-size:13.5px}
.row2 .nm{flex:1;font-weight:700}
.row2 .nu{font-weight:800}
.row2 .mu{color:var(--muted);font-size:12px;font-weight:700}
.per.small{margin:12px 0 4px}
.per.small button{padding:7px 4px;font-size:12.5px}
.rate{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:11px}
.rate input{border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit;font-weight:700;min-width:0}
.rate input[type=number]{width:96px}
.rate button{border:1.5px solid var(--ink);background:var(--ink);color:#fff;border-radius:10px;
  padding:9px 12px;font:inherit;font-weight:800}

/* ── КОЛОКОЛЬЧИК И ЛЕНТА СОБЫТИЙ ─────────────────────────────────── */
.bell,.find{position:relative;background:rgba(255,255,255,.13);border:none;color:#fff;
  border-radius:10px;width:38px;min-height:38px;display:flex;align-items:center;
  justify-content:center;flex:none}
.bell .dot2{position:absolute;top:5px;right:5px;min-width:16px;height:16px;padding:0 4px;
  background:var(--candy);color:#fff;font-size:10px;font-weight:800;border-radius:99px;
  line-height:16px;text-align:center}
.bell .dot2[hidden]{display:none}
.ntf{background:var(--card);border:1.5px solid var(--line);border-radius:13px;
  padding:11px 12px;margin-bottom:8px}
.ntf.new{border-left:4px solid var(--candy)}
.ntf .t{font-weight:800;font-size:14px}
.ntf .b{font-size:13px;color:var(--ink);margin-top:3px}
.ntf .w{font-size:11.5px;color:var(--muted);font-weight:700;margin-top:5px}

/* ── ОКНО ПОДТВЕРЖДЕНИЯ ──────────────────────────────────────────── */
.ask-ovl{position:fixed;inset:0;background:rgba(38,33,43,.5);z-index:80;display:none}
.ask-ovl.on{display:block}
.ask{
  position:fixed;left:12px;right:12px;bottom:calc(var(--safe-b) + 12px);z-index:81;
  background:var(--card);border-radius:18px;padding:18px 16px calc(14px);
  display:none;box-shadow:0 12px 40px rgba(0,0,0,.22);
}
.ask.on{display:block}
.ask h3{font-size:17px;font-weight:800;margin-bottom:7px}
.ask p{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:15px}
.ask .btns{display:flex;gap:9px}
.ask .btns button{flex:1;border-radius:12px;padding:13px 8px;font-weight:800;font-size:14px;
  border:1.5px solid var(--line);background:var(--card)}
.ask .btns button.go{background:var(--candy);color:#fff;border-color:var(--candy)}
.ask .btns button.go.calm{background:var(--sea);border-color:var(--sea)}
/* Поля внутри вопроса (способ и сумма задатка). Пустой блок не занимает места. */
.ask .extra{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:-4px 0 15px}
.ask .extra:empty{display:none}
.ask .extra label{display:flex;gap:6px;align-items:center;font-weight:700;font-size:14px;
  border:1.5px solid var(--line);border-radius:11px;padding:10px 12px}
.ask .extra input[type=number]{flex:1;min-width:110px;border:1.5px solid var(--line);
  border-radius:11px;padding:10px 12px;font-weight:700;font-size:15px}
/* ── КЛИЕНТЫ: ПОИСК И КАРТОЧКА (01.10.2026) ──────────────────────── */
.sheet .hd button[hidden]{display:none}
.clif{display:flex;gap:8px;margin-bottom:10px}
.clif input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;padding:12px 13px;
  background:var(--card);font-weight:600}
.clif input:focus{outline:none;border-color:var(--candy)}
.clif button{border:none;background:var(--candy);color:#fff;border-radius:12px;padding:0 16px;
  font-weight:800;flex:none}
.cres{display:block;width:100%;text-align:left;background:var(--card);border:1.5px solid var(--line);
  border-radius:13px;padding:11px 12px;margin-bottom:8px;min-height:auto;font-size:14px;
  overflow-wrap:anywhere}
.cres small{display:block;color:var(--muted);font-size:12.5px;font-weight:600;margin-top:3px}
.cin{width:100%;min-width:0;font:inherit;font-size:14px;font-weight:600;border:1.5px solid var(--line);
  border-radius:11px;padding:10px 11px;background:var(--card);color:var(--ink);min-height:44px}
textarea.cin{resize:vertical;margin-top:8px}
.kidrow{padding:9px 0;border-bottom:1px solid var(--line)}
.kidrow .two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.kidrow .ft{display:flex;align-items:center;gap:8px;margin-top:6px}
.kidrow .age{flex:1;font-size:12.5px;color:var(--muted);font-weight:600}
.kidrow .ft button{border-radius:11px;border:1.5px solid #F3C9C9;background:var(--card);
  color:var(--danger);font-weight:700;padding:0 12px;font-size:13px;flex:none}
.party{display:block;width:100%;text-align:left;background:none;border:none;
  border-top:1px solid var(--line);padding:9px 0;min-height:auto;font-size:13.5px;overflow-wrap:anywhere}
.party:first-of-type{border-top:none}
.party small{display:block;color:var(--muted);font-size:12.5px;font-weight:600;margin-top:2px}
.helpq{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.5px solid currentColor;font:700 12px/1 Manrope,system-ui,sans-serif;text-decoration:none;color:var(--muted);vertical-align:middle;margin-left:6px}

/* ── Гость игровой (0053) ──────────────────────────────────────────── */
/* Вид входа — кнопками без выбора по умолчанию; бесплатный — своим цветом,
   чтобы кассир не взял денег по ошибке и не подарил вход по ошибке. */
.vk{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.vk button{flex:1;min-width:96px;border-radius:11px;border:1.5px solid var(--line);
  background:var(--card);font-weight:700;padding:9px 8px;font-size:13px}
.vk button.on{background:var(--sea);border-color:var(--sea);color:#fff}
.vk button.free{border-color:var(--candy);color:var(--candy)}
.vk button.free.on{background:var(--candy);color:#fff}
.vk .age{font-size:12.5px;color:var(--muted);font-weight:700}
.vbal{background:var(--bg);border-radius:11px;padding:10px 11px;margin-bottom:6px}
.vbal b{display:block;font-size:15px}
.vbal span{display:block;color:var(--candy);font-weight:800;font-size:14px;margin-top:3px}
.vclosing{background:#FFF6E5;border:1.5px solid #F2D49B;border-radius:11px;padding:9px 11px;margin:8px 0;font-size:14px}
.vres{background:#EFF9F8;border:1.5px solid #BCE4E2;border-radius:14px;padding:12px 13px;margin-bottom:11px}
.vres div{font-size:17px;font-weight:700;padding:2px 0}
.vres div.free{color:var(--candy);font-weight:800}
.vres small{display:block;color:var(--muted);font-weight:700;margin-top:5px}
.vrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.vrow > div{flex:1;min-width:0}
.vrow small{display:block;color:var(--muted);font-size:12px;font-weight:600}
.vrow.void{opacity:.55;text-decoration:line-through}
.vrow button{border-radius:11px;border:1.5px solid #F3C9C9;background:var(--card);
  color:var(--danger);font-weight:700;padding:8px 12px;font-size:13px;flex:0 0 auto}
.vadd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.rowbtns button.go{background:var(--candy);border-color:var(--candy);color:#fff}
.newbk.alt{background:var(--sea)}
/* hidden не работает на элементе с авторским display (правило проекта) */
.newbk[hidden]{display:none}
