/* Единые границы, safe-area и overflow для всех страниц Silent */
:root {
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
    --cab-header-height: calc(60px + env(safe-area-inset-top, 0px));
    --content-max: 1120px;
}
*, *::before, *::after { box-sizing: border-box; }
html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: var(--cab-header-height);
}
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-wrap: anywhere;
}
img, video, canvas, svg, iframe { max-width: 100%; height: auto; }
pre, code, .code { overflow-wrap: anywhere; white-space: pre-wrap; }

/* Кабинет */
body.cab-page { min-height: 100dvh; }
.app-shell { min-height: 100dvh; grid-template-columns: minmax(0, 244px) minmax(0, 1fr); }
@media (max-width: 900px) {
    .app-shell { grid-template-columns: minmax(0, 1fr); }
    .cab-sidebar { width: min(282px, 86vw); border-right: 1px solid var(--border); }
}
.cab-sidebar {
    height: 100dvh;
    padding-top: calc(20px + var(--safe-top));
    padding-bottom: calc(20px + var(--safe-bottom));
    padding-left: max(14px, var(--safe-left));
    padding-right: max(14px, var(--safe-right));
}
.cab-main { min-width: 0; padding-left: var(--safe-left); padding-right: var(--safe-right); }
.cab-header {
    min-height: var(--cab-header-height);
    padding-top: calc(10px + var(--safe-top));
    padding-left: max(clamp(14px, 3vw, 28px), var(--safe-left));
    padding-right: max(clamp(14px, 3vw, 28px), var(--safe-right));
    padding-bottom: 10px;
}
.cab-content {
    width: min(var(--content-max), 100%);
    min-width: 0;
    padding-left: max(clamp(18px, 3vw, 34px), var(--safe-left));
    padding-right: max(clamp(18px, 3vw, 34px), var(--safe-right));
    padding-bottom: calc(clamp(18px, 3vw, 34px) + var(--safe-bottom));
}
.cab-content > * { min-width: 0; }
.cab-footer {
    padding-left: max(18px, var(--safe-left));
    padding-right: max(18px, var(--safe-right));
    padding-bottom: calc(18px + var(--safe-bottom));
}
.cab-tabbar {
    padding-left: var(--safe-left);
    padding-right: var(--safe-right);
    padding-bottom: var(--safe-bottom);
}
.cab-tabbar a, .cab-tabbar button { min-width: 0; }
.cab-sheet-body {
    padding-left: max(12px, var(--safe-left));
    padding-right: max(12px, var(--safe-right));
    padding-bottom: calc(18px + var(--safe-bottom));
}
.cab-sheet-body a, .cab-sheet-body button { min-width: 0; }
.cab-nav { min-width: 0; }
.cab-nav a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stats-grid, .grid-2, .grid-3 { min-width: 0; }
.stats-grid > *, .grid-2 > *, .grid-3 > * { min-width: 0; }
.card, .stat-card, .chat-item, .hero-card { min-width: 0; }
.card-title, .card-subtitle, .chat-name, .chat-meta { overflow-wrap: anywhere; }

/* Чат */
.tg-chat { min-width: 0; }
.tg-chat-head {
    top: var(--cab-header-height) !important;
    padding-left: max(4px, var(--safe-left));
    padding-right: max(4px, var(--safe-right));
}
.tg-messages {
    padding-left: max(2px, var(--safe-left));
    padding-right: max(2px, var(--safe-right));
    padding-bottom: calc(110px + var(--safe-bottom));
}
.tg-bubble { max-width: min(82%, calc(100% - 16px)); overflow-wrap: anywhere; }
.tg-media, .tg-video, .tg-audio { width: auto; max-width: 100%; }
.tg-composer {
    left: var(--safe-left) !important;
    right: var(--safe-right) !important;
    padding-left: max(12px, var(--safe-left));
    padding-right: max(12px, var(--safe-right));
    padding-bottom: calc(10px + var(--safe-bottom)) !important;
}
.tg-composer textarea { min-width: 0; }
.tg-file-name {
    left: max(16px, var(--safe-left));
    right: max(16px, var(--safe-right));
    bottom: calc(74px + var(--safe-bottom));
}
@media (min-width: 900px) {
    .tg-composer { left: calc(244px + var(--safe-left)) !important; }
    .tg-file-name { left: calc(260px + var(--safe-left)); }
}

/* Лендинг и правовые страницы */
.nav {
    padding-top: calc(14px + var(--safe-top));
    padding-left: max(clamp(16px, 4vw, 56px), var(--safe-left));
    padding-right: max(clamp(16px, 4vw, 56px), var(--safe-right));
}
.legal-header {
    padding-top: calc(14px + var(--safe-top));
    padding-left: max(clamp(16px, 4vw, 56px), var(--safe-left));
    padding-right: max(clamp(16px, 4vw, 56px), var(--safe-right));
}
.legal-wrap, .wrap { min-width: 0; }
.legal-card, .feature, .price-card, .help-item { min-width: 0; overflow-wrap: anywhere; }
.footer, .legal-footer { padding-bottom: calc(28px + var(--safe-bottom)); }
.legal-footer { padding-left: var(--safe-left); padding-right: var(--safe-right); }
.hero h1, .section-head h2 { overflow-wrap: anywhere; }
.legal-card table { display: block; max-width: 100%; overflow-x: auto; }

/* Админка */
.sidebar {
    height: 100dvh;
    padding-top: calc(16px + var(--safe-top));
    padding-bottom: calc(16px + var(--safe-bottom));
    padding-left: max(12px, var(--safe-left));
}
.main-content { min-width: 0; padding-right: var(--safe-right); }
.header-bar {
    padding-top: calc(10px + var(--safe-top));
    padding-left: max(16px, var(--safe-left));
    padding-right: max(16px, var(--safe-right));
}
.admin-card, .card, .grid-2, .grid-3 { min-width: 0; }
.admin-card, .card { overflow-wrap: anywhere; }

/* Таблицы на телефоне не должны рвать границы */
@media (max-width: 760px) {
    table { display: block; width: 100%; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    th, td { white-space: nowrap; }
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-head { align-items: flex-start; }
    .hero-side { text-align: left; }
    .card, .stat-card, .hero-card { border-radius: 18px; }
    .cab-content { padding-bottom: calc(92px + var(--safe-bottom)); }
    .cab-tabbar { min-height: calc(58px + var(--safe-bottom)); }
}
@media (max-width: 380px) {
    .cab-content { padding-left: max(10px, var(--safe-left)); padding-right: max(10px, var(--safe-right)); }
    .stat-card { padding: 12px; }
    .stat-value { font-size: 22px; }
    .btn { padding-left: 12px; padding-right: 12px; }
}
@media (orientation: landscape) and (max-height: 500px) {
    .cab-sidebar { padding-top: calc(10px + var(--safe-top)); }
    .cab-header { min-height: calc(48px + var(--safe-top)); padding-top: calc(6px + var(--safe-top)); padding-bottom: 6px; }
    :root { --cab-header-height: calc(48px + env(safe-area-inset-top, 0px)); }
}

