/* One mobile shell for public pages and the personal account. Desktop keeps its layout. */
.mobile-header,.mobile-tabs,.mobile-home,.mobile-reading-top,.cabinet-mobile-heading,.cabinet-mobile-back,.mobile-only { display:none; }
.mobile-icon { flex-shrink:0; vertical-align:middle; }
.mobile-menu:not([open]),.mobile-photo-dialog:not([open]) { display:none; }
.mobile-gallery { display:none; }

@media (max-width:991px) {
    .rapn-public {
        --main-color:#293f98; --main-hover-color:#20347f; --main-active-color:#20347f;
        --rapn-ink:#1b2743; --rapn-muted:#657088; --rapn-border:#e0e5ee;
        --rapn-tint:#e9edfb; --rapn-surface:#f4f6fb; --rapn-focus:#6f84cc;
        --rapn-title:24px; --rapn-section:20px; --rapn-card-title:18px; --rapn-news-body:16px;
        --mobile-bar-height:70px;
        --mobile-header-height:calc(73px + env(safe-area-inset-top));
        background:#fff; margin:0; min-height:100svh;
        padding-top:var(--mobile-header-height); padding-bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom));
        overflow-wrap:anywhere; line-height:1.55;
    }
    .rapn-public .container { width:100%; max-width:720px; padding-inline:18px; }
    .rapn-public .rapn-site-header { position:fixed; inset:0 0 auto; z-index:1030; background:#fff; padding-top:env(safe-area-inset-top); }
    .rapn-public #title-block,.rapn-public #main-nav { display:none!important; }
    .mobile-header { display:flex; align-items:center; gap:8px; min-height:73px; max-width:720px; margin:auto; padding:9px 14px 9px 18px; border-bottom:1px solid var(--rapn-border); }
    .rapn-public .mobile-brand { flex:1; display:flex; align-items:center; gap:16px; min-height:46px; text-decoration:none; }
    .mobile-brand > span { font-size:25px; font-weight:500; letter-spacing:2px; color:var(--main-color); }
    .mobile-brand small { font-size:12px; line-height:1.4; color:var(--rapn-muted); }
    .mobile-header .rapn-notification-bell { width:44px; height:44px; }
    .mobile-header .rapn-notification-bell svg { width:23px; height:23px; }
    .mobile-header .rapn-notification-count { font-size:11px; min-width:18px; line-height:17px; right:0; top:0; }
    .rapn-public #content { min-height:calc(100svh - 160px); padding-top:18px; }
    .rapn-public :is([id],a,button,input,select,textarea) { scroll-margin-top:calc(var(--mobile-header-height) + 16px); scroll-margin-bottom:100px; }
    .rapn-public h1 { line-height:1.35; margin-bottom:20px; color:var(--rapn-ink); }
    .rapn-public .breadcrumb,.rapn-public nav:has(> .breadcrumb) { display:none; }
    .rapn-public .rapn-reading,.rapn-public .rapn-news-page,.rapn-public .rapn-search-page { margin:0 auto 28px; }
    .rapn-public .rapn-prose { margin:20px auto; font-size:16px; line-height:1.65; }
    .rapn-public .rapn-prose :is(p,span,font,li,td,th) { font-size:inherit!important; line-height:inherit!important; }
    .rapn-public .rapn-prose :is(h2,h3,h4) { font-size:20px!important; line-height:1.4!important; }
    .rapn-public .rapn-prose :is(img,video,iframe) { max-width:100%!important; }
    .rapn-public .rapn-prose img { height:auto!important; object-fit:contain; }
    .rapn-public .rapn-prose table { display:block; width:100%!important; max-width:100%!important; overflow-x:auto; }
    .rapn-public .rapn-prose [style*="width"] { max-width:100%!important; }
    .rapn-public .rapn-lead { font-size:17px; line-height:1.6; }
    .mobile-article-date { color:var(--rapn-muted); font-size:12px; margin-bottom:12px; }
    .news-publication-date { display:none; }
    .rapn-public #news-item #tags :is(.main-tag,.regular-tag) { background:transparent; color:var(--main-color); padding:0; font-size:12px; }
    .rapn-public #news-item #tags a { display:inline-flex; align-items:center; min-height:44px; margin-right:12px; text-decoration:underline!important; }
    .rapn-public .form-control,.rapn-public .form-select { min-height:48px; font-size:16px; border-color:#c5cddd; border-radius:4px; }
    .rapn-public input[type=file] { max-width:100%; }
    .rapn-public :is(.form-label,.control-label) { line-height:1.5; }
    .rapn-public :is(.btn,.btn-lg) { font-size:15px; min-height:44px; border-radius:4px; white-space:normal; }
    .rapn-public :is(.btn-outline-primary,.btn-outline-secondary) { color:var(--main-color); border-color:var(--rapn-border); }
    .rapn-public .btn-outline-primary:hover { color:#fff; background:var(--main-color); }
    .rapn-public .field-validation-error,.rapn-public .validation-summary-errors { font-size:14px; }
    .rapn-public .alert { padding:14px; font-size:14px; border-radius:4px; }
    .rapn-public #footer { display:none; }

    .mobile-tabs { position:fixed; z-index:1040; inset:auto 0 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; min-height:var(--mobile-bar-height); padding:6px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left)); background:#fff; border-top:1px solid var(--rapn-border); }
    .mobile-tabs > :is(a,button) { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:56px; padding:0; border:0; background:none; font:inherit; font-size:11px; color:var(--rapn-muted); text-decoration:none; }
    .mobile-tabs > :is(a,button) > span { display:grid; place-items:center; width:54px; height:33px; border-radius:4px; }
    .mobile-tabs .mobile-icon { width:23px; height:23px; }
    .mobile-tabs [aria-current=page],.mobile-tabs [aria-expanded=true] { color:var(--main-color); font-weight:500; }
    .mobile-tabs [aria-current=page] > span,.mobile-tabs [aria-expanded=true] > span { background:var(--rapn-tint); }
    .mobile-keyboard-open .mobile-tabs { display:none; }
    .mobile-reading-top { position:fixed; z-index:1035; right:max(18px,calc((100vw - 720px) / 2 + 18px),env(safe-area-inset-right)); bottom:calc(var(--mobile-bar-height) + env(safe-area-inset-bottom) + 12px); display:grid; place-items:center; width:44px; height:44px; padding:10px; border:0; border-radius:4px; background:transparent; color:var(--main-color); opacity:.65; }
    .mobile-reading-top[hidden],.mobile-keyboard-open .mobile-reading-top,.mobile-modal-open .mobile-reading-top { display:none; }
    .mobile-reading-top:is(:hover,:focus-visible) { opacity:1; }
    .mobile-reading-top:focus-visible { outline:2px solid var(--main-color); outline-offset:3px; }
    .mobile-reading-top svg { width:22px; height:22px; }
    .mobile-menu { position:fixed; inset:env(safe-area-inset-top) 0 0; width:100%; max-width:720px; height:calc(100% - env(safe-area-inset-top)); max-height:100dvh; margin:0 auto; padding:18px 18px calc(28px + env(safe-area-inset-bottom)); background:#fff; color:var(--rapn-ink); border:0; overflow-y:auto; overscroll-behavior:contain; }
    .mobile-menu::backdrop { background:#18254266; }
    .mobile-menu-heading { display:flex; align-items:center; justify-content:space-between; margin:0 0 16px; }
    .mobile-menu-heading h2 { margin:0; font-size:24px; font-weight:500; }
    .mobile-icon-button { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; padding:0; border:0; border-radius:4px; background:transparent; color:var(--main-color); }
    .mobile-menu-list,.mobile-menu-list ul { list-style:none; margin:0; padding:0; }
    .mobile-menu-list > li { border-bottom:1px solid var(--rapn-border); }
    .mobile-menu-list a,.mobile-menu-list summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:12px 2px; color:var(--rapn-ink); font-size:16px; text-decoration:none; cursor:pointer; list-style:none; }
    .mobile-menu-list summary::-webkit-details-marker { display:none; }
    .mobile-menu-list .mobile-icon { width:17px; height:17px; color:var(--rapn-muted); }
    .mobile-menu-group[open] > summary { color:var(--main-color); }
    .mobile-menu-group[open] > summary > .mobile-icon { transform:rotate(90deg); }
    .mobile-menu-group ul { padding:0 0 10px 16px; }
    .mobile-menu-group li a { min-height:48px; font-size:15px; }
    .mobile-socials { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding-top:22px; }
    .mobile-socials a { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--main-color); color:var(--main-color); border-radius:6px; background:white; text-decoration:none; }
    .mobile-vk { font-size:21px; font-weight:500; letter-spacing:-1.5px; }
    .mobile-modal-open { overflow:hidden; }

    .desktop-home { display:none; }
    .mobile-home { display:block; }
    .mobile-feature { position:relative; overflow:hidden; padding:18px 18px 0; border-radius:6px; background:var(--rapn-tint); }
    .mobile-feature::after { content:""; position:absolute; top:0; right:0; width:45px; height:45px; border-top:10px solid var(--main-color); border-right:10px solid var(--main-color); pointer-events:none; }
    .mobile-eyebrow { margin:0; padding-right:22px; font-size:11px; font-weight:500; letter-spacing:1px; text-transform:uppercase; color:var(--main-color); }
    .mobile-feature-date { display:flex; align-items:center; gap:12px; margin-top:16px; color:var(--main-color); }
    .mobile-feature-date strong { font-size:40px; font-weight:500; line-height:1; letter-spacing:-1.5px; }
    .mobile-feature-date span { font-size:15px; line-height:1.3; }
    .mobile-feature-date small { display:block; font-size:12px; color:var(--rapn-muted); }
    .mobile-feature-place { font-size:12px; color:var(--rapn-muted); margin:10px 0 0; }
    .mobile-feature h2 { margin:16px 0 18px; color:var(--main-color); font-size:20px; line-height:1.4; }
    .mobile-feature .btn { display:flex; justify-content:space-between; align-items:center; gap:10px; width:100%; padding:12px; margin-bottom:16px; text-align:left; }
    .mobile-feature .btn .mobile-icon { width:18px; }
    .mobile-feature-state { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; padding:0 0 16px; font-size:12px; color:var(--rapn-muted); text-decoration:none; }
    a.mobile-feature-state { min-height:44px; color:var(--main-color); }
    .mobile-quick-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:20px; }
    .mobile-quick-links > :is(a,button) { display:flex; align-items:center; gap:10px; padding:12px; min-height:64px; border:1px solid var(--rapn-border); border-radius:4px; background:white; color:var(--main-color); font:inherit; font-size:14px; font-weight:500; line-height:1.4; text-decoration:none; text-align:left; }
    .mobile-quick-links .mobile-icon { width:22px; height:22px; }
    .mobile-section-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; margin:18px 0 6px; }
    .mobile-section-heading h2 { font-size:20px; margin:0; color:var(--main-color); }
    .mobile-section-heading a { display:flex; align-items:center; min-height:44px; gap:6px; font-size:12px; text-decoration:none; }
    .mobile-feed-items { border-top:1px solid var(--rapn-border); }
    .mobile-news-item { padding:15px 0; border-bottom:1px solid var(--rapn-border); }
    .mobile-news-item a { display:block; text-decoration:none; color:var(--rapn-ink); }
    .mobile-news-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:7px; color:var(--rapn-muted); font-size:12px; margin-bottom:7px; }
    .mobile-news-pin { display:inline-flex; align-items:center; gap:4px; color:var(--main-color); font-size:11px; }
    .mobile-news-pin .mobile-icon { width:13px; height:13px; }
    .mobile-news-item h3 { margin:0; font-size:16px; line-height:1.45; font-weight:500; }
    .mobile-news-item.is-pinned { padding:14px 12px; background:#f3f5fc; border-left:3px solid var(--main-color); }
    .mobile-news-item.is-pinned h3 { color:var(--main-color); }
    .mobile-feed-next,.mobile-feed-end { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:52px; padding:12px 0; margin:0; font-size:13px; text-decoration:none; text-align:center; }
    .mobile-feed-end { color:var(--rapn-muted); }
    [data-feed-status]:not(.visually-hidden) { font-size:14px; color:#972929; }
    .rapn-news-row.is-featured > a,.rapn-news-row.is-featured p { display:none; }
    .rapn-news-list { display:block; }
    .rapn-news-column .rapn-news-row:first-child { padding-top:16px; }
    .rapn-news-row h2 { font-size:17px; }
    .rapn-filter-links { flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding:3px 2px 9px; }
    .rapn-filter-links a { flex-shrink:0; font-size:14px; }
    .rapn-about .rapn-about-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:visible; border:0; margin-bottom:24px; }
    .rapn-about .rapn-about-tabs .nav-item { display:flex; min-width:0; }
    .rapn-about .rapn-about-tabs .nav-link { width:100%; min-height:48px; margin:0; padding:10px 12px; border:1px solid var(--rapn-border); border-radius:4px; font-size:14px!important; white-space:normal; text-align:left; }
    .rapn-about #myTab.rapn-about-tabs .nav-link.active { border-color:var(--main-color); background:var(--rapn-tint)!important; }
    .rapn-public .rapn-event-cover { display:none; }
    .rapn-public .rapn-event-article header h1 { margin-top:0; font-size:23px; line-height:1.4; }
    .rapn-public .rapn-event-facts { padding:16px; background:var(--rapn-tint); border-radius:4px; }
    .rapn-public .rapn-event-card,.rapn-public .rapn-publication-section { box-shadow:none; }
    .rapn-public .rapn-event-card h2 { font-size:18px; }
    .rapn-public .rapn-event-registration-page { margin-top:0; }
    .rapn-public .rapn-registration-panel,.rapn-public .rapn-registration-form { padding:16px; border-radius:4px; }
    .rapn-public .rapn-registration-panel-heading { align-items:flex-start; }
    .rapn-public .beforeAccountForms { margin:0!important; padding:0; }
    .rapn-public .accountForms { width:100%; max-width:480px; margin:0 auto; padding:0; box-shadow:none; background:#fff; }
    .rapn-public .accountForms form { padding:0; }
    .rapn-public .accountForms h2 { font-size:24px; line-height:1.4; margin-bottom:16px; }
    .rapn-public .accountForms hr { display:none; }
    .rapn-public .accountForms button.rapn-password-toggle { display:inline-flex; align-items:center; min-height:44px; width:auto; height:auto; padding:4px 0; margin:-8px 0 12px; border:0; background:transparent!important; color:var(--main-color)!important; font:inherit; font-size:14px; }
    .rapn-public .membership-fee--not-ready { display:none; }
    .rapn-public .rapn-registration-participant .rapn-registration-details > div { display:none; }
    .rapn-public .rapn-registration-participant .rapn-registration-details > :is(:first-child,:nth-child(3),:last-child) { display:block; }
    .rapn-public .rapn-registration-participant .rapn-registration-hint { font-size:12px; }

    .rapn-public .cabinet-shell { margin:0 0 24px; }
    .rapn-public .cabinet-layout { display:block; }
    .rapn-public .cabinet-sidebar { display:none; }
    .rapn-public .cabinet-mobile-back { display:flex; align-items:center; gap:8px; min-height:44px; margin:-8px 0 14px; font-size:14px; text-decoration:none; }
    .rapn-public .cabinet-mobile-back .mobile-icon { width:18px; }
    .rapn-public .cabinet-shell--overview .cabinet-sidebar { display:block; }
    .rapn-public .cabinet-shell--overview .cabinet-content,.rapn-public .cabinet-shell--overview .cabinet-mobile-back { display:none; }
    .rapn-public .cabinet-nav { border:0; padding:0; box-shadow:none; }
    .rapn-public .cabinet-nav-toggle,.rapn-public .cabinet-nav-title,.rapn-public .cabinet-desktop-only { display:none; }
    .rapn-public .cabinet-nav-collapse.collapse { display:block!important; margin:0; }
    .cabinet-mobile-heading { display:block; margin:4px 0 22px; }
    .cabinet-mobile-heading h1 { font-size:24px; margin:0 0 18px; }
    .cabinet-mobile-person { display:flex; align-items:center; gap:13px; }
    .cabinet-mobile-avatar { display:grid; place-items:center; width:50px; height:50px; border-radius:15px; color:var(--main-color); background:var(--rapn-tint); }
    .cabinet-mobile-person strong { font-size:18px; font-weight:500; }
    .cabinet-mobile-person p { font-size:13px; margin:4px 0 0; color:var(--rapn-muted); }
    .rapn-public .cabinet-main-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:22px; }
    .rapn-public .cabinet-main-links .cabinet-nav-link { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:10px; min-height:104px; padding:14px; border:1px solid var(--rapn-border); font-size:15px; color:var(--main-color); }
    .mobile-only { display:block; }
    .rapn-public .cabinet-nav-group { margin:20px 0 0; padding:0; border:0; }
    .rapn-public .cabinet-nav-group-title { margin:0 0 6px; padding:0; color:var(--main-color); font-size:15px; font-weight:500; text-transform:none; letter-spacing:normal; }
    .rapn-public .cabinet-nav-list-secondary { gap:0; }
    .rapn-public .cabinet-nav-list-secondary .cabinet-nav-link { padding:12px 2px; min-height:52px; border-radius:0; border-bottom:1px solid var(--rapn-border); background:#fff; font-size:15px; }
    .rapn-public .cabinet-nav-list-secondary li:last-child .cabinet-nav-link { border-bottom:0; }
    .rapn-public .cabinet-mode-switch { margin:0 0 20px; }
    .rapn-public .cabinet-sign-out { margin-top:20px; padding:14px 2px; border-top:1px solid var(--rapn-border); min-height:48px; }
    .rapn-public .cabinet-page-header { margin-bottom:22px; }
    .rapn-public .cabinet-page-header .cabinet-eyebrow { display:none; }
    .rapn-public .cabinet-page-header h1 { font-size:24px; line-height:1.35; }
    .rapn-public .cabinet-page-header p { font-size:14px; line-height:1.6; }
    .rapn-public .cabinet-panel,.rapn-public .cabinet-next-action,.rapn-public .cabinet-status-card,.rapn-public .cabinet-event-card { padding:16px; border-radius:4px; box-shadow:none; }
    .rapn-public .cabinet-content { min-width:0; }
    .rapn-public .cabinet-event-details { grid-template-columns:1fr; }
    .rapn-public #notification-list { border:0!important; }
    .rapn-public #notification-list .list-group-item { padding:16px 12px!important; font-size:15px; }
    .rapn-public #notification-list .badge { font-size:11px; font-weight:500; }
    .rapn-public #notification-list [data-unread=true] { background:#f3f5fc; }
    .rapn-public #notification-list h4 { font-size:16px; line-height:1.45; }
    .rapn-public .rapn-search-summary { flex-wrap:wrap; gap:12px; }

    /* Only presentation changes: the original article remains intact for desktop and no-JS readers. */
    .mobile-gallery-source { display:none!important; }
    .rapn-public .mobile-gallery { display:block; clear:both; margin:22px 0; }
    .mobile-gallery-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; touch-action:pan-x pan-y pinch-zoom; border-radius:4px; }
    .mobile-gallery-track::-webkit-scrollbar { display:none; }
    .mobile-gallery-slide { flex:0 0 100%; min-width:0; margin:0; scroll-snap-align:start; }
    .mobile-photo-open { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:3/2; padding:0; border:0; background:#f7f8fc; color:var(--main-color); }
    .rapn-public .mobile-photo-open img { display:block; width:100%!important; height:100%!important; max-height:100%; margin:0!important; object-fit:contain!important; }
    .mobile-photo-open > span { position:absolute; display:grid; place-items:center; right:8px; bottom:8px; width:32px; height:32px; background:white; border-radius:4px; }
    .mobile-gallery.is-single .mobile-photo-open { aspect-ratio:auto; background:#fff; width:fit-content; max-width:100%; margin:auto; }
    .rapn-public .mobile-gallery.is-single img { height:auto!important; max-height:500px; width:auto!important; }
    .mobile-gallery-caption { display:block; margin-top:8px; color:var(--rapn-muted); font-size:13px; line-height:1.5; }
    .mobile-gallery-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:52px; font-size:13px; color:var(--rapn-muted); }
    .mobile-gallery-controls button { display:grid; place-items:center; width:44px; height:44px; background:white; border:1px solid var(--rapn-border); border-radius:4px; color:var(--main-color); }
    .mobile-gallery-controls button:disabled { opacity:.4; }
    .mobile-photo-dialog { inset:0; margin:0; width:100%; height:100%; max-width:none; max-height:100dvh; padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom)); border:0; background:#fff; color:var(--rapn-ink); }
    .mobile-photo-dialog::backdrop { background:#fff; }
    .mobile-photo-heading { display:flex; align-items:center; justify-content:space-between; min-height:44px; margin-bottom:8px; }
    .mobile-photo-heading h2 { font-size:18px; margin:0; }
    .mobile-photo-stage { display:grid; place-items:center; height:calc(100dvh - 160px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
    .mobile-photo-stage img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
    .mobile-photo-dialog .mobile-gallery-controls { max-width:700px; margin:auto; }
    .mobile-photo-dialog [hidden],.mobile-gallery [hidden] { display:none!important; }
    .rapn-public .mobile-photo-open.is-unavailable { min-height:140px; width:100%; background:var(--rapn-surface); }
    .mobile-photo-error { padding:16px; color:var(--rapn-muted); font-size:14px; }
}
@media (min-width:600px) and (max-width:991px) {
    .rapn-about .rapn-about-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:359px) {
    .mobile-brand { gap:10px; }
    .mobile-brand small { font-size:10px; }
    .mobile-header { padding-inline:14px 10px; }
    .rapn-public .container { padding-inline:14px; }
    .mobile-quick-links > :is(a,button) { gap:8px; padding:10px; font-size:13px; }
    .rapn-public .cabinet-main-links .cabinet-nav-link { padding:12px; font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .mobile-gallery-track { scroll-behavior:auto; } }
