:root,[data-theme=dark]{--bg: #080809;--surface: black;--surface-2: black;--text: white;--text-dim: #888;--border: #ddd;--input-bg: green;--input-text: white;--input-border: #ddd;--btn-bg: blue;--btn-text: white;--btn-hover: #0056b3;--danger: #dc3545;--danger-hover: #a71d2a;--warn: #ff9800;--ok: #28a745;--mine-bg: #a1a5ae;--mine-text: black;--other-bg: purple;--other-text: white;--naaz-bg: #e498ed;--naaz-text: white;--meta: #f2e6e8;--link: #9ec5ff;--online: #2ecc71;--accent: blue;--overlay: rgba(0, 0, 0, .7);--radius: 4px;--bubble-radius: 4px;--bubble-max: 100%;--msg-weight: bold;--bubble-border: none;--theme-color: #080809;--tick-seen: #4fc3f7}[data-theme=sakura]{--bg: #fff0f5;--surface: #fffafc;--surface-2: #ffe6ef;--text: #4a2a36;--text-dim: #a1788a;--border: #f3c6d6;--input-bg: #ffffff;--input-text: #4a2a36;--input-border: #f3b6cb;--btn-bg: #ec6b9c;--btn-text: white;--btn-hover: #d94f85;--danger: #e0475b;--danger-hover: #b8323f;--warn: #f0932b;--ok: #3fae6a;--mine-bg: #ffd1e1;--mine-text: #4a2a36;--other-bg: #ffffff;--other-text: #4a2a36;--naaz-bg: #f7b2d9;--naaz-text: #4a2a36;--meta: #a1788a;--link: #c2336b;--online: #3fae6a;--accent: #ec6b9c;--overlay: rgba(74, 42, 54, .45);--radius: 16px;--bubble-radius: 18px;--bubble-max: 82%;--msg-weight: normal;--bubble-border: 1px solid #f3c6d6;--theme-color: #ffe6ef;--tick-seen: #ec6b9c}[data-theme=cozy]{--bg: #1f1713;--surface: #2a1f19;--surface-2: #35271f;--text: #f4e6d4;--text-dim: #b9a28b;--border: #4b3a2e;--input-bg: #3a2c23;--input-text: #f4e6d4;--input-border: #5a4636;--btn-bg: #c8884a;--btn-text: #2a1a0c;--btn-hover: #dd9c5c;--danger: #d9534f;--danger-hover: #b9403c;--warn: #e0a15f;--ok: #7fb069;--mine-bg: #c8884a;--mine-text: #2a1a0c;--other-bg: #41322a;--other-text: #f4e6d4;--naaz-bg: #d98a8a;--naaz-text: #2a1a0c;--meta: #cdb8a1;--link: #f0b97a;--online: #9ccc65;--accent: #e0a15f;--overlay: rgba(10, 6, 3, .65);--radius: 14px;--bubble-radius: 16px;--bubble-max: 82%;--msg-weight: normal;--bubble-border: none;--theme-color: #35271f;--tick-seen: #ffd08a}[data-theme=light]{--bg: #eef1f5;--surface: #ffffff;--surface-2: #f6f8fb;--text: #1c1e21;--text-dim: #6b7280;--border: #dfe3e8;--input-bg: #ffffff;--input-text: #1c1e21;--input-border: #cbd2da;--btn-bg: #0d6efd;--btn-text: white;--btn-hover: #0b5ed7;--danger: #dc3545;--danger-hover: #b02a37;--warn: #f08c00;--ok: #2f9e44;--mine-bg: #d6e8ff;--mine-text: #0b2a4a;--other-bg: #ffffff;--other-text: #1c1e21;--naaz-bg: #f6c6f1;--naaz-text: #1c1e21;--meta: #6b7280;--link: #0b5ed7;--online: #2f9e44;--accent: #0d6efd;--overlay: rgba(20, 24, 31, .45);--radius: 10px;--bubble-radius: 14px;--bubble-max: 82%;--msg-weight: normal;--bubble-border: 1px solid #dfe3e8;--theme-color: #ffffff;--tick-seen: #0d6efd}@font-face{font-family:roboto;src:url(/fonts/roboto-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:shabnam;src:url(/fonts/Shabnam.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--font: "roboto", "shabnam", system-ui, sans-serif;--bubble-width: fit-content}[data-theme=dark]{--bubble-width: 100%}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation}#root{height:100vh;height:100dvh;width:100%;max-width:100vw;overflow:hidden}#root:has(.admin){overflow:auto}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--link)}.muted{color:var(--text-dim)}.small{font-size:.8em}.pad{padding:16px}mark{background:var(--accent);color:var(--btn-text);border-radius:3px;padding:0 2px}.splash{height:100vh;height:100dvh;display:grid;place-items:center;font-size:64px}input:not([type=checkbox]):not([type=range]):not([type=file]),select,textarea{width:100%;padding:10px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--input-bg);color:var(--input-text);outline:none;min-width:0}input::placeholder,textarea::placeholder{color:var(--input-text);opacity:.6}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=file]{color:var(--text);width:100%}.btn{padding:10px 16px;background:var(--btn-bg);color:var(--btn-text);border:none;border-radius:var(--radius);font-size:16px;transition:background .15s}.btn:hover:not(:disabled){background:var(--btn-hover)}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:var(--danger-hover)}.btn.warn{background:var(--warn);color:#000}.btn.ok{background:var(--ok);color:#fff}.icon-btn{background:transparent;border:none;color:var(--text);font-size:20px;min-width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;padding:0}.icon-btn:hover:not(:disabled){background:#80808033}.icon-btn:disabled{opacity:.3}.form-error{color:#ff6b6b;text-align:center;margin:6px 0}.stack{display:flex;flex-direction:column;gap:10px}.row-flex,.stack .row,.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>input,.row>select{flex:1;min-width:120px}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.chips-row{display:flex;gap:6px;flex-wrap:wrap}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.9em;color:var(--text)}.chip.mine{background:var(--accent);color:var(--btn-text);border-color:transparent}.badge{background:var(--accent);color:var(--btn-text);border-radius:999px;min-width:22px;height:22px;padding:0 6px;display:inline-grid;place-items:center;font-size:12px}.avatar{position:relative;border-radius:50%;display:inline-grid;place-items:center;color:#fff;flex:none;font-weight:700}.dot{position:absolute;bottom:0;inset-inline-end:0;width:28%;height:28%;border-radius:50%;border:2px solid var(--surface);background:var(--online)}.dot.away{background:var(--warn)}.login-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:16px}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:0;text-align:center;font-size:22px}.login-logo{font-size:56px;text-align:center}.shell{height:100vh;height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);background:var(--surface)}.room-list{display:flex;flex-direction:column;min-height:0;min-width:0;border-inline-end:1px solid var(--border)}.pane{min-width:0;min-height:0;display:flex;flex-direction:column}.shell.has-chat .room-list{display:none}.shell:not(.has-chat) .pane{display:none}@media (min-width: 900px){.shell{grid-template-columns:340px minmax(0,1fr);max-width:1180px;margin:10px auto 0;height:calc(100vh - 20px);height:calc(100dvh - 20px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.shell.has-chat .room-list,.shell:not(.has-chat) .pane{display:flex}.back{display:none}}.bar{display:flex;align-items:center;gap:8px;padding:6px 10px;padding-top:calc(6px + env(safe-area-inset-top));background:var(--surface-2);border-bottom:1px solid var(--border);min-height:54px;position:relative;flex:none}.bar-title{flex:1;min-width:0;font-weight:700}.title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtitle{font-size:.75em;color:var(--text-dim);font-weight:400;min-height:1.2em}.subtitle .typing,.subtitle .online-text{color:var(--online)}.bar-actions{display:flex;align-items:center;position:relative}.offline-tag{color:var(--warn);font-weight:400;margin-inline-start:6px}.back{transform:scaleX(-1)}[dir=ltr] .back{transform:none}.dropdown{position:absolute;top:100%;inset-inline-end:0;z-index:30;min-width:220px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0006;overflow:hidden}.dropdown button{display:block;width:100%;text-align:start;padding:12px 14px;background:none;border:none;border-bottom:1px solid var(--border)}.dropdown button:hover{background:#80808033}.dropdown button.warn{color:var(--warn)}.dropdown button.ok{color:var(--ok)}.broadcast-status{color:var(--warn);font-size:.85em;padding:4px 12px;background:var(--surface-2);text-align:center}.rooms{overflow-y:auto;flex:1}.room-item{display:flex;gap:12px;padding:10px 12px;align-items:center;text-decoration:none;color:inherit;border-bottom:1px solid var(--border)}.room-item:hover{background:#8080801f}.room-item.active{background:#80808038}.room-main{flex:1;min-width:0}.room-top,.room-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}.room-name{min-width:0;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-tag{margin-inline-start:6px;padding:0 6px;border-radius:999px;background:#80808040;color:var(--text-dim);font-weight:400;font-size:.75em}.room-snippet{flex:1;min-width:0;color:var(--text-dim);font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-top time{font-size:.75em;flex:none}.empty-pane{flex:1;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;color:var(--text-dim)}.empty-pane>div{font-size:64px}.chat{display:flex;flex-direction:column;height:100%;min-height:0;position:relative}.list-wrap{flex:1;min-height:0;position:relative}.list{height:100%;overscroll-behavior:contain}.list-loading,.list-start{text-align:center;color:var(--text-dim);padding:12px;font-size:.85em}.list-loading:not(.small){flex:1;display:grid;place-items:center}.list-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);gap:4px}.list-empty>div{font-size:56px}.to-bottom,.jump-latest{position:absolute;z-index:5;bottom:12px;inset-inline-start:12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);box-shadow:0 2px 10px #0006}.to-bottom{width:44px;height:44px;border-radius:50%;font-size:22px;display:grid;place-items:center}.to-bottom .badge{position:absolute;top:-8px;inset-inline-end:-4px}.jump-latest{inset-inline-start:50%;transform:translate(50%);padding:8px 14px;border-radius:999px}.row.mine,.row.other{padding:2px 10px;display:flex;flex-direction:column}.day-sep{text-align:center;margin:12px 0 6px}.day-sep span{background:var(--surface-2);color:var(--text-dim);padding:3px 12px;border-radius:999px;font-size:.8em;border:1px solid var(--border)}.bubble{position:relative;width:var(--bubble-width);max-width:var(--bubble-max);padding:5px 8px;margin-bottom:5px;border-radius:var(--bubble-radius);border:var(--bubble-border);word-break:break-word;-webkit-user-select:text;user-select:text;-webkit-touch-callout:none}.row.mine .bubble{align-self:flex-start}.row.other .bubble{align-self:flex-end}.my-msg{background:var(--mine-bg);color:var(--mine-text)}.other-msg{background:var(--other-bg);color:var(--other-text)}.naaz-msg{background:var(--naaz-bg);color:var(--naaz-text)}.bubble.deleted{opacity:.6;font-style:italic}.msg-meta{font-size:.8em;color:var(--meta);display:flex;flex-wrap:wrap;gap:0 2px;align-items:center}.my-msg .msg-meta{color:var(--meta)}.msg-name{display:none}[data-theme=dark] .msg-name,.group .row.other .msg-name{display:inline}.msg-content{font-weight:var(--msg-weight);white-space:pre-wrap;unicode-bidi:plaintext}.msg-content .tag,.tag{background:#80808040;border:none;border-radius:6px;padding:0 5px;color:inherit;font:inherit;font-weight:700}.tick{margin-inline-start:4px;font-size:.95em;opacity:.9;background:none;border:none;padding:0}.tick.seen{color:var(--tick-seen);opacity:1}.tick.failed{color:#ff6b6b}.edited{opacity:.8}.more{position:absolute;top:2px;inset-inline-end:4px;background:#00000040;color:inherit;border:none;border-radius:50%;width:22px;height:22px;line-height:1;opacity:0;transition:opacity .15s;font-size:16px}.bubble:hover .more{opacity:1}@media (pointer: coarse){.more{display:none}}.reply-ref{display:flex;flex-direction:column;text-align:start;width:100%;background:#0000002e;color:inherit;border:none;border-inline-start:3px solid var(--accent);border-radius:6px;padding:3px 8px;margin-bottom:4px;font-size:.85em}.reply-ref span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.row.flash .bubble{animation:flash 1.6s ease}@keyframes flash{0%,60%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 0 transparent}}.chat-img{display:block;max-width:min(320px,100%);max-height:360px;width:auto;height:auto;border-radius:calc(var(--bubble-radius) - 2px);cursor:zoom-in;margin-top:4px;background:#80808033}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reactions .chip{color:inherit;background:#0000002e;border-color:transparent;padding:0 8px}.reactions .chip.mine{outline:1px solid var(--accent);background:#0000004d;color:inherit}.voice{display:flex;align-items:center;gap:8px;min-width:200px;margin-top:4px}.voice input[type=range]{flex:1;accent-color:var(--accent)}.voice-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--btn-bg);color:var(--btn-text)}.voice-time{font-size:.8em;min-width:36px;font-variant-numeric:tabular-nums}.envelope{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:14px 10px;background:#ffffff2e;border:2px dashed currentColor;border-radius:var(--bubble-radius);color:inherit;margin-top:4px;animation:pulse 2.4s ease-in-out infinite}.env-icon{font-size:40px;transition:transform .6s}.envelope.opening{animation:none}.envelope.opening .env-icon{transform:scale(1.6) rotate(-8deg)}.env-title{font-weight:700}.env-hint{opacity:.9}.env-cta{font-size:.8em;opacity:.8}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.letter-open{border-inline-start:3px solid var(--warn);padding-inline-start:8px}.letter-head{font-weight:700;margin-bottom:2px}.reveals{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.polaroid{position:relative;background:#fffdf8;color:#333;border:none;padding:8px 8px 4px;width:150px;box-shadow:0 3px 10px #00000073;transform:rotate(-2deg);display:flex;flex-direction:column;gap:4px;border-radius:3px}.polaroid:nth-child(2n){transform:rotate(2.5deg)}.polaroid img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#ddd}.polaroid .cap{font-size:.8em;min-height:1.4em;text-align:center}.polaroid.develop img{animation:develop 2.2s ease-out both}.polaroid.develop{animation:drop-in .7s cubic-bezier(.2,1.4,.4,1) both}.sparkle{position:absolute;top:-10px;inset-inline-end:-8px;font-size:22px;animation:twinkle 1.2s ease-in-out 3}@keyframes develop{0%{filter:brightness(.1) sepia(1) blur(6px);opacity:.3}to{filter:none;opacity:1}}@keyframes drop-in{0%{transform:translateY(-40px) rotate(-12deg);opacity:0}}@keyframes twinkle{50%{transform:scale(1.5) rotate(20deg);opacity:.4}}.rain,.hearts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:9999}.rain-drop{position:absolute;top:-40px;animation:fall 5s linear forwards}@keyframes fall{to{transform:translateY(115vh);opacity:0}}.heart-float{position:absolute;bottom:-40px;opacity:0;animation:float-up 3.6s ease-out forwards}@keyframes float-up{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:1}to{transform:translateY(-85vh) scale(1.3) rotate(15deg);opacity:0}}.composer-wrap{flex:none;position:relative;background:var(--surface)}.composer{display:flex;align-items:flex-end;gap:6px;padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}.composer textarea{resize:none;max-height:140px;min-height:42px;line-height:1.4;flex:1;overflow-y:auto}.composer.locked{justify-content:center;color:var(--warn)}.composer.recording{align-items:center;justify-content:space-between}.rec-timer{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums;font-size:18px}.rec-dot{width:12px;height:12px;border-radius:50%;background:#ff3b30;animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}.send-btn{width:44px;height:44px;flex:none;border-radius:50%;border:none;background:var(--btn-bg);color:var(--btn-text);font-size:18px;transform:scaleX(-1)}.send-btn.mic{transform:none}.send-btn:disabled{opacity:.4}.reply-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:var(--surface-2);border-top:1px solid var(--border);font-size:.85em}.reply-bar>div{display:flex;flex-direction:column;min-width:0}.reply-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.tag-suggest{display:flex;gap:6px;padding:6px 10px;overflow-x:auto;background:var(--surface-2);border-top:1px solid var(--border)}.plus-menu{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:var(--surface-2);border-top:1px solid var(--border)}.plus-menu button{text-align:start;background:none;border:none;padding:8px;border-radius:var(--radius);font-size:16px}.plus-menu button:hover{background:#80808033}.rain-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0 8px}.rain-row button{font-size:22px;padding:4px 8px}.typing-dots{display:flex;gap:4px;padding:0 16px 4px;height:14px;align-items:center;background:var(--surface)}.typing-dots i{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:dot 1.1s infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:520px;max-height:88vh;max-height:88dvh;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border-radius:18px 18px 0 0;border:1px solid var(--border);animation:slide-up .2s ease-out}.sheet.wide{max-width:760px}@keyframes slide-up{0%{transform:translateY(40px);opacity:.4}}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;border-bottom:1px solid var(--border)}.sheet-title{font-weight:700}.sheet-body{padding:14px 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto;display:flex;flex-direction:column;gap:12px}.sheet-body h3{margin:4px 0;font-size:1em}@media (min-width: 700px){.overlay{align-items:center}.sheet{border-radius:14px}}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.theme-card{display:flex;flex-direction:column;gap:6px;align-items:center;padding:10px;background:var(--surface-2);border:2px solid var(--border);border-radius:var(--radius)}.theme-card.on{border-color:var(--accent)}.swatches{display:flex}.swatches i{width:26px;height:26px;border-radius:50%;border:1px solid rgba(128,128,128,.5);margin-inline-start:-6px}.quick-react{display:flex;justify-content:space-around}.quick-react button{font-size:30px;background:none;border:none;padding:4px 8px}.action-list{display:flex;flex-direction:column}.action-list button{text-align:start;padding:14px 6px;background:none;border:none;border-top:1px solid var(--border);font-size:16px}.danger-text{color:var(--danger)!important}.hits{display:flex;flex-direction:column}.hit{text-align:start;background:none;border:none;border-bottom:1px solid var(--border);padding:10px 4px}.hit-meta{font-size:.75em;color:var(--text-dim)}.special-text{min-height:110px;resize:vertical}.sched-item{border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}.sched-item p{margin:0;white-space:pre-wrap}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:85vh;max-height:85dvh;object-fit:contain}.lightbox p{color:#fff;margin:0}.detail-img{width:100%;max-height:60vh;max-height:60dvh;object-fit:contain;border-radius:var(--radius)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.album-item{position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;padding:0;background:var(--surface-2)}.album-item img{width:100%;height:100%;object-fit:cover;display:block}.album-item.locked{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:32px;text-align:center;color:var(--text-dim)}.album-item.locked span{font-size:12px;padding:0 6px}.album-badge{position:absolute;bottom:4px;inset-inline-start:4px;background:#0009;color:#fff;font-size:11px;border-radius:6px;padding:1px 6px}.album-tags{position:absolute;top:4px;inset-inline-start:4px;background:#0000008c;color:#fff;font-size:11px;padding:1px 6px;border-radius:6px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-item .del{position:absolute;top:2px;inset-inline-end:2px;background:#00000080;font-size:14px;min-width:28px;height:28px}.toasts{position:fixed;top:calc(10px + env(safe-area-inset-top));inset-inline:10px;z-index:300;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{pointer-events:auto;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:10px 16px;box-shadow:0 4px 16px #00000073;max-width:min(480px,100%);animation:slide-down .25s ease-out;text-align:start}.toast.love{background:var(--accent);color:var(--btn-text);border-color:transparent}.toast.error{background:var(--danger);color:#fff;border-color:transparent}@keyframes slide-down{0%{transform:translateY(-20px);opacity:0}}.admin{max-width:1000px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--surface);display:flex;flex-direction:column}.tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--border);background:var(--surface-2)}.tabs button{flex:1;padding:12px 14px;background:none;border:none;border-bottom:3px solid transparent;white-space:nowrap}.tabs button.on{border-bottom-color:var(--accent);font-weight:700}.admin-body{padding:14px;flex:1}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.card h3,.card h4{margin:4px 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92em}th,td{padding:8px 6px;border-bottom:1px solid var(--border);text-align:start;vertical-align:top}td.actions{white-space:nowrap}td.actions .btn{padding:4px 10px;font-size:13px;margin-inline-end:4px}.members{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.members li{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.rule input{flex:1 1 110px}label{display:flex;flex-direction:column;gap:4px}label.toggle{flex-direction:row}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.stat-cards .card{display:flex;flex-direction:column;align-items:center}.stat-cards b{font-size:1.5em}.bars{display:flex;align-items:flex-end;gap:3px;height:120px;border-bottom:1px solid var(--border)}.bar-col{flex:1;height:100%;display:flex;align-items:flex-end}.bar-col i{display:block;width:100%;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-line{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px dashed var(--border)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.file-line{display:flex;align-items:center;gap:8px}.file-line b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-video{display:block;max-width:min(320px,100%);max-height:360px;border-radius:calc(var(--bubble-radius) - 2px);margin-top:4px;background:#000}.file-card{display:flex;align-items:center;gap:10px;padding:8px;margin-top:4px;background:#0000002e;border-radius:var(--radius);color:inherit;text-decoration:none;min-width:200px}.file-card .ico{font-size:28px}.file-card .meta{display:flex;flex-direction:column;min-width:0}.file-card .meta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expired-note{opacity:.75;font-style:italic;padding:6px 0}.expiry{font-size:.72em;opacity:.75;margin-top:2px}.rain-stop{position:fixed;z-index:10000;bottom:90px;inset-inline-start:12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:6px 14px;box-shadow:0 2px 10px #00000080}.sheet-body>section>.btn,.sheet-body>.btn,.sheet-body form>.btn:only-child{width:100%}:root,[data-theme=dark],[data-theme=cozy]{color-scheme:dark}[data-theme=sakura],[data-theme=light]{color-scheme:light}*{scrollbar-width:thin;scrollbar-color:rgba(128,128,128,.55) transparent}.chip{min-height:34px;display:inline-flex;align-items:center}.reactions .chip,.tag-suggest .chip{min-height:0}.btn{min-height:40px}td.actions .btn,.user-card .btn{min-height:34px}.colored-msg .msg-meta,.colored-msg .reply-ref{color:inherit;opacity:.8}.colored-msg .reactions .chip{color:inherit}@media (pointer: coarse){.bubble{-webkit-user-select:none;user-select:none}}.composer.readonly{color:var(--text-dim)}.readonly-banner{text-align:center;font-size:.85em;padding:4px 12px;background:var(--surface-2);color:var(--text-dim);border-bottom:1px solid var(--border)}.room-tag.ro{background:var(--accent);color:var(--btn-text)}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px}.menu-grid button{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center!important;padding:10px 4px!important;font-size:.85em!important;background:#80808026!important;border-radius:var(--radius)}.menu-grid .mi{font-size:26px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:center}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.user-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:6px;min-width:0}.user-card .head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.user-card .head b{overflow:hidden;text-overflow:ellipsis}.user-card .stats{display:flex;gap:12px;flex-wrap:wrap;font-size:.85em;color:var(--text-dim)}.user-card .rooms-line{font-size:.8em;color:var(--text-dim);overflow-wrap:anywhere}.user-card .actions{display:flex;gap:6px;flex-wrap:wrap}.swatches-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.swatch{width:30px;height:30px;border-radius:50%;border:2px solid transparent;padding:0;outline:1px solid rgba(128,128,128,.6)}.swatch.on{border-color:var(--text)}.swatch.none{background:repeating-linear-gradient(45deg,transparent 0 4px,rgba(128,128,128,.5) 4px 6px)}.rule-card{border:1px solid var(--border);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}.rule-preview{align-self:flex-start;padding:4px 12px;border-radius:var(--bubble-radius);font-weight:var(--msg-weight)}input[type=color]{width:40px;height:32px;padding:0;border:1px solid var(--border);background:none}.blur-img{position:relative;display:block;width:min(260px,100%);max-height:360px;min-height:120px;aspect-ratio:4 / 3;margin-top:4px;padding:0;border:none;overflow:hidden;border-radius:calc(var(--bubble-radius) - 2px);background:#80808059;cursor:zoom-in}.blur-img img{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;width:124%;height:124%;object-fit:cover;filter:blur(16px) saturate(1.2)}.blur-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;background:#0000008c;color:#fff;padding:6px 14px;border-radius:999px;font-size:.9em}.blur-toggle{padding:10px 0}.longing-clock{display:flex;justify-content:center}.longing-clock svg{width:min(320px,100%);height:auto;touch-action:manipulation}.longing-clock .ring{fill:none;stroke:var(--border);stroke-width:1;stroke-dasharray:2 4}.longing-clock .hit{fill:transparent;cursor:pointer}.longing-clock .hour.picked .hit{fill:#8080802e}.longing-clock .tick{fill:var(--text-dim);font-size:11px;text-anchor:middle}.longing-clock .icon{font-size:14px;text-anchor:middle}.small-gap{gap:4px}.center{text-align:center}.day-parts{display:flex;flex-direction:column;gap:6px}.day-part{display:grid;grid-template-columns:9.5em minmax(0,1fr) 3em;align-items:center;gap:8px;font-size:.9em}.day-part i{display:block;height:10px;min-width:2px;border-radius:6px;background:var(--accent)}.legend .chip{display:inline-flex;align-items:center;gap:6px}.legend .count{background:#80808040;border-radius:999px;padding:0 8px;font-weight:600}.legend .chip.off{opacity:.4;text-decoration:line-through}.dot-c{display:inline-block;width:10px;height:10px;border-radius:50%}.welcome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 30% 20%,#ffd6ec,#f48fb1 55%,#d81b60);animation:welcome-in .5s ease-out;overflow:hidden}.welcome.leaving{animation:welcome-out .45s ease-in forwards}@keyframes welcome-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}@keyframes welcome-out{to{opacity:0;transform:scale(.96)}}.welcome-card{position:relative;width:min(380px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:16px;background:#ffffffe0;color:#880e4f;border-radius:26px;padding:18px;box-shadow:0 12px 40px #880e4f59}.welcome-photo{width:100%;max-height:55vh;max-height:55dvh;object-fit:cover;border-radius:18px;border:4px solid #fff;box-shadow:0 4px 16px #0000002e;transform:rotate(-1.5deg)}.welcome-text{margin:0;font-size:1.35em;font-weight:700;text-align:center;line-height:1.7}.welcome-btn{background:#d81b60;color:#fff;border:none;border-radius:999px;padding:12px 34px;font-size:1.1em;box-shadow:0 4px 14px #d81b6073;cursor:pointer}.welcome-btn:active{transform:scale(.97)}.welcome-hearts span{position:absolute;bottom:-40px;font-size:26px;animation:welcome-float 6s linear infinite;opacity:.85}@keyframes welcome-float{to{transform:translateY(-115vh) rotate(25deg);opacity:0}}.welcome-hearts{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.welcome-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}.pub{max-width:640px;margin:0 auto;padding:16px;padding-top:calc(16px + env(safe-area-inset-top));display:flex;flex-direction:column;gap:14px;height:100vh;height:100dvh;overflow-y:auto;background:var(--bg);color:var(--text)}.pub-head h1{margin:0 0 4px;font-size:1.4em}.pub-head p{margin:0}.pub-compose textarea{resize:vertical;min-height:70px}.pub-file{display:inline-flex;align-items:center;gap:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.9em}.pub-file.bad,.pub-err{color:var(--danger)}.pub-err{margin:0;font-size:.9em}.pub-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.pub-item{display:flex;flex-direction:column;gap:8px;min-width:0}.pub-img{width:100%;max-height:360px;object-fit:contain;border-radius:var(--radius);background:#80808033;cursor:zoom-in}.pub-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.pub-doc{overflow-wrap:anywhere}.pub-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}.pub-actions a.icon-btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.pub-empty{padding:24px 0}.icon-btn.back{position:relative}.back-badge{position:absolute;top:2px;inset-inline-start:2px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#e53935;color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:700;border:2px solid var(--surface);box-sizing:content-box}
