/* Kennely 2027.10. Mobile-first refinements. No external UI dependencies. */
.kn-booting #guest,.kn-booting #shell{display:none!important}
.kn-booting body::before{content:'kennely.';position:fixed;inset:0;display:grid;place-items:center;background:var(--bg,#0c0b10);color:var(--text,#f3eff9);font-size:clamp(1.8rem,8vw,2.8rem);font-weight:850;z-index:1000;letter-spacing:-.06em}
/* iOS auto-input-zoom prevention: preserve accessibility pinch zoom instead of disabling viewport scaling. */
@media(max-width:800px){input,textarea,select{font-size:16px!important}}
.file-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;clip-path:inset(50%)!important;overflow:hidden!important;pointer-events:none!important}
.photo-picker{display:flex;align-items:center;gap:14px;flex-wrap:wrap;position:relative;padding:12px 0}
.photo-picker-plus{display:grid;place-items:center;font-size:38px;font-weight:500;line-height:1;width:76px;height:76px;border:1.5px dashed var(--accent,#9b5aff);border-radius:17px;background:var(--surface2,rgba(160,100,255,.08));color:var(--accent,#a679ff);cursor:pointer;user-select:none;touch-action:manipulation}
.photo-picker-plus:focus-visible,.photo-picker-plus:focus-within{outline:3px solid #8f57fa;outline-offset:3px}
.post-image-open{display:block;padding:0;border:0;background:transparent;width:100%;max-width:100%;cursor:zoom-in}
.post-image-open .post-photo{display:block!important;position:static!important;width:100%!important;height:auto!important;max-height:min(80vh,840px)!important;object-fit:contain!important;aspect-ratio:auto!important;background:rgba(120,118,132,.09)}
.full-image-modal{display:grid;place-items:center;max-width:100%;gap:10px}.full-image-modal>img{display:block;max-width:100%;max-height:78dvh;object-fit:contain;border-radius:12px}.full-image-modal>p{font-size:12px;color:var(--muted)}
.profile-stat-button{background:none;color:inherit;border:0;font:inherit;cursor:pointer;text-align:center;min-width:0;padding:4px;border-radius:10px}.profile-stat-button strong{display:block}.profile-stat-button:hover{background:rgba(139,100,200,.09)}
.follow-list{display:grid;gap:2px;max-height:62dvh;overflow-y:auto;overscroll-behavior:contain}.follow-person{display:flex;gap:12px;align-items:center;min-width:0;width:100%;text-align:left;background:transparent;color:inherit;border:none;padding:11px;border-radius:12px}.follow-person:hover{background:rgba(134,99,200,.09)}.follow-person>span:nth-child(2){display:grid;flex:1;min-width:0}.follow-person strong,.follow-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.follow-person small{color:var(--muted);font-size:12px}
.comment-dialog{width:min(100%,680px);min-width:0;display:flex;flex-direction:column;max-height:min(83dvh,900px)}.comment-dialog h2{margin-bottom:3px}.comment-list{min-height:70px;overflow-y:auto;overscroll-behavior:contain;padding:5px 0 10px;flex:1}.comment-item{display:flex;align-items:flex-start;gap:10px;padding:12px 3px;border-bottom:1px solid var(--line,rgba(125,125,130,.17));min-width:0;touch-action:pan-y}.comment-avatar{background:transparent;border:0;padding:0;flex-shrink:0}.comment-main{flex:1;min-width:0}.comment-author{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.comment-author small{color:var(--muted);font-size:11px}.comment-main p{overflow-wrap:anywhere;white-space:pre-wrap;margin:6px 0;font-size:13px}.comment-tools{display:flex;gap:12px;align-items:center}.comment-tools button{font-size:12px;padding:3px}.comment-more{flex-shrink:0;min-width:35px!important}.comment-compose{position:sticky;bottom:0;background:var(--surface,var(--bg));padding:11px 0 0;display:flex;gap:6px;align-items:center}.comment-compose input[name=body]{flex:1;min-width:0}
.thread-person{display:flex;align-items:center;gap:8px;flex:1;min-width:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;padding:4px}.thread-person span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.thread-person small{display:block;font-size:11px;font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.bubble-row{display:flex;align-items:center;gap:5px;max-width:100%}.bubble-row.mine{justify-content:flex-end}.bubble-row .bubble{max-width:min(84%,420px);min-width:1px;overflow-wrap:anywhere;touch-action:manipulation}.react-trigger{border:0;background:transparent;color:var(--muted);font-size:19px;padding:8px;opacity:.85;cursor:pointer}.react-trigger:active{color:#f64b77}.emoji-reactions{display:flex;gap:4px;align-items:center;justify-content:flex-end;margin-top:4px;font-size:18px}.reaction-palette{display:flex;flex-wrap:wrap;gap:6px}.reaction-choice{font-size:30px;padding:10px;background:transparent;border:1px solid var(--line);border-radius:12px}.bubble-row .bubble.sending{opacity:.7}
.audit-entry{display:flex;align-items:center;gap:10px}.audit-entry>div{flex:1;min-width:0}.audit-entry small{display:block;color:var(--muted);font-size:11px}.audit-entry p{word-break:break-word}
/* Fix drawer jumping and unreachable footer on iOS Safari. Keep a single stable scroll container. */
.menu-drawer{position:fixed!important;top:0!important;bottom:0!important;max-height:none!important;height:100dvh!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-gutter:stable;display:block!important;contain:layout style;touch-action:pan-y;transform:translateZ(0)}
.menu-drawer[hidden]{display:none!important}.drawer-footer{padding-bottom:calc(30px + env(safe-area-inset-bottom))!important}
/* Content must never overflow a narrow phone. */
#content,.content,.workarea,.panel,.setting-group,.admin-panel,.admin-user-result{min-width:0;max-width:100%;overflow-wrap:anywhere;box-sizing:border-box}
.admin-user-result{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:9px!important}.admin-user-result>div:first-child{flex:1 1 210px;min-width:0}.admin-user-result .split-actions{flex:1 1 200px;min-width:0;display:flex;flex-wrap:wrap;gap:7px}.admin-user-result .split-actions>*{max-width:100%;white-space:normal}
@media(max-width:800px){
 .mobile-nav .mobile-create{padding:4px!important;align-items:center!important;justify-content:center!important}.mobile-nav .mobile-create .center-plus{display:grid!important;place-items:center;width:42px;height:42px;font-size:34px!important;line-height:1!important;font-weight:400;color:white;border-radius:15px;background:linear-gradient(135deg,#8f48ef,#6737c7)}
 .mobile-nav .mobile-create svg{display:none!important}.mobile-nav .mobile-create span:not(.center-plus){display:none!important}
 .menu-drawer{max-width:min(390px,94vw)!important;padding-bottom:env(safe-area-inset-bottom)}
 .comment-dialog{max-height:76dvh}.comment-item{gap:8px}.comment-more{padding:7px 4px!important}.comment-avatar .avatar{width:34px;height:34px}
 .thread-head{flex-wrap:wrap;min-width:0}.thread-head .thread-person{flex:1 1 130px}.thread-head .tiny-btn{flex:0 0 auto}
 .profile-top .profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.profile-stats button{padding:4px!important;font-size:11px!important;line-height:1.5}
 .admin-user-result .split-actions{width:100%;flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){.photo-picker-plus,.bubble-row,.mobile-create{transition:none!important}}

.comment-item.is-reply{margin-inline-start:clamp(14px,5vw,32px);padding-inline-start:8px;border-inline-start:2px solid rgba(142,103,205,.26)}
.photo-picker-plus:active{transform:scale(.98)}
