/* ═══ Телефон — «Ещё» ═══
   Список строк на бумаге: кто вы наверху, ниже группы действий; дверь
   на компьютер — последняя. Строки 52 px, знак человека тот же, что везде. */
.tel-root.pm{overflow-y:auto;overscroll-behavior:contain;background:var(--paper);padding:calc(12px + env(safe-area-inset-top,0px)) 14px calc(24px + var(--tel-bar))}

/* Стопка «Ещё»: список внизу стопки, подэкран приходит справа и уходит туда же
   (один путь туда и обратно); пока он открыт, список не прокручивается.
   Как на iPhone: подэкран едет по кривой iOS, список под ним отступает
   влево на треть хода и темнеет (`.tel-dim`) — видно, что он под слоем;
   с левой кромки подэкран смахивается назад за пальцем один в один
   (phone-shell.mjs), полоса `.tel-edge` ловит этот жест. */
.tel-stack{position:relative;overflow:hidden}
.tel-root{
  position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--tel-bar);
  transition:transform var(--t-push) var(--ease-push);
}
body.on-sub .tel-root{overflow:hidden;transform:translateX(-28%)}
.tel-dim{
  position:absolute;inset:0;z-index:1;background:var(--ink);opacity:0;pointer-events:none;
  transition:opacity var(--t-push) var(--ease-push);
}
body.on-sub .tel-dim{opacity:.12}
.tel-sub{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;background:var(--card);
  box-shadow:var(--sh-modal);
  transform:translateX(100%);visibility:hidden;
  transition:transform var(--t-push) var(--ease-push),visibility 0s linear var(--t-push);
}
.tel-sub.open{transform:none;visibility:visible;transition:transform var(--t-push) var(--ease-push),visibility 0s}
.tel-edge{position:absolute;top:0;bottom:0;left:0;width:22px;z-index:3;touch-action:none}
/* Пока палец ведёт подэкран, движение задаёт он, а не переход. */
.tel-stack.dragging :is(.tel-root,.tel-dim,.tel-sub){transition:none}
.tel-sub-h{
  display:flex;align-items:center;gap:6px;flex-shrink:0;min-height:calc(52px + env(safe-area-inset-top,0px));
  padding:env(safe-area-inset-top,0px) 12px 0 4px;background:var(--paper);box-shadow:inset 0 -1px 0 var(--rule-2);
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
}
.tel-sub-h h2{margin:0;font-size:var(--ph-h);font-weight:600;letter-spacing:-.02em}
.tel-back{
  display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-pill);color:var(--ink);
  transition:background-color var(--t-tap) var(--ease),transform var(--t-tap) var(--ease);
}
.tel-back svg{width:22px;height:22px}
.tel-back:active{background:var(--sunk);transform:scale(.94)}
.tel-sub-b{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--tel-bar)}
@media (prefers-reduced-motion:reduce){
  .tel-sub,.tel-root,.tel-dim{transition:none}
  body.on-sub .tel-root{transform:none}
  .tel-back{transition:none}
}

.pm-me{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:10px 4px 20px;text-align:left}
.pm-av{
  display:grid;place-items:center;width:60px;height:60px;border-radius:var(--r-mark);grid-row:1 / span 2;overflow:hidden;
  font-size:21px;font-weight:600;font-style:normal;letter-spacing:.02em;color:var(--av-ink);background:var(--av,var(--stop));
}
.pm-av svg{width:32px;height:32px}
.pm-av .face-photo{border-radius:0}
.pm-me-t b{display:block;font-size:22px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.pm-me-t>span{display:block;margin-top:3px;font-size:var(--ph-s);color:var(--ink-2)}
.pm-venue{grid-column:2;font-size:var(--ph-s);color:var(--ink-3)}
.pm-group{margin-bottom:12px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-1);overflow:hidden}
.pm-row{
  display:flex;align-items:center;gap:14px;width:100%;min-height:56px;padding:9px var(--ph-gutter);
  text-align:left;color:var(--ink);text-decoration:none;
  transition:background-color var(--t-tap) var(--ease);
}
.pm-row+.pm-row{box-shadow:inset 0 1px 0 var(--rule-2)}
.pm-row:active{background:var(--sunk)}
.pm-row>svg{width:22px;height:22px;flex-shrink:0;color:var(--ink-2)}
.pm-row>span{min-width:0}
.pm-row b{display:block;font-size:16px;font-weight:500;letter-spacing:-.015em}
.pm-row u{display:block;margin-top:2px;font-size:var(--ph-s);color:var(--ink-3);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-theme{justify-content:space-between;gap:10px}
.pm-theme-l{font-size:16px;font-weight:500}
.pm-seg{display:flex;gap:2px;padding:2px;border-radius:var(--r);background:var(--sunk)}
.pm-seg-b{
  display:flex;align-items:center;gap:5px;height:34px;padding:0 10px;border-radius:calc(var(--r) - 2px);
  font-size:var(--ph-s);font-weight:500;color:var(--ink-2);
  transition:background-color var(--t-tap) var(--ease),color var(--t-tap) var(--ease);
}
.pm-seg-b svg{width:15px;height:15px}
.pm-seg-b span{display:none}
.pm-seg-b.on{background:var(--card);color:var(--ink);box-shadow:var(--sh-1)}
.pm-seg-b.on span{display:inline}
.pm-door b{font-weight:600}

/* Центр уведомлений (notify.css) на телефоне — во всю ширину над панелью:
   панель остаётся, чтобы уйти было куда; приходит снизу, как всякий лист. */
html[data-page="phone"] .nc{
  top:0;right:0;left:0;bottom:calc(58px + env(safe-area-inset-bottom,0px));
  width:auto;max-width:none;border-radius:0;transform-origin:50% 100%;
}
html[data-page="phone"] .nc:not([data-open]){transform:translate3d(0,12px,0)}
html[data-page="phone"] .nc-head{padding-top:calc(17px + env(safe-area-inset-top,0px))}

@media (prefers-reduced-motion:reduce){
  .pm-row,.pm-seg-b{transition:none}
}
