:root{--bg:#0f141c;--panel:#171d27;--panel2:#202734;--line:#303949;--text:#f5f7fb;--muted:#9ca8ba;--cyan:#1dcbe1;--blue:#5279ff;--purple:#7a69ff;--danger:#ef6a73;--ok:#48d39a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top left,#0e5963 0,#143d5a 26%,#252552 56%,#0f141c 100%);color:var(--text)}body{min-height:100vh}button,input,textarea,select{font:inherit}.btn,button,.iconlink{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:14px;padding:.75rem 1rem;cursor:pointer;text-decoration:none}.btn:hover,button:hover{filter:brightness(1.08)}.btn.primary{background:linear-gradient(90deg,var(--purple),var(--cyan));border:0;color:white}.btn.danger,.danger{background:#3a1f27;color:#ffb2b9;border-color:#6c303d}.btn.small{padding:.4rem .65rem;border-radius:10px;font-size:.86rem}.link-btn{border:0;background:transparent;color:var(--cyan);padding:.7rem}.muted,.version,small{color:var(--muted)}.form-stack{display:grid;gap:14px}.form-stack label,.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:.9rem}.form-stack input,.form-stack select,.form-grid input,.form-grid select,.composer textarea,.search input{width:100%;border:1px solid var(--line);background:#11161e;color:var(--text);border-radius:14px;padding:.9rem 1rem;outline:none}.form-stack input:focus,.composer textarea:focus,.search input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #1dcbe122}.auth-shell,.install-body{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card,.install-card{width:min(440px,100%);background:rgba(23,29,39,.96);border:1px solid #ffffff18;border-radius:32px;padding:28px;box-shadow:0 30px 80px #0008}.brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.brand.small{margin-bottom:28px}.brand h1{margin:0;font-size:1.65rem}.brand p{margin:3px 0 0;color:var(--muted)}.brand-mark{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));font-weight:800;font-size:1.4rem;color:#fff}.brand.small .brand-mark{width:46px;height:46px;border-radius:16px}.brand.small h1{font-size:1.1rem}.notice{padding:12px 14px;border-radius:14px;margin:12px 0}.notice.success{background:#16382d;color:#a8f5d5}.notice.error{background:#46232a;color:#ffc1c7}.version{text-align:center;margin-top:18px;font-size:.8rem}.messenger{height:100dvh;display:grid;grid-template-columns:minmax(280px,360px) 1fr;background:var(--bg)}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--panel);min-height:0}.side-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}.side-head strong{display:block;font-size:1.25rem}.actions{display:flex;gap:7px;align-items:center}.actions button,.iconlink{width:40px;height:40px;padding:0;display:grid;place-items:center;border-radius:50%}.actions button:first-child{overflow:hidden}.avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;display:inline-grid}.avatar.fallback{display:inline-grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));color:#fff;font-weight:700}.profile-large{display:flex;justify-content:center}.profile-large .avatar{width:86px;height:86px}.search{padding:12px 14px}.requests{margin:0 14px 10px;background:#242b38;border-radius:14px;padding:10px}.requests>div{display:flex;align-items:center;gap:7px;padding-top:7px}.requests span{flex:1}.requests button{padding:.25rem .5rem}.thread-list{flex:1;overflow:auto;padding:6px 10px}.thread{width:100%;border:0;background:transparent;display:grid;grid-template-columns:48px 1fr;text-align:left;gap:11px;padding:10px;border-radius:18px;margin-bottom:3px}.thread:hover,.thread.active{background:#252e3c}.thread-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));font-weight:700}.thread span:last-child{min-width:0}.thread strong,.thread small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread small{margin-top:4px}.side-foot{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--line)}.chat-empty{display:grid;place-items:center;color:var(--muted);text-align:center}.chat{display:grid;grid-template-rows:auto 1fr auto auto;min-height:0;background:#121821}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line);background:#171d27}.chat-head h2{margin:0;font-size:1.15rem}.chat-head button{padding:.45rem .65rem;margin-left:7px}.messages{overflow:auto;padding:18px;scroll-behavior:smooth}.msg-row{display:flex;justify-content:flex-start;margin:7px 0}.msg-row.mine{justify-content:flex-end}.bubble{max-width:min(78%,680px);background:#242c39;border-radius:20px 20px 20px 6px;padding:10px 13px;box-shadow:0 2px 10px #0002}.mine .bubble{background:linear-gradient(135deg,#31537f,#1b6671);border-radius:20px 20px 6px 20px}.bubble>b{display:block;color:#a69cff;font-size:.78rem;margin-bottom:3px}.bubble time{display:block;font-size:.68rem;color:#a8b2c1;text-align:right;margin-top:5px}.bubble audio{width:min(300px,100%);margin-top:5px}.msg-image{display:block;max-width:340px;width:100%;border-radius:14px;margin-top:6px}.save-link{display:inline-block;margin-top:7px;color:#8bdaf0;font-size:.78rem}.file-chip{display:flex;gap:7px;align-items:center;text-decoration:none;color:var(--text);background:#111820;padding:10px;border-radius:14px;margin-top:6px}.file-chip small{margin-left:auto}.recording{background:#3b242b;color:#ffbec5;padding:10px 14px}.composer{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;padding:10px;border-top:1px solid var(--line);background:#171d27}.composer button{border-radius:50%;width:44px;height:44px;padding:0}.composer .send{background:linear-gradient(135deg,var(--purple),var(--cyan));border:0}.composer textarea{resize:none;min-height:44px;max-height:130px;padding:.68rem 1rem}.modal-back{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:18px;z-index:50}.modal{width:min(560px,100%);max-height:86vh;overflow:auto;background:#171d27;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:0 30px 100px #000a}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;font-size:1.6rem;padding:0}.user-list,.check-list{display:grid;gap:7px}.user-list button,.check-list label{display:flex;align-items:center;gap:10px;text-align:left;background:#202734;border:1px solid var(--line);padding:10px;border-radius:14px}.user-list span{display:grid}.check-list input{width:auto}.toast{position:fixed;right:18px;bottom:18px;background:#203129;color:#baf0d8;border:1px solid #3b715c;padding:12px 15px;border-radius:14px;z-index:100;box-shadow:0 10px 40px #0008}.toast.err{background:#42242b;color:#ffc4ca;border-color:#7c3a48}.admin-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#0f141c}.admin-nav{background:#161c25;border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:7px}.admin-nav button,.admin-nav a{width:100%;text-align:left;border:0;background:transparent;color:var(--muted);padding:12px;border-radius:12px;text-decoration:none}.admin-nav button:hover,.admin-nav button.active{background:#242c39;color:var(--text)}.admin-nav a{margin-top:auto}.admin-page{padding:28px;min-width:0}.admin-page h2{margin-top:0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.stats-grid article,.admin-card{background:#171d27;border:1px solid var(--line);border-radius:20px;padding:18px}.stats-grid b{display:block;font-size:1.8rem}.stats-grid span{color:var(--muted)}.admin-card{margin-bottom:18px}.page-head{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:.8rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.check{display:flex!important;grid-column:span 1;align-items:center;gap:8px}.check input{width:auto}.sys{display:grid;grid-template-columns:180px 1fr;gap:10px}.sys dt{color:var(--muted)}.sys dd{margin:0}code{background:#10151c;padding:.15rem .35rem;border-radius:6px}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){.messenger{grid-template-columns:1fr}.sidebar{display:flex}.chat{position:fixed;inset:0;z-index:10}.chat-empty{display:none}.stats-grid{grid-template-columns:1fr 1fr}.admin-shell{grid-template-columns:1fr}.admin-nav{position:sticky;top:0;z-index:10;display:flex;flex-direction:row;overflow:auto;align-items:center}.admin-nav .brand{display:none}.admin-nav button,.admin-nav a{width:auto;white-space:nowrap}.admin-nav a{margin-top:0;margin-left:auto}.admin-page{padding:16px}.form-grid{grid-template-columns:1fr}.side-foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}}

/* yoMessage 1.1 responsive + compact controls */
:root{--radius:14px;--sidebar-w:330px;--bubble-max:78%}
.btn,button,.iconlink{border-radius:calc(var(--radius) - 1px);padding:.58rem .82rem;min-height:36px}.btn.small{padding:.3rem .52rem;min-height:30px}.form-stack{gap:11px}.form-stack input,.form-stack select,.form-grid input,.form-grid select,.composer textarea,.search input{border-radius:var(--radius);padding:.68rem .82rem;min-height:38px}.search{padding:9px 12px}.actions button,.iconlink{width:36px;height:36px}.side-head{padding:14px 15px}.thread{padding:8px 9px;border-radius:calc(var(--radius) + 3px)}.thread-avatar{width:44px;height:44px}.bubble{max-width:var(--bubble-max);border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) calc(var(--radius) + 6px) 6px}.mine .bubble{border-radius:calc(var(--radius) + 6px) calc(var(--radius) + 6px) 6px calc(var(--radius) + 6px)}.composer{gap:7px;padding:8px 10px}.composer button{width:40px;height:40px}.composer textarea{min-height:40px}.messenger{grid-template-columns:minmax(260px,var(--sidebar-w)) 1fr}.mobile-back{display:none!important}.chat-title{display:flex;align-items:center;gap:8px}.plugin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.plugin-card{background:var(--panel2);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;justify-content:space-between;gap:15px}.plugin-card p{color:var(--muted);margin:.45rem 0}.plugin-card-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
body[data-density="compact"] .thread{padding:6px 8px}body[data-density="compact"] .messages{padding:12px}body[data-density="compact"] .bubble{padding:8px 10px}body[data-density="comfortable"] .thread{padding:12px}body[data-density="comfortable"] .messages{padding:24px}body[data-density="comfortable"] .bubble{padding:13px 16px}body[data-layout="wide"]{--sidebar-w:390px;--bubble-max:86%}body[data-layout="compact"]{--sidebar-w:280px;--bubble-max:68%}

/* Desktop */
@media(min-width:1100px){.messenger{height:100dvh}.sidebar{position:relative}.messages{padding:20px 24px}.chat-head{padding:14px 20px}.auth-card{width:min(420px,100%)}}
/* Tablet */
@media(min-width:700px) and (max-width:1099px){.messenger{grid-template-columns:minmax(250px,310px) 1fr}.side-head strong{font-size:1.08rem}.side-foot{grid-template-columns:1fr}.messages{padding:16px}.bubble{max-width:min(86%,620px)}.admin-shell{grid-template-columns:205px 1fr}.admin-page{padding:20px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plugin-grid{grid-template-columns:1fr}}
/* Smartphone */
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){html,body{overscroll-behavior:none}.messenger{display:block;height:100dvh}.sidebar{height:100dvh;border-right:0}.chat{position:fixed;inset:0;z-index:20;height:100dvh;background:var(--bg);grid-template-rows:auto 1fr auto auto}.mobile-back{display:grid!important;width:34px!important;height:34px!important;padding:0!important;border-radius:50%!important;font-size:1.55rem;place-items:center}.chat-head{padding:max(9px,env(safe-area-inset-top)) 10px 9px}.chat-head h2{font-size:1rem}.messages{padding:10px 9px}.bubble{max-width:88%;padding:8px 10px}.composer{padding:7px 8px max(7px,env(safe-area-inset-bottom));grid-template-columns:auto 1fr auto auto}.composer button{width:38px;height:38px}.composer textarea{min-height:38px;padding:.55rem .75rem}.side-head{padding:max(10px,env(safe-area-inset-top)) 12px 10px}.search{padding:8px 10px}.thread-list{padding:4px 7px}.thread{grid-template-columns:44px 1fr;gap:9px}.side-foot{padding:8px 10px max(10px,env(safe-area-inset-bottom))}.plugin-actions{padding:0 10px 8px}.modal{max-height:92dvh;border-radius:20px}.auth-shell{padding:14px}.auth-card{padding:22px;border-radius:26px}.admin-shell{display:block}.admin-nav{position:sticky;top:0;z-index:30;display:flex;flex-direction:row;overflow:auto;padding:8px}.admin-nav .brand{display:none}.admin-nav button,.admin-nav a{width:auto;white-space:nowrap;padding:8px 10px}.admin-nav a{margin:0}.admin-page{padding:12px}.stats-grid,.plugin-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.table-wrap{margin-inline:-4px}}

/* User settings menu - refined in 1.1.4 (legacy popover, superseded by 1.1.5) */
@media not all {
.settings-wrap{position:relative;flex:0 0 auto}
.settings-toggle{width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:12px!important;font-size:1.25rem!important;line-height:1!important;letter-spacing:-.12em!important;background:var(--panel2)!important;border:1px solid var(--line)!important;color:var(--text)!important}
.settings-toggle:hover,.settings-toggle[aria-expanded="true"]{filter:none!important;background:color-mix(in srgb,var(--panel2) 78%,var(--cyan) 22%)!important;border-color:color-mix(in srgb,var(--line) 55%,var(--cyan) 45%)!important}
.settings-popover{position:absolute;top:calc(100% + 10px);right:0;width:340px;max-width:calc(100vw - 24px);max-height:min(76dvh,650px);display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--panel) 98%,transparent);border:1px solid color-mix(in srgb,var(--line) 82%,white 18%);border-radius:20px;box-shadow:0 24px 70px #000a;z-index:45;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);color:var(--text)}
.settings-popover[hidden]{display:none!important}
.settings-popover-head{flex:0 0 auto;padding:15px 16px 13px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 88%,var(--purple) 12%),color-mix(in srgb,var(--panel) 90%,var(--cyan) 10%))}
.settings-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0}.settings-title-row>div{min-width:0}
.settings-popover-head strong{display:block;font-size:1.03rem;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-popover-head small{display:block;margin-top:4px;font-size:.78rem;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-role{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--panel) 72%,transparent);border:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.settings-scroll{overflow:auto;overscroll-behavior:contain;padding:8px}
.settings-section{display:block;padding:5px 0 8px;margin:0;border:0}.settings-section+.settings-section{border-top:1px solid var(--line);padding-top:10px}
.settings-section-title{display:block;padding:2px 10px 7px;color:var(--muted);font-size:.68rem;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.settings-item,.settings-item:link,.settings-item:visited{appearance:none;-webkit-appearance:none;width:100%;min-height:58px;margin:0 0 3px;padding:9px 10px!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) 18px!important;align-items:center!important;gap:10px!important;text-align:left!important;border:1px solid transparent!important;border-radius:14px!important;background:transparent!important;color:var(--text)!important;text-decoration:none!important;box-shadow:none!important;font:inherit!important;line-height:normal!important;cursor:pointer}
.settings-item:hover,.settings-item:focus-visible{filter:none!important;background:var(--panel2)!important;border-color:var(--line)!important;outline:none}
.settings-item:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 25%,transparent)!important}
.settings-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--panel2) 88%,white 12%);border:1px solid color-mix(in srgb,var(--line) 75%,white 25%);font-size:1.03rem;line-height:1;overflow:hidden}
.settings-copy{display:block!important;min-width:0!important}.settings-copy b{display:block!important;margin:0!important;color:var(--text)!important;font-size:.91rem!important;line-height:1.22!important;font-weight:700!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-copy small{display:block!important;margin:3px 0 0!important;color:var(--muted)!important;font-size:.73rem!important;line-height:1.28!important;font-weight:400!important;white-space:normal;overflow-wrap:anywhere}
.settings-chevron{display:block!important;width:18px;color:var(--muted)!important;font-size:1.25rem!important;line-height:1!important;text-align:center}
.settings-footer{padding-bottom:2px}.settings-item-logout{grid-template-columns:38px minmax(0,1fr)!important}.settings-item-logout .settings-icon{background:color-mix(in srgb,#5b2730 58%,var(--panel2) 42%);border-color:color-mix(in srgb,#7c3a48 62%,var(--line) 38%)}.settings-item-logout .settings-copy b{color:#ffbec5!important}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){.settings-popover{position:fixed;top:max(60px,calc(env(safe-area-inset-top) + 52px));left:10px;right:10px;width:auto;max-width:none;max-height:calc(100dvh - max(72px,calc(env(safe-area-inset-top) + 64px)));border-radius:18px}.settings-popover-head{padding:14px 15px 12px}.settings-scroll{padding:7px}.settings-item,.settings-item:link,.settings-item:visited{min-height:56px;padding:8px 9px!important;grid-template-columns:36px minmax(0,1fr) 18px!important;gap:9px!important}.settings-icon{width:36px;height:36px;border-radius:10px}.settings-copy small{font-size:.72rem!important}}
@media(max-width:380px){.settings-copy small{display:none!important}.settings-item,.settings-item:link,.settings-item:visited{min-height:50px}.settings-role{display:none}}
}

/* Settings side-panel navigation - 1.1.5 */
.sidebar{position:relative;overflow:hidden}
.sidebar-track{width:200%;height:100%;display:flex;min-height:0;transform:translateX(0);transition:transform .32s cubic-bezier(.22,.72,.2,1);will-change:transform}
.sidebar.settings-open .sidebar-track{transform:translateX(-50%)}
.sidebar-panel{width:50%;height:100%;min-width:0;min-height:0;flex:0 0 50%;display:flex;flex-direction:column;background:var(--panel)}
.sidebar-main{border:0}
.settings-panel{overflow:hidden}
.settings-panel-head{flex:0 0 auto;min-height:65px;padding:11px 14px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--line);background:var(--panel)}
.settings-back{width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:12px!important;font-size:1.7rem!important;line-height:1!important;background:var(--panel2)!important;border:1px solid var(--line)!important;color:var(--text)!important}
.settings-panel-title{min-width:0}.settings-panel-title strong{display:block;font-size:1.08rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-panel-title small{display:block;margin-top:3px;font-size:.76rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.settings-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px 10px 16px}
.settings-section{display:block;padding:4px 0 12px;margin:0;border:0}.settings-section+.settings-section{border-top:1px solid var(--line);padding-top:13px}
.settings-section-title{display:block;padding:1px 10px 8px;color:var(--muted);font-size:.67rem;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.settings-item,.settings-item:link,.settings-item:visited{appearance:none;-webkit-appearance:none;width:100%;min-height:64px;margin:0 0 5px;padding:10px!important;display:grid!important;grid-template-columns:40px minmax(0,1fr) 18px!important;align-items:center!important;gap:11px!important;text-align:left!important;border:1px solid transparent!important;border-radius:15px!important;background:transparent!important;color:var(--text)!important;text-decoration:none!important;box-shadow:none!important;font:inherit!important;line-height:normal!important;cursor:pointer}
.settings-item:hover,.settings-item:focus-visible{filter:none!important;background:var(--panel2)!important;border-color:var(--line)!important;outline:none}.settings-item:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 25%,transparent)!important}
.settings-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--panel2);border:1px solid var(--line);font-size:1.03rem;line-height:1;overflow:hidden}
.settings-copy{display:block!important;min-width:0!important}.settings-copy b{display:block!important;margin:0!important;color:var(--text)!important;font-size:.94rem!important;line-height:1.25!important;font-weight:700!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-copy small{display:block!important;margin:4px 0 0!important;color:var(--muted)!important;font-size:.74rem!important;line-height:1.3!important;font-weight:400!important;white-space:normal;overflow-wrap:anywhere}
.settings-chevron{display:block!important;width:18px;color:var(--muted)!important;font-size:1.25rem!important;line-height:1!important;text-align:center}
.settings-role{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:.66rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.settings-footer{padding-bottom:2px}.settings-item-logout{grid-template-columns:40px minmax(0,1fr)!important}.settings-item-logout .settings-copy b{color:#ffbec5!important}
.settings-toggle{width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:12px!important;font-size:1.25rem!important;line-height:1!important;letter-spacing:-.12em!important;background:var(--panel2)!important;border:1px solid var(--line)!important;color:var(--text)!important}
@media(prefers-reduced-motion:reduce){.sidebar-track{transition:none}}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){.sidebar-track{height:100dvh}.sidebar-panel{height:100dvh}.settings-panel-head{padding:max(10px,env(safe-area-inset-top)) 12px 10px;min-height:62px}.settings-scroll{padding:10px 8px max(14px,env(safe-area-inset-bottom))}.settings-item,.settings-item:link,.settings-item:visited{min-height:60px;padding:9px 10px!important}.settings-copy small{font-size:.72rem!important}}

/* yoMessage 1.1.6 - flat gradient controls, SVG icons, mobile chat sizing */
.ui-icon{display:block;flex:0 0 auto;pointer-events:none}
.btn,.control-icon,.actions button,.iconlink,.chat-head button,.composer button,.requests button,.user-list button,.settings-back,.settings-toggle{border:0!important;box-shadow:0 7px 18px color-mix(in srgb,var(--bg) 42%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 72%,var(--purple) 28%),color-mix(in srgb,var(--panel2) 72%,var(--cyan) 28%));color:var(--text)}
.btn:hover,.control-icon:hover,.actions button:hover,.iconlink:hover,.chat-head button:hover,.composer button:hover,.requests button:hover,.user-list button:hover{filter:brightness(1.09);transform:translateY(-1px)}
.btn:active,.control-icon:active,.actions button:active,.chat-head button:active,.composer button:active{transform:translateY(0);filter:brightness(.98)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:680}
.btn.primary,.composer .send{background:linear-gradient(135deg,var(--purple),var(--cyan));color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--purple) 28%,transparent)}
.btn.secondary{background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 65%,var(--panel2) 35%),color-mix(in srgb,var(--cyan) 58%,var(--panel2) 42%));color:#fff}
.btn.danger,.danger{border:0!important;background:linear-gradient(135deg,#7c3342,#b74d5f)!important;color:#fff!important}.danger-soft{background:linear-gradient(135deg,#572d37,#803847)!important;color:#ffd9df!important}
.control-icon{display:grid!important;place-items:center!important;padding:0!important;width:38px;height:38px;min-height:38px;border-radius:12px!important}
.control-icon.compact{width:31px;height:31px;min-height:31px;border-radius:10px!important}
.link-btn{border:0!important;background:transparent!important;box-shadow:none!important}.link-btn:hover{transform:none!important}
.thread{border:0!important;box-shadow:none!important;background:transparent!important}.thread:hover,.thread.active{background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 84%,var(--purple) 16%),color-mix(in srgb,var(--panel2) 88%,var(--cyan) 12%))!important;filter:none!important;transform:none!important}
.user-list button{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 92%,var(--purple) 8%),color-mix(in srgb,var(--panel2) 92%,var(--cyan) 8%))!important}
.settings-item,.settings-item:link,.settings-item:visited{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 94%,var(--purple) 6%),color-mix(in srgb,var(--panel2) 94%,var(--cyan) 6%))!important;box-shadow:none!important;margin-bottom:7px}
.settings-item:hover,.settings-item:focus-visible{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 82%,var(--purple) 18%),color-mix(in srgb,var(--panel2) 84%,var(--cyan) 16%))!important;transform:none!important}
.settings-icon{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 32%,var(--panel2) 68%),color-mix(in srgb,var(--cyan) 28%,var(--panel2) 72%))!important}
.settings-chevron{display:grid!important;place-items:center!important}.settings-chevron .ui-icon{opacity:.78}
.settings-toggle,.settings-back{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 50%,var(--panel2) 50%),color-mix(in srgb,var(--cyan) 42%,var(--panel2) 58%))!important;letter-spacing:normal!important}
.chat-actions{display:flex;align-items:center;gap:7px}.chat-head button{margin-left:0!important}
.modal-head button{border:0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 78%,var(--purple) 22%),color-mix(in srgb,var(--panel2) 78%,var(--cyan) 22%))!important;font-size:1rem!important}
.file-chip{min-width:0}.file-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip .ui-icon{color:var(--cyan)}

/* Separate personal background images from the Design Editor */
.sidebar-main{background-color:var(--panel);background-image:linear-gradient(color-mix(in srgb,var(--panel) 70%,transparent),color-mix(in srgb,var(--panel) 82%,transparent)),var(--sidebar-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat}
.sidebar-main .side-head,.sidebar-main .side-foot{background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.sidebar-main .search,.sidebar-main .thread-list,.sidebar-main .plugin-actions{background:transparent}
.chat{background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb,var(--bg) 58%,transparent),color-mix(in srgb,var(--bg) 72%,transparent)),var(--chat-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat}
.chat .messages{background:transparent}.chat-head,.composer{background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}

@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .messages{padding:10px 6px!important}
  .msg-row{padding:0 2px;margin:6px 0}
  .bubble{max-width:94%!important;min-width:0;padding:9px 11px}
  .bubble.has-audio{width:min(340px,calc(100vw - 18px));max-width:calc(100vw - 18px)!important;padding:9px}
  .bubble audio{display:block;width:100%!important;max-width:100%!important;min-width:0;margin-top:4px}
  .msg-image{max-width:min(100%,420px)}
  .composer{grid-template-columns:36px minmax(0,1fr) 36px 36px;gap:5px;padding:7px 6px max(7px,env(safe-area-inset-bottom))}
  .composer button,.composer .control-icon{width:36px!important;height:36px!important;min-height:36px!important;border-radius:11px!important}
  .composer textarea{min-width:0;min-height:36px;padding:.5rem .66rem}
  .chat-head{padding:max(8px,env(safe-area-inset-top)) 8px 8px}
  .chat-actions{gap:5px}.chat-actions .control-icon{width:35px;height:35px;min-height:35px}
}


/* yoMessage 1.1.9 - avatars, voice speed and admin navigation icons */
.thread-avatar{object-fit:cover;overflow:hidden;color:#fff}.thread img.thread-avatar{display:block}
.chat-title{min-width:0}.chat-avatar-btn{width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;border:0!important;border-radius:50%!important;overflow:hidden;box-shadow:none!important;background:transparent!important;flex:0 0 auto}.chat-avatar-btn:hover{transform:none!important;filter:brightness(1.08)}.chat-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));font-weight:750;color:#fff;flex:0 0 auto}
.msg-row{align-items:flex-end;gap:8px}.msg-row.mine{justify-content:flex-end}.msg-avatar-btn{width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border:0!important;border-radius:50%!important;overflow:hidden;background:transparent!important;box-shadow:none!important;flex:0 0 32px}.msg-avatar-btn:hover{transform:none!important}.msg-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;display:grid;place-items:center;flex:0 0 32px}.msg-avatar.fallback{background:linear-gradient(135deg,var(--purple),var(--cyan));color:#fff;font-size:.72rem;font-weight:750}.mine .msg-avatar,.mine .msg-avatar-btn{order:2}.mine .bubble{order:1}
.audio-wrap{display:flex;align-items:center;gap:7px;min-width:0}.audio-wrap audio{min-width:0;flex:1}.speed-toggle{width:42px!important;height:32px!important;min-height:32px!important;padding:0!important;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 60%,var(--panel2) 40%),color-mix(in srgb,var(--cyan) 55%,var(--panel2) 45%))!important;color:#fff!important;font-size:.78rem;font-weight:800;box-shadow:none!important;flex:0 0 42px}.speed-toggle.active{background:linear-gradient(135deg,var(--purple),var(--cyan))!important}
.avatar-lightbox{display:grid;place-items:center;padding:4px}.avatar-lightbox img{display:block;max-width:min(76vw,520px);max-height:72vh;width:auto;height:auto;border-radius:22px;object-fit:contain;box-shadow:0 18px 60px #0008}.group-profile{display:grid;gap:14px}.group-avatar-preview{width:140px!important;height:140px!important;min-height:140px!important;padding:0!important;border:0!important;border-radius:50%!important;overflow:hidden;justify-self:center;box-shadow:0 14px 42px #0006!important}.group-avatar-preview img{width:100%;height:100%;object-fit:cover}.group-avatar-empty{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;justify-self:center;background:linear-gradient(135deg,var(--purple),var(--cyan));font-size:2.4rem;font-weight:800;color:#fff}
.admin-nav button,.admin-nav a{display:flex;align-items:center;gap:10px}.admin-nav .nav-icon{width:20px;height:20px;display:grid;place-items:center;flex:0 0 20px}.admin-nav .nav-icon svg{display:block;width:19px;height:19px}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){.msg-row{gap:5px}.msg-avatar,.msg-avatar-btn{width:28px!important;height:28px!important;min-height:28px!important;flex-basis:28px}.bubble{max-width:calc(100% - 34px)!important}.bubble.has-audio{width:calc(100% - 34px)!important;max-width:calc(100% - 34px)!important}.audio-wrap{gap:5px}.speed-toggle{width:38px!important;flex-basis:38px}.chat-avatar,.chat-avatar-btn{width:38px!important;height:38px!important;min-height:38px!important}}

/* yoMessage 1.1.11 profile + install refinements */
.form-stack textarea{width:100%;border:1px solid var(--line);background:#11161e;color:var(--text);border-radius:14px;padding:.9rem 1rem;outline:none;resize:vertical;min-height:84px}.form-stack textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #1dcbe122}.profile-settings{display:grid;gap:18px}.profile-identity{text-align:center;display:grid;gap:3px;margin-top:-4px}.profile-identity strong{font-size:1.05rem}.profile-avatar-form{padding-top:16px;border-top:1px solid #ffffff14}.public-profile{text-align:center;display:grid;justify-items:center;gap:10px;padding:8px 6px 16px}.public-profile-avatar{width:116px;height:116px;border:0!important;border-radius:50%;padding:0!important;overflow:hidden;background:linear-gradient(135deg,var(--purple),var(--cyan))!important;display:grid;place-items:center;color:#fff;font-size:2.2rem;font-weight:800}.public-profile-avatar img{width:100%;height:100%;object-fit:cover}.public-profile h3{margin:4px 0 0;font-size:1.25rem}.public-profile>small{margin-top:-6px}.profile-status{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:#ffffff0d;font-size:.85rem}.profile-status>span{width:9px;height:9px;border-radius:50%;background:#8a96a8}.profile-status.status-available>span{background:#47d39a}.profile-status.status-busy>span{background:#ff6b78}.profile-status.status-away>span{background:#f5b94d}.profile-status.status-dnd>span{background:#ae77ff}.profile-status-message{margin:0;max-width:360px;color:var(--muted);line-height:1.45}.profile-mobile{display:inline-flex;align-items:center;gap:7px;color:var(--cyan);text-decoration:none;padding:8px 12px;border-radius:12px;background:#1dcbe114}.install-help{line-height:1.55}.install-help h4{margin-top:0}.install-help ol{padding-left:1.35rem}.install-help li+li{margin-top:7px}@media(display-mode:standalone){html,body{height:100%;overscroll-behavior:none}.messenger{height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}

/* yoMessage 1.1.12: quick user search, desktop emoji picker, per-chat mute */
.new-chat-search{display:grid;gap:12px}.new-chat-search>input{width:100%;border:1px solid var(--line);background:#11161e;color:var(--text);border-radius:var(--radius);padding:.8rem .9rem;outline:none}.new-chat-search>input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #1dcbe122}.search-results{max-height:52vh;overflow:auto}.search-hint{padding:18px 8px;text-align:center}.thread-muted{display:inline-flex;vertical-align:-2px;margin-left:5px;color:var(--muted)}.chat-actions .is-muted{background:linear-gradient(135deg,color-mix(in srgb,var(--purple) 58%,#202734),color-mix(in srgb,var(--cyan) 35%,#202734));color:#fff}.mute-options{display:grid;gap:9px}.mute-options .btn{text-align:left}.composer{grid-template-columns:auto minmax(0,1fr) auto auto}.composer-input-wrap{position:relative;min-width:0}.composer-input-wrap textarea{width:100%}.emoji-picker{position:absolute;right:0;bottom:calc(100% + 9px);width:min(330px,80vw);display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:10px;background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid #ffffff17;border-radius:18px;box-shadow:0 18px 55px #0009;backdrop-filter:blur(18px);z-index:35}.emoji-picker[hidden]{display:none}.emoji-picker button{min-height:34px;padding:3px;border:0;background:transparent;font-size:1.25rem;border-radius:9px}.emoji-picker button:hover{background:#ffffff12}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){.emoji-button{display:grid!important}.composer{grid-template-columns:auto minmax(0,1fr) auto auto}.emoji-picker{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;width:auto!important;max-height:min(42vh,360px)!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;padding:10px!important;border-radius:18px!important;z-index:120!important}.emoji-picker button{font-size:1.45rem!important;min-height:42px!important}.composer-input-wrap{position:relative}}

/* yoMessage 1.1.13 */
.msg-text.emoji-only{font-size:2.15rem;line-height:1.25;letter-spacing:.04em;padding:.08em 0}.mine .msg-text.emoji-only{text-align:right}

/* yoMessage 1.1.14 UI refinements */
.side-brand{display:flex;align-items:center;gap:10px;min-width:0}.side-brand-logo{width:42px;height:42px;border-radius:12px;object-fit:cover;display:block;box-shadow:0 8px 24px #0004}.side-brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emoji-picker{box-sizing:border-box!important;width:min(360px,calc(100vw - 48px))!important;max-height:min(320px,48vh);overflow-y:auto;overflow-x:hidden;grid-template-columns:repeat(auto-fit,minmax(36px,1fr))!important;align-content:start;overscroll-behavior:contain;scrollbar-width:thin}.emoji-picker button{width:100%;min-width:0;aspect-ratio:1/1;min-height:36px;max-height:44px;display:grid;place-items:center;line-height:1;font-size:1.35rem;overflow:hidden}.typing-indicator{min-height:24px;padding:2px 18px 5px;color:var(--muted);font-size:.82rem;font-style:italic;letter-spacing:.01em}.typing-indicator[hidden]{display:block;visibility:hidden}.typing-indicator:not([hidden])::before{content:'';display:inline-block;width:5px;height:5px;margin:0 7px 1px 0;border-radius:50%;background:var(--cyan);box-shadow:8px 0 0 color-mix(in srgb,var(--cyan) 60%,transparent),16px 0 0 color-mix(in srgb,var(--cyan) 30%,transparent)}

.contact-reconnect{margin:10px 16px 0;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--panel2) 88%,var(--purple) 12%);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.contact-reconnect strong{font-size:.92rem}.contact-reconnect span{color:var(--muted);font-size:.82rem;flex:1 1 240px}.contact-reconnect .btn{white-space:nowrap}.composer.is-disabled{opacity:.42;pointer-events:none}

/* Group participant live search */
.group-member-search{display:grid;gap:10px}.group-member-search>label{display:grid;gap:6px;color:var(--muted);font-size:.9rem}.group-member-search input[type=search]{width:100%;border:1px solid var(--line);background:#11161e;color:var(--text);border-radius:14px;padding:.9rem 1rem;outline:none}.group-member-search input[type=search]:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #1dcbe122}.group-selected{display:grid;gap:7px}.group-selected-title{font-size:.78rem}.group-selected-chips{display:flex;flex-wrap:wrap;gap:7px}.group-selected-chip{display:inline-flex!important;align-items:center;gap:7px!important;width:auto!important;padding:6px 9px!important;border:0!important;border-radius:999px!important;background:color-mix(in srgb,var(--panel2) 82%,var(--cyan) 18%)!important}.group-selected-chip .avatar{width:25px;height:25px}.group-selected-chip svg{opacity:.8}.group-user-result{display:grid!important;grid-template-columns:auto 1fr auto;align-items:center}.group-user-result.selected{background:color-mix(in srgb,var(--panel2) 76%,var(--purple) 24%)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--purple) 65%,transparent)}.group-user-state{display:grid!important;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffffff0c}.search-hint{margin:6px 2px}.search-results{max-height:310px;overflow:auto;overscroll-behavior:contain;padding-right:2px}

/* yoMessage 1.1.26 - Desktop voice bubbles + chat delete dialog */
@media(min-width:700px){
  .bubble.has-audio{width:min(390px,calc(100% - 48px));max-width:min(78%,680px);min-width:300px}
  .bubble.has-audio .audio-wrap{display:flex;width:100%;min-width:0;align-items:center;gap:8px}
  .bubble.has-audio .audio-wrap audio{display:block;flex:1 1 auto;width:100%;max-width:100%;min-width:0;margin-top:4px}
  .bubble.has-audio .speed-toggle{flex:0 0 42px}
}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;flex-wrap:wrap}
.chat-actions .danger-soft{color:#ffadb5;border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:color-mix(in srgb,var(--danger) 10%,var(--panel2))}



/* yoMessage 1.1.30 - Swipe actions on stable 1.1.29 recovery base */
.thread-swipe{position:relative;overflow:hidden;border-radius:16px;margin:2px 0;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.thread-swipe>.thread{position:relative;z-index:2;width:100%;margin:0;will-change:transform;transform:translateX(var(--swipe-x,0px))!important}
.thread-swipe-action{position:absolute;inset-block:0;width:112px;display:flex;align-items:center;gap:7px;padding:0 14px;font-size:.82rem;font-weight:700;z-index:1;pointer-events:none;opacity:0;transition:opacity .08s linear}
.thread-swipe.is-swiping>.thread{background:var(--panel)!important}
.thread-swipe.is-swiping>.thread-swipe-action{opacity:1}
.thread-swipe-action.delete-action{left:0;justify-content:flex-start;background:linear-gradient(90deg,#b72d3b,#7e2430);color:#fff}
.thread-swipe-action.archive-action{right:0;justify-content:flex-end;background:linear-gradient(270deg,color-mix(in srgb,var(--cyan) 72%,#17485b),#234a5c);color:#fff}
.archive-open{width:calc(100% - 14px);margin:8px 7px 4px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#ffffff08;color:var(--muted);display:flex;align-items:center;justify-content:space-between;font-weight:700}
.archive-open b{min-width:24px;padding:2px 7px;border-radius:999px;background:#ffffff0d;color:var(--text);font-size:.75rem}
.archive-list{display:grid;gap:8px;max-height:min(60vh,520px);overflow:auto}
.archive-row{display:flex;align-items:center;gap:10px;padding:9px;border-radius:14px;background:#ffffff08;border:1px solid #ffffff0b}
.archive-row-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.archive-row-main>span{min-width:0;display:grid}.archive-row-main strong,.archive-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-row-main small{color:var(--muted)}
@media(hover:hover){.thread-swipe{cursor:grab}.thread-swipe:active{cursor:grabbing}}


/* yoMessage 1.1.32: replies and external links */
.msg-text{white-space:pre-wrap;overflow-wrap:anywhere}
.msg-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;word-break:break-all}
.reply-quote{display:flex;flex-direction:column;align-items:flex-start;width:100%;margin:0 0 7px;padding:7px 9px;border:0;border-left:3px solid rgba(255,255,255,.55);border-radius:8px;background:rgba(0,0,0,.14);color:inherit;text-align:left;cursor:pointer;overflow:hidden}
.reply-quote b{font-size:.78rem;opacity:.92;margin-bottom:2px}.reply-quote span{display:block;max-width:100%;font-size:.82rem;opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reply-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 12px 7px;padding:8px 10px;border-left:3px solid var(--accent,#6d7cff);border-radius:9px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px)}
.reply-preview[hidden]{display:none!important;margin:0!important;padding:0!important;border:0!important}
.reply-preview>div{min-width:0;display:flex;flex-direction:column}.reply-preview b{font-size:.78rem}.reply-preview span{font-size:.82rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-cancel{flex:0 0 auto;border:0;background:transparent;color:inherit;padding:6px;cursor:pointer}
.msg-row.message-highlight .bubble{animation:ymReplyHighlight 1.2s ease}@keyframes ymReplyHighlight{0%,100%{box-shadow:inherit}35%{box-shadow:0 0 0 3px rgba(112,128,255,.55),0 0 24px rgba(112,128,255,.25)}}
@media (pointer:coarse){.msg-row .bubble{-webkit-touch-callout:none;user-select:none}}

/* yoMessage 1.2.0 branding */
.side-brand-logo{object-fit:contain!important;background:transparent!important;box-shadow:none!important;border-radius:12px!important}

/* yoMessage 1.2.1: expanded emoji picker on desktop and mobile */
.emoji-picker{-webkit-overflow-scrolling:touch;touch-action:pan-y}.emoji-picker button{cursor:pointer}.emoji-picker button:active{transform:scale(.9)}


/* yoMessage 1.2.2: unified Emoji / Animated GIF picker */
.media-menu{position:absolute;right:0;bottom:calc(100% + 9px);width:220px;padding:8px;display:grid;gap:6px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid #ffffff17;border-radius:16px;box-shadow:0 18px 55px #0009;backdrop-filter:blur(18px);z-index:125}.media-menu[hidden]{display:none}.media-menu button{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:42px 1fr;align-items:center;gap:8px;padding:8px;border-radius:11px;text-align:left;cursor:pointer}.media-menu button:hover,.media-menu button:focus-visible{background:#ffffff12;outline:none}.media-menu button span{display:grid;place-items:center;height:38px;border-radius:10px;background:#ffffff0c;font-size:1.2rem;font-weight:800}.media-menu button b{font-size:.9rem}.gif-picker{position:absolute;right:0;bottom:calc(100% + 9px);width:min(430px,86vw);max-height:min(420px,56vh);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid #ffffff17;border-radius:18px;box-shadow:0 18px 55px #0009;backdrop-filter:blur(18px);z-index:124}.gif-picker[hidden]{display:none}.gif-picker-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 13px 9px;border-bottom:1px solid #ffffff12}.gif-picker-head strong{font-size:.95rem}.gif-picker-head small{font-size:.72rem;color:var(--muted)}.gif-grid{padding:10px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.gif-item{position:relative;min-width:0;padding:0;border:1px solid #ffffff12;background:#0d1118;border-radius:13px;overflow:hidden;color:var(--text);cursor:pointer;text-align:left}.gif-item img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.gif-item span{display:block;padding:6px 8px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gif-item:hover,.gif-item:focus-visible{border-color:color-mix(in srgb,var(--cyan) 55%,#ffffff22);outline:none}.gif-item.sending{opacity:.58;pointer-events:none}.gif-item.sending::after{content:'Senden …';position:absolute;inset:0;display:grid;place-items:center;background:#0008;color:#fff;font-size:.78rem;font-weight:700}.msg-image[src*="attachment"]{image-rendering:auto}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){.media-menu{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;width:auto!important;grid-template-columns:1fr 1fr!important;z-index:130!important}.media-menu button{grid-template-columns:38px 1fr;padding:9px}.gif-picker{position:fixed!important;left:10px!important;right:10px!important;bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;width:auto!important;max-height:min(58vh,520px)!important;z-index:129!important}.gif-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gif-item span{font-size:.7rem}.emoji-picker{z-index:129!important}}
@media(min-width:821px) and (max-width:1100px){.gif-picker{width:min(400px,62vw);max-height:50vh}.gif-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* yoMessage 1.2.3 - GIPHY picker */
.gif-picker{grid-template-rows:auto auto auto auto minmax(0,1fr) auto}.gif-picker-head>div{display:flex;flex-direction:column;gap:2px}.gif-picker-head small{display:block}.gif-settings{border:0;background:transparent;color:var(--muted);font-size:1rem;cursor:pointer;padding:5px 7px;border-radius:9px}.gif-settings:hover{background:#ffffff10;color:var(--text)}.gif-search{display:grid;grid-template-columns:1fr auto;gap:7px;padding:9px 10px 6px}.gif-search input{width:100%;min-width:0;border:1px solid #ffffff15;background:#ffffff08;color:var(--text);border-radius:11px;padding:9px 10px;outline:none}.gif-search input:focus{border-color:color-mix(in srgb,var(--cyan) 50%,#ffffff22)}.gif-cats{display:flex;gap:6px;overflow-x:auto;padding:2px 10px 8px;scrollbar-width:none}.gif-cats::-webkit-scrollbar{display:none}.gif-cats button{flex:0 0 auto;border:1px solid #ffffff14;background:#ffffff08;color:var(--text);border-radius:999px;padding:6px 9px;font-size:.72rem;cursor:pointer}.gif-cats button:hover{background:#ffffff12}.gif-status{margin:0 10px 6px;padding:10px;border-radius:12px;background:#ffffff07;color:var(--muted);font-size:.78rem;display:grid;gap:7px}.gif-status[hidden]{display:none}.gif-status strong{color:var(--text)}.gif-item span{display:none}.gif-item img{aspect-ratio:1.35/1}.gif-more{margin:7px 10px 10px;border:1px solid #ffffff14;background:#ffffff08;color:var(--text);border-radius:11px;padding:8px;cursor:pointer}.gif-more[hidden]{display:none}@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){.gif-picker{max-height:min(66vh,610px)!important}.gif-search{padding-top:8px}.gif-cats{padding-bottom:7px}.gif-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* yoMessage 1.2.4 - polished media choice bubble */
.media-menu{
  width:278px;
  padding:10px;
  gap:0;
  border-radius:22px;
  border:1px solid color-mix(in srgb,#fff 17%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 94%,transparent),color-mix(in srgb,var(--panel) 84%,#101722 16%));
  box-shadow:0 22px 70px #000a,0 1px 0 #ffffff12 inset;
  backdrop-filter:blur(24px) saturate(145%);
  -webkit-backdrop-filter:blur(24px) saturate(145%);
  transform-origin:calc(100% - 28px) 100%;
  animation:ym-media-bubble-in .18s cubic-bezier(.2,.85,.32,1.12) both;
  overflow:visible;
}
.media-menu::after{
  content:"";
  position:absolute;
  right:22px;
  bottom:-7px;
  width:14px;
  height:14px;
  transform:rotate(45deg);
  border-right:1px solid color-mix(in srgb,#fff 17%,transparent);
  border-bottom:1px solid color-mix(in srgb,#fff 17%,transparent);
  background:color-mix(in srgb,var(--panel) 91%,#101722 9%);
  border-radius:0 0 4px 0;
}
.media-menu-head{display:flex;flex-direction:column;gap:2px;padding:5px 7px 10px}
.media-menu-head>span{font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--cyan) 82%,#fff)}
.media-menu-head>small{font-size:.76rem;color:var(--muted)}
.media-menu-options{display:grid;gap:7px}
.media-menu .media-menu-options>button{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 18px;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:61px;
  padding:7px 9px 7px 7px;
  border:1px solid #ffffff0d;
  border-radius:16px;
  background:linear-gradient(135deg,#ffffff0c,#ffffff06);
  text-align:left;
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.media-menu .media-menu-options>button:hover,.media-menu .media-menu-options>button:focus-visible{
  background:linear-gradient(135deg,#ffffff17,#ffffff0a);
  border-color:color-mix(in srgb,var(--cyan) 30%,#ffffff16);
  box-shadow:0 9px 26px #0004;
  transform:translateY(-1px);
}
.media-menu .media-menu-options>button:active{transform:scale(.985)}
.media-menu-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  box-shadow:0 7px 18px #0004,0 1px 0 #ffffff19 inset;
}
.media-menu-icon.emoji-choice{font-size:1.55rem;background:linear-gradient(145deg,#ffffff16,#ffffff08)}
.media-menu-icon.gif-choice{font-size:.82rem;font-weight:900;letter-spacing:.04em;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--purple) 80%,#111),color-mix(in srgb,var(--cyan) 62%,#111))}
.media-menu-copy{display:flex;min-width:0;flex-direction:column;gap:2px}
.media-menu-copy b{font-size:.91rem;line-height:1.15}
.media-menu-copy small{font-size:.71rem;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-menu-chevron{font-size:1.45rem;line-height:1;color:var(--muted);transform:translateY(-1px)}
@keyframes ym-media-bubble-in{from{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .media-menu{
    left:auto!important;
    right:12px!important;
    bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;
    width:min(310px,calc(100vw - 24px))!important;
    grid-template-columns:1fr!important;
    transform-origin:calc(100% - 29px) 100%;
    border-radius:22px!important;
    padding:10px!important;
  }
  .media-menu::after{right:23px}
  .media-menu .media-menu-options>button{grid-template-columns:48px minmax(0,1fr) 18px!important;padding:7px 9px 7px 7px!important}
  .media-menu-head{display:flex}
}
@media(max-width:390px){
  .media-menu{left:10px!important;right:10px!important;width:auto!important}
}
@media(prefers-reduced-motion:reduce){.media-menu{animation:none}.media-menu .media-menu-options>button{transition:none}}


/* yoMessage 1.2.5 - anchored media bubble positioning fix */
.media-menu{
  position:fixed!important;
  left:var(--ym-media-left,auto)!important;
  top:var(--ym-media-top,auto)!important;
  right:auto!important;
  bottom:auto!important;
  width:min(292px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  z-index:240!important;
  margin:0!important;
}
.media-menu::after{
  left:var(--ym-media-arrow-left,calc(100% - 31px))!important;
  right:auto!important;
}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .media-menu{
    width:min(296px,calc(100vw - 20px))!important;
    max-width:calc(100vw - 20px)!important;
    padding:9px!important;
    border-radius:20px!important;
  }
  .media-menu-head{padding:4px 6px 8px!important}
  .media-menu .media-menu-options>button{
    grid-template-columns:44px minmax(0,1fr) 14px!important;
    min-height:56px!important;
    gap:9px!important;
    padding:6px 8px 6px 6px!important;
    border-radius:15px!important;
  }
  .media-menu-icon{width:44px!important;height:44px!important;border-radius:13px!important}
  .media-menu-icon.emoji-choice{font-size:1.4rem!important}
  .media-menu-copy b{font-size:.88rem!important;line-height:1.08!important;white-space:nowrap!important}
  .media-menu-copy small{font-size:.68rem!important;line-height:1.1!important}
  .media-menu-chevron{font-size:1.2rem!important}
}
@media(max-width:340px){
  .media-menu{
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    padding:8px!important;
  }
  .media-menu-head>small{display:none!important}
  .media-menu .media-menu-options>button{
    grid-template-columns:42px minmax(0,1fr)!important;
    min-height:52px!important;
    gap:8px!important;
    padding:5px 7px 5px 5px!important;
  }
  .media-menu-icon{width:42px!important;height:42px!important}
  .media-menu-copy small,.media-menu-chevron{display:none!important}
  .media-menu-copy b{font-size:.9rem!important}
}


/* yoMessage 1.2.6 - reliable media bubble visibility/positioning */
.media-menu{
  left:12px!important;
  top:12px!important;
  right:auto!important;
  bottom:auto!important;
  will-change:left,top,opacity,transform;
}
.media-menu[hidden]{display:none!important}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .media-menu{right:auto!important;bottom:auto!important}
}


/* yoMessage 1.2.7 - media bubble body portal / stable anchor */
body > .media-menu{
  position:fixed!important;
  z-index:10000!important;
  right:auto!important;
  bottom:auto!important;
  width:min(286px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  margin:0!important;
  box-sizing:border-box!important;
  isolation:isolate;
}
body > .media-menu[hidden]{display:none!important}
body > .media-menu .media-menu-copy b{white-space:nowrap!important}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  body > .media-menu{
    width:min(286px,calc(100vw - 20px))!important;
    max-width:calc(100vw - 20px)!important;
    padding:9px!important;
    border-radius:20px!important;
  }
  body > .media-menu .media-menu-options>button{
    grid-template-columns:44px minmax(0,1fr) 14px!important;
    min-height:54px!important;
    gap:9px!important;
    padding:6px 8px 6px 6px!important;
  }
  body > .media-menu .media-menu-icon{width:44px!important;height:44px!important}
}
@media(max-width:420px){
  body > .media-menu{width:min(274px,calc(100vw - 20px))!important}
  body > .media-menu-head{padding:3px 6px 7px!important}
  body > .media-menu-head>small{display:none!important}
  body > .media-menu-copy small{font-size:.67rem!important}
}
@media(max-width:350px){
  body > .media-menu{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important}
  body > .media-menu-copy small{display:none!important}
  body > .media-menu-chevron{display:none!important}
  body > .media-menu .media-menu-options>button{grid-template-columns:42px minmax(0,1fr)!important}
}


/* yoMessage 1.2.9 - groessere GIPHY-Vorschauen -------------------------- */
.gif-picker{width:min(620px,92vw);max-height:min(620px,72vh)}
.gif-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.gif-item{border-radius:15px}
.gif-item img{width:100%;aspect-ratio:1.6/1;object-fit:cover}
@media(min-width:821px) and (max-width:1100px){
  .gif-picker{width:min(540px,74vw);max-height:min(590px,68vh)}
  .gif-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .gif-picker{left:8px!important;right:8px!important;width:auto!important;max-height:min(74vh,680px)!important}
  .gif-grid{grid-template-columns:1fr!important;gap:10px;padding:10px}
  .gif-item img{aspect-ratio:1.7/1;min-height:160px;max-height:230px;object-fit:cover}
}
@media(max-width:420px){
  .gif-picker{left:6px!important;right:6px!important}
  .gif-grid{padding:8px;gap:9px}
  .gif-item img{min-height:150px;max-height:210px}
}

/* yoMessage 1.2.11 - force real GIF card size, not only picker/grid size */
#gif-grid > .gif-item{
  display:block!important;
  position:relative!important;
  width:100%!important;
  min-width:100%!important;
  max-width:none!important;
  height:clamp(220px,26vw,320px)!important;
  min-height:220px!important;
  padding:0!important;
  justify-self:stretch!important;
  align-self:stretch!important;
  overflow:hidden!important;
  border-radius:16px!important;
}
#gif-grid > .gif-item > img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  #gif-grid{grid-template-columns:1fr!important}
  #gif-grid > .gif-item{
    height:clamp(210px,56vw,300px)!important;
    min-height:210px!important;
  }
}


/* yoMessage 1.2.12 - desktop GIF grid scroll fix */
@media(min-width:821px){
  #gif-picker{
    height:min(700px,80vh)!important;
    max-height:min(700px,80vh)!important;
    overflow:hidden!important;
    grid-template-rows:auto auto auto auto minmax(0,1fr) auto!important;
  }
  #gif-grid{
    min-height:0!important;
    height:100%!important;
    max-height:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable;
    -webkit-overflow-scrolling:touch;
  }
}


/* yoMessage 1.2.13 - touchfreundlicher Admin-Start auf Smartphones */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .admin-body{min-height:100dvh;background:radial-gradient(circle at 12% 0%,rgba(29,203,225,.16),transparent 34%),radial-gradient(circle at 88% 8%,rgba(122,105,255,.18),transparent 38%),#0f141c}
  .admin-shell{display:block;min-height:100dvh}
  .admin-nav{display:none!important}
  .admin-page{padding:max(14px,env(safe-area-inset-top)) 14px max(22px,env(safe-area-inset-bottom));min-height:100dvh}
  .admin-mobile-home{min-height:calc(100dvh - max(28px,env(safe-area-inset-top)) - max(30px,env(safe-area-inset-bottom)));display:flex;flex-direction:column;justify-content:center;gap:20px;max-width:680px;margin:0 auto}
  .admin-mobile-hero{display:flex;align-items:center;gap:14px;padding:4px 4px 2px}
  .admin-mobile-logo{width:58px;height:58px;flex:0 0 58px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));box-shadow:0 14px 36px rgba(45,118,182,.28);font-weight:800;font-size:1.25rem;color:#fff}
  .admin-mobile-hero span{display:block;color:var(--cyan);font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
  .admin-mobile-hero h1{margin:0;font-size:1.55rem;line-height:1.1}
  .admin-mobile-hero p{margin:5px 0 0;color:var(--muted);font-size:.92rem}
  .admin-mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}
  .admin-mobile-tile{appearance:none;min-width:0;min-height:122px;padding:17px 14px;border:1px solid rgba(255,255,255,.09);border-radius:22px;background:linear-gradient(145deg,rgba(31,39,52,.94),rgba(20,27,37,.96));box-shadow:0 14px 36px rgba(0,0,0,.22);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;text-align:left;color:var(--text);text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow:hidden;position:relative}
  .admin-mobile-tile::after{content:"";position:absolute;inset:auto -24px -34px auto;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle,rgba(29,203,225,.13),transparent 70%);pointer-events:none}
  .admin-mobile-tile .nav-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;margin:0 0 4px;background:rgba(255,255,255,.065);color:#9be9f3}
  .admin-mobile-tile .nav-icon svg{width:23px;height:23px}
  .admin-mobile-tile strong{font-size:1rem;line-height:1.15}
  .admin-mobile-tile small{font-size:.76rem;line-height:1.25;color:var(--muted)}
  .admin-mobile-tile:active{transform:scale(.975);filter:brightness(1.08)}
  .admin-mobile-app{grid-column:1/-1;min-height:88px;display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;justify-content:initial}
  .admin-mobile-app .nav-icon{grid-row:1/3;margin:0}
  .admin-mobile-app strong,.admin-mobile-app small{grid-column:2}
  .admin-mobile-pagebar{position:sticky;top:0;z-index:20;margin:-2px -4px 14px;padding:4px 4px 10px;background:linear-gradient(to bottom,rgba(15,20,28,.98) 0%,rgba(15,20,28,.93) 70%,rgba(15,20,28,0) 100%);backdrop-filter:blur(12px)}
  .admin-mobile-back{width:auto;min-height:48px;padding:0 15px;border-radius:16px;display:inline-flex;align-items:center;gap:8px;background:#1d2531;border:1px solid rgba(255,255,255,.1);font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.16)}
  .admin-mobile-back .nav-icon{display:grid;place-items:center}
  .admin-mobile-back .nav-icon svg{width:20px;height:20px}
  .admin-page>.page-head{gap:10px;align-items:flex-start}
  .admin-page>.page-head h2,.admin-page>h2{font-size:1.35rem}
  .admin-page .btn,.admin-page button{touch-action:manipulation}
}
@media (max-width:390px){
  .admin-mobile-grid{gap:10px}
  .admin-mobile-tile{min-height:114px;padding:15px 12px;border-radius:20px}
  .admin-mobile-tile strong{font-size:.95rem}
  .admin-mobile-tile small{font-size:.72rem}
}


/* yoMessage 1.2.14 - mobile install offer + iPhone/Safari viewport hardening */
.install-offer{
  position:fixed;inset:0;z-index:20000;display:grid;place-items:end center;
  padding:16px max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  background:linear-gradient(180deg,transparent 0%,#0005 45%,#000a 100%);
  animation:ym-install-backdrop .18s ease-out both;
}
.install-offer-card{
  width:min(440px,100%);max-width:100%;position:relative;display:grid;grid-template-columns:50px minmax(0,1fr);gap:12px;
  padding:16px;border:1px solid #ffffff20;border-radius:24px;background:color-mix(in srgb,var(--panel) 94%,transparent);
  box-shadow:0 24px 80px #000b,0 1px 0 #ffffff16 inset;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  animation:ym-install-card .22s cubic-bezier(.2,.8,.2,1) both;
}
.install-offer-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--purple),var(--cyan));color:#fff}
.install-offer-copy{min-width:0;padding-right:28px}.install-offer-copy strong{display:block;font-size:1rem;line-height:1.2}.install-offer-copy p{margin:5px 0 0;color:var(--muted);font-size:.84rem;line-height:1.35}
.install-offer-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px}.install-offer-actions .btn{min-height:44px}
.install-offer-close{position:absolute;right:8px;top:8px;width:34px;height:34px;min-height:34px;padding:0;border:0;background:transparent;font-size:1.35rem;color:var(--muted)}
@keyframes ym-install-backdrop{from{opacity:0}to{opacity:1}}@keyframes ym-install-card{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@media(min-width:821px){.install-offer{display:none!important}}
@media(max-width:420px){
  .install-offer{padding:10px max(8px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
  .install-offer-card{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:13px;border-radius:20px}
  .install-offer-icon{width:44px;height:44px;border-radius:14px}.install-offer-copy{padding-right:24px}.install-offer-copy strong{font-size:.94rem}.install-offer-copy p{font-size:.78rem}
  .install-offer-actions{grid-template-columns:1fr 1fr}.install-offer-actions .btn{padding:.65rem .7rem;min-width:0}
}

/* iPhone 8 / narrow Safari: never allow the messenger shell to become wider than the visual viewport. */
@media(max-width:390px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important;-webkit-text-size-adjust:100%}
  body,#app,.messenger,.sidebar,.sidebar-track,.sidebar-panel,.chat,.chat-empty{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .messenger{grid-template-columns:minmax(0,1fr)!important}
  .chat{left:0!important;right:0!important;inset-inline:0!important}
  .side-head,.chat-head,.composer,.messages,.thread-list,.search,.side-foot{max-width:100%!important;min-width:0!important}
  .side-head,.chat-head{gap:6px;padding-left:max(7px,env(safe-area-inset-left))!important;padding-right:max(7px,env(safe-area-inset-right))!important}
  .side-brand,.chat-title,.chat-title>div,.thread span:last-child{min-width:0!important;max-width:100%!important}
  .chat-title{display:flex!important;align-items:center!important;gap:7px!important;overflow:hidden!important;flex:1 1 auto!important}
  .chat-title h2,.chat-title small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .chat-actions{display:flex!important;flex:0 0 auto!important;gap:3px!important}
  .chat-actions .control-icon{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important}
  .chat-avatar,.chat-avatar-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
  .mobile-back{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
  .messages{padding:8px 5px!important}
  .msg-row{max-width:100%!important;min-width:0!important}.bubble{max-width:calc(100% - 33px)!important;min-width:0!important;overflow-wrap:anywhere;word-break:break-word}
  .bubble.has-audio{width:calc(100% - 33px)!important;max-width:calc(100% - 33px)!important;min-width:0!important}.audio-wrap{min-width:0!important;max-width:100%!important}.bubble audio{max-width:100%!important;min-width:0!important}
  .msg-image,.bubble img,.file-chip{max-width:100%!important;min-width:0!important}
  .composer{grid-template-columns:34px minmax(0,1fr) 34px 34px 34px!important;gap:4px!important;padding:6px max(5px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))!important;width:100%!important}
  .composer button,.composer .control-icon{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important}
  .composer-input-wrap,.composer textarea{min-width:0!important;max-width:100%!important;width:100%!important}.composer textarea{min-height:34px!important;padding:.45rem .58rem!important}
  .modal-back{padding:8px!important}.modal{width:100%!important;max-width:calc(100vw - 16px)!important;min-width:0!important;padding:14px!important;border-radius:20px!important}
  .emoji-picker,.gif-picker{left:6px!important;right:6px!important;width:auto!important;max-width:none!important;box-sizing:border-box!important}
  body>.media-menu{left:8px!important;right:8px!important;width:auto!important;max-width:none!important}
  .toast{left:8px!important;right:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;max-width:none!important}
  .thread,.settings-item,.plugin-action{max-width:100%!important;min-width:0!important}
}
@media(prefers-reduced-motion:reduce){.install-offer,.install-offer-card{animation:none!important}}


/* yoMessage 1.2.15 - mobile visual viewport height lock
   The document itself must never scroll on the messenger home screen.
   Only dedicated inner scrollers (thread list/settings/messages) may scroll. */
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  html,body{
    width:100%!important;
    height:var(--ym-visual-height,100dvh)!important;
    min-height:0!important;
    max-height:var(--ym-visual-height,100dvh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body{
    position:fixed!important;
    inset:0!important;
    margin:0!important;
    padding:0!important;
  }
  #app{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:var(--ym-visual-height,100dvh)!important;
    min-height:0!important;
    max-height:var(--ym-visual-height,100dvh)!important;
    overflow:hidden!important;
  }
  .messenger{
    width:100%!important;
    height:var(--ym-visual-height,100dvh)!important;
    min-height:0!important;
    max-height:var(--ym-visual-height,100dvh)!important;
    overflow:hidden!important;
  }
  .sidebar,
  .sidebar-track,
  .sidebar-panel,
  .sidebar-main{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  .sidebar-main{
    display:flex!important;
    flex-direction:column!important;
  }
  .side-head,.search,.requests,.archive-open,.plugin-actions,.side-foot{
    flex:0 0 auto!important;
  }
  .thread-list{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .settings-panel{
    min-height:0!important;
    overflow:hidden!important;
  }
  .settings-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .chat{
    height:var(--ym-visual-height,100dvh)!important;
    min-height:0!important;
    max-height:var(--ym-visual-height,100dvh)!important;
    overflow:hidden!important;
  }
  .messages{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
  }
  .chat-empty{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
}


/* yoMessage 1.2.16 - full-height mobile viewport coverage
   visualViewport.offsetTop is included by app.js, so Safari toolbar shifts
   no longer leave an unused strip at the bottom. */
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  html,body,#app,.messenger{
    background:var(--bg)!important;
  }
  body,#app,.messenger{
    height:var(--ym-visual-height,100dvh)!important;
    min-height:var(--ym-visual-height,100dvh)!important;
    max-height:var(--ym-visual-height,100dvh)!important;
  }
  @supports(height:100dvh){
    html{min-height:100dvh!important;background:var(--bg)!important}
  }
}

/* yoMessage 1.2.17 - iOS full-screen edge lock
   Do not calculate a pixel height. Anchor the mobile shell to all four
   viewport edges so Safari cannot leave an uncovered strip at the bottom. */
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  html{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:var(--bg)!important;
  }
  body{
    position:fixed!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:var(--bg)!important;
  }
  #app{
    position:absolute!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    background:var(--bg)!important;
  }
  .messenger{
    position:absolute!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    background:var(--bg)!important;
  }
  .sidebar,.sidebar-track,.sidebar-panel,.sidebar-main,.chat,.chat-empty{
    min-height:0!important;
    max-height:none!important;
  }
  .sidebar,.sidebar-track,.sidebar-panel,.sidebar-main,.chat-empty{
    height:100%!important;
  }
  .chat{
    position:absolute!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    overflow:hidden!important;
  }
  .thread-list,.messages,.settings-scroll{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain!important;
  }
  .side-foot{
    padding-bottom:max(12px,env(safe-area-inset-bottom,0px))!important;
  }
}

/* yoMessage 1.2.18 - Safari browser chrome / mobile shell cleanup
   In normal Safari the browser toolbar is outside the page viewport and cannot
   be reclaimed by web content. Keep the app edge-locked and tint any exposed
   browser/safe-area surface to match yoMessage instead of black. */
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  :root{
    --ym-mobile-chrome:#171d27;
  }
  html,body{
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:hidden!important;
    background-color:var(--ym-mobile-chrome)!important;
  }
  body{
    position:fixed!important;
    inset:0!important;
    padding:0!important;
    margin:0!important;
  }
  #app,.messenger{
    position:absolute!important;
    inset:0!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    background:var(--bg)!important;
  }
  /* Never reserve additional bottom height on home/chat-list view. */
  .sidebar,.sidebar-track,.sidebar-panel,.sidebar-main,.chat,.chat-empty{
    min-height:0!important;
    max-height:none!important;
  }
  .sidebar,.sidebar-track,.sidebar-panel,.sidebar-main,.chat-empty{height:100%!important}
  .thread-list,.messages,.settings-scroll{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch;
  }
}

/* yoMessage 1.2.19 - mobile admin scrolling fix
   The messenger itself stays viewport-locked on phones, but the admin area
   gets its own independent vertical scroller so long pages (especially the
   plugin list) are never clipped by the global mobile body lock. */
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .admin-shell{
    position:fixed!important;
    inset:0!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    background:#0f141c!important;
  }
  .admin-page{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:max(28px,env(safe-area-inset-bottom,0px))!important;
  }
  .admin-page .plugin-grid,
  .admin-page .admin-card,
  .admin-page .table-wrap{
    max-height:none!important;
  }
  .admin-page .plugin-grid{
    overflow:visible!important;
  }
}

/* yoMessage 1.2.21 - in-chat search + colored text messages */
.message-search-bar{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(16,21,29,.96);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  flex:0 0 auto;
}
.message-search-bar[hidden]{display:none!important}
.message-search-input{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  background:rgba(255,255,255,.055);
  padding:0 11px;
}
.message-search-input svg{opacity:.65;flex:0 0 auto}
.message-search-input input{
  width:100%;
  min-width:0;
  height:38px;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:inherit!important;
  box-shadow:none!important;
  padding:0!important;
}
.message-search-count{font-size:12px;white-space:nowrap;opacity:.72;min-width:58px;text-align:center}
.msg-row.search-match .bubble{box-shadow:0 0 0 2px rgba(80,183,255,.38),0 8px 26px rgba(0,0,0,.18)}
.msg-row.search-current .bubble{box-shadow:0 0 0 3px rgba(255,205,70,.88),0 0 24px rgba(255,205,70,.2)}

.text-color-wrap{position:relative;display:flex;align-items:center;flex:0 0 auto}
.text-color-button{position:relative}
.text-color-indicator{
  position:absolute;
  right:4px;
  bottom:4px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--text-color,currentColor);
  border:1.5px solid rgba(8,12,18,.9);
  opacity:.45;
}
.text-color-button.has-color .text-color-indicator{opacity:1;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.text-color-picker{
  position:absolute;
  z-index:120;
  right:0;
  bottom:calc(100% + 10px);
  width:246px;
  padding:12px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(21,27,38,.97);
  box-shadow:0 18px 48px rgba(0,0,0,.4);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.text-color-picker[hidden]{display:none!important}
.text-color-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.text-color-title b{font-size:13px}
.text-color-reset{border:0;background:transparent;color:inherit;opacity:.72;cursor:pointer;padding:4px 6px;font-size:12px}
.text-color-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.text-color-swatches button{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  aspect-ratio:1.35/1;
  min-height:36px;
  border-radius:11px;
  border:2px solid rgba(255,255,255,.18);
  background:var(--swatch);
  cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);
}
.text-color-swatches button:hover,.text-color-swatches button:focus-visible{transform:scale(1.05);outline:2px solid rgba(255,255,255,.65);outline-offset:2px}
.text-color-custom{margin-top:11px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;opacity:.85}
.text-color-custom input[type=color]{width:42px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;cursor:pointer}

@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .message-search-bar{padding:8px;gap:6px}
  .message-search-count{min-width:48px;font-size:11px}
  .message-search-bar .control-icon.compact{width:34px;height:34px;min-width:34px}
  .text-color-picker{
    position:fixed;
    left:8px;
    right:8px;
    bottom:calc(72px + env(safe-area-inset-bottom,0px));
    width:auto;
    max-width:none;
  }
  .text-color-swatches{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:390px){
  .message-search-count{display:none}
  .message-search-input input{font-size:16px}
}


/* yoMessage 1.2.22 - text colour control inside message field */
.composer-input-wrap{position:relative!important;min-width:0}
.composer-input-wrap textarea{padding-right:48px!important}
.composer-input-wrap>.text-color-wrap{
  position:absolute!important;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  z-index:8;
  display:flex;
  align-items:center;
  pointer-events:auto;
}
.composer-input-wrap>.text-color-wrap .text-color-button{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.78;
}
.composer-input-wrap>.text-color-wrap .text-color-button:hover,
.composer-input-wrap>.text-color-wrap .text-color-button:focus-visible{opacity:1;background:rgba(255,255,255,.07)!important}
.composer-input-wrap>.text-color-wrap .text-color-picker{right:0}
@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .composer-input-wrap{position:relative!important}
  .composer-input-wrap textarea{padding-right:44px!important}
  .composer-input-wrap>.text-color-wrap{right:4px}
  .composer-input-wrap>.text-color-wrap .text-color-button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important}
}

/* yoMessage 1.2.23 - responsive composer width fix
   Reserve one explicit grid column for every control. The message field
   receives only the remaining space and can shrink without pushing the
   send button to another row. */
.composer{
  grid-template-columns:auto minmax(0,1fr) auto auto auto!important;
  align-items:end;
}
.composer-input-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.composer-input-wrap textarea{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .composer{
    grid-template-columns:auto minmax(0,1fr) auto auto auto!important;
    gap:6px!important;
  }
}

@media(max-width:430px){
  .composer{gap:5px!important;padding-left:7px!important;padding-right:7px!important}
  .composer>button.control-icon,
  .composer>.control-icon{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
  }
  .composer-input-wrap textarea{min-height:38px!important}
}

@media(max-width:360px){
  .composer{gap:4px!important;padding-left:5px!important;padding-right:5px!important}
  .composer>button.control-icon,
  .composer>.control-icon{
    width:36px!important;
    min-width:36px!important;
    height:36px!important;
  }
  .composer-input-wrap textarea{padding-left:.7rem!important;padding-right:42px!important}
}

/* yoMessage 1.2.24 - text colour popover containment & mobile layout fix
   Keep the palette anchored to the colour button. Using position:fixed inside
   the transformed colour wrapper created a tiny containing block on mobile. */
.text-color-picker{
  box-sizing:border-box!important;
  width:min(286px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  min-width:0!important;
  overflow:hidden!important;
  right:0!important;
  left:auto!important;
}
.text-color-title{
  min-width:0!important;
  flex-wrap:nowrap!important;
}
.text-color-title b,
.text-color-reset{
  white-space:nowrap!important;
  min-width:0!important;
}
.text-color-reset{
  flex:0 0 auto!important;
  width:auto!important;
  max-width:45%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.text-color-swatches{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:8px!important;
  overflow:hidden!important;
}
.text-color-swatches button{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  aspect-ratio:auto!important;
  margin:0!important;
  padding:0!important;
  flex:none!important;
}
.text-color-custom{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
}
.text-color-custom input[type=color]{
  flex:0 0 42px!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  box-sizing:border-box!important;
}

@media(max-width:820px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .composer-input-wrap>.text-color-wrap .text-color-picker{
    position:absolute!important;
    right:-4px!important;
    left:auto!important;
    bottom:calc(100% + 12px)!important;
    width:min(300px,calc(100vw - 16px))!important;
    max-width:calc(100vw - 16px)!important;
    padding:12px!important;
    border-radius:16px!important;
  }
}

@media(max-width:360px){
  .composer-input-wrap>.text-color-wrap .text-color-picker{
    right:-2px!important;
    width:min(280px,calc(100vw - 12px))!important;
    max-width:calc(100vw - 12px)!important;
    padding:10px!important;
  }
  .text-color-swatches{gap:7px!important}
  .text-color-swatches button{
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    border-radius:10px!important;
  }
}

/* yoMessage 1.2.28 - edge-back gesture + URL previews */
.link-preview-slot{margin-top:8px;max-width:100%}
.link-preview-card{display:flex;overflow:hidden;min-width:0;max-width:100%;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:14px;background:color-mix(in srgb,var(--panel2) 80%,transparent);color:inherit;text-decoration:none;box-shadow:0 5px 16px #0002}
.link-preview-card:hover{filter:brightness(1.06)}
.link-preview-image{width:112px;min-width:112px;aspect-ratio:1.25/1;object-fit:cover;background:#0f141c}
.link-preview-copy{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:center;gap:4px;padding:10px 11px}
.link-preview-copy b,.link-preview-copy span,.link-preview-copy small{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical}
.link-preview-copy b{-webkit-line-clamp:2;font-size:.9rem;line-height:1.25;color:var(--text)}
.link-preview-copy span{-webkit-line-clamp:2;font-size:.78rem;line-height:1.3;color:color-mix(in srgb,var(--text) 78%,var(--muted))}
.link-preview-copy small{-webkit-line-clamp:1;font-size:.7rem;color:var(--muted)}
.link-preview-skeleton{display:grid;gap:7px;padding:12px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:14px;background:color-mix(in srgb,var(--panel2) 68%,transparent)}
.link-preview-skeleton span{display:block;height:9px;border-radius:999px;background:linear-gradient(90deg,#ffffff0b,#ffffff20,#ffffff0b);background-size:220% 100%;animation:ymLinkPreviewPulse 1.1s linear infinite}
.link-preview-skeleton span:nth-child(1){width:78%}.link-preview-skeleton span:nth-child(2){width:94%}.link-preview-skeleton span:nth-child(3){width:46%}
@keyframes ymLinkPreviewPulse{to{background-position:-220% 0}}
.chat.edge-swipe-active{transition:none!important;transform:translateX(var(--edge-swipe-x,0));will-change:transform;box-shadow:-18px 0 38px #0008;touch-action:pan-y}
@media(max-width:560px){.link-preview-image{width:88px;min-width:88px}.link-preview-copy{padding:9px}.link-preview-copy span{display:none}}
@media(prefers-reduced-motion:reduce){.link-preview-skeleton span{animation:none}.chat.edge-swipe-active{transition:none!important}}

/* yoMessage 1.2.29 - reliable mobile edge-back gesture */
@media(max-width:900px){.chat{touch-action:pan-y!important;overscroll-behavior-x:none}.chat.edge-swipe-active{transition:none!important;transform:translate3d(var(--edge-swipe-x,0),0,0)!important;will-change:transform}}

/* yoMessage 1.2.37 - tall portrait phone layout
   Some Android/HyperOS WebViews expose a desktop-like layout viewport (~980 CSS px)
   despite running on a phone. Detect the physical screen shape instead of relying
   only on CSS width/pointer media features. Tall portrait phones must always use
   the single-view mobile messenger layout. */
@media (orientation:portrait) and (max-aspect-ratio:3/5){
  html,body,#app{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .messenger{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:100dvh!important;grid-template-columns:none!important;overflow:hidden!important}
  .sidebar{display:flex!important;width:100%!important;max-width:100%!important;min-width:0!important;height:100dvh!important;border-right:0!important;overflow:hidden!important}
  .sidebar-track{width:200%!important;max-width:none!important;height:100%!important;display:flex!important}
  .sidebar-panel{width:50%!important;max-width:50%!important;min-width:0!important;flex:0 0 50%!important;height:100%!important}
  .sidebar.settings-open .sidebar-track{transform:translateX(-50%)!important}
  .sidebar-main,.settings-panel{min-width:0!important;overflow:hidden!important}
  .thread-list,.settings-scroll{min-width:0!important;overflow-x:hidden!important;overflow-y:auto!important}
  .chat{position:fixed!important;inset:0!important;z-index:20!important;width:100%!important;max-width:100%!important;height:100dvh!important;min-width:0!important;grid-template-rows:auto 1fr auto auto!important}
  .chat-empty{display:none!important}
  .mobile-back{display:grid!important}
  .side-head{padding:max(10px,env(safe-area-inset-top)) 12px 10px!important}
  .side-foot{padding:8px 10px max(10px,env(safe-area-inset-bottom))!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .plugin-actions{padding-left:10px!important;padding-right:10px!important;max-width:100%!important;overflow:hidden!important}
  .settings-panel-head{padding:max(10px,env(safe-area-inset-top)) 12px 10px!important}
  .settings-scroll{padding:10px 8px max(14px,env(safe-area-inset-bottom))!important}
  .settings-item,.settings-item:link,.settings-item:visited{max-width:100%!important;min-width:0!important}
}


/* yoMessage 1.2.38 - User-Plugin switches */
.user-plugin-item{cursor:default;}
.user-plugin-item .settings-copy{min-width:0;}
.user-plugin-switch{position:relative;flex:0 0 auto;width:46px;height:28px;margin-left:auto;}
.user-plugin-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2;}
.user-plugin-switch>span{position:absolute;inset:2px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.12);transition:background .18s ease,border-color .18s ease;}
.user-plugin-switch>span::after{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:transform .18s ease;}
.user-plugin-switch input:checked+span{background:var(--accent,#7c5cff);border-color:transparent;}
.user-plugin-switch input:checked+span::after{transform:translateX(18px);}
.user-plugin-switch input:focus-visible+span{outline:2px solid var(--accent,#7c5cff);outline-offset:2px;}
.user-plugin-switch input:disabled+span{opacity:.55;}

/* yoMessage 1.2.40 - User-Plugin launcher icon + mobile switch containment */
.user-plugin-item{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  grid-template-columns:40px minmax(0,1fr) 46px!important;
  overflow:hidden!important;
}
.user-plugin-item .settings-copy{
  min-width:0!important;
  overflow:hidden!important;
}
.user-plugin-switch{
  width:46px!important;
  max-width:46px!important;
  min-width:46px!important;
  justify-self:end!important;
  margin-left:0!important;
  box-sizing:border-box!important;
}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .user-plugin-item{
    grid-template-columns:36px minmax(0,1fr) 44px!important;
    gap:8px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .user-plugin-switch{
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:27px!important;
  }
  .user-plugin-switch>span::after{
    width:19px!important;
    height:19px!important;
  }
  .user-plugin-switch input:checked+span::after{
    transform:translateX(17px)!important;
  }
}\n/* yoMessage 1.2.41 - User plugins as app icons */\n.user-plugin-app-grid{\n  display:grid;\n  grid-template-columns:repeat(auto-fill,minmax(72px,1fr));\n  gap:10px;\n  width:100%;\n  padding:2px 0 4px;\n}\n.user-plugin-app{\n  appearance:none;\n  border:0;\n  background:transparent;\n  color:var(--text);\n  min-width:0;\n  padding:4px 2px;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:flex-start;\n  gap:7px;\n  cursor:pointer;\n  font:inherit;\n}\n.user-plugin-app-icon{\n  width:58px;\n  height:58px;\n  display:grid;\n  place-items:center;\n  border-radius:17px;\n  background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 72%,var(--purple) 28%),color-mix(in srgb,var(--panel2) 70%,var(--cyan) 30%));\n  border:1px solid color-mix(in srgb,var(--line) 72%,#fff 10%);\n  box-shadow:0 7px 18px color-mix(in srgb,var(--bg) 45%,transparent),0 1px 0 rgba(255,255,255,.08) inset;\n  transition:transform .15s ease,filter .15s ease;\n}\n.user-plugin-app:hover .user-plugin-app-icon,.user-plugin-app:focus-visible .user-plugin-app-icon{filter:brightness(1.08);transform:translateY(-1px)}\n.user-plugin-app:active .user-plugin-app-icon{transform:scale(.97)}\n.user-plugin-app:focus-visible{outline:none}\n.user-plugin-app:focus-visible .user-plugin-app-icon{outline:2px solid var(--cyan);outline-offset:2px}\n.user-plugin-app-label{\n  max-width:82px;\n  font-size:.73rem;\n  line-height:1.15;\n  font-weight:680;\n  text-align:center;\n  white-space:nowrap;\n  overflow:hidden;\n  text-overflow:ellipsis;\n}\n@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){\n  .user-plugin-app-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}\n  .user-plugin-app-icon{width:56px;height:56px;border-radius:16px}\n  .user-plugin-app-label{font-size:.72rem;max-width:72px}\n}\n@media(max-width:380px){\n  .user-plugin-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}\n}\n

/* yoMessage 1.2.42 - app-style user plugin tiles */
.user-plugin-app-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(82px,1fr))!important;
  gap:12px!important;
  width:100%!important;
  padding:6px 2px 8px!important;
}
.user-plugin-app{
  appearance:none!important;
  border:0!important;
  background:transparent!important;
  color:var(--text)!important;
  min-width:0!important;
  padding:3px 1px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  cursor:pointer!important;
  font:inherit!important;
}
.user-plugin-app-icon{
  width:68px!important;
  height:68px!important;
  aspect-ratio:1/1!important;
  display:grid!important;
  place-items:center!important;
  border-radius:19px!important;
  background:
    linear-gradient(145deg,
      color-mix(in srgb,var(--accent,var(--purple)) 28%,var(--panel2) 72%),
      color-mix(in srgb,var(--cyan,var(--accent,var(--purple))) 24%,var(--panel) 76%))!important;
  border:1px solid color-mix(in srgb,var(--text) 10%,var(--line) 90%)!important;
  box-shadow:
    0 10px 22px color-mix(in srgb,var(--bg) 55%,transparent),
    0 2px 6px color-mix(in srgb,var(--accent,var(--purple)) 16%,transparent),
    inset 0 1px 0 rgba(255,255,255,.10)!important;
  overflow:hidden!important;
  transition:transform .15s ease,filter .15s ease,box-shadow .15s ease!important;
}
.user-plugin-app-icon .ui-icon{
  width:31px!important;
  height:31px!important;
  stroke-width:1.8!important;
}
.user-plugin-app:hover .user-plugin-app-icon,
.user-plugin-app:focus-visible .user-plugin-app-icon{
  filter:brightness(1.08)!important;
  transform:translateY(-2px)!important;
  box-shadow:
    0 13px 28px color-mix(in srgb,var(--bg) 52%,transparent),
    0 3px 9px color-mix(in srgb,var(--accent,var(--purple)) 22%,transparent),
    inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.user-plugin-app:active .user-plugin-app-icon{transform:scale(.97)!important}
.user-plugin-app:focus-visible{outline:none!important}
.user-plugin-app:focus-visible .user-plugin-app-icon{outline:2px solid var(--accent,var(--cyan))!important;outline-offset:3px!important}
.user-plugin-app-label{
  max-width:88px!important;
  font-size:.76rem!important;
  line-height:1.15!important;
  font-weight:700!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .user-plugin-app-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}
  .user-plugin-app-icon{width:64px!important;height:64px!important;border-radius:18px!important}
  .user-plugin-app-label{font-size:.74rem!important;max-width:78px!important}
}
@media(max-width:380px){
  .user-plugin-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* yoMessage 1.2.43 - larger home chat rows and user-plugin app icons */
.thread{
  grid-template-columns:54px minmax(0,1fr)!important;
  gap:13px!important;
  padding:12px 11px!important;
  min-height:76px!important;
  border-radius:20px!important;
}
.thread-avatar{
  width:54px!important;
  height:54px!important;
  font-size:1.02rem!important;
}
.thread strong{
  font-size:1.01rem!important;
  line-height:1.22!important;
}
.thread small{
  font-size:.82rem!important;
  line-height:1.3!important;
  margin-top:5px!important;
}
.user-plugin-app-grid{
  grid-template-columns:repeat(auto-fill,minmax(92px,1fr))!important;
  gap:14px!important;
  padding:8px 2px 10px!important;
}
.user-plugin-app{
  gap:9px!important;
}
.user-plugin-app-icon{
  width:76px!important;
  height:76px!important;
  border-radius:21px!important;
}
.user-plugin-app-icon .ui-icon{
  width:35px!important;
  height:35px!important;
}
.user-plugin-app-label{
  max-width:96px!important;
  font-size:.80rem!important;
}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .thread-list{padding:6px 8px!important}
  .thread{
    grid-template-columns:52px minmax(0,1fr)!important;
    gap:12px!important;
    padding:11px 10px!important;
    min-height:72px!important;
  }
  .thread-avatar{width:52px!important;height:52px!important}
  .thread strong{font-size:.99rem!important}
  .thread small{font-size:.80rem!important}
  .user-plugin-app-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:11px!important;
  }
  .user-plugin-app-icon{
    width:72px!important;
    height:72px!important;
    border-radius:20px!important;
  }
  .user-plugin-app-icon .ui-icon{width:34px!important;height:34px!important}
  .user-plugin-app-label{font-size:.78rem!important;max-width:86px!important}
}
@media(max-width:400px){
  .user-plugin-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
/* yoMessage 1.2.46 - user-plugin apps in horizontal wrapping rows */
.user-plugin-app-grid{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:14px 12px!important;
  width:100%!important;
  max-width:100%!important;
  padding:8px 6px 12px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
.user-plugin-app{
  flex:0 0 84px!important;
  width:84px!important;
  max-width:84px!important;
  min-width:84px!important;
}
.user-plugin-app-icon{
  margin-inline:auto!important;
}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .user-plugin-app-grid{
    gap:12px 10px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .user-plugin-app{
    flex-basis:80px!important;
    width:80px!important;
    max-width:80px!important;
    min-width:80px!important;
  }
}
@media(max-width:380px){
  .user-plugin-app{
    flex-basis:76px!important;
    width:76px!important;
    max-width:76px!important;
    min-width:76px!important;
  }
}

/* yoMessage 1.2.49 shared attachment menu */
.ym-attachment-menu{position:fixed;z-index:2147482950;width:min(340px,calc(100vw - 16px));padding:7px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 20px 55px #0008;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ym-attachment-menu button{width:100%;min-height:58px;padding:8px 10px;border:0;border-radius:12px;background:transparent;color:var(--text);display:flex;align-items:center;gap:11px;text-align:left}
.ym-attachment-menu button:hover{background:var(--panel2)}.ym-attachment-menu button>svg{flex:0 0 auto}.ym-attachment-menu button>span{min-width:0}.ym-attachment-menu b,.ym-attachment-menu small{display:block}.ym-attachment-menu small{margin-top:2px;color:var(--muted)}

/* yoMessage 1.2.51 - yoApps panel width correction
   Each of the three sidebar panels occupies exactly one visible sidebar width. */
.sidebar-track{
  width:400%!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.sidebar-track>.sidebar-panel{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.sidebar.settings-open .sidebar-track{
  transform:translateX(-25%)!important;
}
.sidebar.yoapps-open .sidebar-track{
  transform:translateX(-50%)!important;
}

/* Keep all content inside the visible panel width. */
.sidebar-panel .side-head,
.sidebar-panel .thread-list,
.sidebar-panel .user-plugin-apps,
.sidebar-panel .side-foot,
.sidebar-panel .settings-panel-head,
.sidebar-panel .settings-scroll{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.side-head .actions{
  flex:0 0 auto!important;
  min-width:max-content!important;
}
.side-brand{
  min-width:0!important;
  flex:1 1 auto!important;
}
.side-foot{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px!important;
  overflow:hidden!important;
}
.side-foot .btn{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
#settings-toggle{
  flex:0 0 auto!important;
  display:grid!important;
  visibility:visible!important;
}

@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .sidebar-track{
    width:400%!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .sidebar-track>.sidebar-panel{
    width:100%!important;
    min-width:0!important;
  }
  .sidebar.settings-open .sidebar-track{
    transform:translateX(-25%)!important;
  }
  .sidebar.yoapps-open .sidebar-track{
    transform:translateX(-50%)!important;
  }
  .side-foot{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .side-foot .btn{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }
}

/* yoMessage 1.2.52 - Darstellung & Erweiterungen submenu */
.sidebar.appearance-extensions-open .sidebar-track{
  transform:translateX(-75%)!important;
}
.appearance-extensions-panel{
  min-width:0!important;
}
@media(max-width:699px), (hover:none) and (pointer:coarse) and (max-width:900px){
  .sidebar.appearance-extensions-open .sidebar-track{
    transform:translateX(-75%)!important;
  }
}

/* yoMessage 1.2.53 - auto-growing chat composer textarea */
#composer textarea{
  resize:none!important;
  overflow-y:hidden;
  min-height:44px;
  max-height:calc(1.4em * 5 + 24px);
  line-height:1.4;
  box-sizing:border-box;
}

/* yoMessage 1.2.54 - distinct colors for settings areas */
#settings-panel .settings-section:nth-of-type(1) .settings-item{
  --settings-accent:#55b7ff;
}
#settings-panel .settings-section:nth-of-type(2) .settings-item{
  --settings-accent:#8f7cff;
}
#settings-panel .settings-section:nth-of-type(3) .settings-item{
  --settings-accent:#45d7c6;
}
#settings-panel .settings-section:nth-of-type(4) .settings-item{
  --settings-accent:#f3a85b;
}
#settings-panel .settings-section:nth-of-type(5) .settings-item{
  --settings-accent:#e879f9;
}
#settings-panel .settings-section:nth-of-type(6) .settings-item{
  --settings-accent:#ff6f91;
}

#yoapps-panel .settings-item{
  --settings-accent:#8f7cff;
}
#appearance-extensions-panel .settings-item{
  --settings-accent:#e879f9;
}

.settings-item{
  border-color:color-mix(in srgb,var(--settings-accent,var(--line)) 28%,var(--line))!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--settings-accent,var(--panel2)) 9%,var(--panel2)),
      color-mix(in srgb,var(--settings-accent,var(--panel2)) 3%,var(--panel2))
    )!important;
}
.settings-item .settings-icon{
  color:var(--settings-accent,var(--text))!important;
  background:color-mix(in srgb,var(--settings-accent,var(--panel2)) 16%,var(--panel2))!important;
  border-color:color-mix(in srgb,var(--settings-accent,var(--line)) 30%,var(--line))!important;
}
.settings-item:hover,
.settings-item:focus-visible{
  border-color:color-mix(in srgb,var(--settings-accent,var(--cyan)) 58%,var(--line))!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--settings-accent,var(--panel2)) 16%,var(--panel2)),
      color-mix(in srgb,var(--settings-accent,var(--panel2)) 8%,var(--panel2))
    )!important;
}
.settings-item .settings-chevron{
  color:color-mix(in srgb,var(--settings-accent,var(--muted)) 70%,var(--muted))!important;
}

/* Keep logout clearly distinct */
.settings-item-logout{
  --settings-accent:#ff6b78!important;
}

/* yoMessage 1.2.59 - yoApps divider above active app icons */
.user-plugin-section{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  padding-top:4px;
}
.user-plugin-section-title{
  position:relative;
  display:flex;
  align-items:center;
  width:100%;
  min-height:20px;
  margin:0 0 8px;
  overflow:hidden;
}
.user-plugin-section-title::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:1px;
  transform:translateY(-50%);
  background:linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb,var(--purple,#7c5cff) 48%,transparent) 16%,
    color-mix(in srgb,var(--cyan,#22d3ee) 62%,transparent) 52%,
    color-mix(in srgb,var(--purple,#7c5cff) 48%,transparent) 84%,
    transparent 100%
  );
}
.user-plugin-section-title>span{
  position:relative;
  z-index:1;
  margin-left:12px;
  padding:0 7px;
  background:var(--panel,#111827);
  color:color-mix(in srgb,var(--muted,#9aa4b2) 88%,var(--text,#fff));
  font-size:.70rem;
  line-height:1.2;
  font-weight:650;
  letter-spacing:.08em;
}

/* yoMessage 1.2.60 - registration activation flow */
.crypto-card{text-align:center;overflow:hidden;position:relative}.crypto-card h2{margin:18px 0 6px}.crypto-subtitle{margin:0;color:var(--muted);font-size:.9rem}.crypto-orbit{position:relative;width:118px;height:118px;margin:6px auto 8px;display:grid;place-items:center}.crypto-core{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:1.35rem;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--purple,#7c5cff),var(--cyan,#22d3ee));box-shadow:0 0 32px color-mix(in srgb,var(--purple,#7c5cff) 38%,transparent);z-index:2}.crypto-orbit>span{position:absolute;inset:5px;border:1px solid color-mix(in srgb,var(--cyan,#22d3ee) 46%,transparent);border-radius:50%;animation:ymCryptoSpin 2.4s linear infinite}.crypto-orbit>span:nth-child(3){inset:17px;border-color:color-mix(in srgb,var(--purple,#7c5cff) 48%,transparent);animation-duration:1.8s;animation-direction:reverse}.crypto-orbit>span:nth-child(4){inset:30px;border-style:dashed;animation-duration:1.2s}.crypto-orbit>span::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;top:-4px;left:50%;background:var(--cyan,#22d3ee);box-shadow:0 0 12px currentColor}.crypto-stream{display:flex;justify-content:center;gap:7px;margin:18px 0 12px;font:600 .7rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);overflow:hidden}.crypto-stream i{font-style:normal;animation:ymCryptoPulse 1.2s ease-in-out infinite}.crypto-stream i:nth-child(2n){animation-delay:.2s}.crypto-stream i:nth-child(3n){animation-delay:.4s}.crypto-progress{height:4px;border-radius:99px;background:var(--panel2);overflow:hidden;margin:0 auto 12px;max-width:280px}.crypto-progress b{display:block;height:100%;width:45%;border-radius:inherit;background:linear-gradient(90deg,var(--purple,#7c5cff),var(--cyan,#22d3ee));animation:ymCryptoProgress 1.2s ease-in-out infinite}.crypto-step{font-size:.78rem;color:var(--muted);min-height:1.2em}.profile-user-id{display:inline-flex;align-items:center;gap:8px;margin-top:9px;padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.profile-user-id span{font-size:.72rem;color:var(--muted)}.profile-user-id code{font-size:.78rem;color:var(--cyan,#22d3ee);user-select:all}@keyframes ymCryptoSpin{to{transform:rotate(360deg)}}@keyframes ymCryptoPulse{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes ymCryptoProgress{0%{transform:translateX(-120%)}50%{transform:translateX(120%)}100%{transform:translateX(300%)}}@media(prefers-reduced-motion:reduce){.crypto-orbit>span,.crypto-stream i,.crypto-progress b{animation:none!important}}
