/* R22: presentation contracts used by every page rather than screen-specific patches.
   These rules intentionally avoid persisted HTML/data. */
:root{--vk22-blue:#5181b8;--vk22-text:#222;--vk22-secondary:#939ba5;--vk22-line:#e3e7eb}
#appframe,#appframe *{box-sizing:border-box}
#appframe>.screen,#appframe .screen{max-width:100%;min-width:0;overflow-x:clip}
#appframe .nb{position:relative;min-width:0}
#appframe .nb-t{min-width:0;max-width:calc(100% - 92px);overflow:hidden;text-align:center}
#appframe .nb-t b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#appframe .cell{min-width:0;max-width:100%}
#appframe .cell>.c-m{min-width:0;flex:1 1 0}
#appframe .cell>.c-m .c-t,#appframe .cell>.c-m .c-d{overflow:hidden;text-overflow:ellipsis}
#appframe .cell .c-ch,.vk-playlist-arrow{flex:none!important}
/* A single minimum touch target for native navigation, not Safari default buttons. */
#appframe .nb-ic,#appframe .nb-r button,#appframe [data-community-open]{touch-action:manipulation}
/* Messenger geometry: one rule-set for ordinary replies, forwarded snapshots, and media. */
#appframe>.screen[data-aw-chat-id] .chat{display:flow-root;width:100%;max-width:100%;min-width:0;overflow-x:clip;padding-inline:10px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message){position:relative!important;width:max-content!important;min-width:0!important;max-width:min(83%,410px)!important;clear:both!important;margin:5px 0 7px!important;padding:0 0 19px!important;border-radius:17px 17px 17px 4px!important;overflow-wrap:anywhere!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.out:not(.vk-forward-message){margin-left:auto!important;margin-right:0!important;border-radius:17px 17px 4px 17px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.in:not(.vk-forward-message){margin-left:0!important;margin-right:auto!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.bb-t{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;width:auto!important;padding:10px 12px 2px!important;margin:0!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important;word-break:normal!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.bb-n{margin:8px 12px 0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.bb-tm{display:block!important;position:absolute!important;right:9px!important;bottom:4px!important;font:11px/13px -apple-system,BlinkMacSystemFont,sans-serif!important;line-height:13px!important;color:#8593a3!important;white-space:nowrap!important;margin:0!important;padding:0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.out:not(.vk-forward-message)>.bb-tm{right:32px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.aw-read-ticks{display:flex!important;align-items:center!important;justify-content:center!important;position:absolute!important;bottom:4px!important;right:7px!important;line-height:13px!important;width:20px!important;height:13px!important;padding:0!important;margin:0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.aw-read-ticks[data-read="0"]{width:12px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message)>.aw-read-ticks svg{width:100%!important;height:100%!important}
#appframe .aw-chat-day-divider,#appframe .aw-chat-new-divider{box-sizing:border-box!important;clear:both!important;display:flex!important;float:none!important;justify-content:center!important;align-items:center!important;max-width:100%!important;width:100%!important;text-align:center!important;margin:13px auto!important;padding:0 8px!important}
#appframe .aw-chat-day-divider>span{white-space:nowrap!important;border-radius:16px!important;background:#eff1f4!important;padding:5px 11px!important;color:#8995a2!important}
#appframe .aw-chat-new-divider{color:#7796b7!important;font-size:12px!important}
/* Forwarded messages: no blue bubble around messages and avatars, source blocks are separate. */
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message{position:relative!important;display:block!important;clear:both!important;float:none!important;width:min(100%,520px)!important;max-width:calc(100% - 4px)!important;min-width:0!important;height:auto!important;background:transparent!important;border:0!important;border-radius:0!important;padding:6px 8px 22px 38px!important;margin:8px 0 12px!important;box-shadow:none!important;color:#1b1b1b!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message.out{margin-left:auto!important;margin-right:0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message.in{margin-left:0!important;margin-right:auto!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message>.bb-t{display:block!important;max-width:100%!important;width:100%!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;margin:0!important;white-space:normal!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-group{display:block!important;max-width:100%!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-origin{color:#4676a6!important;font:600 13px/18px -apple-system,sans-serif!important;margin-bottom:2px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-head{padding:2px 0 5px!important;background:transparent!important;color:#161616!important;font:14px/18px -apple-system,sans-serif!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-item{box-sizing:border-box!important;position:relative!important;display:flow-root!important;min-width:0!important;max-width:100%!important;width:auto!important;margin:0 0 8px!important;padding:4px 0 5px 9px!important;border:0!important;border-left:2px solid #719aca!important;background:transparent!important;border-radius:0!important;overflow-wrap:anywhere!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-item+.vk-forwarded-item{border-top:0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-sender{display:block!important;font:600 13px/18px -apple-system,sans-serif!important;color:#5181b8!important;min-width:0!important;margin:0 0 1px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-avatar{float:left!important;width:27px!important;height:27px!important;object-fit:cover!important;border-radius:50%!important;margin:1px 7px 3px 0!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message .vk-forwarded-text{display:block!important;font:15px/20px -apple-system,sans-serif!important;color:#171717!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message>.bb-tm{position:absolute!important;right:31px!important;bottom:3px!important;font-size:11px!important;color:#939ba6!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message.in>.bb-tm{right:10px!important}
#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message>.aw-read-ticks{position:absolute!important;bottom:3px!important;right:8px!important;margin:0!important;line-height:13px!important}
#appframe>.screen[data-aw-chat-id] .chat .vk-message-reply{box-sizing:border-box;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;border-left:2px solid #6b9ecd!important;background:transparent!important;border-radius:0!important}
#appframe>.screen[data-aw-chat-id] .chat .vk-forwarded-attachment{display:block!important;max-width:min(100%,300px)!important;min-width:0!important;margin:5px 0!important}
#appframe>.screen[data-aw-chat-id] .chat .vk-forwarded-attachment img,#appframe>.screen[data-aw-chat-id] .chat .vk-forwarded-attachment video{max-width:100%!important;max-height:280px!important;object-fit:contain!important}
/* Comment rows use the same measurements in wall, video, photo dialogs. */
#cmodalBody.vk-unified-comment-list,.vk-video-comment-list.vk-unified-comment-list{background:#edeef0!important}
#cmodalBody.vk-unified-comment-list .cm,.vk-video-comment-list.vk-unified-comment-list .cm{padding:10px 12px!important;max-width:100%!important;border-bottom:1px solid #e3e7ed!important}
.vk-unified-comment-list .cm .cm-n{font-size:14px!important;line-height:19px!important}
.vk-unified-comment-list .cm .cm-t{font-size:15px!important;line-height:20px!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}
.vk-unified-comment-list .cm .cm-f{font:12px/18px -apple-system,sans-serif!important;gap:9px!important;align-items:center!important}
.vk-unified-comment-list .cm .cm-f button{min-height:22px!important;max-height:26px!important;cursor:pointer}
.vk-unified-comment-list .cm .cm-f .cm-lk{margin-left:auto!important;min-width:35px!important}
.vk-unified-comment-list .cm .cm-f .cm-lk[aria-pressed=true]{color:#f44355!important}
.vk-video-comments .vk-shared-comment-composer{width:100%!important;display:flex!important;flex:0 0 50px!important;min-height:50px!important;align-items:center!important;padding:5px 11px!important;border-top:1px solid #dce1e6!important;background:#fff!important}
.vk-video-comments .vk-shared-comment-composer .box{display:block!important;flex:1 1 auto!important;min-width:0!important;max-width:100%!important;height:auto!important;max-height:100px!important;border-radius:19px!important;background:#edeef0!important;padding:7px 11px!important;color:#555!important;overflow:auto!important}
.vk-video-comments .vk-shared-comment-composer .snd{flex:0 0 35px!important;max-width:35px!important;min-width:35px!important}
/* Consistent native-like album cards across owned and saved albums. */
#appframe .grp.vk-album-unified>.cell,#appframe .vk-saved-album-row{display:flex!important;box-sizing:border-box!important;align-items:center!important;height:74px!important;min-height:74px!important;max-height:74px!important;width:100%!important;max-width:100%!important;gap:12px!important;padding:10px 12px!important;border:0!important;border-bottom:1px solid #e7eaef!important;background:white!important;text-align:left!important}
#appframe .grp.vk-album-unified .c-av,#appframe .grp.vk-album-unified .vk-saved-album-cover{flex:0 0 50px!important;width:50px!important;height:50px!important;min-height:50px!important;max-height:50px!important;overflow:hidden!important;border-radius:4px!important;margin:0!important}
#appframe .grp.vk-album-unified .c-av img{width:100%!important;height:100%!important;object-fit:cover!important}
#appframe .grp.vk-album-unified .c-m{flex:1 1 0!important;min-width:0!important;margin:0!important}
#appframe .grp.vk-album-unified .c-r{margin-left:auto!important;flex:0 0 24px!important;width:24px!important;display:flex!important;align-items:center!important;justify-content:flex-end!important}
#appframe .grp.vk-album-unified .c-ch .ic{width:14px!important;height:21px!important}
/* Photo viewer is black, without fake single photo navigation or external browser-like badges. */
.vk-media-viewer{box-sizing:border-box;max-width:100vw!important;width:100vw!important;height:100dvh!important;overflow:hidden!important}
.vk-media-viewer .vk-media-stage{min-width:0!important;min-height:0!important;max-width:100%!important;overflow:hidden!important}
.vk-media-viewer .vk-media-stage img,.vk-media-viewer .vk-media-stage video{max-width:100%!important;max-height:100%!important;object-fit:contain!important}
.vk-media-viewer footer button[hidden],.vk-media-viewer [data-count]:empty{display:none!important}
/* Editor-specific tools stay outside the historical VK skin. */
#appframe .ctor-runtime,#appframe .vk-editor-tools{min-width:0;max-width:100%;overflow-wrap:anywhere}
#appframe .ctor-runtime button,#appframe .vk-editor-tools button{min-width:0;max-width:100%;white-space:normal}
#appframe .aw-chat-message-tools,#appframe .aw-message-actions{display:flex;flex-wrap:wrap;gap:7px;padding:7px 10px}
#appframe .aw-chat-message-tools button,#appframe .aw-message-actions button{flex:1 1 auto;min-width:0;min-height:38px;font-size:13px}
/* Reader controls are a separate black-chrome layer, without bright blue editor buttons. */
.southern-reader-favorite-dialog,.southern-reader-dialog,[data-southern-reader-dialog]{font-family:-apple-system,BlinkMacSystemFont,sans-serif;color:#ecedf0}
.southern-reader-favorite-dialog button,.southern-reader-dialog button{border:1px solid #555c65!important;background:#202124!important;border-radius:7px!important;color:#f2f3f5!important}
@media(max-width:350px){#appframe>.screen[data-aw-chat-id] .chat>.bb:not(.vk-forward-message){max-width:88%!important}#appframe>.screen[data-aw-chat-id] .chat>.bb.vk-forward-message{padding-left:18px!important}}
/* Photo publishing uses the existing post composer, not a second feed engine. */
.vk-r22-photo-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-height:42dvh;overflow:auto}
.vk-r22-photo-picker label{position:relative;display:block;aspect-ratio:1;min-width:0;padding:0!important}
.vk-r22-photo-picker img{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px}
.vk-r22-photo-picker input{position:absolute;z-index:1;top:5px;right:5px;width:20px;height:20px;accent-color:#5181b8}
.vk-entity-comment-modal .cmodal{display:flex;flex-direction:column;max-height:min(88dvh,810px)!important}
.vk-entity-comment-modal [data-entity-comment-list]{flex:1 1 auto;overflow-y:auto!important;min-height:0}
.vk-entity-comment-modal [data-entity-composer]{flex:0 0 auto;background:white}
.vk-media-viewer .vk-photo-comments-link{border:0;background:transparent;color:#d5deea;align-self:flex-start;min-height:32px;height:auto;font-size:13px;padding:2px 0}
/* One-tap personal bookmarks in Reader. Never part of the author project. */
#appframe .post:has(>[data-reader-quick-save]){position:relative}
#appframe .post>[data-reader-quick-save]{position:absolute;top:10px;right:40px;z-index:4;border:0!important;width:32px;height:32px;padding:0!important;background:rgba(246,247,249,.94)!important;color:#98a4af!important;font-size:23px;line-height:32px;border-radius:50%;box-shadow:none!important}
#appframe .post>[data-reader-quick-save][aria-pressed=true]{color:#5181b8!important}
#appframe .tr>[data-reader-quick-save]{flex:0 0 30px!important;width:30px!important;min-width:30px!important;height:36px;border:0!important;background:transparent!important;color:#97a1ab!important;font-size:20px!important;padding:0!important}
#appframe .tr>[data-reader-quick-save][aria-pressed=true]{color:#5181b8!important}
