:root{--bg: #f7f9fd;--surface: #ffffff;--surface-2: #eef2f9;--surface-3: #e3e9f3;--text: #1b1c1f;--muted: #5b5f67;--outline: #c6cad3;--primary: #0b57d0;--on-primary: #ffffff;--primary-container: #d3e3fd;--on-primary-container: #041e49;--danger: #b3261e;--danger-container: #f9dedc;--success: #146c2e;--success-container: #c4eed0;--warning-container: #ffe08a;--on-warning-container: #3b2f00;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .05);--radius: 20px;--nav-h: 76px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #121316;--surface: #1d1f23;--surface-2: #26292e;--surface-3: #30343a;--text: #e8eaee;--muted: #a9adb6;--outline: #454a52;--primary: #a8c7fa;--on-primary: #062e6f;--primary-container: #0842a0;--on-primary-container: #d3e3fd;--danger: #f2b8b5;--danger-container: #8c1d18;--success: #6dd58c;--success-container: #0f5223;--warning-container: #594400;--on-warning-container: #ffe08a;--shadow: 0 1px 2px rgba(0, 0, 0, .4);color-scheme:dark}}*{box-sizing:border-box}html{font-size:112.5%;-webkit-text-size-adjust:100%}html[data-text=large]{font-size:125%}html[data-text=xlarge]{font-size:140%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.45}a{color:var(--primary)}h1{font-size:1.6rem;line-height:1.2;margin:0 0 .75rem}h2{font-size:1.2rem;margin:1.5rem 0 .6rem}h3{font-size:1.05rem;margin:1rem 0 .4rem}p{margin:.4rem 0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:.75rem}.grow{flex:1;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app{min-height:100vh;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.5rem;padding:calc(env(safe-area-inset-top) + .5rem) 1rem .5rem;background:var(--bg)}.topbar .title{font-size:1.3rem;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{padding:.25rem 1rem calc(var(--nav-h) + 6rem + env(safe-area-inset-bottom));max-width:1100px;margin:0 auto}.narrow{max-width:640px;margin:0 auto}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:space-around;background:var(--surface-2);padding:.4rem .25rem calc(.4rem + env(safe-area-inset-bottom));border-top:1px solid var(--surface-3)}.navitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;text-decoration:none;color:var(--muted);font-size:.8rem;font-weight:500;padding:.15rem 0;min-height:3.2rem;position:relative}.navitem .pill{display:grid;place-items:center;width:4rem;height:2rem;border-radius:999px}.navitem.active{color:var(--text)}.navitem.active .pill{background:var(--primary-container);color:var(--on-primary-container)}.navitem .badge{position:absolute;top:0;left:calc(50% + .6rem)}@media(min-width:900px){.app{display:grid;grid-template-columns:6.5rem 1fr}.bottomnav{position:sticky;top:0;height:100vh;flex-direction:column;justify-content:flex-start;gap:.75rem;padding:1.25rem .25rem;border-top:0;border-right:1px solid var(--surface-3)}.navitem{flex:0}.main{padding-bottom:6rem}}.card{background:var(--surface);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow)}.card+.card{margin-top:.9rem}.list{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.list>*+*{border-top:1px solid var(--surface-3)}.listrow{display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;color:inherit;text-decoration:none;min-height:3.5rem}a.listrow:hover,button.listrow:hover{background:var(--surface-2)}button.listrow{width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer}button,.btn{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:3rem;padding:.6rem 1.3rem;border-radius:999px;border:0;cursor:pointer;background:var(--primary);color:var(--on-primary);font-weight:600;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{background:var(--primary-container);color:var(--on-primary-container)}.btn.outline{background:transparent;color:var(--primary);border:1px solid var(--outline)}.btn.text{background:transparent;color:var(--primary);padding:.6rem .8rem}.btn.danger{background:var(--danger-container);color:var(--danger)}.btn.block{width:100%}.btn.small{min-height:2.4rem;padding:.35rem .9rem;font-size:.9rem}.iconbtn{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:999px;border:0;background:transparent;color:var(--text);cursor:pointer;position:relative;text-decoration:none}.iconbtn:hover{background:var(--surface-2)}.fab{position:fixed;right:1rem;bottom:calc(var(--nav-h) + 1rem + env(safe-area-inset-bottom));z-index:25;display:inline-flex;align-items:center;gap:.5rem;min-height:3.6rem;padding:0 1.4rem;border-radius:1.1rem;background:var(--primary-container);color:var(--on-primary-container);font-weight:600;text-decoration:none;box-shadow:0 3px 10px #0000002e}@media(min-width:900px){.fab{bottom:2rem;right:2rem}}label.field{display:flex;flex-direction:column;gap:.3rem;font-weight:500}label.field>span.hint{font-weight:400;color:var(--muted);font-size:.85rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--outline);border-radius:14px;padding:.75rem .9rem;min-height:3.1rem;width:100%}textarea{min-height:6rem;resize:vertical}input:focus,select:focus,textarea:focus,.btn:focus-visible,.iconbtn:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}input[type=checkbox],input[type=radio]{width:1.4rem;height:1.4rem;min-height:0;accent-color:var(--primary)}.error{background:var(--danger-container);color:var(--danger);padding:.75rem 1rem;border-radius:14px}.notice{background:var(--primary-container);color:var(--on-primary-container);padding:.75rem 1rem;border-radius:14px}.warning{background:var(--warning-container);color:var(--on-warning-container);padding:.75rem 1rem;border-radius:14px}.success{background:var(--success-container);color:var(--success);padding:.75rem 1rem;border-radius:14px}.badge{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700}@media(prefers-color-scheme:dark){.badge{color:#3a0907}}.iconbtn .badge{position:absolute;top:.3rem;right:.2rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:999px;background:var(--surface-2);font-size:.85rem;border:1px solid transparent}button.chip{cursor:pointer;font:inherit;font-size:.9rem;min-height:2.6rem;color:var(--text)}button.chip.on{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:999px;color:#fff;font-weight:600;width:2.5rem;height:2.5rem;font-size:1rem;-webkit-user-select:none;user-select:none}.avatar.sm{width:1.9rem;height:1.9rem;font-size:.8rem}.avatar.photo{object-fit:cover;background:var(--surface-2)}.avatar.lg{width:5.5rem;height:5.5rem;font-size:2rem}.presence{position:relative;display:inline-block;flex:none}.presence .dot{position:absolute;right:-1px;bottom:-1px;width:.85rem;height:.85rem;border-radius:999px;border:2px solid var(--surface);background:var(--success)}.presence .dot.away{background:#e8a200}.online-row{display:flex;gap:1rem;overflow-x:auto;padding:.25rem .1rem .5rem}.online-row .who{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:4rem;text-align:center;font-size:.85rem}.chatopts-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:60}.chatopts{position:fixed;left:0;right:0;bottom:0;z-index:61;background:var(--surface);border-radius:22px 22px 0 0;padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom));box-shadow:var(--shadow);max-width:560px;margin:0 auto}.chatopts .chatopts-title{font-weight:600;padding:.5rem .75rem .75rem}.chatopts button.listrow{width:100%;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.chatopts button.listrow.danger{color:var(--danger)}.segmented{display:flex;border:1px solid var(--outline);border-radius:999px;overflow:hidden}.segmented button{flex:1;border:0;background:transparent;color:var(--text);min-height:3rem;padding:0 .6rem;cursor:pointer;font-weight:500;white-space:nowrap}.segmented button+button{border-left:1px solid var(--outline)}.segmented button.on{background:var(--primary-container);color:var(--on-primary-container);font-weight:700}.toggle{display:flex;align-items:flex-start;gap:.9rem;padding:.85rem 1rem;cursor:pointer}.toggle .text{flex:1}.toggle .text strong{display:block;font-weight:600}.switch{position:relative;width:3.25rem;height:2rem;flex:none;margin-top:.1rem}.switch input{opacity:0;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer;z-index:1}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--surface-3);border:2px solid var(--outline);transition:.15s}.switch .track:after{content:"";position:absolute;top:50%;left:.3rem;width:1rem;height:1rem;border-radius:999px;background:var(--outline);transform:translateY(-50%);transition:.15s}.switch input:checked+.track{background:var(--primary);border-color:var(--primary)}.switch input:checked+.track:after{left:calc(100% - 1.55rem);width:1.25rem;height:1.25rem;background:var(--on-primary)}.switch input:focus-visible+.track{outline:3px solid var(--primary);outline-offset:2px}.calhead{display:flex;align-items:center;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}.calhead .month{font-size:1.25rem;font-weight:600;flex:1;min-width:9rem}.agenda-day{margin-top:1.1rem}.agenda-day h3{font-size:.95rem;color:var(--muted);margin:0 0 .4rem .25rem;font-weight:600}.agenda-day.today h3{color:var(--primary)}.event-row{display:flex;gap:.85rem;align-items:stretch;padding:.8rem 1rem;text-decoration:none;color:inherit}.event-row:hover{background:var(--surface-2)}.event-row .bar{width:.35rem;border-radius:999px;flex:none}.event-row .title{font-weight:600}.event-row .meta{color:var(--muted);font-size:.88rem}.tag{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background:var(--surface-2);color:var(--muted);font-weight:600;white-space:nowrap}.tag.going{background:var(--success-container);color:var(--success)}.tag.pending{background:var(--warning-container);color:var(--on-warning-container)}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.month-grid .dow{padding:.5rem .4rem;font-size:.75rem;color:var(--muted);font-weight:600;text-align:center;background:var(--surface-2)}.month-grid .cell{min-height:6.2rem;padding:.3rem;border-top:1px solid var(--surface-3);border-left:1px solid var(--surface-3);background:none;border-right:0;border-bottom:0;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;min-width:0}.month-grid .cell:nth-child(7n+1){border-left:0}.month-grid .cell.other{color:var(--muted);background:color-mix(in srgb,var(--surface-2) 45%,transparent)}.month-grid .cell.selected{box-shadow:inset 0 0 0 2px var(--primary)}.month-grid .num{font-size:.85rem;font-weight:600;width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:999px}.month-grid .cell.today .num{background:var(--primary);color:var(--on-primary)}.month-grid .pill-ev{font-size:.72rem;line-height:1.25;padding:.1rem .35rem;border-radius:6px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-grid .more{font-size:.72rem;color:var(--muted)}.dots{display:flex;gap:.2rem;flex-wrap:wrap}.dot{width:.45rem;height:.45rem;border-radius:999px}@media(max-width:640px){.month-grid .cell{min-height:3.6rem;align-items:center}.month-grid .pill-ev,.month-grid .more{display:none}}@media(min-width:641px){.month-grid .dots{display:none}}.event-hero{border-left:.45rem solid var(--primary)}.kv{display:flex;gap:.75rem;align-items:flex-start;margin:.6rem 0}.kv .icon{color:var(--muted);flex:none;margin-top:.1rem}.progress{height:.5rem;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--primary);border-radius:999px}.comment{display:flex;gap:.6rem;margin:.8rem 0}.bubble{background:var(--surface-2);padding:.6rem .9rem;border-radius:4px 18px 18px;flex:1;min-width:0;overflow-wrap:anywhere}.bubble.mine{background:var(--primary-container);color:var(--on-primary-container)}.colors{display:flex;gap:.5rem;flex-wrap:wrap}.colors button{width:2.6rem;height:2.6rem;border-radius:999px;border:3px solid transparent;cursor:pointer}.colors button.on{border-color:var(--text)}.auth{max-width:460px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 2rem) 1rem 3rem}.brand{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:1.35rem;font-weight:700}.brand img{width:3rem;height:3rem}.menu{position:absolute;right:.5rem;top:3.6rem;z-index:40;min-width:15rem;background:var(--surface);border-radius:16px;box-shadow:0 6px 24px #0003;overflow:hidden}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35}.spinner{padding:3rem;text-align:center;color:var(--muted)}.main.flush{padding:0;max-width:none}.chats-split{display:flex;height:calc(100dvh - 4.2rem - var(--nav-h) - env(safe-area-inset-bottom));background:var(--bg)}.chats-list{flex:1;min-width:0;overflow-y:auto;padding-bottom:6rem}.chats-pane{display:none;flex:1;min-width:0;flex-direction:column}.chats-split.has-conv .chats-list{display:none}.chats-split.has-conv .chats-pane{display:flex}.chats-search{padding:.5rem .75rem;position:sticky;top:0;background:var(--bg);z-index:2}.chats-search{display:flex;gap:.5rem;align-items:center}.chats-search input{flex:1;min-width:0;width:auto;border-radius:999px}.chatlist{margin:0 .75rem}.chatlist .listrow.current{background:var(--primary-container);color:var(--on-primary-container)}.chat-title{font-weight:500;display:flex;align-items:center;gap:.3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title.unread,.chat-preview.unread{font-weight:700}.chat-preview{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.chat-preview.unread{color:var(--text)}.nowrap{white-space:nowrap}.avatar.group{background:var(--surface-3);color:var(--text)}.chats-empty{margin:auto;padding:2rem}.fab.only-wide{display:none}@media(min-width:900px){.chats-split{height:calc(100dvh - 4.2rem)}.chats-list,.chats-split.has-conv .chats-list{display:block;flex:0 0 24rem;border-right:1px solid var(--surface-3)}.chats-pane,.chats-split.has-conv .chats-pane{display:flex}.fab.only-wide{display:inline-flex}.fab{right:auto;left:8rem}}.conv{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}.conv-banner{margin:.5rem .75rem 0}.conv-note{text-align:center;color:var(--muted);font-size:.85rem;padding:.25rem}.msglist{flex:1;overflow-y:auto;padding:.5rem .75rem;display:flex;flex-direction:column}.msglist.empty{justify-content:center}.dayline{text-align:center;margin:.9rem 0 .4rem}.dayline span{background:var(--surface-2);color:var(--muted);font-size:.8rem;padding:.2rem .75rem;border-radius:999px}.sysmsg{text-align:center;color:var(--muted);font-size:.85rem;margin:.5rem 1rem}.msgrow{display:flex;align-items:flex-end;gap:.4rem;margin-top:2px}.msgrow.first{margin-top:.6rem}.msgrow.mine{justify-content:flex-end}.avatar-gap{width:2rem;flex:none}.bubblewrap{max-width:min(80%,34rem);display:flex;flex-direction:column}.msgrow.mine .bubblewrap{align-items:flex-end}.sender{font-size:.8rem;color:var(--muted);margin:0 .5rem .1rem}.bubble{padding:.55rem .9rem;border-radius:1.2rem;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);color:var(--text)}.msgrow.mine .bubble{background:var(--primary-container);color:var(--on-primary-container)}.bubble.deleted{font-style:italic;color:var(--muted)}.meta{font-size:.75rem;color:var(--muted);margin:.15rem .5rem 0;background:none;border:0;padding:0;text-align:right}.meta.failed{color:var(--danger);cursor:pointer;font-size:.85rem;text-decoration:underline}.composer{display:flex;align-items:flex-end;gap:.5rem;padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom)*0);border-top:1px solid var(--surface-3);background:var(--bg);flex-wrap:wrap}.composer textarea{flex:1;resize:none;border-radius:1.4rem;padding:.7rem 1rem;min-height:3rem;max-height:10rem;font:inherit}.sendbtn{width:3rem;height:3rem;border-radius:50%;border:0;background:var(--primary);color:var(--on-primary);cursor:pointer;display:grid;place-items:center;flex:none}.sendbtn:disabled{opacity:.45;cursor:default}.newchip{position:absolute;left:50%;transform:translate(-50%);bottom:5rem;z-index:5;display:inline-flex;align-items:center;gap:.3rem;border:0;cursor:pointer;font:inherit;font-weight:600;padding:.5rem 1rem;border-radius:999px;background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow)}.msgrow{-webkit-touch-callout:none;border-radius:1rem;transition:background .4s}.msgrow.flash{background:color-mix(in srgb,var(--primary) 22%,transparent)}.quote{display:flex;flex-direction:column;text-align:left;width:100%;font:inherit;cursor:pointer;background:color-mix(in srgb,currentColor 10%,transparent);color:inherit;border:0;border-left:3px solid var(--primary);border-radius:.5rem;padding:.3rem .6rem;margin-bottom:.35rem}.quote strong{font-size:.8rem}.quote span{font-size:.85rem;opacity:.85;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.reactions{display:flex;flex-wrap:wrap;gap:.25rem;margin:-.35rem .4rem .1rem;position:relative}.reaction{font:inherit;font-size:.9rem;min-height:2rem;padding:.1rem .55rem;border-radius:999px;cursor:pointer;background:var(--bg);color:var(--text);border:1px solid var(--surface-3);box-shadow:var(--shadow)}.reaction.on{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary)}.reaction:disabled{cursor:default}.reaction.big{font-size:1.6rem;min-width:3rem;min-height:3rem;border-radius:50%;padding:0;box-shadow:none}.receipt{font-weight:600}.typing{min-height:1.4rem;padding:0 1rem;font-size:.9rem;color:var(--muted);font-style:italic}.composer-context{flex-basis:100%;display:flex;justify-content:space-between;align-items:center;gap:.5rem;background:var(--surface-2);border-left:3px solid var(--primary);border-radius:.5rem;padding:.3rem .3rem .3rem .7rem;font-size:.9rem}.composer-context span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);color:var(--text);width:min(26rem,100%);border-radius:1.2rem 1.2rem 0 0;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;box-shadow:var(--shadow)}@media(min-width:600px){.sheet-backdrop{align-items:center}.sheet{border-radius:1.2rem}}.sheet-reactions{display:flex;justify-content:space-around;padding:.4rem 0 .6rem;border-bottom:1px solid var(--surface-3)}.sheet-item{font:inherit;font-size:1.1rem;text-align:left;background:none;border:0;color:inherit;padding:.9rem 1rem;min-height:3rem;cursor:pointer;border-radius:.6rem}.sheet-item:hover{background:var(--surface-2)}.sheet-item.danger{color:var(--danger)}.bubble.eventbubble{padding:.4rem}.eventcard{display:flex;flex-direction:column;gap:.2rem;min-width:min(16rem,70vw);padding:.3rem .4rem}.eventcard-title{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.05rem}.eventcard.unavailable{font-style:italic;color:var(--muted)}.eventcard .chip{min-height:2.5rem;cursor:pointer}.photogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}@media(min-width:600px){.photogrid{grid-template-columns:repeat(4,1fr)}}@media(min-width:900px){.photogrid{grid-template-columns:repeat(6,1fr)}}.photocell{position:relative;aspect-ratio:1;padding:0;border:0;background:var(--surface-3);cursor:pointer;overflow:hidden;border-radius:6px}.photocell img{width:100%;height:100%;object-fit:cover;display:block}.photocell:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.playmark{position:absolute;right:.35rem;bottom:.3rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);font-size:1.1rem}.photoblocked{display:grid;place-items:center;height:100%;padding:.5rem;text-align:center;color:var(--muted);font-size:.85rem}.photostrip{display:flex;gap:6px;overflow-x:auto;padding-bottom:.3rem;scroll-snap-type:x proximity}.photostrip .photocell{flex:none;width:6.5rem;height:6.5rem;scroll-snap-align:start}.albumgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(min-width:600px){.albumgrid{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.albumgrid{grid-template-columns:repeat(4,1fr)}}.albumtile{display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:inherit}.albumcover{aspect-ratio:1;border-radius:var(--radius);background:var(--surface-3);overflow:hidden;display:grid;place-items:center;color:var(--muted);box-shadow:var(--shadow)}.albumcover img{width:100%;height:100%;object-fit:cover;display:block}.albumtile:focus-visible .albumcover{outline:3px solid var(--primary);outline-offset:2px}.albumname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000;color:#fff;display:flex;flex-direction:column}.viewer-top{display:flex;align-items:center;gap:.6rem;padding:calc(.5rem + env(safe-area-inset-top)) .6rem .5rem;background:linear-gradient(#000c,#0000)}.viewer-who{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;overflow:hidden}.viewer-who>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-count{opacity:.8}.viewer-stage{flex:1;min-height:0;position:relative;display:grid;place-items:center}.viewer-stage img{max-width:100%;max-height:100%;object-fit:contain;display:block}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:3.2rem;height:3.2rem;border-radius:50%;border:0;background:#0008;color:#fff;display:none;place-items:center;cursor:pointer}.viewer-nav.left{left:.6rem}.viewer-nav.right{right:.6rem}@media(hover:hover)and (pointer:fine){.viewer-nav{display:grid}}.viewer-bottom{padding:.5rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:linear-gradient(#0000,#000c)}.viewer-caption{margin:0 0 .5rem}.viewer-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.viewer-btn{font:inherit;color:#fff;background:#ffffff26;border:0;border-radius:999px;min-height:2.8rem;min-width:2.8rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:0 .9rem;cursor:pointer;text-decoration:none}.viewer-btn.danger{color:#ffb4ab}.viewer-btn:disabled{opacity:.5}.viewer-btn:focus-visible,.viewer-nav:focus-visible{outline:3px solid #fff;outline-offset:2px}.viewer-sheet{z-index:70}.viewer .error{margin:0 0 .5rem}.bubble.photobubble{padding:.25rem;white-space:normal}.bubble.photobubble .caption{padding:.3rem .6rem .2rem;white-space:pre-wrap}.mediabubble{display:grid;gap:3px;width:min(18rem,66vw)}.mediabubble.n1{grid-template-columns:1fr}.mediabubble.grid{grid-template-columns:1fr 1fr}.mediabubble button{position:relative;padding:0;border:0;background:var(--surface-3);cursor:pointer;overflow:hidden;border-radius:.9rem;display:block}.mediabubble.grid button{aspect-ratio:1}.mediabubble img{width:100%;height:100%;object-fit:cover;display:block}.mediabubble.n1 img{height:auto;max-height:22rem}.mediabubble .more{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:700}.mediabubble.sending{opacity:.6}.mediabubble button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.composer-photos{flex-basis:100%;display:flex;gap:.5rem;overflow-x:auto;padding:.2rem 0}.composer-photo{position:relative;flex:none;width:4.5rem;height:4.5rem}.composer-photo img{width:100%;height:100%;object-fit:cover;border-radius:.7rem;display:block}.composer-photo button{position:absolute;top:-.3rem;right:-.3rem;width:1.8rem;height:1.8rem;border-radius:50%;border:0;background:var(--text);color:var(--bg);cursor:pointer;font-size:.9rem;line-height:1}.attachbtn{flex:none;width:3rem;height:3rem;border-radius:50%;border:0;background:var(--surface-2);color:var(--text);display:grid;place-items:center;cursor:pointer}.composer-note{flex-basis:100%;margin:0;font-size:.85rem}
